Interview-Driven Spec Writer
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.
Reads human-written spec documents and produces per-epic requirement files with proof obligations plus behavior scenarios with stable IDs, using parallel chunked extraction.
$ npx skills add prime-radiant-inc/iterative-development --skill extracting-requirements -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install prime-radiant-inc/iterative-development extracting-requirements --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/prime-radiant-inc/iterative-development.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/extracting-requirements .claude/skills/extracting-requirements && 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 "extracting-requirements" agent skill from https://github.com/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirements into .claude/skills/extracting-requirements/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extracting-requirements", 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/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirementsType 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 prime-radiant-inc/iterative-development --skill extracting-requirements -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install prime-radiant-inc/iterative-development extracting-requirements --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/iterative-development.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/extracting-requirements .agents/skills/extracting-requirements && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "extracting-requirements" agent skill from https://github.com/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirements into .agents/skills/extracting-requirements/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extracting-requirements", 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 prime-radiant-inc/iterative-development --skill extracting-requirements -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install prime-radiant-inc/iterative-development extracting-requirements --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/iterative-development.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/extracting-requirements .cursor/skills/extracting-requirements && 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 "extracting-requirements" agent skill from https://github.com/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirements into .cursor/skills/extracting-requirements/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extracting-requirements", 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/prime-radiant-inc/iterative-development.git --path skills/extracting-requirements--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 prime-radiant-inc/iterative-development --skill extracting-requirements -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install prime-radiant-inc/iterative-development extracting-requirements --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/iterative-development.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/extracting-requirements .gemini/skills/extracting-requirements && 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 "extracting-requirements" agent skill from https://github.com/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirements into .gemini/skills/extracting-requirements/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extracting-requirements", 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 prime-radiant-inc/iterative-development extracting-requirementsInstalls 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 prime-radiant-inc/iterative-development --skill extracting-requirements -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/prime-radiant-inc/iterative-development.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/extracting-requirements .github/skills/extracting-requirements && 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 "extracting-requirements" agent skill from https://github.com/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirements into .github/skills/extracting-requirements/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extracting-requirements", 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 prime-radiant-inc/iterative-development --skill extracting-requirements -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install prime-radiant-inc/iterative-development extracting-requirements --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/iterative-development.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/extracting-requirements .opencode/skills/extracting-requirements && 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 "extracting-requirements" agent skill from https://github.com/prime-radiant-inc/iterative-development/tree/main/skills/extracting-requirements into .opencode/skills/extracting-requirements/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "extracting-requirements", 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.
extracting-requirementsReads human-written spec documents and produces per-epic requirement files with proof obligations plus behavior scenarios with stable IDs, using parallel chunked extraction.
The skill turns spec collateral of any shape into two sets of artifacts: per-epic requirement files with story cards and a proof obligation for each acceptance criterion, and a behavior scenarios file of reusable, observable-behavior contracts with stable IDs. It is called by the iterative-development workflow during bootstrap, or run alone to regenerate requirements.
To keep any single agent from holding the whole spec, `chunk_spec.py` first splits the files into chunks by heading, keeping small files whole. Each chunk is classified by the folder it came from, which sets its default proof level: test-vectors as unit, contracts as integration, domains as integration or app-level, journeys as end-to-end. Extraction subagents get the chunk text inline with a journey or standard prompt, and aggregation, backlink and validation scripts merge and check the results. It handles specs from one page to roughly 100K tokens across dozens of files.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c05889a. 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.
Ships 6 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Extracting Requirements loads about 2.7k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,205 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); the scripts in this folder are not scanned.
The full file from prime-radiant-inc/iterative-development at commit c05889a, republished under its Apache-2.0 licence (© prime-radiant-inc). 1,205 words, ~2,686 tokens.
.claude/skills/extracting-requirements/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Reads arbitrary human spec collateral and produces two artifact sets:
docs/superpowers/iterations/requirements/ — story cards with proof obligations per ACdocs/superpowers/iterations/behavior-scenarios.md — reusable observable-behavior contracts with stable IDsUses a chunking + parallel-dispatch + aggregation pipeline so that no single agent holds the entire spec in context. Handles specs from a single page up to ~100K tokens across dozens of files.
Invoked by iterative-development during bootstrap, or standalone when you need to regenerate requirements from human spec collateral.
All scripts referenced below live in this skill's scripts/ directory, next to this SKILL.md file.
The spec directory structure drives proof seam classification. See skills/shared/behavior-evidence-formats.md for the full taxonomy. Summary:
| Spec directory | Default proof seam |
|---|---|
test-vectors/ | unit |
contracts/ | integration |
domains/ | integration or app-level |
journeys/ | e2e |
Extraction subagents use the appropriate prompt variant based on source file location.
Enumerate the spec files without reading full contents:
python3 "scripts/chunk_spec.py" <spec-path>This produces a JSON array of chunks. Each chunk has source_file, heading, start_line, end_line, content, and estimated_tokens. Small files (< 4K tokens) are kept whole. Larger files are split by ## headings, or ### if sections are still too large.
Classify each chunk by spec taxonomy: note whether the source file is under journeys/, contracts/, domains/, or test-vectors/. This determines which extraction prompt variant to use.
For each chunk (or batch of small chunks), dispatch an extraction subagent using the appropriate template from extraction-subagent-prompt.md:
journeys/ → use the Journey Extraction prompt variantPass the chunk content inline — do NOT make the subagent read the file.
Payload integrity: If your platform has output token limits that could truncate the chunk before it reaches the subagent prompt, stage each chunk individually and verify the subagent received the complete content (e.g., by checking that the extracted stories reference lines from the full range of the chunk). Partial payloads are easy to miss and cause silent under-extraction.
Dispatch strategy:
Before aggregation, run a PAR omission review. The sole job of this review is to find requirements AND scenarios that the extraction subagents dropped.
For each chunk (or batch of chunks), dispatch two reviewers in parallel following skills/shared/parallel-adversarial-review.md:
This pass is required, not optional. Extraction subagents optimize for what they notice; omission reviewers optimize for what's missing.
Run the story aggregation script on all extracted story JSONs (including any added by the omission review):
python3 "scripts/aggregate_stories.py" -o docs/superpowers/iterations/requirements/ <json-file-1> <json-file-2> ...The script combines, deduplicates by title, groups into epics, assigns stable STORY/EPIC IDs, and outputs per-epic files with proof obligations preserved.
Run the scenario aggregation script:
python3 "scripts/aggregate_scenarios.py" \
-o docs/superpowers/iterations/behavior-scenarios.md \
--stories-dir docs/superpowers/iterations/requirements/ \
<json-file-1> <json-file-2> ...The script combines, deduplicates by title, assigns stable SCENARIO/JOURNEY IDs, resolves story title references to STORY-IDs, and outputs behavior-scenarios.md.
Same as before: review the epic list, merge near-duplicates, re-run aggregation. See the consolidation rules in the original extraction skill documentation.
Additional consolidation check: after merging, verify that scenario owning_story_titles still resolve correctly. If stories were deduplicated during re-aggregation, re-run scenario aggregation to update resolved refs.
After both aggregations complete, run the back-linking script to update per-epic story files with scenario references:
python3 "scripts/backlink_scenarios.py" \
docs/superpowers/iterations/behavior-scenarios.md \
docs/superpowers/iterations/requirements/The script reads scenario → owning-story mappings from behavior-scenarios.md and appends scenario:SCENARIO-NNNN or scenario:JOURNEY-NNNN to AC lines in the epic files that have observable behavioral impact. AC lines that already have scenario refs are skipped.
This creates the bidirectional link: stories → scenarios (via AC lines) and scenarios → stories (via owning_stories field).
Build a coverage ledger that maps every spec chunk to its extracted stories AND scenarios. This is the traceable proof that extraction is complete.
For each chunk from the inventory (step 1):
source_file, heading, start_line–end_line**Sources:** field cites overlapping lines in that file**Sources:** field cites overlapping lines in that fileHard gates:
Journey coverage check: every journey spec file MUST produce at least one JOURNEY-NNNN scenario that preserves the complete step sequence. If a journey file only produced stories (no journey scenario), that is a gap.
Create the initial docs/superpowers/iterations/behavior-corpus.md from the scenario list:
# Behavior Corpus
| Scenario ID | Title | Proof seam | Run cadence | Command | Owning stories |
|---|---|---|---|---|---|Populate with all scenarios. Set run cadence:
sentinel (they run every iteration)iteration (default, refined during scoping)Set command to TBD — the implementing iterations will fill these in.
python3 "scripts/validate_requirements_index.py" docs/superpowers/iterations/requirements/
python3 "scripts/validate_scenarios.py" docs/superpowers/iterations/behavior-scenarios.md docs/superpowers/iterations/requirements/If validation fails, inspect the output, fix formatting issues, and re-validate.
git add docs/superpowers/iterations/requirements/
git add docs/superpowers/iterations/behavior-scenarios.md
git add docs/superpowers/iterations/behavior-corpus.md
git commit -m "docs: add requirements with proof obligations, behavior scenarios, and corpus index"| Step | Tool | Input | Output |
|---|---|---|---|
| Chunk | scripts/chunk_spec.py | spec path | JSON chunks (stdout) |
| Extract | Subagent + extraction-subagent-prompt.md | chunk content | JSON stories + scenarios (per subagent) |
| Omission review | PAR (source text vs. stories + scenarios) | chunks + stories + scenarios | Missing requirements and scenarios |
| Aggregate stories | scripts/aggregate_stories.py -o <dir> | JSON files | Per-epic .md files with proof obligations |
| Aggregate scenarios | scripts/aggregate_scenarios.py -o <file> | JSON files + stories dir | behavior-scenarios.md |
| Back-link | scripts/backlink_scenarios.py | scenarios + stories | Updated AC lines with scenario refs |
| Coverage ledger | Map chunks → story IDs + scenario IDs | chunk list, stories, scenarios | Gap/covered/story-only per chunk |
| Init corpus | Write corpus index | scenario list | behavior-corpus.md |
| Validate | scripts/validate_requirements_index.py + scripts/validate_scenarios.py | .md files | OK or errors |
Hierarchical reduce (specs > 1M tokens), huge-spec decomposition, incremental re-extraction.
© prime-radiant-inc, Apache-2.0. 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 7 other files (scripts) in skills/extracting-requirements of prime-radiant-inc/iterative-development.
Open the folder on GitHubat commit c05889a
Extracting Requirements 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 |
|---|---|---|---|---|---|---|
| Extracting Requirements this skillprime-radiant-inc/iterative-development | 181 | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Interview-Driven Spec Writerposhan0126/dotclaude | 870 | — | ~804 | Automated safety check: Pass | MIT | |
| Deep InterviewYeachan-Heo/oh-my-claudecode | 40k | — | ~12k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Tbdjlevy/strif | 131 | — | ~3.5k | Automated safety check: Pass | MIT | |
| User Alignment and Agent-Ready PRDstryproduck/produck-skills | 511 | — | ~5.3k | Automated safety check: Pass | Apache-2.0 |
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.
Yeachan-Heo/oh-my-claudecode
Interviews you with Socratic questions and an ambiguity score until a vague idea becomes a clear spec, then holds execution until you approve.
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
jlevy/strif
Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents.
tryproduck/produck-skills
Turns a vague feature request into a written spec with scope, phases, acceptance criteria and do-not-do limits that a coding agent can follow without guessing.
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.
prime-radiant-inc/iterative-development
Turns extracted requirements into a roadmap by choosing a walking skeleton iteration with its first journey scenario and ordering the remaining work into follow-on iterations.
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.
prime-radiant-inc/iterative-development
A skill your agent uses when executing the next pending iteration from an iterative-development roadmap — picks the iteration, decomposes into code and evidence tasks, runs sentinel corpus baseline…
prime-radiant-inc/iterative-development
Checks the quality of behavior evidence after each iteration in three tiers, using two auditor subagents in parallel to review the same work and find gaps.
prime-radiant-inc/iterative-development
Runs a batch of TDD-sized tasks by dispatching an implementer subagent per task, followed by two-stage parallel adversarial review and fix loops.
Works with
Reads human-written spec documents and produces per-epic requirement files with proof obligations plus behavior scenarios with stable IDs, using parallel chunked extraction. The skill turns spec collateral of any shape into two sets of artifacts: per-epic requirement files with story cards and a proof obligation for each acceptance criterion, and a behavior scenarios file of reusable, observable-behavior contracts with stable IDs. It is called by the iterative-development workflow during bootstrap, or run alone to regenerate requirements.
Extracting Requirements fits situations like: starting an iterative-development run from a folder of human-written specs; regenerating requirement files after the specs changed; turning journeys and contracts into stable-ID behavior scenarios.
Run `npx skills add prime-radiant-inc/iterative-development --skill extracting-requirements -a claude-code`. Or copy the skill folder (skills/extracting-requirements in prime-radiant-inc/iterative-development) into .claude/skills/extracting-requirements in your project. Claude Code loads it when a task matches its description.
Run `npx skills add prime-radiant-inc/iterative-development --skill extracting-requirements -a codex`. Or copy the skill folder (skills/extracting-requirements in prime-radiant-inc/iterative-development) into .agents/skills/extracting-requirements 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 prime-radiant-inc/iterative-development --skill extracting-requirements -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/extracting-requirements, .gemini/skills/extracting-requirements, .github/skills/extracting-requirements and .opencode/skills/extracting-requirements in your project.
Going by SKILL.md and its folder, Extracting Requirements needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: Python 3 for the chunking, aggregation and validation scripts; A folder of spec files.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Extracting Requirements is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k 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 Extracting Requirements: Interview-Driven Spec Writer (poshan0126/dotclaude, 870 stars), Deep Interview (Yeachan-Heo/oh-my-claudecode, 40k stars), CCPM Project Management (automazeio/ccpm, 8.4k stars) and Tbd (jlevy/strif, 131 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
prime-radiant-inc (a GitHub organization) maintains it in prime-radiant-inc/iterative-development, which has 181 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on June 6, 2026.
Source: prime-radiant-inc/iterative-development on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.