Iterative Development Orchestrator
prime-radiant-inc/iterative-development
Runs an autonomous loop that extracts requirements with proof obligations, builds a walking skeleton, then audits sprint by sprint against real behavior evidence.
Runs a gated Spec, Plan, Build, Test, Review, Ship workflow so non-trivial changes are specified, verified and reviewed before they ship, with a named artifact per phase.
$ npx skills add LichAmnesia/lich-skills --skill spec-driven-dev -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LichAmnesia/lich-skills spec-driven-dev --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/LichAmnesia/lich-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spec-driven-dev .claude/skills/spec-driven-dev && 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 "spec-driven-dev" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/spec-driven-dev into .claude/skills/spec-driven-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-dev", 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/LichAmnesia/lich-skills/tree/main/skills/spec-driven-devType 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 LichAmnesia/lich-skills --skill spec-driven-dev -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LichAmnesia/lich-skills spec-driven-dev --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spec-driven-dev .agents/skills/spec-driven-dev && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "spec-driven-dev" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/spec-driven-dev into .agents/skills/spec-driven-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-dev", 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 LichAmnesia/lich-skills --skill spec-driven-dev -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LichAmnesia/lich-skills spec-driven-dev --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spec-driven-dev .cursor/skills/spec-driven-dev && 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 "spec-driven-dev" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/spec-driven-dev into .cursor/skills/spec-driven-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-dev", 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/LichAmnesia/lich-skills.git --path skills/spec-driven-dev--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 LichAmnesia/lich-skills --skill spec-driven-dev -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LichAmnesia/lich-skills spec-driven-dev --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spec-driven-dev .gemini/skills/spec-driven-dev && 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 "spec-driven-dev" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/spec-driven-dev into .gemini/skills/spec-driven-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-dev", 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 LichAmnesia/lich-skills spec-driven-devInstalls 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 LichAmnesia/lich-skills --skill spec-driven-dev -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spec-driven-dev .github/skills/spec-driven-dev && 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 "spec-driven-dev" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/spec-driven-dev into .github/skills/spec-driven-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-dev", 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 LichAmnesia/lich-skills --skill spec-driven-dev -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LichAmnesia/lich-skills spec-driven-dev --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LichAmnesia/lich-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spec-driven-dev .opencode/skills/spec-driven-dev && 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 "spec-driven-dev" agent skill from https://github.com/LichAmnesia/lich-skills/tree/main/skills/spec-driven-dev into .opencode/skills/spec-driven-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "spec-driven-dev", 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.
spec-driven-devRuns a gated Spec, Plan, Build, Test, Review, Ship workflow so non-trivial changes are specified, verified and reviewed before they ship, with a named artifact per phase.
Each phase has a goal, exit criteria and a table answering the excuses an agent might invent to skip it. Work may loop backward, for example returning to Spec when testing exposes a flawed spec, but it may not skip forward: no building without a plan and no shipping without review. Each gate leaves a committed artifact: SPEC.md, PLAN.md, code with tests, a review note or PR description, and a launch and rollback note.
The Spec phase restates the request in one sentence, lists assumptions, turns vague wishes into measurable success criteria, saves a spec from templates/spec.md, sets Always, Ask First and Never boundaries and logs open questions instead of guessing. Exit requires a saved spec the human has approved. The workflow is meant for new projects and multi-file changes, not typo fixes, single renames, pure dependency bumps or throwaway spikes. Templates for plan, review and ship come with it.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ebbc355. 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.
Spec-Driven Development loads about 3.5k tokens when it runs. Until then it costs about 79 tokens; SKILL.md has 1,859 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 LichAmnesia/lich-skills at commit ebbc355, republished under its MIT licence (© LichAmnesia). 1,859 words, ~3,479 tokens.
.claude/skills/spec-driven-dev/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.A gated, six-phase workflow for shipping real software with an AI coding agent. Each phase has a goal, exit criteria, and a rationalization table for the excuses an agent will invent to skip it. Do not advance until the current gate is closed.
If unsure, do the spec phase anyway. A 10-minute spec is cheap insurance.
SPEC ──▶ PLAN ──▶ BUILD ──▶ TEST ──▶ REVIEW ──▶ SHIP
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
What & Tasks & Thin Prove it Five-axis Deploy,
why order slices works quality observe,
by test gate roll back
│ │ │ │ │ │
└──────────┴──────────┴──────────┴──────────┴───────────┘
human or reviewer approves each gateRules of the gate:
SPEC.md,
PLAN.md, code + tests, a review note / PR description, a launch + rollback note.Goal. Turn a vague request into a written contract that answers what, why, for whom, and how we know it is done. Surface assumptions before they become bugs.
Inputs. User request, existing codebase, any prior specs, constraints.
Steps.
ASSUMPTIONS: web app, Postgres, session cookies. Correct me or I proceed.templates/spec.md and save it in the repo.Exit criteria.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "It's obvious what to build" | If it were, two engineers would write the same code. They won't. |
| "I'll write the spec after the code works" | That's documentation, not specification. It can no longer change the design. |
| "The user told me what they want" | Users describe symptoms, not contracts. Extract the contract. |
| "Requirements will change anyway" | That's exactly why you write them down — so the change is visible. |
Goal. Convert the spec into an ordered list of small, verifiable tasks with an explicit dependency graph. No code is written in this phase.
Inputs. Approved spec, relevant source files, existing conventions.
Steps.
templates/plan.md. Each task fits one focused session
and touches ~5 files or fewer.Task sizing.
| Size | Files | Example |
|---|---|---|
| XS | 1 | Add a validation rule |
| S | 1–2 | One endpoint, one component |
| M | 3–5 | One vertical feature slice |
| L | 5–8 | Multi-component feature (split if possible) |
| XL | 8+ | Too big. Break it down. |
Exit criteria.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "I'll figure it out as I go" | That's how tangled diffs are born. Ten minutes planning saves hours untangling. |
| "Planning is overhead" | Planning is the work. Implementation without a plan is just typing. |
| "I can hold it in my head" | Context windows are finite. Compaction will eat it. |
Goal. Implement the plan in thin, compilable, revertible increments. Every increment leaves the tree green.
Inputs. Approved plan, the current task.
The increment cycle: implement → test → verify → commit → next slice
Rules.
Exit criteria for each increment.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "Faster to do it all at once" | It feels faster until something breaks in 500 changed lines. |
| "Too small to commit separately" | Small commits are free. Large commits hide bugs. |
| "Let me just quickly add this too" | Scope creep wearing a disguise. |
| "This refactor is small enough to include" | Mixing refactor with feature makes both harder to review. |
Goal. Prove the code works with tests that will survive refactoring. "Seems to work" is not done.
Inputs. Built code, spec's success criteria, bug reports (if any).
Steps.
it('sets completedAt when task is completed').Exit criteria.
<test command>Common Rationalizations
| Excuse | Reality |
|---|---|
| "I'll write tests after it works" | You won't. And post-hoc tests test implementation, not behavior. |
| "I tested it manually" | Manual testing does not persist. Tomorrow's change will silently break it. |
| "Tests slow me down" | They slow you now; they speed you up every time you change this code. |
| "All tests pass" (unverified) | "Passes" without output is a claim, not a fact. Run them. |
Goal. A five-axis quality gate. Nothing merges without it — including code you wrote yourself.
Inputs. Built, tested code. The spec. The plan.
The five axes.
Findings must carry severity. Label every comment so the author knows what is required vs optional:
| Prefix | Meaning |
|---|---|
| Critical: | Blocks merge — security, data loss, correctness |
| (no prefix) | Required before merge |
| Consider: / Optional: | Suggestion |
| Nit: | Style or formatting preference |
| FYI: | Informational only |
Approval standard. Approve when the change improves overall code health,
even if not how you would have written it. Do not block on preference. Do not
rubber-stamp either. Use templates/review.md as the checklist.
Exit criteria.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "It works, good enough" | Working + unreadable + insecure = debt that compounds. |
| "Tests pass, therefore good" | Tests do not catch architecture or security. Review does. |
| "AI-generated, probably fine" | AI output is confident and plausibly wrong. Scrutinize more, not less. |
| "We'll clean it up later" | Later never comes. Clean up before merge or file a tracked bug. |
Goal. Deploy safely. Every launch must be reversible, observable, and incremental.
Inputs. Reviewed, merged code. A rollback plan. A monitoring plan.
Steps.
templates/ship.md (code quality,
security, performance, accessibility, infra, docs).staging → prod (flag off) → team → 5% → 25% → 50% → 100%Exit criteria.
Common Rationalizations
| Excuse | Reality |
|---|---|
| "Works in staging, will work in prod" | Prod has different data, traffic, and edge cases. Monitor after deploy. |
| "We don't need a flag for this" | Every feature benefits from a kill switch. Even simple ones break things. |
| "We'll add monitoring later" | You cannot debug what you cannot see. Add it before launch. |
| "Rolling back is admitting failure" | Rolling back is responsible engineering. Shipping broken is the failure. |
| "It's Friday afternoon, let's ship it" | No. |
PLAN.md tasks that say "implement the feature" and nothing elseIf you see any of these, return to the most recent unpassed gate and redo it.
Before declaring the workflow done:
templates/spec.md — write this in Phase 1templates/plan.md — write this in Phase 2templates/review.md — use this in Phase 5templates/ship.md — use this in Phase 6This workflow is intentionally coarse. Reach for focused skills for depth on individual phases (planning, TDD, code review, shipping). This skill is the spine; others are the organs.
© LichAmnesia, 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 4 other files in skills/spec-driven-dev of LichAmnesia/lich-skills.
Open the folder on GitHubat commit ebbc355
Spec-Driven Development 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 |
|---|---|---|---|---|---|---|
| Spec-Driven Development this skillLichAmnesia/lich-skills | 234 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Iterative Development Orchestratorprime-radiant-inc/iterative-development | 181 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Brainstorming Before BuildingjnMetaCode/superpowers-zh | 8.3k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Bulletproof Workflowartemiimillier/bulletproof | 153 | — | ~3.5k | Automated safety check: Pass | MIT | |
| GSD Phase Discussionopen-gsd/gsd-core | 10k | 1 repos | ~1.5k | Automated safety check: Warn | MIT | |
| Interview-Driven Spec Writerposhan0126/dotclaude | 871 | — | ~804 | Automated safety check: Pass | MIT |
prime-radiant-inc/iterative-development
Runs an autonomous loop that extracts requirements with proof obligations, builds a walking skeleton, then audits sprint by sprint against real behavior evidence.
jnMetaCode/superpowers-zh
Turns a rough idea into an approved design before any code is written, sorting the request into spike, bounded or architectural and enforcing an approval gate.
artemiimillier/bulletproof
Applies a 12-stage verified workflow, from research to deploy, to non-trivial coding tasks, scaled to lightweight, standard or full mode by task size.
open-gsd/gsd-core
Asks adaptive questions about a project phase and records the decisions in a CONTEXT.md that later research and planning agents can act on without asking again.
poshan0126/dotclaude
Interviews you about scope, behavior, edge cases and verification, then writes a self-contained SPEC.md that a fresh session can implement without this conversation.
cashew-labs/libretto
Researches the codebase and relevant docs, asks clarifying questions, then writes a spec sheet in specs/ for a significant feature or complex fix.
LichAmnesia/lich-skills
Pulls Google Analytics 4 data through the Data API with TypeScript scripts and turns it into a daily SEO report or prioritized traffic and bounce-rate recommendations.
LichAmnesia/lich-skills
Generates or edits PNG images with Google's Nano Banana 2 model through a small script, with a choice of 512, 1K, 2K or 4K output.
LichAmnesia/lich-skills
Organizes long-running agent work into a Project, Sprint and Task hierarchy with per-task state files, isolated worktrees, review loops and script-checked rules.
LichAmnesia/lich-skills
Runs headless web searches and single-page extraction through the Tavily API from a Python script, returning cited, summarized results without a browser.
LichAmnesia/lich-skills
Drives a failing build, typecheck, lint or test command to a passing exit code through small, one-fix-at-a-time rounds, stopping at a hard attempt cap instead of looping forever.
LichAmnesia/lich-skills
Replaces trial-and-error fixing with an observe, hypothesize, experiment and conclude loop kept in DEBUG.md, where no fix is allowed before evidence supports a cause.
Categories
Runs a gated Spec, Plan, Build, Test, Review, Ship workflow so non-trivial changes are specified, verified and reviewed before they ship, with a named artifact per phase. Each phase has a goal, exit criteria and a table answering the excuses an agent might invent to skip it. Work may loop backward, for example returning to Spec when testing exposes a flawed spec, but it may not skip forward: no building without a plan and no shipping without review.
Spec-Driven Development fits situations like: starting a new service or a feature that touches several files; turning a vague request into a written spec with testable success criteria; making an architectural decision before any code is written; picking up half-finished work from another session.
Run `npx skills add LichAmnesia/lich-skills --skill spec-driven-dev -a claude-code`. Or copy the skill folder (skills/spec-driven-dev in LichAmnesia/lich-skills) into .claude/skills/spec-driven-dev in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LichAmnesia/lich-skills --skill spec-driven-dev -a codex`. Or copy the skill folder (skills/spec-driven-dev in LichAmnesia/lich-skills) into .agents/skills/spec-driven-dev 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 LichAmnesia/lich-skills --skill spec-driven-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/spec-driven-dev, .gemini/skills/spec-driven-dev, .github/skills/spec-driven-dev and .opencode/skills/spec-driven-dev in your project.
SKILL.md names no scripts, command-line tools or credentials: Spec-Driven Development 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.
Spec-Driven Development 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.5k 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.
Skills that share tags, products or a category with Spec-Driven Development: Iterative Development Orchestrator (prime-radiant-inc/iterative-development, 181 stars), Brainstorming Before Building (jnMetaCode/superpowers-zh, 8.3k stars), Bulletproof Workflow (artemiimillier/bulletproof, 153 stars) and GSD Phase Discussion (open-gsd/gsd-core, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LichAmnesia (a GitHub user) maintains it in LichAmnesia/lich-skills, which has 234 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on June 9, 2026.
Source: LichAmnesia/lich-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.