From sdd
Transforms raw feature ideas into reviewed spec.md files through Socratic interviews, depth-gated analysis, and clean-context review. Useful for drafting product specs from one-line prompts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd:specifyopusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turns a one-line idea into a reviewed `spec.md`: a lightweight interview captures and stress-tests the idea, then the skill drafts a product spec (context → goals → user stories → acceptance criteria → NFRs → KPIs), validates it Socratically, and runs a clean-context critic before writing. Less typing, more reviewing. This file is the spine; detail lives in `references/`.
Turns a one-line idea into a reviewed spec.md: a lightweight interview captures and stress-tests the idea, then the skill drafts a product spec (context → goals → user stories → acceptance criteria → NFRs → KPIs), validates it Socratically, and runs a clean-context critic before writing. Less typing, more reviewing. This file is the spine; detail lives in references/.
The Socratic machine, the critic, and the size matrix are shared — this skill keeps only its deltas:
→ ../_shared/socratic-loop.md · ../_shared/critic.md · ../_shared/size-matrix.md · ../_shared/ask-style.md
Depth governs question volume + autonomy (and which ideation analyses run) → ../_shared/interview-depth.md.
Document prose follows the project's artifact_language setting — section headings, frontmatter and machine tokens stay English → ../_shared/artifact-language.md.
PM + Tech Lead (co-authors). PM drives goals / non-goals / KPIs; Tech Lead drives context patterns and the acceptance-criteria coverage.
<slug> — kebab-case feature slug.CONTEXT.md — the two-level glossary: read both repo-root (project-wide) and docs/features/<slug>/CONTEXT.md (feature-scoped); per-feature wins on conflict → ../glossary/SKILL.md. If present, its roles/terms are canonical and override anything that contradicts them.docs/features/<slug>/.size — depth hint (MVP vs Full per the size matrix). Read if present; established here if absent (step 1 classifies + writes it), so downstream stages never silently default to M. classify-size re-classifies when scope changes.CONTEXT.md exists (read both repo-root and docs/features/<slug>/ — per-feature wins on conflict), load its ## Glossary as session state (canonical roles + terms). If .size exists, read it to size the spec's depth; if it's absent, establish it now — run the classify-size protocol inline (the canon: ../classify-size/SKILL.md + the mapping in ../_shared/size-matrix.md); the four signals fold into one bundled AskUserQuestion here (at easy depth, take the matrix default and record it in the assumptions ledger), and write docs/features/<slug>/.size + .route (the route defaults from the size — XS/S→quick, M→standard, L/XL→full — and is confirmed in the same bundled question, per the Routes table in ../_shared/size-matrix.md) — so every later stage reads a real size instead of silently defaulting to M (the gap that otherwise surfaces only at plan-tests). classify-size stays the utility to re-classify when scope changes. If docs/architecture-map.md exists (from survey), read it so the spec is architecture-aware — it informs §1 Context, §2 Constraints, and §3 Non-goals (what the existing system already does / can't do). Absent → suggest running survey first, but proceed (the spec is product-level and can be captured without it). Do not leak the map's tech into §5 AC — AC stay business-observable; the map shapes constraints, not acceptance criteria. Then set the interview depth (the opening question): if .claude/sdd.local.md is absent, auto-create it with the documented default frontmatter (every key + its allowed values explained inline) and patch .gitignore → ../implement/references/settings.md; then read interview_depth from it (else default medium), and — unless a --depth=easy|medium|hard arg was passed (which skips the question) — ask ONE depth-selection AskUserQuestion phrased per ../_shared/ask-style.md, with the saved/medium value as the «(Recommended)» first option, overridable per run. The chosen level governs the step-2 deep-dive volume, the step-3 ideation suite, and the step-7 Socratic volume → ../_shared/interview-depth.md. (Completeness — §5's 5-type AC floor — is unaffected by depth.)AskUserQuestion for the raw idea in 1–3 sentences (persist verbatim as the baseline). Then a Socratic deep-dive across problem clarity / success criteria / constraints / strategic fit, delivered in batches of 2–3 — its volume scales with the depth dial (easy: only the few un-inferable ones, then a stated-assumptions ledger; medium: 3–5; hard: walk every angle, foreground each trade-off). Phrase every question per ../_shared/ask-style.md../references/ideation.md: easy → skip the suite (deep-dive only; the chosen approach is recorded as a ledger assumption); medium → researcher (sdd:researcher, competitive/web) + devils-advocate (sdd:devils-advocate, failure-mode mode); hard → full suite researcher + strategist (sdd:strategist, 3 approaches) + analyst (sdd:analyst, multi-perspective) + devils-advocate, then the Claude-proposed RICE/feasibility confirm. Analyses stay product-level (no tech names — that's design); the confirmed recommendation becomes §1 ¶3. Dispatch with subagent_type: "sdd:<name>" per ../_shared/agent-roster.md (general-purpose fallback); researcher needs web — accept its RESEARCH_LIMITED output as a noted gap if web is unavailable.glossary <slug> for it immediately — compare it against CONTEXT.md and add/update the definition before continuing. By the time the spec is written, every §4 role and §5 domain term is already glossary-canonical; the glossary is never a deferred batch. (Plan-mode nuance: still decide add/update per term in-flow; if writes are blocked until the spec write-point, persist the reconciled terms together with the spec, but never skip the per-term compare.)AskUserQuestion): reference module code / project docs / MCP-Atlassian (Confluence/Jira) / knowledge-base / none. For each picked channel ask the specific path/query — no silent broad scans../templates/spec.md (its <!-- instruction --> comments are the per-section contract). Draft per ./references/draft-generation.md: per-section sources, the 5 AC coverage types (happy / error / authorization / domain invariant / cross-context), and the stack-agnostic forbidden-token rule for acceptance criteria../references/socratic.md: AC has a 5th option «Add another AC»; the §5 coverage gate enforces two floors after drops/OQ-migrations — (a) ≥1 AC of each of the 5 coverage types, and (b) ≥1 AC per retained §4 user story (regenerate/add a replacement if a type or a user story is left empty). Both are floors, not dials — enforced at every depth; only the question volume scales. The (b) floor closes the §4→§5 link so the downstream sequences use-case coverage + review trace can't be undermined by a user story that lost its only AC. Maintain the edits-log.critic agent — subagent_type: "sdd:critic" (carries model: opus + effort: high, clean-isolated context per ../_shared/agent-roster.md) — with the specify delta in ./references/critic.md (over ../_shared/critic.md) — inline the draft + edits-log, it Reads CONTEXT.md + the idea source itself. Resolve findings via AskUserQuestion (Accept revert / Accept amendment / Override-with-rationale → §1 ¶4 bullet). Run the forbidden-token regex scan as the F6 backstop. On pass, write docs/features/<slug>/spec.md (glossary already reconciled in-flow per step 4) and propose commit spec: <slug>. Register on the roadmap: add/promote this feature to Now in docs/roadmap.md (via roadmap) — an outcome one-liner + a link to this feature folder + status; if it existed as a Next candidate, move it up. (If there's no roadmap yet, skip — it's optional.) Then emit the stage-handoff block per ../_shared/handoff.md — What I did + Review (spec.md, .size, .route) + Run next — resolve the next stage per .route (the Routes table in ../_shared/size-matrix.md; route-resolved variant in handoff.md): forward /sdd:clarify <slug>; clarify's N/A condition = zero §8 open questions and no AC flagged ambiguous, skip target /sdd:design <slug> (on quick — auto-skip with the reason + inverted ↳ or; on standard — offer the ↳ or; on full — no skip line). (If critic is unavailable, fall back to a general-purpose Agent with the same delta.)docs/features/<slug>/spec.md written; all sections filled (or <!-- N/A: reason -->).docs/features/<slug>/.size and .route exist after this stage (read if present, else classified + written here) — the backbone no longer reaches design…plan-tests on a silent M default, and every handoff resolves per a real route.module.error_name strings / JSON fragments / SQL constructs).CONTEXT.md glossary exactly (no invented user/admin).../_shared/self-check.md); its result is reported in the handoff.AskUserQuestion.design.api and decide-adr.easy depth — over-production. The depth dial gates it (easy skips entirely; medium runs research + devil's-advocate; hard runs all). Feature size only trims volume within a level — it's no longer the gate.N/A — internal tool than fake research; accept the researcher agent's RESEARCH_LIMITED over fabricated rows../references/ideation.md — depth-gated ideation orchestration: which named subagent (researcher / strategist / analyst / devils-advocate) runs at which level, what each returns, how outputs feed the spec.../_shared/interview-depth.md — the easy/medium/hard dial set in step 1 (question volume, autonomy, which analyses run)../references/draft-generation.md — per-section sources, 5 AC coverage types, stack-agnostic forbidden tokens../references/socratic.md — specify's delta over the shared Socratic loop../references/critic.md — specify's delta over the shared critic (F6 = forbidden tokens)../templates/spec.md — output scaffold; inline comments are the per-section generation contract.npx claudepluginhub genkovich/sdd --plugin sddConverts vague feature ideas into written, agreed specifications through structured questioning across nine dimensions. Produces docs/specs/*.md with acceptance criteria for planning, scaffolding, and TDD tools.
Conducts focused interview to draft spec.md for upcoming tasks in SDD workflow. Covers goal, behaviors, acceptance criteria, edge cases, out-of-scope one branch at a time; writes to disk. Pauses to split multi-features.
Conversational design workshop that interviews the user one question at a time, explores 2-3 approaches with trade-offs, and presents the design section by section for approval before writing the spec. Useful for feature design, refactoring, or complex bugs.