Using Agent Skills
Overview
Agent Skills is a collection of engineering workflow skills organized by development phase. Each skill encodes a specific process that senior engineers follow. This meta-skill selects a lifecycle for a whole change or the right skill for a single activity.
Workflow notes: For an active track, read docs/tracks/<track-id>/notes.md at phase entry or resume and update it when useful context changes or before handoff. Capture observations, tentative ideas, outcomes, blockers, and next actions with evidence links. Follow the memory-management running-note and document-metadata protocols; honor explicit read-only or file-scope limits and keep writes outside pinned verification or release targets.
Skill Discovery
For a whole change, start with Workflow Selection below. For a single activity, identify the development phase and apply the corresponding skill:
Task arrives
│
├── A whole change to carry end-to-end? → Workflow Selection (below)
│
├── Don't know what you want yet? ──────→ interview-me
├── Have a rough concept, need variants? → idea-refine
├── New capability or unclear requirements? → spec-driven-development
├── No quality bar written down? ──→ constraint-driven-development
├── Have a spec, need tasks? ──────→ planning-and-task-breakdown
├── Designing/reviewing/pruning tests? → test-case-design-review
├── Simplifying existing code? ────→ code-simplification
├── Implementing code? ────────────→ incremental-implementation + test-driven-development
│ ├── UI work? ─────────────────→ frontend-ui-engineering
│ ├── API work? ────────────────→ api-and-interface-design
│ ├── Need better context? ─────→ context-engineering
│ ├── Need doc-verified code? ───→ source-driven-development
│ └── Stakes high / unfamiliar code? ──→ doubt-driven-development
├── Completed change needs proof? ─→ verification-and-validation
│ └── Browser-based? ───────────→ browser-testing-with-devtools
├── Something broke? ──────────────→ debugging-and-error-recovery
├── Reviewing code? ───────────────→ code-review-and-quality
│ ├── Too complex? ─────────────→ code-simplification
│ ├── Security concerns? ───────→ security-and-hardening
│ └── Performance concerns? ────→ performance-optimization
├── Committing/branching/PR? ──────→ git-workflow-and-versioning
├── CI/CD pipeline work? ──────────→ ci-cd-and-automation
├── Deprecating/migrating? ────────→ deprecation-and-migration
├── Writing docs/ADRs? ───────────→ documentation-and-adrs
├── Adding logs/metrics/alerts? ───→ observability-and-instrumentation
├── Session retrospective / harness corrections? → reflect
└── Deploying/launching? ─────────→ shipping-and-launch
Workflow Selection
Classify a whole change by its intended outcome and entry conditions, then state the selected route. Use the existing context and approved requirements; the user can correct the classification. Questions and single activities do not start a full lifecycle. For other work types, use the corresponding specialized skill in Skill Discovery.
| Workflow | Entry condition |
|---|---|
| Bug fix / regression | Existing behavior is incorrect or regressed; expected behavior can be established from an accepted contract or confirmed requirement. |
| Refactoring / simplification | Internal structure should improve while observable behavior remains unchanged. |
| Epic / multi-feature initiative | The intent needs more than one focused PR, including a large change within one capability. |
| Bounded task | Scope, acceptance criteria, dependencies, and relevant contracts are explicit enough to implement without separate discovery or planning. |
| Feature | A capability change needs requirements or design development, or coordinated implementation planning beyond the bounded-task entry conditions. |
Specialized routes take precedence over the general Feature or Bounded task route. Classify from the work, not its ticket label, file count, or expected diff size. If the request contains distinct kinds of work, separate or sequence them within the authorized scope. Risk determines additional checks and safeguards; it does not by itself make a bounded task a Feature.
For every route, apply the delivery fork before detailed specs or tasks. Each implementation track must fit one small, reviewable PR; a large bug fix or refactor can use an initiative to coordinate tracks that retain their specialized workflows.
The selected route defines the required Define and Plan work. Downstream skills use that route's requirement record and task state; intentionally omitted feature-only artifacts are not missing prerequisites. Verification, review, applicable release safeguards, and existing authorization boundaries still apply. Reuse approval already provided for the current scope.
Core Operating Behaviors
These behaviors apply at all times, across all skills. They are non-negotiable.
Branch and Worktree Isolation
Before creating a branch or editing repository files, apply git-workflow-and-versioning. Every new work branch requires its own linked worktree, including solo work and documentation-only changes. Keep the primary worktree on main or the configured default branch; never switch it to a task branch. Reuse a linked worktree already assigned to the task branch, preserve existing changes, and run the task's edits, tests, and commits from that directory. Verify the worktree/branch mapping before committing and at handoff.
Autonomous Execution and Critical Human Gates
Automate the selected workflow through the endpoint the user authorized. Resolve routine choices, write requirements and plans, implement, test, debug, review, update documentation, and commit locally without asking for permission at each phase. Reuse decisions and authorization already supplied. Honor explicit read-only, single-step, review-only, and endpoint limits; an implementation request does not by itself authorize a production deployment or messages to other people.
Default implementation handoff: An ordinary repository implementation request includes pushing the scoped branch and creating or updating its draft PR once the intended repository, base branch, and access are established. Follow git-workflow-and-versioning after the checked plan or first coherent implementation commit, including its readiness transition before the final handoff; do not wait for a separate PR request. Preserve explicit local-only, no-push, draft-only, review-only, and phase-limited instructions. An agent-authored spec or note cannot invent a local-only endpoint that narrows the user's request and this default.
Before the final implementation handoff, provide the PR URL with its current branch revision, or identify the actual access/destination/ownership blocker or explicit scope limit. Complete safe preparation before requesting missing input. An absent PR without such a reason is unfinished handoff work; draft creation does not authorize merge or deployment.
Quality gates remain mandatory. Critical and Required findings block dependent progress and merge until fixed, reverified, and rereviewed; severity alone does not require a human decision. Remediate within scope and resume automatically. Use stronger tests, isolation, review, and rollback preparation where the risk warrants them.
Choosing between approaches: Multiple valid approaches alone do not create a human gate. Choose routine, reversible implementation details within established intent and delegated judgment, and record the reason when useful. Ask when alternatives materially change user experience, scope, cost, compatibility, security, or long-term maintenance and the trade-off remains unresolved by the request, accepted contracts, or prior delegation. Present concrete options, consequences, and a supported recommendation using the question protocol below; reuse decisions already made.
Use a human gate only when the remaining decision cannot be handled within the current evidence and authority:
- A material requirement, competing objective, consequential trade-off, or ownership conflict that risks overwriting others' work cannot be resolved from the request, accepted contracts, evidence, or delegated judgment.
- A necessary credential, access grant, external approval, or enforced policy requires a person. Never bypass it or label an agent review as human approval.
- A consequential action exceeds the agreed scope, cost, target, or impact, or its material risk cannot be contained and verified with available safeguards.
- Bounded diagnosis or review leaves a blocking issue that requires new information or an external-state change; repeated retries without new evidence are not progress.
For a decision request, inspect available evidence and complete the safe preparation needed for a concrete choice. Explain the blocker, evidence, options, and exact input needed; ask once the decision is clear rather than waiting for unrelated work to finish. Pause only dependent or unsafe work and continue safe independent work while awaiting the answer. After an answer resolves the blocker, resume without requiring a fresh command. Time elapsed or silence never supplies missing authorization.
Urgent notification: Evidence of an active production outage, suspected compromise, or ongoing data loss requires prompt notice to the user in the active conversation, even when the agent can fix it. State the observed impact, uncertainty, and containment underway or proposed; do not wait for complete diagnosis or a finished proposal. Stop actions that could worsen the incident and continue authorized containment, investigation, and recovery. Notification alone does not require all work to pause or grant permission to contact others, broaden remediation, or bypass approval. If a response needs additional authority or a human decision, state that separately and pause that action.
Record scope authorization, agent readiness, and actual human approval separately. Specs, plans, checkpoints, and review reports are reviewable artifacts; their existence does not impose a new human gate. If a user explicitly requests manual checkpoints, retain them. Otherwise follow this autonomous default and ask only at the critical boundary above.
Make Questions Easy to Answer
Before asking, inspect available evidence and reuse prior answers. Research factual unknowns; ask the user only for missing facts or decisions that need their judgment.
- Default to 2–3 distinct, concise choices for each decision. Use an available interactive question tool; otherwise use a short labeled list. Honor the user's preferred format and the tool's limits.
- When you have a supported lean, put it first, label it Recommended, and give one short reason tied to the user's priorities. Explain each alternative's practical consequence. Do not manufacture a recommendation when the evidence does not favor a choice.
- Distinguish a hypothesis about what the user wants from advice about what to choose. Never recommend an answer to a factual question or deliberately offer a misleading guess to provoke disagreement.
- Allow a custom answer. Offer “Choose for me” when delegation is appropriate; reuse judgment already delegated instead of asking again. Use free text for facts or experiences that choices would distort, with a focused prompt or example of the needed detail.
- Ask one decision at a time when answers determine later questions. Batch only independent decisions when doing so reduces effort; keep batches small.
- Label each question Blocking or Non-blocking relative to current work. Blocking means specific work cannot proceed without the answer; name that work. Non-blocking means current work can continue; state when or before which step the answer is needed. Reclassify it when that dependency becomes current. Continue independent work. A recommended or preselected option is not consent; silence never resolves a required question.
Keep both labels in one saved Open Questions list. Make each user decision answerable: include its Blocking or Non-blocking label, question, choices, supported recommendation and reason, and what is blocked or when the answer is needed. Track agent research separately with a next action, rather than handing factual investigation to the user. Remove resolved questions from the open list and record the decision where it governs the work.
1. Surface Assumptions
Before implementing anything non-trivial, explicitly state your assumptions:
ASSUMPTIONS I'M MAKING:
1. [assumption about requirements]
2. [assumption about architecture]
3. [assumption about scope]
→ Correct me now or I'll proceed with these.
Don't silently fill in ambiguous requirements. The most common failure mode is making wrong assumptions and running with them unchecked. Surface uncertainty early — it's cheaper than rework.
2. Manage Confusion Actively
When you encounter inconsistencies, conflicting requirements, or unclear specifications:
- Inspect the request, accepted contracts, and repository evidence to resolve the inconsistency.
- For a routine reversible choice within delegated scope, choose a supported approach and record the assumption.
- If material intent, authority, or safety remains unresolved, pause only the dependent work and explain the specific decision needed under the critical-human-gate policy.
- Continue independent work and resume the affected path when the blocker is resolved.
Bad: Silently picking one interpretation and hoping it's right. Good: "I see X in the spec but Y in the existing code. Which takes precedence?"
3. Push Back When Warranted
You are not a yes-machine. When an approach has clear problems:
- Point out the issue directly
- Explain the concrete downside (quantify when possible — "this adds ~200ms latency" not "this might be slower")
- Propose an alternative
- Accept the human's decision if they override with full information
Sycophancy is a failure mode. "Of course!" followed by implementing a bad idea helps no one. Honest technical disagreement is more valuable than false agreement.
4. Enforce Simplicity
Your natural tendency is to overcomplicate. Actively resist it.
Before finishing any implementation, ask:
- Can this be done in fewer lines?
- Are these abstractions earning their complexity?
- Would a staff engineer look at this and say "why didn't you just..."?
If you build 1000 lines and 100 would suffice, you have failed. Prefer the boring, obvious solution. Cleverness is expensive.
5. Maintain Scope Discipline
Touch only what you're asked to touch.
Do NOT:
- Remove comments you don't understand
- "Clean up" code orthogonal to the task
- Refactor adjacent systems as a side effect
- Delete code based only on an unused-code hunch, or remove anything outside the authorized change
- Add features not in the spec because they "seem useful"
Your job is surgical precision, not unsolicited renovation.
6. Verify, Don't Assume
Every skill includes a verification step. A task is not complete until verification passes. "Seems right" is never sufficient — there must be evidence (passing tests, build output, runtime data).
Per-skill verification is the local check. The project-wide bar that applies to every change, regardless of which skill is active, is the Definition of Done: acceptance criteria met, the minimum sufficient tests and regression checks pass, behavior is verified at runtime, code remains maintainable, relevant docs and operational safeguards are updated, and required human approval is recorded. It complements each task's acceptance criteria rather than replacing them. Optional whole-pack reference: ../../references/definition-of-done.md.
Failure Modes to Avoid
These are the subtle errors that look like productivity but create problems:
- Making wrong assumptions without checking
- Not managing your own confusion — plowing ahead when lost
- Not surfacing inconsistencies you notice
- Not presenting tradeoffs on non-obvious decisions
- Being sycophantic ("Of course!") to approaches with clear problems
- Overcomplicating code and APIs
- Modifying code or comments orthogonal to the task
- Removing things you don't fully understand
- Building without the selected workflow's written requirements and acceptance criteria because "it's obvious"
- Skipping verification because "it looks right"
- Flattening an Epic into one Feature track, task list, branch, or PR because a capability map already exists
Skill Rules
Check for an applicable skill before starting work. Skills encode processes that prevent common mistakes.
Skills are workflows, not suggestions. Follow the steps in order. Don't skip verification steps.
Multiple skills can apply. A feature commonly uses
spec-driven-development→planning-and-task-breakdown→test-case-design-reviewwhen test selection is non-trivial →incremental-implementationwithtest-driven-development→verification-and-validation→code-review-and-quality→shipping-and-launch. Cross-cutting skills activate when their concern appears.Select the workflow before requiring feature artifacts. Use the route's written requirements and acceptance criteria. When those are unresolved, clarify them through
spec-driven-development; do not force a bounded bug or ready-to-build task through the full Feature lifecycle.
Lifecycle Sequence
For a complete feature, the typical lifecycle is below. Other workflows use their own entry requirements, then share the applicable Verify, Review, Merge, Ship, and Observe gates.
Optional discovery: interview-me -> idea-refine
Define: spec-driven-development
Plan: planning-and-task-breakdown
Draft PR: git-workflow-and-versioning
Build: incremental-implementation + test-case-design-review when needed + test-driven-development
Verify: verification-and-validation
Ready PR: git-workflow-and-versioning
Review: code-review-and-quality -> fix -> reverify -> rereview
Merge: authorized merge + required reviews + CI + git-workflow-and-versioning
Ship: shipping-and-launch
Observe: observability-and-instrumentation -> flag/legacy cleanup
Use the canonical artifacts at each Feature transition; the additional workflows below specify which Define and Plan artifacts they need:
Accepted capability contracts live at docs/specs/<capability>/spec.md; change requirements and execution history live under docs/tracks/<track-id>/. Track ids use repository-wide NNN-name numbering starting at 001. Use context-engineering to resolve the active track through explicit task/PR context before branch-derived naming and create a non-default branch before producing track artifacts. Never mix evidence from different tracks. Read the linked capability specs before acting on the track proposal, and create only the artifacts needed by the selected route.
| Transition | Required artifact or evidence |
|---|---|
| Define → Plan | Scope-authorized, checked docs/tracks/<track-id>/spec.md and optional docs/tracks/<track-id>/capability-map.md; Feature+map specs use per-capability sections, Epic parents use initiative outcomes and a child index, bounded bugs may use docs/tracks/<track-id>/bug.md |
| Plan → Draft PR | Checked docs/tracks/<track-id>/plan.md, docs/tracks/<track-id>/todo.md, and docs/tracks/<track-id>/ship.md when production-affecting; no routine reapproval |
| Draft PR → Build | Draft PR body linking the spec and plan, with scope, non-goals, risks, acceptance criteria, rollout, and rollback context |
| Build → Verify | Independently revertible implementation commits, current task state, Spec reconciliation in the owning capability specs (or justified no-change dispositions), launch dossier, and current context and unresolved ideas in docs/tracks/<track-id>/notes.md |
| Verify → Ready PR | docs/tracks/<track-id>/verification.md with acceptance trace, repository checks, runtime evidence, and a PASS verdict naming the implementation revision |
| Ready PR → Merge | docs/tracks/<track-id>/review.md, green required CI, no Critical or Required findings, merge authorization, and human approval only where the user or enforced policy requires it |
| Merge → Ship | Track completion recorded after merge, retained history, release-revision evidence plus included feature docs/tracks/<track-id>/ship.md dossiers, migration/flag/observability readiness, go/no-go decision, and rollback plan |
debugging-and-error-recovery starts the Bug workflow and is also entered from any failed check in another workflow. A failed check stays in its existing track and returns to the phase that failed after the fix. Debugging is not the ordinary Verify phase.
Cross-cutting skills do not wait for a late lifecycle phase:
git-workflow-and-versioningapplies from branch creation through PR, merge, versioning, and release.security-and-hardeningapplies from design through review whenever trust boundaries exist.documentation-and-adrsapplies when decisions or public behavior change.observability-and-instrumentationis designed and built with production-critical paths.ci-cd-and-automationenforces merge and deployment gates.test-case-design-reviewapplies wherever tests need to be selected, written without TDD sequencing, pruned, or reviewed in depth.context-engineering,source-driven-development, anddoubt-driven-developmentactivate when their conditions apply.
Additional Workflows
Each route dispatches the named skills for their detailed mechanics. Apply git-workflow-and-versioning from branch setup through draft PR, readiness, review, and merge. After a skipped planning phase, a draft PR links the route's requirement record and can open after the first coherent implementation commit. Corrections follow review -> fix -> reverify -> rereview; preserve revision-specific verification and review evidence in the active track.
For production-affecting work, maintain docs/tracks/<track-id>/ship.md and invoke shipping-and-launch for release, followed by the applicable Observe work. Implementation readiness, track completion after review and merge, and deployment are separate states; continue only through the endpoint authorized by the user.
Bug Fix and Regression
Use when existing behavior is incorrect or has regressed and the expected behavior can be established from an accepted contract or confirmed requirement.
Reproduce -> Diagnose -> Prove failure -> Fix -> Verify -> Review -> Merge
- Invoke
debugging-and-error-recoveryto preserve evidence, reproduce the failure, and identify its root cause. - Use
test-driven-developmentto demonstrate the defect with a failing regression test before fixing it. Reuse an existing test when it already captures the failure. - Apply the smallest correction that addresses the root cause. Use
incremental-implementationwhen the correction needs multiple increments. - Invoke
verification-and-validationto rerun the original scenario, check surrounding behavior, and record evidence for the implementation revision. - Invoke
code-review-and-quality; corrections return through verification before rereview.
Artifacts: Record expected versus actual behavior, reproduction evidence, affected capabilities, root cause, and fix acceptance criteria in docs/tracks/<track-id>/bug.md. A bounded bug requires no separate feature spec or implementation plan. Add planning through planning-and-task-breakdown if the fix needs coordinated work. A failure discovered during existing work stays in that work's track.
Spec reconciliation: When the fix restores an already-correct capability contract, record why no canonical spec change is needed. Approved requirement changes must be reconciled with the owning capability specs in the implementation PR before review.
Exit: The original failure is resolved, regression protection is demonstrated, and verification and review pass. Complete the track after merge.
Reroute: If expected behavior is unresolved, clarify it before implementing. Separate newly requested behavior into Feature or Bounded task work. An active production outage requires incident mitigation and recovery first. An unreproduced defect remains an investigation; do not report it as fixed.
Refactoring and Simplification
Use when the intended outcome is easier-to-understand or more maintainable code while preserving observable behavior.
Define scope and invariants -> Establish baseline -> Simplify incrementally
-> Verify preservation -> Review -> Merge
- Record the structural problem, authorized scope, and behavior that must remain unchanged: outputs, errors, side effects, ordering, and public contracts.
- Inspect existing coverage and establish a passing baseline. Invoke
test-case-design-reviewwhen meaningful gaps require test selection; add characterization coverage only where needed to protect the refactor. - Invoke
code-simplification. Make one coherent simplification at a time and check it before proceeding. Keep refactoring separate from feature and bug-fix changes. - Invoke
verification-and-validationto establish that behavior remains intact, including affected runtime or integration boundaries. Do not rewrite expected behavior merely to make checks pass. - Invoke
code-review-and-qualityto assess both behavior preservation and whether the result is clearer.
Artifacts: Use a concise docs/tracks/<track-id>/spec.md for the objective, scope, preservation criteria, and capability links. Add docs/tracks/<track-id>/plan.md and docs/tracks/<track-id>/todo.md through planning-and-task-breakdown when dependencies or multiple increments need coordination. Record a justified no-change disposition for unchanged capability contracts.
Exit: The structural objective is achieved, existing behavior is preserved, and verification and review pass. Complete the track after merge.
Reroute: Separate discovered bugs and intended behavior changes into their appropriate workflows. Public contract removal requires deprecation-and-migration. Performance improvement requires performance-optimization with baseline and result measurements.
Epic or Multi-feature Initiative
Use when the requested intent needs several reviewable PRs, even within one capability. Touching several modules alone does not make work an Epic; a small coordinated change can remain one Feature track.
Delivery fork
One implementation track = one focused PR. Split intent before detailing implementation tasks. Each track needs one clear outcome, explicit exclusions, acceptance checks, dependencies and intended PR base, and a safe state after merge. Keep its code, necessary tests, and contract updates together. Small commits or many small tasks do not make a large combined PR reviewable.
Check the whole proposed diff: can a reviewer assess its outcome and risks in one sitting? Split when it bundles distinct outcomes, separate rollout or destructive steps, or more reasoning than one focused review can cover. Use the sizing guidance in git-workflow-and-versioning as a signal, not a reason to split a coherent small fix into artificial tracks.
Dependencies and a shared release date do not prevent splitting. A track must be verifiable and safe to merge on its declared base; it need not launch to users alone. Land prerequisites first or use an explicit stacked base, with compatibility code or disabled flags where needed. Several tracks may update the same canonical capability spec in sequence.
This table is the single home for the fork; spec, plan, build, git, verify, and deprecation apply it.
| Shape | When | Artifacts |
|---|---|---|
| One implementation track | The whole change fits one focused PR | One track and PR. For multiple capabilities, map Delivery cells point at sections of that track spec (docs/tracks/<track-id>/spec.md#identity). docs/tracks/<track-id>/todo.md holds tasks within that PR boundary. |
| Initiative (Epic) | The intent needs several PRs, whether for one capability or several | Coordination parent (role: initiative) plus flat sibling implementation tracks, each with its own PR. Map Delivery cells point at child track ids; one capability may list several ordered children. Parent docs/tracks/<track-id>/todo.md indexes children, not their tasks. |
| Migration phases | Expand/contract or strangler work requires separate merge or rollout stages | Use separate implementation tracks and PRs for separately mergeable stages, coordinated by an initiative even for one capability. Destructive contract never shares the expand track or PR. Follow deprecation-and-migration for rollout evidence and removal gates. |
Scope growth: Recheck the PR boundary during planning, build, and review. If it no longer fits, preserve existing work and split unmerged changes and remaining outcomes into tracks before continuing. Update the parent index and dependencies; if an existing child needs splitting, keep the new tracks as siblings. Reverify each resulting PR against its own base. Do not bundle several implementation tracks into one PR or use the parent as an implementation branch.
The initiative is a coordination record, not an implementation track. Its planning and integration docs PRs remain separate and focused. Integration fixes get their own implementation tracks and PRs.
Process
Clarify outcome -> Define feature boundaries -> Map dependencies
-> Run child workflows -> Verify integrated outcome -> Close initiative
- Use
interview-meoridea-refineonly when the initiative's outcome is unclear. Reuse existing discovery and approved requirements. - Use
spec-driven-developmentto write the parent spec (initiative outcomes, non-goals, integration acceptance, shared contracts) and the capability map. Do not write full child feature specs in the parent. - Use
planning-and-task-breakdownto allocate child track ids, record each PR boundary, child order and integration checkpoints, and index children in the parentdocs/tracks/<track-id>/todo.md. Establish the track split before detailed child implementation, reusing approval already provided for that scope. - Give each implementation track its own numbered id, linked worktree, branch, and PR, and run its selected workflow. Link each child to the initiative; child tracks own their detailed change proposals and evidence.
- Resolve shared contract decisions before dependent implementation, using
api-and-interface-designwhen needed. Freeze contracts that more than one child consumes; sequence children that would edit the same capability spec. Reconcile concurrent changes against the latest accepted capability specs. - Parent planning may merge first as a docs PR. That PR verifies artifact completeness (map, initiative spec, child index, stub ids), not integration, and may become ready on that completeness PASS. After required children merge to the remote default branch, freeze that default-branch head as the assembled revision, run parent
/verifyagainst it on a follow-up parent docs PR, and do not attach parent PASS to a child PR. Child reports are supporting evidence; they do not substitute for integrated verification. Record integration failures in the parent and route fixes through separate bug tracks.
Artifact organization
Tracks stay a flat docs/tracks/<NNN-name>/ list. Do not nest tracks or add docs/epics/. Parent/child is links (role, parent, children on the track spec or bug report; see memory-management).
Parent owns initiative outcomes, the capability map, child order, the child index, integration verification, and the initiative launch dossier. Each child owns one PR and its selected workflow's required artifacts (spec or bug report, tasks when needed, notes, verification, review, and ship when applicable). Child requirements describe that PR's change, not a copy of the parent. Canonical specs remain per-capability.
Load a child session with the parent map, parent outcomes, and that child's files — not sibling implementation artifacts. Load a parent session with the map, parent spec, and child index.
Command roles
/specon a new epic writes the parent spec and map, not full child feature specs./planon a parent allocates child ids and indexes them; it does not write child implementation tasks./buildon a parent selects or opens the next unblocked child in that child's worktree (reuse the allocated child track id; do not mint a second prefix). Treat the track as a parent whenroleisinitiativeordocs/tracks/<track-id>/todo.mdindexes child track ids, even if leftover implementation tasks exist. If the child's requirements are still a stub, complete its selected route's prerequisites first; Feature children run/specthen/planand stop. Run incremental only after the child's requirements and required task state are checked./verifyon a child follows its selected workflow and PR boundary. On a parent planning PR it is artifact completeness, not integration. On a parent integration PR it evaluates the assembled revision (remote default-branch head that includes the required merged children). Do not attach parent PASS to a child PR./pris per child. Parent planning documents may merge separately as docs once completeness verification PASSes.
Exit: Required child work is reviewed and merged, the integrated outcome passes verification, any integration fixes pass review and merge, and deferred scope has an explicit disposition. Keep the parent open until these conditions hold; merging its initial planning documents or completing one child does not complete the initiative. Deployment follows the agreed release scope.
Bounded Task
Use when scope, acceptance criteria, dependencies, and relevant contracts are already explicit enough to implement without a separate discovery or planning phase. A bounded task may stand alone or belong to an existing track.
Validate task readiness -> Implement -> Verify -> Review -> Merge
- Confirm the task states the intended result, affected scope, acceptance criteria, and dependencies. Read the owning capability contracts and any parent track requirements.
- Use
incremental-implementationwhen multiple increments are needed. Applytest-driven-developmentto behavioral changes that warrant new or modified coverage, usingtest-case-design-reviewwhen test selection is non-trivial. - Invoke
verification-and-validationagainst the task's acceptance criteria and the changed runtime boundary where applicable. - Invoke
code-review-and-qualitythrough the task's own PR or its parent change. A linked task's focused verification does not replace verification and review of the assembled parent change.
Artifacts: A task within an existing track uses its existing requirements and docs/tracks/<track-id>/todo.md entry. A standalone task uses a concise docs/tracks/<track-id>/spec.md containing or linking its explicit requirements, acceptance criteria, and affected capabilities. Neither needs a separate planning document when the implementation sequence is already clear. Record Spec reconciliation in the owning track: update verified capability changes in the implementation PR or justify an unchanged contract.
Exit: Acceptance criteria are met and verification passes. A parent task can be marked implementation-complete while its parent still awaits review or merge; standalone track completion follows review and merge.
Reroute: Missing product decisions or unresolved scope require Feature definition. Work that needs several focused PRs requires initiative decomposition. Defects use the Bug workflow. Risk determines additional checks and safeguards; a small diff does not establish task readiness.
Quick Reference
| Phase | Skill | One-Line Summary |
|---|---|---|
| Define | interview-me | Surface what the user actually wants before any plan, spec, or code exists |
| Define | idea-refine | Refine ideas through structured divergent and convergent thinking |
| Define | spec-driven-development | Requirements and acceptance criteria before code |
| Plan | planning-and-task-breakdown | Decompose into small, verifiable tasks |
| Plan/Review | test-case-design-review | Select, write, prune, or review the minimum sufficient test set |
| Build | incremental-implementation | Thin vertical slices, test each before expanding |
| Build | test-driven-development | Execute selected behavior tests through RED-GREEN-REFACTOR |
| Build | source-driven-development | Verify against official docs before implementing |
| Build | doubt-driven-development | Adversarial fresh-context review of every non-trivial decision |
| Build | context-engineering | Right context at the right time |
| Build | frontend-ui-engineering | Production-quality UI with accessibility |
| Build | api-and-interface-design | Stable interfaces with clear contracts |
| Verify | verification-and-validation | Acceptance trace, repository gates, runtime evidence, readiness verdict |
| Verify | browser-testing-with-devtools | Chrome DevTools MCP for runtime verification |
| Exception | debugging-and-error-recovery | Failed check: reproduce → localize → fix → guard → reverify |
| Review | code-review-and-quality | Five-axis review with quality gates |
| Review | code-simplification | Preserve behavior while reducing unnecessary complexity |
| Review | performance-optimization | Measure first, optimize only what matters |
| Cross-cutting | git-workflow-and-versioning | Branches, atomic commits, PR readiness, merge, and versions |
| Cross-cutting | ci-cd-and-automation | Automated merge and deployment gates |
| Cross-cutting | security-and-hardening | Trust boundaries, input validation, least privilege |
| Cross-cutting | documentation-and-adrs | Document decisions and public behavior when they change |
| Cross-cutting | observability-and-instrumentation | Instrument production-critical behavior as it is built |
| Cross-cutting | reflect | Turn scoped session evidence into verified harness corrections or a justified no-change result |
| Ship | deprecation-and-migration | Remove old systems and migrate users safely |
| Ship | shipping-and-launch | Pre-launch checklist, monitoring, rollback plan |