Spec Workflow
hashgraph-online/awesome-codex-plugins
This skill should be used when the user asks to "create a spec", "write requirements", "design a feature", "plan implementation", "use EARS notation", "create user stories", "break down tasks"…
A skill your agent uses 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…
$ npx skills add genkovich/sdd --skill specify -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install genkovich/sdd specify --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/specify .claude/skills/specify && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "specify" agent skill from https://github.com/genkovich/sdd/tree/main/skills/specify into .claude/skills/specify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specify", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/genkovich/sdd/tree/main/skills/specifyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add genkovich/sdd --skill specify -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install genkovich/sdd specify --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/specify .agents/skills/specify && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "specify" agent skill from https://github.com/genkovich/sdd/tree/main/skills/specify into .agents/skills/specify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specify", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add genkovich/sdd --skill specify -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install genkovich/sdd specify --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/specify .cursor/skills/specify && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "specify" agent skill from https://github.com/genkovich/sdd/tree/main/skills/specify into .cursor/skills/specify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specify", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/genkovich/sdd.git --path skills/specify--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add genkovich/sdd --skill specify -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install genkovich/sdd specify --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/specify .gemini/skills/specify && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "specify" agent skill from https://github.com/genkovich/sdd/tree/main/skills/specify into .gemini/skills/specify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specify", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install genkovich/sdd specifyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add genkovich/sdd --skill specify -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/specify .github/skills/specify && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "specify" agent skill from https://github.com/genkovich/sdd/tree/main/skills/specify into .github/skills/specify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specify", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add genkovich/sdd --skill specify -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install genkovich/sdd specify --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/genkovich/sdd.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/specify .opencode/skills/specify && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "specify" agent skill from https://github.com/genkovich/sdd/tree/main/skills/specify into .opencode/skills/specify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "specify", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
specifyA skill your agent uses 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…
Specify is an agent skill from genkovich/sdd. 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…
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/critic.md`, `references/draft-generation.md` and `references/ideation.md`).
It sits in Product & Project Management, covering User stories, Tutoring and explanations and OKRs and executive reporting. The repository describes itself as: Spec-Driven Development for Claude Code: 12 atomic Socratic skills + a TDD implement engine (agent-team & dynamic-workflow modes). The licence is MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4403913. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Specify loads about 3.6k tokens when it runs, and up to ~7.8k if it reads all its reference files. Until then it costs about 217 tokens; SKILL.md has 1,597 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from genkovich/sdd at commit 4403913, republished under its MIT licence (© genkovich). 1,597 words, ~3,611 tokens.
.claude/skills/specify/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.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..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. Creating is unconditional; changing values is only ever offered by config. 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 + 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): 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, 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" (model per judgment_model, effort high — xhigh on L/XL via CLAUDE_CODE_EFFORT_LEVEL; 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: in docs/roadmap.md (via roadmap) set the matching step's Status: spec'd and link this feature folder; no matching step → append one (source anchor = this spec). (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:ux-flows <slug> (on quick — auto-skip with the reason + inverted ↳ or; on standard — offer the ↳ or; on full — no skip line). When clarify is legally skipped, carry the next condition forward: evaluate ux-flows' N/A condition too (no human-facing UI — every §4 actor a system/service, or the repo has no UI at all, per ../_shared/size-matrix.md) → holds ⇒ the skip target becomes /sdd:design <slug>. (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.© genkovich, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/specify of genkovich/sdd.
Open the folder on GitHubat commit 4403913
Specify next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Specify this skillgenkovich/sdd | 171 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Spec Workflowhashgraph-online/awesome-codex-plugins | 1.2k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Product Skillsalirezarezvani/claude-skills | 28k | — | ~2.6k | Automated safety check: Pass | MIT | |
| Ralph Tui Create Beadssubsy/ralph-tui | 2.5k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Trellis Brainstormanjiemo/SunnyBeach | 178 | 7 repos | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Ralph Tui Create Beads Rustsubsy/ralph-tui | 2.5k | 1 repos | ~2.8k | Automated safety check: Pass | MIT |
hashgraph-online/awesome-codex-plugins
This skill should be used when the user asks to "create a spec", "write requirements", "design a feature", "plan implementation", "use EARS notation", "create user stories", "break down tasks"…
alirezarezvani/claude-skills
A skill your agent uses when coordinating product work across the 12 bundled product sub-skills (RICE, OKRs, UX research, design tokens, competitive teardown, analytics, experiments, discovery…
subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution. An agent skill from subsy/ralph-tui.
anjiemo/SunnyBeach
Guides collaborative requirements discovery before implementation.
subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI).
subsy/ralph-tui
Convert PRDs to prd.json format for ralph-tui execution. An agent skill from subsy/ralph-tui.
genkovich/sdd
A skill your agent uses to fix a reported bug spec-first: reproduce it, trace the symptom to the owning feature's acceptance criteria, pin it with a failing (RED) test, apply the minimal GREEN fix…
genkovich/sdd
A skill your agent uses to implement a feature from its tasks.json with test-driven development — writes a failing test first, makes it pass, refactors, gates, and commits per task.
genkovich/sdd
Use BEFORE roadmap or specify to get the idea OUT OF YOUR HEAD and onto disk — a Socratic interview that surfaces hidden assumptions, names tradeoffs, exposes imprecisions and proposes fresh angles…
genkovich/sdd
A skill your agent uses to classify a feature into XS/S/M/L/XL and write docs/features/{slug}/.size plus the pipeline route docs/features/{slug}/.route (quick|standard|full) so later skills know how…
genkovich/sdd
A skill your agent uses to record a post-hoc or asynchronous architecture decision as a MADR ADR when it was NOT captured during the synchronous design pass — a choice made in code, in a chat, on a…
genkovich/sdd
A skill your agent uses to break a designed feature into atomic, ≤1-day tasks with a dependency graph, a per-task Definition of Done, and a machine-readable tasks.json that the implement engine…
Categories
A skill your agent uses 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…. Specify is an agent skill from genkovich/sdd.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).
Specify fits situations like: 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; acceptance criteria; spec for {slug}.
Run `npx skills add genkovich/sdd --skill specify -a claude-code`. Or copy the skill folder (skills/specify in genkovich/sdd) into .claude/skills/specify in your project. Claude Code loads it when a task matches its description.
Run `npx skills add genkovich/sdd --skill specify -a codex`. Or copy the skill folder (skills/specify in genkovich/sdd) into .agents/skills/specify in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add genkovich/sdd --skill specify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/specify, .gemini/skills/specify, .github/skills/specify and .opencode/skills/specify in your project.
SKILL.md names no scripts, command-line tools or credentials: Specify is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Specify is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Specify: Spec Workflow (hashgraph-online/awesome-codex-plugins, 1.2k stars), Product Skills (alirezarezvani/claude-skills, 28k stars), Ralph Tui Create Beads (subsy/ralph-tui, 2.5k stars) and Trellis Brainstorm (anjiemo/SunnyBeach, 178 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
genkovich (a GitHub user) maintains it in genkovich/sdd, which has 171 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on September 5, 2026.
Source: genkovich/sdd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.