api
Use to derive the API contract for a feature — an OpenAPI 3.1 document at docs/features/{slug}/contracts/openapi.yaml plus a…
Use to turn a raw feature idea into a reviewed spec.md — a lightweight Socratic interview front (capture the idea, deep-dive the problem) merged with a full product spec (context, goals, user stories, acceptance criteria, NFRs, KPIs). Triggers on "specify {slug}", "spec for
$ npx -y skills add genkovich/sdd --skill specify --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/specifyContext preview
The summary Claude sees to decide when to auto-load this skill.
Use to turn a raw feature idea into a reviewed spec.md — a lightweight Socratic interview front (capture the idea, deep-dive the problem) merged with a full product spec (context, goals, user stories, acceptance criteria, NFRs, KPIs). Triggers on "specify {slug}", "spec for
name: specify
model: inherit
effort: high
agents: [critic, researcher, strategist, analyst, devils-advocate]
description: >
Use to turn a raw feature idea into a reviewed spec.md — a lightweight Socratic interview
front (capture the idea, deep-dive the problem) merged with a full product spec (context,
goals, user stories, acceptance criteria, NFRs, KPIs). Triggers on "specify {slug}",
"spec for {slug}", "write the spec", "capture this idea", "draft requirements for {slug}",
"/sdd:specify {slug}", "напиши специфікацію {slug}", "опиши вимоги", "зафіксуй ідею".
Opens by setting the interview-depth dial (easy/medium/hard), drafts from templates/spec.md,
validates each acceptance criterion Socratically, runs a clean-context critic, then writes
docs/features/{slug}/spec.md. The ideation analyses (competitive research, strategic approaches,
multi-perspective review, devil's-advocate) run as named subagents gated by the depth dial —
easy skips them, hard runs the full suite.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/socratic-loop.md) · [`../_shared/critic.md`](../_shared/critic.md) · [`../_shared/size-matrix.md`](../_shared/size-matrix.md) · [`../_shared/ask-style.md`](../_shared/ask-style.md)
Depth governs question volume + autonomy (and which ideation analyses run) → [`../_shared/interview-depth.md`](../_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`](../_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.
follow [`./references/brief-reuse.md`](./references/brief-reuse.md). A brief is not mandatory.
1. **Ensure the settings file (first thing, after this skill's own gate).** If `.claude/sdd.local.md` is absent, create it now from the canonical template — documented defaults + the self-documenting body — and patch `.gitignore`; if it exists, read it and never overwrite. The one procedure lives in [`../_shared/settings-file.md`](../_shared/settings-file.md). Creating is unconditional; **changing values is only ever offered by [`config`](../config/SKILL.md)**. Say one line: «`.claude/sdd.local.md` created with documented defaults — `/sdd:config` to tune it». **Then read context + set the interview depth.** If a `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`](../classify-size/SKILL.md) + the mapping in [`../_shared/size-matrix.md`](../_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`](../_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):** read `interview_depth` from the settings file ensured in the first sentence of this step (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`](../_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`](../_shared/interview-depth.md). (Completeness — §5's 5-type AC floor — is unaffected by depth.) **Bootstrap `spec.md`:** cop
A self-contained Claude Code plugin that carries a feature from a one-line idea to reviewed, verified, shipped code through 23 atomic, stack-agnostic skills and a TDD implementation engine — with a living decomposition roadmap above the per-feature flow and a
Use to derive the API contract for a feature — an OpenAPI 3.1 document at docs/features/{slug}/contracts/openapi.yaml plus a…
Use to run an ambiguity sweep over a written spec.md and close every under-specified point before planning or design proceeds —…
Use to classify a feature into XS/S/M/L/XL and write docs/features/{slug}/.size plus the pipeline route…
Use to create and tune the per-project settings file `.claude/sdd.local.md` — the one place that decides how deeply the pipeline…
Use to design the data model AND generate the actual forward + rollback migrations in one pass — shippable SQL, not a plan.…
Use to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous…