Help us improve
Share bugs, ideas, or general feedback.
From spec-driven-dev
Spec-driven development workflow. Use for exploring ideas, proposing changes, implementing specs, and archiving completed work. Triggers on "spec", "propose", "explore", "apply", "archive", "critique", or "specification".
npx claudepluginhub a3lem/my-claude-plugins --plugin spec-driven-devHow this skill is triggered — by the user, by Claude, or both
Slash command
/spec-driven-dev:spec-driven-developmentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
For terminology and concepts, see [docs/concepts.md](../../docs/concepts.md).
references/apply.mdreferences/archive.mdreferences/critique.mdreferences/design.mdreferences/explore.mdreferences/propose.mdreferences/spec.mdreferences/tasks.mdreferences/verification.mdtemplates/design.mdtemplates/notes/template.mdtemplates/proposal.mdtemplates/reference-spec.mdtemplates/spec-delta.mdtemplates/tasks.mdCreates, reviews, and manages specification documents for Spec-Driven Development. Supports the full spec lifecycle: discuss, create, review, approve, implement, verify, archive.
Writes structured specifications before coding. Use when requirements are ambiguous, starting a new project/feature, or changes touch multiple files.
Transforms ideas into structured specifications (requirements, design, tasks) before implementation. Use when building features, fixing bugs, refactoring, or designing systems.
Share bugs, ideas, or general feedback.
For terminology and concepts, see docs/concepts.md.
spectl CLIHow to run: python3 scripts/spectl.py.
Specs describe the system's behavior as a contract: what the system does (requirements) and how it behaves (scenarios). They live in specs/reference/, organized by capability. That's the source of truth.
When something needs to change, you create a change -- a folder under specs/changes/ with artifacts that capture the intent, the behavioral modifications, and optionally the technical approach and implementation plan.
The proposal (proposal.md) is always the entry point. It answers why this change exists and names the capabilities affected. From there, artifacts can develop in the order that makes sense:
deltas/*/spec.md) -- behavioral changes per capability (ADDED/MODIFIED/REMOVED/RENAMED requirements)design.md) -- technical approach, when the how isn't obvioustasks.md) -- implementation checklist, when the work has multiple stepsThese artifacts aren't just a planning exercise. They make the change reviewable without reading code: the proposal explains why, the deltas show what's changing in the system's behavioral contract, and the design captures architectural decisions.
When implementation is complete and verified, the change is archived: deltas merge into the reference specs, the change moves to changes/archive/, and the reference reflects the new reality.
Use it for: any code changes that reflect changed requirements or behavioral expectations.
Skip it for: simple bugfixes, routine refactors, dependency bumps, doc-only changes, exploratory spikes.
| File | Owner | Others May Edit |
|---|---|---|
proposal.md | Propose phase | With user confirmation |
deltas/*/spec.md | Propose phase | With user confirmation |
design.md | Propose phase | With user confirmation |
tasks.md | Propose phase | Apply phase (checkboxes only) |
notes/* | Any phase | Freely |
Changing a spec may invalidate the design. Always warn the user.
specs/ is for specs only. No code files. deltas/ contains only spec.md files. All code goes elsewhere.[CLARIFICATION NEEDED] and resolve them before proceeding.Don't:
Each command maps to a phase. Only read the reference doc for your current phase.
| Command | What it does | Reference |
|---|---|---|
/explore [topic] | Investigate before committing to a proposal | references/explore.md |
/propose [description] | Create a change and its artifacts | references/propose.md |
/refine [instruction] | Update an existing artifact | Route to artifact reference below |
/apply [slug] | Implement and verify a change | references/apply.md |
/archive [slug] | Merge deltas into reference, archive the change | references/archive.md |
When writing or refining an artifact, read its reference and use its template:
| Artifact | Reference | Template |
|---|---|---|
proposal.md | references/propose.md | templates/proposal.md |
deltas/*/spec.md | references/spec.md | templates/spec-delta.md |
design.md | references/design.md | templates/design.md |
tasks.md | references/tasks.md | templates/tasks.md |
/refine determines which artifact to update from the instruction:
proposal.mdspec.md in deltas/design.mdtasks.mdIf unclear, ask the user.
specs/
├── reference/ # Source of truth
│ ├── authentication/
│ │ └── spec.md
│ └── billing/
│ └── spec.md
└── changes/
├── archive/ # Completed changes
│ └── 2026-03-01-initial-auth/
└── add-oauth/ # Active change
├── proposal.md # Why (intent, scope, capabilities)
├── deltas/ # What (per-capability behavioral changes)
│ ├── session-management/
│ │ └── spec.md
│ └── user-auth/
│ └── spec.md
├── design.md # How (optional)
├── tasks.md # Steps (optional)
└── notes/ # Learnings (optional)
A delta at deltas/user-auth/spec.md targets reference/user-auth/spec.md. Changes are identified by slug -- look for matching slugs in specs/changes/*/.
Monorepo: Each sub-project has its own specs/ directory. spectl discovers them with -r (recursive). Use --dir to target a specific one.
Interactive (default): Ask the user at each phase for input and confirmation (use AskUserQuestion tool).
Autonomous (when user requests it, e.g. "work on this until done"):
intra-spec after proposal, intra-spec + spec-code after specs + design).all) before marking complete.inter-spec) → move to archive.Only pause for genuine ambiguities or when the critic can't resolve after 5 rounds.
All phases can be revisited. /refine updates any existing artifact.
notes/ and proceedThe spec-critic agent (sonnet) provides adversarial review. See references/critique.md for checklists.
| Mode | Checks |
|---|---|
intra-spec | Coherence within the spec |
spec-code | Alignment with the codebase |
inter-spec | Consistency across specs |
all | All three |
Verdicts: approved | approved-with-reservations | needs-work | blocked
Invocation: "Consult with the spec-critic agent to review [spec path] (critique mode: [mode])"
When needs-work or blocked: Address concerns, resume the agent, repeat. Escalate to user after 5 rounds.
| Agent | Role | Definition |
|---|---|---|
| spec-critic (sonnet) | Adversarial review of specs and implementation | agents/spec-critic.md |
| spec-sync (sonnet) | Merges deltas into reference specs during archive | agents/spec-sync.md |