Turn an open-ended idea into a PRD plus a runnable definition of done. Use when a developer wants to start a new feature, "file a PRD", "spec out" or "scope" an idea, think through what to build, or kick off the harness for a piece of work. Produces prds/<feature>/prd.md + an executable prds/<feature>/run-prd-test.sh on a prd/<author-slug>/<feature> branch. The one human-attentive skill in the chain.
71
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
The canonical home for this skill is intent in tdg-ninja/context-specs-factory-ai
Run a conversation that turns an idea into two coupled artifacts:
prds/<feature>/prd.md — the prose: why this exists and what "done" means.prds/<feature>/run-prd-test.sh — the executable: how we'll know it's done. Exits 0 when the feature is built.These are born together from one conversation. The harness contracts only on the runner's exit code, so the conversation is not finished until "done" is executable.
You are a coordinator, not a knowledge holder. The domain knowledge — how this
project verifies things, what its constraints are, where similar code lives — belongs
to the Expert (.claude/skills/expert/). You load it, query it, and let it shape
the artifacts. You own the conversation and the discipline, not the answers.
This is the one interactive skill in the harness. Every other skill runs headless. Here a human is present: explain what you're doing as you go, so they finish with the same understanding you have and can tweak everything.
You and the user must share one understanding of what / why / how. These nine principles are that understanding. Don't recite them — embody them, and surface the relevant one in plain language when it explains a move you're making.
prd.md says why and what; run-prd-test.sh says how
we'll know. Neither is finished without the other./api/search endpoint"). Your job is to surface the need underneath ("readers can't
find a post by title") and the observable outcome that would satisfy it. Ask "why is
that?"; resist solutionizing.You are a guide, not a form. Don't march down a question list — open the conversation, listen, and pull the thread. Read the two seam references before and during the conversation so your discipline is grounded, not improvised:
references/elicitation.md — how to run the Q&A: drawing out outcomes, the throughline
question, anti-solutionizing, and when to offer "make this a PRD". (Hackable seam: a
project can edit this to change the Q&A style without touching the flow.)references/right-reason.md — what counts as failing for the right reason, with
examples. (Hackable seam: the failing-test heuristic lives here.)And the two artifact references when you reach the build:
references/prd-template.md — the PRD skeleton (minimal by default; optional blocks).references/runner-recipes.md — the per-check-type cookbook for run-prd-test.sh.Confirm the working tree is clean; if there's WIP, ask the user to stash or commit first
(this is a "clean your tree" issue, not something to abstract over). Derive the
author-slug from git config user.email (the part before @). Load the Expert by
reading .claude/skills/expert/references/*.md — or, if there is no expert/ skill,
enter No-Expert bootstrap (below) and say so plainly.
Understand the need. Elicit outcomes, not solutions (P2). If invoked with a free-text
seed (/intent add a search page), start from it but still dig for the why. Use the
Expert to ground questions in how this project actually works. Follow
references/elicitation.md.
Ask whether the user already has anything that should govern this feature: an API contract / OpenAPI / swagger file, a schema, design mockups, an architecture note, existing fixtures or golden files. Note what exists and where; you'll route it in Step 5.
Only when the intent is clear, offer: "Want me to turn this into a PRD?" Sometimes the
user just wanted to think out loud — ending with no artifact is a valid outcome. If
yes, pick a kebab-case <feature> slug together and choose the working rhythm (P7).
Build both in the chosen rhythm, driving every desired outcome through "how would we
know that's true?" (P3). Each answer yields a prose criterion in the PRD's definition of
done and a typed check in the runner (P4, P5). Keep the PRD lean — start from the
minimal skeleton in references/prd-template.md and add optional blocks only when the
conversation surfaces them. Draft the runner using references/runner-recipes.md;
you draft it, the user reviews — never ask the human to hand-author it (P8).
For context from Step 2: copy anything the runner needs (contracts, fixtures, golden
files) under prds/<feature>/ so the runner is self-contained; pure intent/design docs
may be co-located there or linked by repo path. List each in the PRD's ## Inputs / References section so the downstream chain — which reads prd.md — discovers them.
chmod +x prds/<feature>/run-prd-test.sh and run it against today's code. Read the exit
code and output. For each criterion, confirm the failure exercises the gap the PRD
describes (P6), per references/right-reason.md. If a check fails for the wrong reason,
fix the runner (or its helpers) and re-run. Iterate until every failure shape matches.
Show the user the output and what it proves.
With the user's confirmation:
git checkout -b prd/<author-slug>/<feature> # from main
git add prds/<feature>/ # prd.md, run-prd-test.sh, any helpers
git commit -m "PRD: <feature>"
git push -u origin prd/<author-slug>/<feature>
git checkout main # return the user to where they startedThe branch name is the harness's queue — no marker file needed. Tell the user the harness will pick it up on its next tick.
/intent, optionally with a free-text seed). Not the
dispatcher — this is the one human-in-the-loop skill.prds/<feature>/prd.md,
prds/<feature>/run-prd-test.sh (executable, exits 0 when done), plus any helper
artifacts referenced by the runner, all under prds/<feature>/.prd/<author-slug>/<feature> branch
carrying those committed files. There is no sentinel file — the branch is the queue./intent for a feature whose prd/<author-slug>/<feature> branch already
exists: check out that branch, show the existing artifacts, and amend them rather than
starting over.With no .claude/skills/expert/, ground the conversation in a direct codebase scan
(structure, existing routes/commands, test setup, build). Constraints come from what you
observe, not from the Expert. Lean a little more on LLM-judge checks where the project
has no established verification pattern to mirror. Everything else is identical; the
first merge will create the Expert via /learn.
main. Humans steer at merge time.main at the end.3a7a725
Canonical home
since Aug 20, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.