Turns vague product ideas into a spec → plan → tasks pipeline with TDD ordering. Prevents coding without prior specification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dominicode-sdd-creator:dominicode-sdd-creatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill turns a vague product idea into a Spec → Plan → Tasks pipeline that drives implementation through TDD. Code is the **last** thing that happens, not the first.
This skill turns a vague product idea into a Spec → Plan → Tasks pipeline that drives implementation through TDD. Code is the last thing that happens, not the first.
SDD adaptation by Bezael Pérez · Dominicode.
You write the spec → the spec drives the plan → the plan drives the tests → the tests drive the implementation.
Trigger this skill at the start of any non-trivial coding work, even if the user did not say the word "spec". Signals:
Do not trigger for:
specs/<name>/spec.md already exists (read it instead)Look at the conversation so far and classify what the user has given you:
| Level | Signal | Action |
|---|---|---|
| HIGH | Detailed PRD, ticket, doc, or 3+ paragraphs of context | Produce a full draft of the 6 sections + list "Open questions" at the end |
| MEDIUM | 1–2 sentences with clear goal but missing detail | Produce a draft, mark unknowns with [NEEDS CONFIRMATION: ...] inline |
| LOW | Vague request ("quiero hacer una app de X") | Interview the user one section at a time — do NOT dump all 6 questions at once |
Tell the user which mode you detected and why, in one sentence, before proceeding.
Ask for or infer a short kebab-case name (e.g. invoice-generator, user-auth). All artifacts go under specs/<feature-slug>/.
spec.md (the 6 sections)Use the template at templates/spec.md. Fill all 6 sections in order. Strict rules:
Usuario [rol]: acción 1, acción 2, acción 3.El usuario puede ... or El sistema permite .... Organize by module. This is non-negotiable — it forces thinking from behavior, not from code.A decidir con el agente and propose 2–3 reasonable stacks with trade-offs. Don't invent a stack silently.After writing, stop and ask the user to confirm. Do not move to Step 3 without explicit go-ahead.
plan.md (technical decisions)Use the template at templates/plan.md. Translate the spec into technical decisions:
Again, stop and confirm before Step 3.5.
Without a working test runner there is no TDD. Before writing tasks.md, verify that the project has a test runner — or that installing one is the first task.
Inspect the project root (or ask the user if you have no filesystem access):
package.json → Node, pyproject.toml/requirements.txt → Python, Cargo.toml → Rust, go.mod → Go, Gemfile → Ruby, pom.xml/build.gradle → Java/Kotlin, composer.json → PHP, pubspec.yaml → Dart, *.csproj → .NET.tests/, __tests__/, *.test.*, *_test.go, spec/, etc).cargo test and go test are built-in). Confirm with the user. Setup tasks go in Phase 0 of tasks.md.plan.md § "Stack final → CI / Tests". If it's not, go back and close it before continuing.spec.md + plan.md only, skip tasks.md. Do not silently switch to non-TDD tasks.State the result of the detection to the user in one sentence before proceeding to Step 4 ("Detected pytest in pyproject.toml, using it" / "No runner found — proposing Vitest, please confirm").
See references/test-runner-detection.md for the full matrix per ecosystem, defaults with rationale, and the smoke-test pattern.
tasks.md (TDD-ordered task list)Use the template at templates/tasks.md. This is where SDD meets TDD. For every feature in Section 3 of the spec, generate tasks in this order:
Each task is a checkbox. Each task has:
See references/tdd-workflow.md for the full chaining detail and naming conventions.
Tell the user:
specs/<feature-slug>/tasks.md and execute it — nothing elsespec.md first, don't paper over it in code.work/)The three SDD artifacts document decisions; execution deserves a plan too — but a disposable one. At the start of each implementation session (this one or a future agent run), before touching code:
specs/<feature-slug>/.work/implementation.md from templates/implementation.md: which tasks from tasks.md this session covers, files to touch in attack order, execution order, and the exact test command.specs/**/.work/ is in the project's .gitignore — add it if missing. This file is agent scratch, never committed: if persisted it goes stale and starts competing with plan.md as a source of truth.spec.md → plan.md → tasks.md first, then regenerate the ephemeral plan. This feeds the existing rule 4 of tasks.md, it does not replace it.The benefit: the plan survives context compaction within the session, and is cheap to regenerate in the next one because it derives from tasks.md.
Always produce exactly this layout under the project root:
specs/
└── <feature-slug>/
├── spec.md
├── plan.md
├── tasks.md
└── .work/
└── implementation.md ← gitignored — ephemeral, regenerated each session
If specs/<feature-slug>/ already exists, read it first and propose updates rather than overwriting.
tasks.md.work/ — the ephemeral implementation plan is agent scratch, not documentationspec.md first when implementation reveals a gap, then update plan.md and tasks.md, then code — a durable decision must never live only in .work/implementation.mdtemplates/spec.md — the 6-section spec template (fill in directly)templates/plan.md — technical plan templatetemplates/tasks.md — TDD task list templatetemplates/implementation.md — ephemeral implementation plan template (gitignored, per session)references/examples.md — a fully worked example (feature: invoice generator)references/tdd-workflow.md — TDD chaining details, naming conventions, common pitfallsreferences/test-runner-detection.md — how to verify if the project has a test runner, defaults per ecosystem, smoke-test patternSkill by Bezael Pérez · Dominicode — Build with AI: From Idea to Product with Claude and Specs.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
npx claudepluginhub bezael/sdd-creator