spec-driven-dev
npx skills add https://github.com/mauromedda/agent-toolkit --skill spec-driven-dev
Skill 文档
ABOUTME: Spec-driven development orchestrator with subcommand interface
ABOUTME: Manages lifecycle: /spec.plan -> /spec.refine -> /spec.clarify -> /spec.tasks -> /spec.run
Spec-Driven Development
Iterative feature development framework ensuring zero ambiguity before execution.
Quick Reference
| Command | Purpose | Input |
|---|---|---|
/spec.plan <intent> |
Create spec from “I want to build/add X” | Feature description |
/spec.refine [section] |
Improve spec with research/Gemini | Optional section focus |
/spec.clarify <response> |
Answer clarification questions | Your response |
/spec.tasks |
Break spec into executable tasks | None (uses active spec) |
/spec.run [task#] |
Execute tasks with TDD | Optional task number |
Core Principle
Iterate until clarity: No task execution begins until ALL questions are resolved and the spec is unambiguous. Claude must be able to execute without interruptions.
Phase 1: /spec.plan – Create Specification
Trigger: /spec.plan <description> or “I want to build/add X”
Workflow
-
Check
specs/folder:- If missing: Create
specs/andspecs/README.md - If exists: Read
specs/README.mdfor project overrides
- If missing: Create
-
Detect project context:
- Scan repo for language indicators (go.mod, pyproject.toml, package.json, etc.)
- Note primary language(s) for later skill invocation
- Check
specs/README.mdfor language overrides
-
Generate spec file:
- Filename:
specs/{feature-slug}.md(kebab-case) - Use template from
references/templates.md
- Filename:
-
Fill initial sections:
- Parse user intent into Objective
- List initial requirements (functional/non-functional)
- Mark status as
DRAFT
-
Generate clarifying questions:
- Identify ambiguities, edge cases, unknowns
- List as numbered questions in “Open Questions” section
- STOP and present questions to user
Output
Created: specs/feature-name.md (DRAFT)
Questions requiring clarification:
1. [Question about scope]
2. [Question about behavior]
3. [Question about constraints]
Use `/spec.clarify` to answer, or `/spec.refine` to research solutions.
Phase 2: /spec.refine – Research & Improve
Trigger: /spec.refine [section] (e.g., /spec.refine solution, /spec.refine requirements)
Workflow
-
Load active spec: Find most recent DRAFT spec in
specs/ -
Check project conventions:
- Read
specs/README.mdfor behavior overrides - Load relevant language skill (auto-detected or overridden)
- Load
design-patternsskill for architectural guidance
- Read
-
Research phase:
- If user requests Gemini:
gemini -m gemini-3-pro-preview "Analyze spec..." . - Search codebase for similar patterns
- Check skill references for best practices
- If user requests Gemini:
-
Update spec:
- Fill “Technical Strategy” with concrete approach
- Add architecture decisions with rationale
- Update requirements based on findings
-
Re-evaluate clarity:
- Are there new questions?
- Are existing questions resolved?
- If questions remain: STOP and present them
Gemini Integration (User-Invoked)
# For design validation
/spec.refine --gemini "Review architecture approach"
# For alternative exploration
/spec.refine --gemini "What are alternatives to this solution?"
Phase 3: /spec.clarify – Answer Questions
Trigger: /spec.clarify <response> or /spec.clarify Q1: answer, Q2: answer
Workflow
-
Load active spec with open questions
-
Parse user response:
- Match answers to numbered questions
- Accept free-form responses for single questions
-
Update spec:
- Move answered questions to relevant sections
- Add decisions/constraints to Requirements or Strategy
- Remove resolved questions from “Open Questions”
-
Check for new questions:
- Does the answer introduce new ambiguities?
- If questions remain: present them
- If no questions: announce spec is ready for
/spec.tasks
Example
User: /spec.clarify Q1: We need OAuth2 with Google provider only. Q2: No, admin can also delete.
Updated specs/auth-system.md:
- Added OAuth2/Google to Technical Strategy
- Updated permissions: admin can delete
Remaining questions: None
Spec is ready. Use `/spec.tasks` to create task breakdown.
Phase 4: /spec.tasks – Task Breakdown
Trigger: /spec.tasks
Prerequisites
- Active spec must have status
DRAFTorAPPROVED - “Open Questions” section must be empty
- If questions exist: STOP and redirect to
/spec.clarify
Workflow
-
Validate spec readiness:
If open_questions > 0: ERROR: Spec has unresolved questions. Use /spec.clarify first. -
Mark spec as APPROVED
-
Generate task file:
specs/{feature-slug}.tasks.md -
Break down by component:
- Group tasks by logical component/module
- Each task = one logical unit (not TDD-granular)
- TDD practice enforced during
/run, not here
-
Add task metadata:
- Link back to spec
- Context summary
- Acceptance criteria per task
-
Final review:
- Present task list to user
- Ask: “Any tasks missing or need splitting?”
Task Granularity
Tasks should be high-level logical units:
- “Implement authentication middleware”
- “Create user model and repository”
- “Add API endpoints for user CRUD”
TDD cycle (Red-Green-Refactor) happens WITHIN each task during /spec.run.
Phase 5: /spec.run – Execute Tasks
Trigger: /spec.run [task#] (e.g., /spec.run, /spec.run 3)
Prerequisites
- Task file must exist:
specs/{feature}.tasks.md - If no task file: STOP and redirect to
/spec.tasks
Workflow
-
Load task file and find next unchecked task (or specified task#)
-
Load context:
- Read linked spec for requirements
- Read
specs/README.mdfor project overrides - Invoke appropriate language skill
-
Execute with TDD (per CLAUDE.md rules):
- RED: Write failing test first
- GREEN: Minimal code to pass
- REFACTOR: Clean up
- COMMIT: After each phase
-
Update task file:
- Mark task as
[x]complete - Add notes if needed
- Mark task as
-
Continue or pause:
- If more tasks: Ask “Continue to next task?”
- If blocked: Document blocker, ask for input
- If all done: Mark spec as
COMPLETED
Execution Rules
- No interruptions: If questions arise during execution, the spec was not ready
- Invoke skills: Auto-invoke
/python,/golang, etc. based on file type - Respect hooks: Pre-commit hooks must pass before marking complete
- Gemini review: Follow CLAUDE.md thresholds (>100 lines or >3 files)
Project Configuration: specs/README.md
Override default behaviors per-project:
# Spec Configuration
## Language Override
Primary: golang
Secondary: python
## Conventions
- All specs require security section
- Tasks must include rollback plan
- Use feature branches: feature/{spec-name}
## Templates
Use custom templates from: ./templates/
## Auto-invoke
- Always run /trivy before marking complete
- Require /gemini-review for all specs
State Management
Spec Status Flow
DRAFT -> APPROVED -> IN_PROGRESS -> COMPLETED
| |
v v
(questions?) (blocked?)
| |
v v
DRAFT IN_PROGRESS
File Structure
project/
âââ specs/
âââ README.md # Project overrides
âââ auth-system.md # Spec (APPROVED)
âââ auth-system.tasks.md # Task breakdown
âââ user-dashboard.md # Spec (DRAFT)
âââ ...
Cross-Skill Integration
| When | Invoke |
|---|---|
Writing .py files |
/python skill |
Writing .go files |
/golang skill |
Writing .sh files |
/bash skill |
Writing Makefile |
/make skill |
Writing .tf files |
/terraform skill |
| Architecture decisions | /design-patterns skill |
| User-requested review | gemini -m gemini-3-pro-preview ... |
Session Resume
On context compaction or session resume:
- Check
specs/for files with statusIN_PROGRESS - Check
.tasks.mdfiles for unchecked items - Report: “Found in-progress spec: X with Y tasks remaining”
- Ask: “Continue with
/spec.run?”
Error Handling
| Situation | Response |
|---|---|
/spec.tasks with open questions |
“Spec has N unresolved questions. Use /spec.clarify first.” |
/spec.run without task file |
“No task file found. Use /spec.tasks first.” |
/spec.clarify without active spec |
“No active spec. Use /spec.plan to create one.” |
Ambiguity during /spec.run |
“Execution blocked: [issue]. Spec needs refinement. Use /spec.refine.” |
Templates
See references/templates.md for:
- Spec file template
- Task file template
- README.md template