Execute Spec
Execute the spec file provided.
Input
Path to spec file (e.g. docs/ai/features/specs/{feature-name}.md)
Hard Constraints — non-negotiable
- Read the spec before making code changes
- Treat the spec as the source of truth for behavior
- Do NOT create durable plan artifacts by default
- Do NOT invent new product behavior during execution
- If the spec is missing a required product decision, stop and ask
- If the spec turns out to be too broad for one safe implementation pass, stop and ask the human to rescope the spec
- Use only lightweight local exploration needed to implement the current change safely
Startup
- Read the spec file completely
- Identify the execution contract, approved decisions, acceptance criteria, detailed technical design, implementation sequence, verification matrix, and open questions
- If critical product behavior is unresolved:
- Stop and ask instead of guessing
- If the spec is executable:
- Implement directly from the spec
- If the spec is executable in principle but too broad, too mixed, or not sliceable in one pass:
- Stop
- Report that the spec needs human rescoping before execution continues
- Point to the relevant ACs or sections causing the problem
Execution Process
- Use the spec as the only durable execution contract
- Break the work into temporary internal steps only as needed
- Explore the nearby codebase just enough to implement safely
- Reuse existing repository patterns when possible
- Choose the smallest verification evidence that fits the changed behavior:
- Default for observable user behavior: leave concrete runtime/E2E evidence for
/verify-runtime and human-only judgment for manual verification surfaced by /manual-checklist
- Run relevant existing automated tests when the repository already has them
- Add or update a focused automated test only when it has clear regression value: non-trivial validation or business rules, permission/authorization, persistence or state transitions, integration boundaries, or a regression bug being fixed
- Do not introduce a test suite, test infrastructure, or unit/integration tests merely to satisfy a workflow ritual
- Validate changed behavior where practical
- Record important implementation decisions in the execution summary without modifying the approved spec
- Do not invent thresholds, scoring weights, ranking formulas, fairness rules, or tie-breakers in code unless they already exist in the spec or are explicitly recorded under
### Agent-Chosen Technical Details
- If execution requires choosing one of those rules to complete the slice safely, stop and ask the human instead of leaving it implicit in code
- If the spec says the logic should be transparent, visible, simple, or non-hidden, do not implement it as an opaque weighted score or hidden heuristic
- In those cases, prefer readable rule chains, named tie-breakers, or UI-visible reasons that can be traced back to the spec
Iterative Feedback
- Human feedback may trigger additional edit turns after the initial implementation
- Continue refining the code until the requested behavior settles
- Do not rewrite the spec automatically during these turns unless the user explicitly asks
- Do not silently absorb extra scope discovered during execution; stop and ask the human to rescope it
- When the code has stabilized, finish the execution summary and leave the approved spec unchanged
- The human may invoke
/sync-spec separately when they intentionally want to reconcile the spec
After Execution
Write summary to docs/ai/features/summaries/{feature-name}.md
Summary Format
## Done
- [implemented behavior or technical change]
## Not Done / Blocked
- [what remains and why]
## Decisions
- [important implementation or architecture decision]
## Verified
- AC1 ✅ / AC2 ✅ ...
## Not Verified
- AC3 ⚠️ [reason]
Summary Rules
## Verified may include only checks actually executed during implementation
## Not Verified must list pending checks, manual-only checks, blocked checks, or checks intentionally deferred to verification
- Never list the same AC or claim in both
## Verified and ## Not Verified
- Never mark an AC as verified based only on intent
- If implementation confidence comes from code inspection, say so explicitly instead of implying runtime proof
- If no automated test exists for an AC, say
No automated coverage — [reason]; runtime/manual evidence planned: [method]
- The summary is an execution handoff artifact, not the final verification artifact
- If later
/verify-feature or /verify-runtime findings differ, the verification artifact is the source of truth
Blocked Rule
If blocked by ambiguity, missing context, or unresolved spec behavior:
- Stop immediately
- Report what is blocked
- Point to the affected acceptance criterion or section
- Ask only for the missing decision
If blocked because the spec is too broad or mixes multiple slices:
- Stop immediately
- Report that the spec should be split
- Point to the affected sections or AC groups
- Recommend revising or splitting the spec before retrying execution
Orchestrator Contract
When this skill is run under /orchestrator, append exactly one HTML comment as the final output line:
- Summary written and execution completed:
<!-- orchestrator: outcome=continue provides=summary_path summary_path=docs/ai/features/summaries/{feature-name}.md -->
- Blocked by ambiguity, missing context, or unresolved spec behavior:
<!-- orchestrator: outcome=stop-blocked -->
- Too broad for one safe pass:
<!-- orchestrator: outcome=stop-too-broad -->
Rules:
- Emit the comment only after the main human-readable response is complete
summary_path must match the file actually written
- If this skill runs standalone, the comment is optional
1---2name: execute-spec3description: Use when the user asks to implement a feature or user-visible bug fix from a spec file. Executes directly from the spec and writes an implementation summary.4---56# Execute Spec78Execute the spec file provided.910## Input1112Path to spec file (e.g. `docs/ai/features/specs/{feature-name}.md`)1314## Hard Constraints — non-negotiable1516- Read the spec before making code changes17- Treat the spec as the source of truth for behavior18- Do NOT create durable plan artifacts by default19- Do NOT invent new product behavior during execution20- If the spec is missing a required product decision, stop and ask21- If the spec turns out to be too broad for one safe implementation pass, stop and ask the human to rescope the spec22- Use only lightweight local exploration needed to implement the current change safely2324## Startup25261. Read the spec file completely272. Identify the execution contract, approved decisions, acceptance criteria, detailed technical design, implementation sequence, verification matrix, and open questions283. If critical product behavior is unresolved:29 - Stop and ask instead of guessing304. If the spec is executable:31 - Implement directly from the spec325. If the spec is executable in principle but too broad, too mixed, or not sliceable in one pass:33 - Stop34 - Report that the spec needs human rescoping before execution continues35 - Point to the relevant ACs or sections causing the problem3637## Execution Process38391. Use the spec as the only durable execution contract402. Break the work into temporary internal steps only as needed413. Explore the nearby codebase just enough to implement safely424. Reuse existing repository patterns when possible435. Choose the smallest verification evidence that fits the changed behavior:44 - Default for observable user behavior: leave concrete runtime/E2E evidence for `/verify-runtime` and human-only judgment for manual verification surfaced by `/manual-checklist`45 - Run relevant existing automated tests when the repository already has them46 - Add or update a focused automated test only when it has clear regression value: non-trivial validation or business rules, permission/authorization, persistence or state transitions, integration boundaries, or a regression bug being fixed47 - Do not introduce a test suite, test infrastructure, or unit/integration tests merely to satisfy a workflow ritual486. Validate changed behavior where practical497. Record important implementation decisions in the execution summary without modifying the approved spec508. Do not invent thresholds, scoring weights, ranking formulas, fairness rules, or tie-breakers in code unless they already exist in the spec or are explicitly recorded under `### Agent-Chosen Technical Details`519. If execution requires choosing one of those rules to complete the slice safely, stop and ask the human instead of leaving it implicit in code5210. If the spec says the logic should be transparent, visible, simple, or non-hidden, do not implement it as an opaque weighted score or hidden heuristic5311. In those cases, prefer readable rule chains, named tie-breakers, or UI-visible reasons that can be traced back to the spec5455## Iterative Feedback5657- Human feedback may trigger additional edit turns after the initial implementation58- Continue refining the code until the requested behavior settles59- Do not rewrite the spec automatically during these turns unless the user explicitly asks60- Do not silently absorb extra scope discovered during execution; stop and ask the human to rescope it61- When the code has stabilized, finish the execution summary and leave the approved spec unchanged62- The human may invoke `/sync-spec` separately when they intentionally want to reconcile the spec6364## After Execution6566Write summary to `docs/ai/features/summaries/{feature-name}.md`6768## Summary Format6970```markdown71## Done72- [implemented behavior or technical change]7374## Not Done / Blocked75- [what remains and why]7677## Decisions78- [important implementation or architecture decision]7980## Verified81- AC1 ✅ / AC2 ✅ ...8283## Not Verified84- AC3 ⚠️ [reason]85```8687## Summary Rules8889- `## Verified` may include only checks actually executed during implementation90- `## Not Verified` must list pending checks, manual-only checks, blocked checks, or checks intentionally deferred to verification91- Never list the same AC or claim in both `## Verified` and `## Not Verified`92- Never mark an AC as verified based only on intent93- If implementation confidence comes from code inspection, say so explicitly instead of implying runtime proof94- If no automated test exists for an AC, say `No automated coverage — [reason]; runtime/manual evidence planned: [method]`95- The summary is an execution handoff artifact, not the final verification artifact96- If later `/verify-feature` or `/verify-runtime` findings differ, the verification artifact is the source of truth9798## Blocked Rule99100If blocked by ambiguity, missing context, or unresolved spec behavior:101- Stop immediately102- Report what is blocked103- Point to the affected acceptance criterion or section104- Ask only for the missing decision105106If blocked because the spec is too broad or mixes multiple slices:107- Stop immediately108- Report that the spec should be split109- Point to the affected sections or AC groups110- Recommend revising or splitting the spec before retrying execution111112## Orchestrator Contract113114When this skill is run under `/orchestrator`, append exactly one HTML comment as the final output line:115116- Summary written and execution completed:117 `<!-- orchestrator: outcome=continue provides=summary_path summary_path=docs/ai/features/summaries/{feature-name}.md -->`118- Blocked by ambiguity, missing context, or unresolved spec behavior:119 `<!-- orchestrator: outcome=stop-blocked -->`120- Too broad for one safe pass:121 `<!-- orchestrator: outcome=stop-too-broad -->`122123Rules:124- Emit the comment only after the main human-readable response is complete125- `summary_path` must match the file actually written126- If this skill runs standalone, the comment is optional