- name
- implement
- description
- Build and validate loop (BUILDER + validation) - implements the architecture, runs tests, iterates until passing. Writes code following the plan.
- argument-hint
- [task-identifier]
<skill name="apex:implement" phase="implement">
<overview> Implement the architecture from the plan phase. Build code, run tests, iterate until all validations pass.
Combines BUILDER (write code) and validation (run tests) in a tight loop. </overview>
<phase-model> phase_model: frontmatter: [research, plan, implement, rework, complete] rework: enabled db_role: [RESEARCH, ARCHITECT, BUILDER, BUILDER_VALIDATOR, REVIEWER, DOCUMENTER] legacy_db_role: [VALIDATOR] source_of_truth: gating: frontmatter.phase telemetry: db_role </phase-model>
<phase-gate requires="plan|rework" sets="implement"> <reads-file>./apex/tasks/[ID].md</reads-file> <requires-section>plan</requires-section> <appends-section>implementation</appends-section> </phase-gate>
<principles>
- Follow the Plan: The architecture was approved - implement it, don't redesign
- Pattern Discipline: Only use patterns from the plan's pattern selection
- Fail Fast: Run tests frequently, fix issues immediately
- No Guessing: If spec is unclear, return to plan or ask user
</principles>
<initial-response> <if-no-arguments> I'll implement the planned architecture. Please provide the task identifier.
You can find active tasks in ./apex/tasks/ or run with: /apex:implement [identifier] </if-no-arguments> <if-arguments>Load task file and begin implementation.</if-arguments> </initial-response>
<workflow>
<step id="1" title="Load task and verify phase"> <instructions>
- Read
./apex/tasks/[identifier].md - Verify frontmatter
phase: planORphase: rework - Parse
<task-contract>first and treat it as authoritative scope/ACs - Parse
<plan>section, especially<builder-handoff> - If phase == rework, treat this as a Ship REJECT rework loop
- If phase not in [plan, rework], refuse with: "Task is in [phase] phase. Expected: plan or rework"
Contract rules:
- Implementation MUST satisfy all AC-* or explicitly document unmet criteria
- If scope/ACs must change, append a <amendments><amendment ...> entry inside task-contract and bump its version
</instructions>
</step>
<step id="2" title="Extract implementation directives"> <extract-from-plan>
<builder-handoff><mission>- What we're building<builder-handoff><core-architecture>- The chosen approach<builder-handoff><pattern-guidance>- Patterns to apply with locations<builder-handoff><implementation-order>- Sequence of steps<builder-handoff><validation-gates>- Checks after each step<builder-handoff><warnings>- Critical risks to avoid<architecture-decision><files-to-modify>- Existing files to change<architecture-decision><files-to-create>- New files to add
</extract-from-plan>
<extract-from-contract>
<task-contract><acceptance-criteria>- AC-* to track and validate
</extract-from-contract>
<create-todo-list> Create TodoWrite items for each implementation step from the plan. </create-todo-list> </step>
<step id="3" title="Pre-implementation verification"> <checks>
- [ ] All files to modify exist and are readable
- [ ] No syntax errors in current codebase (
npm run lintor equivalent) - [ ] Tests currently passing (baseline)
- [ ] Dependencies available
</checks> <on-failure>Document blockers and ask user how to proceed.</on-failure> </step>
<step id="4" title="Implementation loop"> <loop until="all steps complete AND all tests pass">
<builder-phase> <for-each-step>
- Read target files fully before modifying
- Apply patterns from plan's pattern-guidance
- Write code following architecture decision
- Document pattern usage:
# [PAT:ID] ★★★★☆ (X uses, Y% success) - Run syntax check immediately after writing
</for-each-step>
<pattern-discipline> ONLY use patterns listed in <plan><patterns><applying>. DO NOT invent new pattern names. If you need a pattern not in the plan, document it as a gap. </pattern-discipline>
<failure-prevention> Review <plan><architecture-decision><risks> before each step. Apply mitigations proactively. </failure-prevention> </builder-phase>
<validator-phase> <after-each-step>
- Run validation gate from plan
- If passes, continue to next step
- If fails, fix and retry (max 3 attempts per step)
- After 3 failures, document issue and ask user
</after-each-step>
<validation-commands>
- Syntax:
npm run lint/ruff check/ language-appropriate - Types:
tsc --noEmit/mypy/ language-appropriate - Unit tests:
npm test/pytest/ language-appropriate - Integration: As specified in plan
</validation-commands> </validator-phase>
<checkpoint-after-each-step> Record a checkpoint in the task log after each step (summary + confidence). </checkpoint-after-each-step>
</loop> </step>
<step id="4.5" title="Pattern Evidence Gate"> <critical> Before running full validation, verify all patterns you intend to claim. </critical>
<verification-checklist> For each pattern in <patterns-used>:
- [ ] Pattern exists in
<plan><patterns><applying> - [ ] Trust score matches what's in the plan
- [ ] Location (file:line) is accurate and verifiable
- [ ] Outcome is honest (worked|tweaked|failed)
</verification-checklist>
<evidence-collection> Record pattern usage evidence BEFORE validation:
- pattern_id
- file and line range
- outcome (worked|tweaked|failed)
- notes on usage
</evidence-collection>
<fabrication-check> IF any pattern in <patterns-used> is NOT in <plan><patterns><applying>: → REMOVE it from patterns-used → Document as "unplanned pattern discovered" → Do NOT claim it in the final reflection
Unplanned patterns can be documented as "new patterns" in the final reflection, but NOT as "patterns used" (which updates confidence). </fabrication-check> </step>
<step id="5" title="Comprehensive validation"> <critical> This is NOT optional. Run FULL test suite before completing. </critical>
<spawn-validator> <agent type="apex:test-validator"> Task ID: [taskId] Modified Files: [list from implementation] Predictions: [from plan's risk section]
Run: Syntax → Formatting → Type check → Unit tests → Integration tests → Coverage
Return: Validation report comparing predictions vs reality </agent> </spawn-validator>
<decision-logic> IF any failures: → Return to builder-phase with issue list → Fix and re-run validation → Max 3 full cycles before escalating to user
IF only warnings: → Document for review phase → Proceed
IF all pass: → Proceed to write implementation section </decision-logic> </step>
<step id="6" title="Write implementation section to task file"> <output-format> Append to <implementation> section:
<implementation>
<metadata>
<timestamp>[ISO]</timestamp>
<duration>[Time spent]</duration>
<iterations>[Build-validate cycles]</iterations>
</metadata>
<files-modified>
<file path="[path]">
<changes>[Summary of what changed]</changes>
<patterns-applied>
<pattern id="PAT:X:Y">[How it was used]</pattern>
</patterns-applied>
<diff-summary>[Key additions/removals]</diff-summary>
</file>
</files-modified>
<files-created>
<file path="[path]">
<purpose>[Why created]</purpose>
<patterns-applied>[PAT:IDs]</patterns-applied>
<test-file>[Corresponding test if any]</test-file>
</file>
</files-created>
<validation-results>
<syntax status="pass|fail">[Details]</syntax>
<types status="pass|fail">[Details]</types>
<tests status="pass|fail" passed="X" failed="Y" skipped="Z">[Details]</tests>
<coverage>[Percentage if available]</coverage>
</validation-results>
<acceptance-criteria-status>
<criterion id="AC-1" status="met|not-met">[Evidence or reason]</criterion>
</acceptance-criteria-status>
<patterns-used>
<pattern id="PAT:X:Y" location="file:line" outcome="worked|tweaked|failed">
[Notes on usage]
</pattern>
</patterns-used>
<issues-encountered>
<issue resolved="true|false">
<description>[What happened]</description>
<resolution>[How fixed, or why unresolved]</resolution>
</issue>
</issues-encountered>
<deviations-from-plan>
<deviation>
<planned>[What plan said]</planned>
<actual>[What we did instead]</actual>
<reason>[Why deviation was necessary]</reason>
</deviation>
</deviations-from-plan>
<reviewer-handoff>
<summary>[What was built]</summary>
<key-changes>[Most important modifications]</key-changes>
<test-coverage>[What's tested]</test-coverage>
<known-limitations>[Edge cases, TODOs]</known-limitations>
<patterns-for-reflection>[Patterns to report in the final reflection]</patterns-for-reflection>
</reviewer-handoff>
<next-steps>
Run `/apex:ship [identifier]` to review and finalize.
</next-steps>
</implementation></output-format>
<update-frontmatter> Set phase: implement and updated: [ISO timestamp] </update-frontmatter>
</step>
</workflow>
<critical-requirements>
<pattern-fabrication-prevention> YOU CANNOT FABRICATE PATTERNS.
Only claim patterns that exist in <plan><patterns><applying>. In <patterns-used>, only list patterns from the plan. Pattern IDs claimed here will be validated during /apex:ship.
VIOLATION: Claiming "PAT:NEW:THING" that was never in the plan CONSEQUENCE: The final reflection becomes unreliable and confidence becomes meaningless </pattern-fabrication-prevention>
<syntax-gate> Before completing implementation:
- Run linting
- Check for common errors (double async, missing brackets)
- Fix ALL syntax errors before proceeding
- DO NOT transition to ship with syntax errors
</syntax-gate>
<contract-gate> Before finishing:
- Confirm all AC-* are met, or explicitly mark any unmet criteria with reasons
- If contract scope/ACs changed, record an amendment with rationale and bump contract version
</contract-gate>
<spec-unclear-protocol> If implementation reveals spec ambiguity:
- Document the ambiguity
- Ask user for clarification
- If architectural change needed, note it for plan revision
- Do NOT guess and implement wrong thing
</spec-unclear-protocol>
</critical-requirements>
<success-criteria>
- All implementation steps from plan completed
- All validation gates passed
- Full test suite passing
- No syntax errors
- Acceptance criteria status reported for all AC-*
- Patterns used are from plan only (Pattern Evidence Gate passed)
- Deviations documented with reasons
- Task file updated at ./apex/tasks/[ID].md
- Checkpoints recorded at start, per-step, and end
- Pattern evidence recorded for usage
- Task metadata updated for build/validate completion
</success-criteria>
<next-phase> /apex:ship [identifier] - Review, document, and reflect </next-phase>
</skill>