Closed specification pipeline
Idea, PRD, TechSpec, and numbered tasks live in.spec-finder/tasks/<slug>/.
A skill-driven specification framework with a local ACP cockpit.
Idea → PRD → TechSpec → executable tasks, without a daemon or a second source of truth. Skills are portable Agent Skills. Claude, Codex, Cursor, Grok Build, and Pi run through their ACP harnesses while Spec Finder owns ordering, lifecycle, permissions, and evidence reports.
npm install --global spec-finderbun add --global spec-finderpnpm add --global spec-finderyarn global add spec-finderIdea, PRD, TechSpec, and numbered tasks live in.spec-finder/tasks/<slug>/.
sf-write-spec and sf-tdd-write-spec write## Implementation Spec inside the task_prd.md, then print that path. A thin task goes through sf-create-prd first.
sf-refinement turns a prompt or tracker ticket into.spec-finder/refinements/<task_slug>.md without writing a runner packet or a one-shot spec.
Claude, Codex, Cursor, plus packet-only Grok Build and Pi. Spec Finder does not install or authenticate providers.
Watch provider, task graph, ACP activity, and tool calls. One ACP session per task covers implementation and the final report.
spec-finder run is one pass.spec-finder loop keeps recovering one packet.spec-finder run --multiple is serial and fail-fast.
Task packets stay in .spec-finder/tasks/. Setup writes.spec-finder/.gitignore so committed specs cannot poison later agent context.
Every stage keeps approval gates. Research and interactive decisions happen before artifacts are saved. Tasks form an acyclic dependency graph and carry their own tests.
sf-idea-factory → _idea.md
sf-create-prd → _prd.md
sf-create-techspec → _techspec.md
sf-create-tasks → task_NN.md
Use sf-create-prd when the task lacks product context. After the approved PRD, choose sf-write-spec orsf-tdd-write-spec. They write the spec into that same _prd.md and print the path.
Use sf-refinement to turn a prompt or tracker ticket into stories and technical specs at.spec-finder/refinements/<task_slug>.md. It does not write a runner packet or a one-shot spec.
Keep using idea, PRD, TechSpec, and tasks when you need discovery, a product-only PRD, a design-only TechSpec, or task regeneration.
| Skill | Artifact |
|---|---|
sf-write-spec | .spec-finder/tasks/<slug>/_spec.md. References an approved _prd.md, leaves it unchanged, and prints both paths. |
sf-tdd-write-spec | The same separate _spec.md, with confirmed public-seam red-green slices. References an approved PRD and prints both paths. |
sf-refinement | .spec-finder/refinements/<task_slug>.md from a prompt or issue ticket. Does not write.spec-finder/tasks/ or.spec-finder/specs/ |
sf-idea-factory | .spec-finder/tasks/<slug>/_idea.md |
sf-create-prd | _prd.md |
humanizer | Plain human-readable prose. sf-create-prd runs it on the saved PRD. |
sf-create-techspec | _techspec.md |
sf-create-tasks | _tasks.md and task_NN.md |
sf-memory | memory/MEMORY.md and memory/task_NN.md |
sf-execute-task | bounded implementation and verification |
sf-task-report | reports/task_NN.md |
sf-batch-tasks | dependency-safe manual range execution |
sf-tdd-plan | additive ## TDD Plan on an existing task |
sf-tdd-execute | red → green vertical slices for opted-in behavioral work |
sf-tdd-report | red+green evidence report, or a one-line not-applicable reason |
sf-tdd-batch | TDD-only range runner; stop on failure |
sf-archive-tasks | completed-packet archival and reports |
sf-review | packet-wide evidence review and explicit target-only local ship |
The four sf-tdd-* skills are optional. Use them when a task changes product behavior and you need a failing public-seam test first.spec-finder run stays on core skills until a separate opt-in design; invoking TDD skills is a manual choice.
After implementation and reporting, use sf-review for a packet-wide, read-only reconciliation:
/sf-review my-feature
/sf-review my-feature shipThe explicit ship phase reruns review and archives only the exact reviewed slug through the target-filteredsf-archive-tasks --slug my-feature workflow. It never writes task status or reports, moves an unrelated packet, pushes, opens or merges a PR, releases, or requests remote acceptance.
| Provider | Packet run | One-turn exec | Local skills |
|---|---|---|---|
| Claude | yes | uncertified | .claude/skills |
| Codex | yes | uncertified | .agents/skills |
| Cursor | yes | uncertified | .agents/skills |
| Grok Build | packet-only | uncertified | .agents/skills |
| Pi | packet-only | uncertified | .agents/skills |
spec-finder run my-feature
spec-finder run my-feature --no-ui
spec-finder loop my-featureInstall, setup, and skill destinations are onGetting started. Full flags and provider notes stay in the repository README.