Project Context
- CLAUDE.md: !
find . -maxdepth 1 -name "CLAUDE.md" -type f - project-discovery.md: !
find . -maxdepth 3 -name "project-discovery.md" -type f
Operating Principles
- The feature specification is the ground truth for what. This skill plans how. Do not re-open behavioral decisions the specification already settled; flag contradictions as Open Questions for the user.
- The project-manager is the coordinator, not the author of every section. It facilitates rounds of discussion among specialists, tracks claims and evidence, and decides when the plan is ready. Specialists own their domains.
- Always include
junior-developeron the team. When decisions lack strong evidence, the junior-developer reframes the issue in plain terms first — that frequently unlocks a resolution without needing the user. - Escalate to the user only when evidence and reframing have both failed. Every escalation surfaces with a full description, the evidence considered, and a recommended answer.
- Done is when the project-manager says so. The loop exits when the project-manager reports the plan is ready to commit, or that only user-input items remain. The user is not asked to keep iterating past that point.
- YAGNI is a first-class operating principle, applied to implementation choices. The implementation plan inherits the spec's behavioral commitments but applies the evidence-based YAGNI rule from ../../references/yagni-rule.md independently to abstractions, configuration knobs, observability, runbooks, infrastructure, rollout machinery, test scaffolding, schema columns, indexes, and any other implementation artifact the plan recommends. Items that fail the evidence test get demoted to a
## Deferred (YAGNI)section infeature-implementation-plan.mdwith the reopening trigger named; items where a strictly simpler implementation satisfies the same evidence get the simpler implementation recorded as the decision and the larger version underRejected alternatives:. The Sentry-runbook-on-staging-only-Sentry pattern is the named project precedent — operational machinery shipped before the system that drives it actually produces the data, traffic, or failures it covers is YAGNI by default. Every committed implementation item is ongoing maintenance and a pattern future agents will copy. - All sub-agents in this skill run on sonnet. When launching any Agent tool call in this skill, pass
model: "sonnet". The exception is the project-manager synthesis step in Step 8, which may run on its default model (opus) — pass no model override there. - Keep the plan at planning altitude. Name and reference config and code artifacts; do not inline their full contents. Inline only the specific values that are themselves decisions (a flag default, a key name, a threshold). A full file block — a complete plist, a whole config file, a multi-line XML or JSON document — belongs in the file it configures, not in the plan. YAGNI gates whether an item is included; this principle gates how verbose an included item is.
- The plan lives in three cross-referenced files.
feature-implementation-plan.mdis the primary plan and lives at the root of{folder}/;implementation-decision-log.mdrecords every decision andimplementation-iteration-history.mdrecords each round of discussion — both companion artifacts live in{folder}/artifacts/to keep the planning folder uncluttered. The main plan cites decisions with inline([D-N](artifacts/implementation-decision-log.md#...))links for non-obvious claims. The decision log and iteration history cross-link throughDriven by rounds:/Decisions produced:fields (they sit as siblings insideartifacts/), and both link back into the plan throughReferenced in plan:/Changed in plan:fields using../feature-implementation-plan.md. Any edit to one file requires updating the matching fields in the others.
Plan an Implementation
Step 1: Locate the Feature Specification
Read the user's argument and conversation context to identify the source artifact. The expected input is a feature-specification.md produced by the plan-a-feature skill, but any document describing what the feature should do is acceptable (PRD, design doc, product brief).
Resolve the source path:
- If the user provided a file path, use it.
- Otherwise, search for a recent
feature-specification.mdunderdocs/features/,docs/plans/, or other documentation roots discovered via CLAUDE.md orproject-discovery.md. If multiple candidates exist, ask the user which one. - If no feature specification exists, tell the user this skill requires one and recommend running
plan-a-featurefirst.
Three files will be written. The primary plan lives at the root of {same-folder-as-source}/; the two companion artifacts live in {same-folder-as-source}/artifacts/ (which may already exist if the source spec came from plan-a-feature — share the same subfolder rather than creating a second one):
{same-folder-as-source}/feature-implementation-plan.md— the primary plan.{same-folder-as-source}/artifacts/implementation-decision-log.md— every committed implementation decision with rationale, evidence, and rejected alternatives.{same-folder-as-source}/artifacts/implementation-iteration-history.md— round-by-round record of specialists engaged, questions raised, and how each was resolved.
Create the artifacts/ subfolder before writing the companion files if it does not already exist.
The three files cross-reference each other. The main plan cites decisions with inline parenthetical links like ([D-3](artifacts/implementation-decision-log.md#d-3-rollout-strategy)); the decision log and iteration history cross-link through Driven by rounds: / Decisions produced: fields (siblings inside artifacts/), and both link back into the plan through Referenced in plan: / Changed in plan: fields via ../feature-implementation-plan.md.
If any of the three files already exist, ask the user whether to overwrite or append iteration notes before proceeding.
Read the full specification into context. If the specification is a feature-specification.md produced by plan-a-feature, also read its companion decision-log.md, team-findings.md, and feature-technical-notes.md if it exists — these live in {same-folder-as-source}/artifacts/ (the same subfolder this skill will write to). Fall back to reading them from {same-folder-as-source}/ directly for spec folders produced before the artifacts layout was introduced. The feature-technical-notes.md file is lazily created by plan-a-feature — its absence means no load-bearing mechanics were captured at spec time, not that the spec is incomplete. Note the decisions already settled, any open items the spec flagged, the review team findings, and any committed technical mechanics the plan must honor.
Detect tech-notes presence once, here. Record whether feature-technical-notes.md exists. If it does NOT exist, omit every T#-related sentence from agent briefs (Step 4), the spec-maturity tag set (Step 5), and the synthesis inputs (Step 8) — do not add boilerplate qualifiers like "if it exists" to those briefs. The T#-contradiction spec-maturity classification simply does not apply when there are no T# notes, so the spec-maturity gate reduces to the spec-level threshold alone.
Step 2: Discover Implementation Context
Before launching the team, gather the context specialists will need to produce evidence-backed recommendations. Use Glob and Grep to find:
- CLAUDE.md, AGENTS.md, and
project-discovery.md— tech stack, languages, frameworks, build tools, test runners. - ADRs in
docs/adr/ordocs/architecture/decisions/— architectural decisions the implementation must respect. - Coding standards in
docs/coding-standards/or.github/CODING_STANDARDS.md— rules the implementation must fo