singularity-forge/FEATURES.md
2026-05-09 02:58:06 +02:00

455 lines
12 KiB
Markdown

# FEATURES
This file is the human-oriented capability map for Singularity Forge.
It is intentionally not the source of truth for schemas or tool parameters. Use it to answer:
- what SF can do today
- which surfaces are first-class versus experimental
- where a capability lives in the system
For exact contracts, use:
- `README.md` for product positioning and user docs
- `src/resources/extensions/sf/workflow-tools.js` for native workflow tool requirements
- `src/resources/extensions/sf/` for planning/state-machine behavior and tool schemas
- `src/resources/extensions/*/extension-manifest.json` for extension inventory
- `packages/pi-ai/src/` for provider and model registry behavior
## Core Product Shape
SF is a coding-agent application built around:
- a milestone → slice → task planning hierarchy
- a DB-backed workflow state machine
- native SF workflow mutations and readers
- extension-based capability loading
- multi-provider model routing
- interactive and autonomous execution modes
The core planning/runtime loop is:
1. discuss / research / align
2. plan milestone
3. plan slice
4. execute task-by-task
5. verify gates
6. summarize and validate
7. reassess roadmap and continue
## Planning And Ceremony Capabilities
### Milestone planning
SF supports milestone plans with:
- milestone title, vision, and slice breakdown
- success criteria and definition of done
- key risks and proof strategy
- verification contract, integration, operational, and UAT sections
- requirement coverage and boundary-map support
### Vision meeting
Milestones can carry a weighted `visionMeeting` that captures:
- `pm`
- `userAdvocate`
- `customerPanel`
- `business`
- `researcher`
- `deliveryLead`
- `partner`
- `combatant`
- `architect`
- `moderator`
- weighted synthesis
- confidence by area
- recommended route: `discussing`, `researching`, or `planning`
This is the top-level roadmap/vision alignment ceremony.
### Slice planning
Slices support:
- goal
- success criteria
- proof level
- integration closure
- observability impact
- ordered task plans with expected files, verification, inputs, outputs
### Adversarial review
Slice planning supports first-class adversarial review with:
- `partner`
- `combatant`
- `architect`
This is treated as required planning structure, not commentary.
### Planning meeting
Slices also support a structured planning meeting with:
- trigger
- `pm`
- `researcher`
- `partner`
- `combatant`
- `architect`
- `moderator`
- recommended route
- confidence summary
This is the narrower execution-readiness ceremony.
### Replanning
When a blocker invalidates a slice plan, SF supports slice replanning with:
- blocker task + blocker description
- what changed
- updated tasks
- removed tasks
- updated slice-level planning fields
- updated adversarial review
- updated planning meeting
Replan state is preserved in DB and re-rendered into plan artifacts.
## Workflow State Machine
The SF workflow engine derives and enforces states including:
- `pre-planning`
- `needs-discussion`
- `planning`
- `evaluating-gates`
- `executing`
- `summarizing`
- `validating-milestone`
- `completing-milestone`
- `replanning-slice`
- `complete`
- `blocked`
Important properties:
- execution readiness is gated by artifact completeness, not just file existence
- meeting/ceremony data participates in readiness
- blocked/dependency-aware progression is built in
- routed-back plans stay in planning instead of pretending to be ready
## Artifact And Persistence Capabilities
SF persists workflow state in multiple synchronized forms:
- SQLite DB (`.sf/sf.db`)
- markdown planning artifacts
- state manifest snapshots
- worktree DB reconciliation state
- workflow events
Planning/ceremony state now survives across:
- DB writes
- markdown rendering
- pure projection rendering
- manifest export / restore
- worktree reconciliation
- state derivation and execution gating
- slice replanning
## Execution Capabilities
SF can execute work in:
- interactive mode
- headless mode
- auto mode
- parallel / multi-worker orchestration
Execution-related features include:
- task-sized dispatch units
- crash recovery and lock-aware state
- timeout supervision
- worktree isolation
- per-unit summaries and milestone completion flow
- roadmap reassessment after completed slices
## MCP And Workflow Tooling
The workflow layer is exposed over MCP, including mutation/read paths for:
- milestone planning
- slice planning
- slice replanning
- task completion
- slice completion
- milestone validation
- milestone completion
- roadmap reassessment
- gate results
- summary save/read flows
This makes SF usable from external clients without relying on slash-command prompt tricks.
## Search And Research Capabilities
SF has dedicated web/research support via onboarding, auth storage, and extension flows.
Currently supported first-class web-search providers include:
- `brave`
- `tavily`
- `serper`
- `exa`
Other search/research surfaces include:
- Ollama native web search / fetch integration
- Google search extension
- Context7 extension for library/documentation retrieval
- Jina-backed content extraction paths where configured
The search stack is available to automatic workflows, not only slash commands.
## Subagents And Background Work
SF includes subagent capabilities via the `subagent` extension, including:
- delegated agent runs
- background subagent jobs
- await/join behavior
- cancellation
- workflow-driven use rather than only interactive commands
This is useful for automatic coding flows and wave-based task execution.
## Extension Inventory
Bundled extension families currently include:
- `sf` — workflow engine, planning/state/artifacts
- `search-the-web`
- `subagent`
- `async-jobs`
- `bg-shell`
- `browser-tools`
- `context7`
- `google-search`
- `ollama`
- `remote-questions`
- `slash-commands`
- `mac-tools`
- `ttsr`
- `universal-config`
- `voice`
These are not all equal in product importance, but they are real shipped extension surfaces.
## Model And Provider Capabilities
SF supports multi-provider model routing across built-in and custom providers.
Notable supported/known providers in the current runtime and registry surface include:
- `anthropic`
- `anthropic-vertex`
- `openai`
- `azure-openai-responses`
- `openai-codex`
- `google`
- `google-gemini-cli`
- `google-vertex`
- `mistral`
- `amazon-bedrock`
- `ollama`
- `ollama-cloud`
- `openrouter`
- `groq`
- `xai`
- `github-copilot`
- `zai`
- `minimax`
- `minimax-cn`
- `kimi-coding`
- `xiaomi`
- `custom-openai`
Recent/custom provider support in this tree also includes:
- `zai` / GLM-family routing
- `xiaomi` / MiMo Anthropic-compatible endpoint
- `kimi-coding` / dedicated coding endpoint
- `minimax` Anthropic-compatible support
## Onboarding And Auth
Onboarding currently supports:
- LLM provider selection
- OAuth or API-key based provider setup where applicable
- local Ollama detection
- web-search provider setup
- remote questions setup
- tool-key collection for selected extensions
This is a real product capability, not just a doc path.
## Recovery, Reliability, And Operational Features
SF includes real operational hardening around:
- manifest bootstrapping and restore
- worktree/DB reconciliation
- cache invalidation around plan parsing
- atomic writes and TOCTOU protection
- gate-aware progression
- idle/timeout handling
- scoped recovery for auto mode
## UI And Interaction Surfaces
SF is not only a CLI. The repo also carries:
- TUI support
- web interface support
- VS Code extension support
- MCP server support
So the product surface is broader than “terminal prompt framework.”
## What This File Does Not Try To Be
This file does not list:
- every MCP tool parameter
- every extension command
- every model ID
- every preference flag
- every internal DB column
Those should stay close to code or generated inventories.
## Generated Inventory
The section below is generated from source declarations so this overview can stay concise while exact inventories remain refreshable.
<!-- GENERATED_FEATURE_INVENTORY_START -->
### SF Native Tools
Generated from `src/resources/extensions/sf/extension-manifest.json`.
- `sf_autonomous_checkpoint`
- `sf_complete_milestone`
- `sf_decision_save`
- `sf_exec`
- `sf_exec_search`
- `sf_graph`
- `sf_journal_query`
- `sf_log_judgment`
- `sf_milestone_generate_id`
- `sf_milestone_status`
- `sf_plan_milestone`
- `sf_plan_slice`
- `sf_plan_task`
- `sf_product_audit`
- `sf_reassess_roadmap`
- `sf_replan_slice`
- `sf_requirement_save`
- `sf_requirement_update`
- `sf_resume`
- `sf_save_gate_result`
- `sf_self_feedback_resolve`
- `sf_self_report`
- `sf_skip_slice`
- `sf_slice_complete`
- `sf_summary_save`
- `sf_task_complete`
- `sf_validate_milestone`
### Bundled Extensions
Generated from `src/resources/extensions/*/extension-manifest.json`.
- `async-jobs` — [extension-manifest.json](src/resources/extensions/async-jobs/extension-manifest.json)
- `aws-auth` — [extension-manifest.json](src/resources/extensions/aws-auth/extension-manifest.json)
- `bg-shell` — [extension-manifest.json](src/resources/extensions/bg-shell/extension-manifest.json)
- `browser-tools` — [extension-manifest.json](src/resources/extensions/browser-tools/extension-manifest.json)
- `claude-code-cli` — [extension-manifest.json](src/resources/extensions/claude-code-cli/extension-manifest.json)
- `context7` — [extension-manifest.json](src/resources/extensions/context7/extension-manifest.json)
- `github-sync` — [extension-manifest.json](src/resources/extensions/github-sync/extension-manifest.json)
- `google-search` — [extension-manifest.json](src/resources/extensions/google-search/extension-manifest.json)
- `guardrails` — [extension-manifest.json](src/resources/extensions/guardrails/extension-manifest.json)
- `mac-tools` — [extension-manifest.json](src/resources/extensions/mac-tools/extension-manifest.json)
- `mcp-client` — [extension-manifest.json](src/resources/extensions/mcp-client/extension-manifest.json)
- `ollama` — [extension-manifest.json](src/resources/extensions/ollama/extension-manifest.json)
- `remote-questions` — [extension-manifest.json](src/resources/extensions/remote-questions/extension-manifest.json)
- `search-the-web` — [extension-manifest.json](src/resources/extensions/search-the-web/extension-manifest.json)
- `sf` — [extension-manifest.json](src/resources/extensions/sf/extension-manifest.json)
- `sf-inturn-guard` — [extension-manifest.json](src/resources/extensions/sf-inturn-guard/extension-manifest.json)
- `sf-notify` — [extension-manifest.json](src/resources/extensions/sf-notify/extension-manifest.json)
- `sf-permissions` — [extension-manifest.json](src/resources/extensions/sf-permissions/extension-manifest.json)
- `sf-tui` — [extension-manifest.json](src/resources/extensions/sf-tui/extension-manifest.json)
- `sf-usage-bar` — [extension-manifest.json](src/resources/extensions/sf-usage-bar/extension-manifest.json)
- `slash-commands` — [extension-manifest.json](src/resources/extensions/slash-commands/extension-manifest.json)
- `subagent` — [extension-manifest.json](src/resources/extensions/subagent/extension-manifest.json)
- `ttsr` — [extension-manifest.json](src/resources/extensions/ttsr/extension-manifest.json)
- `universal-config` — [extension-manifest.json](src/resources/extensions/universal-config/extension-manifest.json)
- `vectordrive` — [extension-manifest.json](src/resources/extensions/vectordrive/extension-manifest.json)
- `voice` — [extension-manifest.json](src/resources/extensions/voice/extension-manifest.json)
### Search Providers
Generated from the `search-the-web` extension provider declarations.
- `brave`
- `exa`
- `ollama`
- `serper`
- `tavily`
### Known Model Providers
Generated from `packages/pi-ai/src/types.ts` (`KnownProvider`).
- `alibaba-coding-plan`
- `alibaba-dashscope`
- `amazon-bedrock`
- `anthropic`
- `anthropic-vertex`
- `azure-openai-responses`
- `cerebras`
- `github-copilot`
- `google`
- `google-gemini-cli`
- `google-vertex`
- `groq`
- `huggingface`
- `kimi-coding`
- `longcat`
- `minimax`
- `minimax-cn`
- `mistral`
- `ollama`
- `ollama-cloud`
- `openai`
- `openai-codex`
- `opencode`
- `opencode-go`
- `openrouter`
- `vercel-ai-gateway`
- `xai`
- `xiaomi`
- `xiaomi-token-plan-ams`
- `xiaomi-token-plan-cn`
- `xiaomi-token-plan-sgp`
- `zai`
<!-- GENERATED_FEATURE_INVENTORY_END -->