455 lines
12 KiB
Markdown
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 -->
|