| name | spec-dev |
| description | Use when the user wants staged spec-driven development in a generic workflow, including a built-in interrogation phase before requirements, design, bug reports, task plans, and implementation gated by explicit confirmation between stages. |
Spec-Driven Development
Use this skill when a user wants to plan work through specs before implementation.
What this skill does
This skill supports a staged spec-driven workflow in a generic, tool-agnostic form:
- Interrogate unclear feature or bug requests before writing any spec artifact
- Feature flow:
requirements.md -> design.md -> tasks.md -> implementation
- Bug flow:
bug-report.md -> tasks.md -> implementation
- After each file, stop and ask for confirmation before continuing
- If the user says "fast forward" or "do all stages", generate all remaining spec files, then stop before implementation
Interrogate
Before creating any spec file, interview the user until the request is unambiguous.
Cover the points most likely to change the spec:
- desired outcome
- current behavior or pain point
- who is affected
- constraints and non-goals
- edge cases and failure modes
- acceptance criteria
- rollout, migration, or compatibility concerns
- project-specific terminology the user wants preserved
Ask exactly one question at a time. Use open-ended questions by default; use multiple-choice only when it will materially reduce ambiguity. Restate the current understanding after each answer and call out any remaining unknowns.
Non-negotiable rule
Before creating any spec file for a new stage, ask for confirmation and wait for the user's answer.
Valid confirmations include yes, proceed, continue, ready, or fast forward.
Base specs directory
Resolve the base specs directory before reading or writing any spec artifact:
- Check for a project file named
.specs-folder at the repository root.
- If it exists, read its contents and treat that path as the base specs directory.
- If it does not exist, use
specs/ as the base specs directory.
The .specs-folder value takes precedence over the default. Treat it as a project-relative path unless the file clearly specifies an absolute path.
Workspace layout
Store active specs in:
[base-specs-dir]/in-progress/[slug]/requirements.md
[base-specs-dir]/in-progress/[slug]/design.md
[base-specs-dir]/in-progress/[slug]/tasks.md
[base-specs-dir]/in-progress/[slug]/bug-report.md
When implementation is complete, ask:
Ready to move to completed folder?
Only after confirmation, move the spec folder to:
[base-specs-dir]/complete/[slug]/
Completed specs are historical records of the work as it was planned and delivered. Do not treat them as living documents, and do not update them to reflect later changes unless the user explicitly asks to revise the archived spec itself.
Slug format
Generate slugs as:
YYYYMMDDHHmm-short-feature-name
Example:
Workflow
Features
- Resolve the base specs directory.
- Load
[base-specs-dir]/glossary.md if it exists. If it does not exist, continue without it and create/update it only when needed.
- Interrogate the request until the scope, constraints, and success criteria are clear.
- Confirm the summary with the user before writing any spec artifact.
- Create
requirements.md using references/requirements.md.
- Stop and ask:
Ready for Design?
- Create
design.md using references/design.md.
- Stop and ask:
Ready for Tasks?
- Create
tasks.md using references/tasks.md.
- Stop and ask:
Ready to implement?
- Implement the work and update
tasks.md as tasks are completed.
Bugs
- Resolve the base specs directory.
- Load
[base-specs-dir]/glossary.md if it exists and use consistent project terminology.
- Interrogate the bug until reproduction, impact, and suspected boundaries are clear.
- Confirm the summary with the user before writing any spec artifact.
- Create
bug-report.md using references/bug-report.md.
- Stop and ask:
Ready for Tasks?
- Create
tasks.md using references/tasks.md.
- Stop and ask:
Ready to implement?
- Implement the fix and update
tasks.md as tasks are completed.
Fast forward mode
If the user explicitly asks to "fast forward" or "do all stages":
- Run interrogation first.
- Generate all remaining spec documents in sequence once the summary is confirmed.
- Do not pause between spec documents.
- Stop before implementation.
- Ask for implementation confirmation.
Glossary handling
When project-specific terms appear, use references/glossary.md to maintain [base-specs-dir]/glossary.md.
Always:
- Check whether a term already exists before adding it
- Keep entries alphabetized
- Keep related-term links bidirectional when possible
- Prefer concrete examples from the actual project
Implementation behavior
During implementation:
- Treat
tasks.md as the canonical execution checklist
- Mark completed items as
[x] immediately
- Update completion summary as progress changes
- Preserve the staged intent of the spec unless the user explicitly changes scope
- Once a spec has been moved to
[base-specs-dir]/complete/[slug]/, leave it archived unless the user explicitly requests a revision to that completed spec
Writing guidance
- Be specific and testable
- Separate requirements from implementation details
- Call out assumptions and out-of-scope items
- Keep designs shallow at interfaces and deeper on responsibilities
- Include error states and verification paths
References