Add a new build-feature skill to the plan-agent plugin that turns a feature idea into a team-readable feature doc at docs/features/<slug>.md — covering context, users, goals, scope, and risks — ending in a recommended breakdown into smaller sub-feature plans, each with a paste-ready /plan-agent:implementation-plan prompt and a saved prompt for the planning layer.
Teams get a /plan-agent:build-feature command that turns a feature idea into a committed feature doc plus a recommended split into smaller, dependency-ordered plans — without touching the proven build-proposal loop. Done means plan-agent loads at 9.2.0 and the new skill's smoke test passes.
Read and implement all steps in the plan at docs/plans/create-build-feature-skill.md — Create the build-feature skill — feature docs that split into plans. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/create-build-feature-skill.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
More ways to run this plan — goal & workflow prompts, file path
Achieve this goal: Create the build-feature skill — feature docs that split into plans. The plan at docs/plans/create-build-feature-skill.md describes one approach — use it as reference, but optimize for the outcome. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/create-build-feature-skill.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
create-build-feature-skill.html
docs/plans/create-build-feature-skill.html
docs/plans/create-build-feature-skill.md
Context
The story behind this plan — what prompted the work and why it matters now.
The request started as "refactor build-proposal to create a feature rather than a proposal," with the adapt-vs-new decision explicitly left open. Exploration settled it: build-proposal is load-bearing for three other skills — build Step 1b falls through to direct plan authoring only when the proposal stage writes nothing, implementation-plan ships a dedicated --from-prompt mode for its output, and prompt owns a caller-driven proposal type with sha-guarded in-place rewrites. Repurposing it would be a MAJOR bump and would break the should-we loop those skills depend on.
Decisions resolved with the owner on 2026-08-12: create a new sibling skill named build-feature (MINOR bump to 9.2.0); deliver both a markdown feature doc (the team deliverable) and per-sub-feature saved prompts (the planning-layer input); the sub-plan breakdown is recommend-only — generating the actual plans stays a separate user-initiated step. The interview added four more: the skill is model-invocable with trigger phrases disjoint from both siblings; prompts go through the prompt skill's standard path (no prompt-skill edits — the proposal type stays exclusive to build-proposal); prompts are written only at convergence, never per round; and a Tier 0 scale-down gate routes small, already-clear features straight to implementation-plan with no artifact written. build-proposal ships unchanged.
The new skill reuses build-proposal's proven loop shape — tier triage, frame-and-confirm gate, parallel research fan-out, facts-vs-decisions separation, recommendation-first questions — but converges on a different deliverable: a proposal answers "should we?"; a feature doc answers "what are we building, and how does it split into plans?"
Files that change
Every file this plan touches, and what happens to each one.
kit/plugins/plan-agent/skills/build-feature/SKILL.mdnew the skill: frontmatter contract, workflow, dual-deliverable convergencekit/plugins/plan-agent/skills/build-feature/references/feature-doc-shape.mdnew canonical feature-doc section order and the sub-feature breakdown format.claude-plugin/marketplace.jsonmodified bump plan-agent 9.1.1 → 9.2.0; add build-feature to the description's skill list- kit/plugins/plan-agent/
CHANGELOG.mdmodified 9.2.0 entryREADME.mdmodified components-table row and a build-feature section mirroring build-proposal's
- tests/plugins/
test-build-feature.shnew structural smoke test mirroring test-build-proposal.shtest-exitplanmode-guard.shmodified add the new SKILL.md to the guard whitelist
Steps
The step-by-step work, in order — each step says what to do, why it matters, and how to check it worked.
name: build-feature, model: claude-fable-5, a three-part description (≤200 chars total, first sentence ≤80) whose trigger — "feature doc", "break this feature into plans" — shares no phrase with build-proposal's should-we trigger, allowed-tools mirroring build-proposal (Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, ToolSearch, ExitPlanMode, WebSearch, WebFetch, Skill, Agent, Artifact), and argument-hint: "<feature idea> [--dir <path>] [--tier 0|1|2]"
grep -q "^name: build-feature$" on the file passes and the description line measures ≤200 chars with a ≤80-char first sentence./plan-agent:implementation-plan with no artifact written — then frame-and-confirm (restate the feature in one line, confirm via AskUserQuestion before research), tiered parallel research fan-out (codebase Agent in flight before the first web fetch, never blocking), facts-vs-decisions separation with recommendation-first questions, then convergence on the feature doc written to the resolved features directory (planAgent.featuresDirectory via settings precedence, falling back to ${PWD}/docs/features/)
ExitPlanMode first — this workflow mutates state." appears verbatim exactly once./plan-agent:implementation-plan prompt — and, only once the breakdown is settled at convergence (never per round), each sub-feature also gets a saved prompt at <prompts-dir>/feature-<slug>-<sub-slug>.md authored by delegating to plan-agent:prompt through its standard authoring path with an explicit --out and --answers-gathered (no edits to the prompt skill; the proposal type stays exclusive to build-proposal); the skill never invokes implementation-plan itself on Tier 1/2 runs
docs/features/, the feature-<slug>-<sub-slug>.md prompt path, and states prompts are written at convergence; outside the Tier 0 routing line it contains no Skill(skill: "plan-agent:implementation-plan" call.git fetch origin && BASE_REF=main node scripts/check-plugin-versions.mjs passes and grep -c build-feature kit/plugins/plan-agent/README.md is ≥2.bash tests/plugins/test-build-feature.sh and bash tests/plugins/test-exitplanmode-guard.sh both exit 0.Tests
The tests that prove the change does what it promises.
Definition of done
The plan counts as done when every statement below is true — check each one off as you verify it.
Final check
One last pass to confirm the whole change works end to end.
From the repo root: bash tests/plugins/test-build-feature.sh && bash tests/plugins/test-exitplanmode-guard.sh && git fetch origin && BASE_REF=main node scripts/check-plugin-versions.mjs — all three exit 0. Then load the plugin end-to-end: claude --plugin-dir kit/plugins/plan-agent and confirm /plan-agent:build-feature appears in the command list and its help echoes the <feature idea> [--dir <path>] [--tier 0|1|2] argument hint. Finally, git diff origin/main --stat -- kit/plugins/plan-agent/skills/build-proposal/ prints nothing, proving the sibling shipped untouched.
Wrapping up
Three gates that must all pass before this plan is marked completed.
Completion Report
No items to report — all requirements met.