Raw capture โ€” raw/sddw.md


url: https://github.com/sermakarevich/sddw date_fetched: 2026-07-05 backfilled: true


Spec-Driven Development Workflow for Claude Code.

The standard way to use AI coding agents is short, interactive prompts: describe what you want, get code, fix it, repeat. This works for small tasks but breaks down for anything non-trivial โ€” context gets lost between sessions, architectural decisions live only in chat history, and there's no artifact a teammate can review before code is written.

sddw inverts this. Instead of prompting for code, you collaborate with the agent to write specifications โ€” requirements, architecture, interface contracts, task breakdowns. The specs become the primary artifact: reviewable by peers, version-controlled, persistent across sessions. Code generation is then a mechanical step guided by approved specs, not a creative leap from a vague prompt.

Detailed specifications reduce AI code errors by up to 50% (Piskala, 2026), security defects by 73% (Marri, 2026), and architecture-misaligned PRs by 60% (GitHub Spec Kit). sddw is designed for medium to large projects that don't fit into a single context window. By splitting work into discrete steps โ€” requirements, codebase analysis, design, per-task implementation โ€” each step operates within a focused context where models are more accurate, rather than a sprawling conversation where critical details get lost.

git clone https://github.com/sermakarevich/sddw.git ~/.claude/sddw
cd ~/.claude/sddw && bash bin/install.sh

For development (symlink from local repo):

git clone https://github.com/sermakarevich/sddw.git
cd sddw && bash bin/install.sh --local

Every step supports two interaction modes:

Mode Flag Behavior
Interactive (default) Full guided dialog โ€” one question at a time, every section confirmed
Auto --auto Fully autonomous โ€” no questions, best-judgment decisions

Vibecoding โ€” --auto. The agent decides everything.

Agentic engineering โ€” default mode. You stay in control: review proposals, add missing context, ask questions, approve each spec section before it's written, and validate the output spec.

/sddw:requirements <feature-name> [--auto]

Collaboratively produce a requirements spec through guided dialog:

Output: .sddw/<feature-name>/requirements.md Sections: Purpose, User Stories, Functional Requirements, Acceptance Criteria, Constraints

/sddw:code-analysis <feature-name> [--auto]

Analyse the existing codebase to ground design decisions in reality:

Output: .sddw/code-analysis.md (shared across features) Sections: Relevant Patterns, Key Interfaces, Existing Flows, Conventions

Skip this step for greenfield projects with no existing codebase.

/sddw:design <feature-name> [--auto]

Produce a cross-cutting design.md through guided dialog:

Output: .sddw/<feature-name>/design/design.md

/sddw:taskify <feature-name> [--auto]

Break the feature into hybrid task files based on requirements and design:

Output:

.sddw/<feature-name>/
โ””โ”€โ”€ design/
    โ”œโ”€โ”€ design.md
    โ””โ”€โ”€ tasks/
        โ”œโ”€โ”€ task-1-<slug>.md  # hybrid: files, criteria, references design.md
        โ”œโ”€โ”€ task-2-<slug>.md
        โ””โ”€โ”€ ...

Each task file includes task-specific details inline and references design.md for architecture, models, and shared contracts, so the implementation agent has full context without duplication.

/sddw:design_and_taskify <feature-name> [--auto]

Runs the design and taskify steps in one shot. Use this for small features where iterating on architecture independently is not needed.

/sddw:implement <feature-name> --task <N> [--auto]

Execute a single task from the design spec:

Each task file is a hybrid โ€” the agent loads it alongside design.md so it has full context.

After each task, a completion report (task-N-<slug>.done.md) is written to implement/tasks/, documenting what was done, deviations, and difficulties.

/sddw:verify <feature-name> [--auto]

Verify the implementation against requirements after all tasks are complete:

Output:

.sddw/<feature-name>/
โ””โ”€โ”€ verify/
    โ””โ”€โ”€ report.md    # FR-by-FR pass/fail, test results, deviations, warnings

If issues are found, remediation tasks are created as additional task files in design/tasks/ (continuing the numbering). These can be executed with /sddw:implement and then verified again โ€” the loop repeats until all checks pass.

/sddw:self-improve <feature-name> [--auto]

Analyse the completed feature's execution across all workflow steps. Identify what went wrong (or could be better) and propose concrete improvements to the workflow itself:

Output:

.sddw/<feature-name>/
โ””โ”€โ”€ self-improve/
    โ””โ”€โ”€ report.md    # findings, proposals, applied/skipped changes

Each improvement targets a specific workflow component (instruction, questionnaire, or spec) with a concrete diff. The workflow evolves with every feature โ€” gaps found during one feature prevent the same issues in the next.

/sddw:chat <feature-name> [--auto]

Fast-track interaction with a feature that already has artifacts. Skips the full questionnaire ceremony โ€” just load context and talk.

Chat assumes you know what you want and only pauses for scope-affecting changes or ambiguous requests.

If a request is too large (new task files, new architecture, >3 files), chat redirects you to the full workflow.

/sddw:help [list | status <feature-name>]

Each step is assembled from four modular components:

Component Purpose Folder
Command Thin entry point with frontmatter + @references commands/
Instructions Process rules โ€” what to do, in what order instructions/
Questionnaire Dialog guidance โ€” how to interact with the user questionnaires/
Specs Output format templates โ€” what to produce specs/

A command wires these together:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ commands/<step>.md                                       โ”‚
โ”‚                                                          โ”‚
โ”‚  @instructions/<step>.md        โ† process rules          โ”‚
โ”‚  @questionnaires/<step>.md      โ† dialog flow            โ”‚
โ”‚  @specs/<step>.md               โ† output format          โ”‚
โ”‚                                                          โ”‚
โ”‚  reads:  .sddw/<feature>/<previous_step>.md  โ† input     โ”‚
โ”‚  writes: .sddw/<feature>/<current_step>.md   โ† output    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Each component lives in its own folder so they can be reused, tested, and evolved independently. The command file itself stays small โ€” just references and glue.

Every step follows a three-phase dialog: Discover โ†’ Research & Propose โ†’ Confirm & Generate. One question at a time, structured options, every spec block confirmed by the user before generation.