Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Turns a raw product or feature idea into an approved PRD — the product WHY of one change to a capability. Use when a feature, extension, or refactor is being proposed and needs scoping before any technical spec. Classifies the idea (new capability / change to an existing capability / in-shape work needing no pipeline). Does NOT make technical decisions and does NOT produce technical specs.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 95% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -50% | 0% |
change-scope produces a PRD — the WHY of one change to a capability: the problem, the user's current pain, the product value, user stories, and scope. It runs BEFORE any technical spec. It owns the product reasoning and makes no technical decisions. The PRD it produces is the required input to change-spec, and change-spec will refuse a PRD that a human has not approved.
Generic skill — hard-codes no path. Resolve the state-tree root from the project's CLAUDE.md (project-declared paths, DESIGN_PRODUCT_PIPELINE.md §2); default docs/, and say which you used. {capabilities-root} means {declared-root}/capabilities (default docs/capabilities), and product/vision.md means {declared-root}/product/vision.md.
Before producing a PRD you MUST, in order:
ONLY after reading that capability's existing PRDs and decision records (see Precedence); prior decisions are often what make a change architectural.
and STOP: direct the work to the relevant rules skill's code gate. Do not manufacture a PRD for a one-line change.
README.md.(see "Creating a provisional capability stub") so the PRD has a real parent to cite. The stub is an anchor, not a capability description.
approved and change-spec may not consume it.
Hard rules:
framework specifics appear in a PRD. If you are writing one, stop — that is change-spec's job.
it. If half of it is only meaningful to someone who has read the code conventions, the why and the how have been welded — start over.
"Approval").
When the target capability does not yet exist, create — and nothing more:
{capabilities-root}/{capability-slug}/README.md containing ONLY: the capability name, a one-linedescription, and this status block:
status: provisional — established by change-scope, pending capability-map why-link: BOOTSTRAP — no product vision yet
If product/vision.md already exists, replace the why-link line with a real citation to the relevant vision goal (path + section) instead of the BOOTSTRAP token.
This stub is a coat hook: it exists so the PRD has a resolvable parent. You MUST NOT write a considered capability description, scope, boundaries, or decomposition into it — that is capability-map's exclusive output, produced later, which will review and promote this stub. Creating the stub does not make change-scope a two-transition skill: the stub is the PRD's parent coming into existence as a side effect, explicitly marked provisional.
Scan the capability's changes/ directory and take the next free integer, zero-padded to four digits (0001, 0002, …). This number is PROVISIONAL until merge — tell the user plainly: "scoped as NNNN — provisional; if NNNN already exists when this merges, renumber."
The change's identity is its SLUG, not its number. The change folder is changes/{NNNN}-{change-slug}/; the slug is what is unique and meaningful. Two developers minting the same number in parallel is a loud, merge-time naming conflict resolved by a rename — it is expected and acceptable.
Because the number is provisional, every why-link that references THIS change (the spec citing this PRD, issues citing this change) MUST cite the change SLUG, never the bare number. A renumber must never break a why-link.
Write the PRD to {capabilities-root}/{capability-slug}/changes/{NNNN}-{slug}/prd.md.
Frontmatter:
---
change: {NNNN}-{slug}
capability: {capability-slug}
why-link: {resolvable path + section of the capability README.md}
status: draft
approved_by:
approved_on:
---Body — every section is required; sections collapse for a small change but are never absent:
product terms, no implementation language.
data contract" is NOT a user story — it is a technical decision; it does not belong here.
The PRD describes intent and value only. It names no classes, tables, casts, routes, or framework mechanics.
A PRD is approved only by an explicit human act. You cannot approve it; a sub-agent cannot; ambiguous assent ("looks good", "sure") does not count — if the response is vague, ask again.
Steps:
— the problem framing, the scope, the out-of-scope calls — and explicitly invite rejection or revision. Do not present it as a fait accompli; an approval step that can only produce "yes" is theatre.
status: approved, approved_by: {who}, approved_on: {date}.
status to draft and clear approved_by/approved_on. The edited PRD needs fresh human approval. "Approved" must always mean "approved as it now reads."
change-spec's STOP gate checks exactly this: it consumes a PRD only if status: approved and the approval fields are populated and current.
A project's documented decisions outrank this skill. Read them if the project keeps them — change-scope never requires them and never hard-codes their location; the project's CLAUDE.md declares which exist (commonly docs/adr/, docs/postmortem/, docs/learnings/).
When classifying a change to an existing capability (STOP step 1), read the capability's existing PRDs AND any relevant decision records — read the document body, never the title or a commit message. Prior decisions are often what make an otherwise-small change architectural, and that classification is the difference between scoping it properly and routing it to the code gate.
change-scope proposes no decision records and overrides none. A change that contradicts an existing decision is surfaced for a human ruling in the PRD's Open product questions; the technical resolution belongs to change-spec.
Other measured skills in the registry, with their headline benchmark lift.