Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Decomposes the product into a considered set of capabilities — turning product/vision.md into capability READMEs. Use when mapping or re-mapping a product's capabilities, or promoting provisional capability stubs into considered capabilities. Refuses to run without an approved product vision. Produces the map as a proposal for human approval; reshaping a populated capability is migrated, never edited.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 1298% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 103% | 0% |
capability-map produces the product's considered capability set — one README.md per capability — by decomposing product/vision.md. It owns the "is this one capability or three" judgment, and it promotes the provisional capability stubs change-scope created during bootstrap into considered capabilities. It produces the decomposition as a PROPOSAL for human approval; on approval it applies the map, migrating the change history of any capability it reshapes. It is the last pipeline skill.
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 capability map you MUST, in order:
product/vision.md. It must exist and bestatus: approved. If there is no vision, or it is unapproved — STOP. You cannot decompose a product that has not been defined; run product-vision first.
vision.md in full and every existingcapability README.md (provisional and considered) with its changes/ history.
decomposition").
it implies against the current capabilities (see "The proposal").
capabilities.
Hard rules:
why-link before the proposal is approved.is real.
Decompose the product — defined by vision.md — into capabilities. A capability is a durable area of the product, named for what it is (watchlists), never for a release or version.
This is a BATCH judgment over the whole product at once, not a stub-by-stub promotion. Holding the vision and the current capabilities together, decide the considered set. You may conclude:
empty considered capability.
Each considered capability cites a vision goal — the goal it serves — as its why-link. A capability you cannot tie to a vision goal is a finding: either the vision is incomplete or the capability is misaligned. Surface it in the proposal; do not invent a goal to cite.
Most runs the provisional set will be broadly sound and the decomposition mostly confirms it with light edits. Reserve merges and splits for where the decomposition genuinely changes shape.
Not every thing in the product is a capability. Some are infrastructure — substrate (DESIGN_PRODUCT_PIPELINE.md §2a): authentication, third-party data feeds, the database. When decomposing, classify each such thing explicitly as infrastructure (not a capability): do NOT invent a vision goal to give it a why-link, and do NOT bury it inside one capability — it sits below the capability layer, consumed directly. If a thing looks like infrastructure but the vision implies users experience it as a product surface, it is a capability and the vision has a gap — flag it, do not misclassify it.
Produce the decomposition as a PROPOSAL before changing anything. The proposal states:
vision goal it cites;
confirmed, mergedinto {x}, split into {x, y}, renamed to {x}, or unchanged;
changes/history, the migration it entails — which changes/ folders move and which why-links must be rewritten;
separately, with no why-link, noted as below the capability layer.
Present the proposal for review and explicitly invite rejection or revision. A skill that can mass-break why-links must not act unreviewed. Nothing in the state tree is rewritten until a human approves the proposal.
Only after the proposal is human-approved, apply it:
README.md: what the capability is, the vision goal it cites, its boundary. Clear any provisional marker. This is the considered description — capability-map's exclusive output.
changes/ history —this is a MIGRATION, applied atomically:
changes/{NNNN}-{slug}/ folders to their newcapability;
why-link and capability: frontmatter field in everyPRD / spec / issues file that referenced the old capability;
A reshape that skips the migration leaves the tree with broken why-links — it is not done until every link resolves again.
removes a capability as a standalone, its changes are folded into whichever capability absorbs them — the history moves, it is never dropped. Erasing shipped history would make the repo lie about what was built.
infrastructure: below the capability layer, consumed by named capabilities, no why-link, no vision goal. Do NOT create a capabilities/{slug}/ folder or a considered README for it — it is not a capability.
When writing or updating a capability README.md, bump its revision and append a matching ## Changelog entry in the same act — what changed and why (promotion from a provisional stub, a reshape, a reconciliation finding). Revision bump and changelog entry are atomic.
After applying, every why-link in the tree must resolve. Verify it.
capability-map is not the only skill that writes a capability README.md: spec-breakdown updates the present-tense README when a change ships. Any skill that writes a capability README is bound by the same atomic revision+changelog rule (see spec-breakdown's "Keeping the repo true").
this skill.
skill.
vision.md exists — NOT this skill; run product-vision first.change-scope (stage 3).NOT this skill; that is spec-breakdown.
vision.md outranks capability-map — the vision is the criterion the decomposition serves; this skill never edits the vision to make a capability fit. If the decomposition exposes that the vision is incomplete, that is a finding for product-vision and a human, surfaced in the proposal — not something to resolve by bending the map.
capability-map reads and writes no decision records; technical decisions are below its concern.
A considered capabilities/{slug}/README.md (this skill's exclusive output):
Frontmatter:
---
capability: {slug}
revision: 1
why-link: {resolvable path + goal in product/vision.md}
status: considered
---Body:
in present tense.
neighbouring one.
newly-promoted capability's first entry is revision 1 — <date> — capability established.
The README is the considered description. The per-change present-tense detail of what the capability currently does is maintained by spec-breakdown on each ship; capability-map owns the considered framing, not the change-by- change present tense.
Other measured skills in the registry, with their headline benchmark lift.