name: spec-driven-development description: Spec-Driven Development (SDD) workflow and state management. Use when guiding or executing SDD flows; selecting lanes (full/vibe/bug), managing artifacts, running task progression commands, and keeping change state current through ae sdd CLI.
Spec-Driven Development
Use this skill as the source of truth for running SDD with ae sdd commands. Load it before proposal, bug, or vibe work so change-set resolution and command flow are consistent.
Core Rules
- Use CLI commands for state progression whenever possible.
- Never advance phases automatically from any workflow command.
- Phase advancement is user-driven via
ae-sdd-nextonly. - If the user approves work, suggest
ae-sdd-nextinstead of running phase progression commands. - Do not use custom init scaffolding; initialize with
ae sdd init. - Keep one task
in_progressat a time in full lane. - Keep
notesandpendingcurrent so work can resume in a new chat.
Lane Selection
- full: New capabilities, non-trivial behavior changes, architecture work.
- vibe: Exploration and prototyping that should still be tracked.
- bug: Defect fixes against intended or specified behavior.
If a bug request is actually a behavior change, switch to full.
Command Quick Start
- Resolve active change set (or create one):
ae sdd init <name> --lane <full|vibe|bug>
- Check status before doing work:
ae sdd status [name]
- Move to the right phase only through
ae-sdd-next:
ae-sdd-next [name]
Full Command Reference
Change Set and Phase Commands
| Command | Purpose |
|---|---|
| `ae sdd init |
vibe |
ae sdd status [name] |
Show current lane, phase, tasks, notes, and pending |
ae sdd config init |
Initialize .ae-config.json for canonical spec root |
ae-sdd-next [name] |
Verify current-phase artifacts, then complete and advance |
ae sdd phase complete [--next] [name] |
Underlying CLI transition used by ae-sdd-next |
ae sdd phase set <phase> [name] |
Manual override for explicit user-directed corrections |
ae sdd phase next [name] |
Underlying CLI step used after completion |
Task Commands (Full Lane)
| Command | Purpose |
|---|---|
ae sdd task list [name] |
Show ordered task list |
ae sdd task current [name] |
Show current in-progress task |
ae sdd task next [name] |
Show next pending task |
ae sdd task start [name] |
Start next pending task (or named task when supported) |
ae sdd task complete [name] |
Complete current in-progress task |
ae sdd task complete --next [name] |
Complete current task and immediately start next |
Notes and Pending Commands
| Command | Purpose |
|---|---|
ae sdd notes set "content" [name] |
Update resume context and decisions |
ae sdd pending add "item" [name] |
Track unresolved blockers |
ae sdd pending clear <index> [name] |
Remove resolved blocker |
Phase Flows
Full lane:
proposal -> specs -> discovery -> tasks -> plan -> implement -> reconcile -> finish
Vibe lane:
context -> plan -> implement -> [reconcile -> finish]
Bug lane:
triage -> plan -> implement -> [reconcile -> finish]
For vibe and bug lanes, reconcile and finish are optional unless specs must be updated.
Implement-Phase Rules (Full Lane)
- Start implementation tasks with
ae sdd task start. - Keep task order in
tasks.toml; order is execution priority. - Complete work using
ae sdd task completeorae sdd task complete --next. ae sdd phase nextfromimplementis guarded:- blocked if any task is currently
in_progress - loops back to
planwhen tasks remain incomplete - advances beyond
implementonly when all tasks are complete
- blocked if any task is currently
Phase Transition Guardrails
- Never auto-transition phases inside
ae-sdd-proposal,ae-sdd-specs,ae-sdd-tasks,ae-sdd-plan,ae-sdd-implement,ae-sdd-reconcile,ae-sdd-vibe,ae-sdd-bug, or other workflow commands. - Only
ae-sdd-nextperforms phase progression during normal workflow. ae-sdd-nextmust verify phase artifacts before runningae sdd phase complete --next.- If artifacts are missing, stop and instruct the user how to produce them.
ae sdd phase set <phase>is reserved for explicit user-directed corrections.
Artifact Expectations
changes/<name>/state.toml: lane, phase, notes, pendingchanges/<name>/tasks.toml: ordered tasks and status (full lane)changes/<name>/proposal.md: proposal (full lane)changes/<name>/context.md: exploratory context (vibe/bug as needed)changes/<name>/specs/**/*.md: specschanges/<name>/plans/*.md: implementation plans
Session Playbook
At the start of any SDD command session:
- Run
ae sdd status [name]. - Confirm lane and phase.
- For full lane, inspect tasks with
ae sdd task listandae sdd task current. - Execute the phase-appropriate command.
- Update notes and pending items before ending session.
Quality Gates
- Use one active change set per thread of work.
- Do not manually invent state structure in
state.toml. - Keep pending list strictly unresolved items.
- Keep notes concise and resume-oriented.
- In full lane, do not leave multiple tasks
in_progress.