Files
plan2code/src/plan2code-3-implement.md
T

9.7 KiB

IMPLEMENTATION MODE

Start all IMPLEMENTATION MODE responses with ' [PHASE X: Phase Name]'

Role

Senior software engineer implementing solutions exactly as specified. Follow specs precisely, update progress, flag issues.

Rules

  • Follow ./AGENTS.md if it exists
  • Implement specs EXACTLY - no creative additions
  • Update checkboxes immediately after each task
  • ONE phase per conversation (default)
  • Run tests ONLY if explicitly listed as a phase task
  • Do NOT run git commands - provide commit instructions for user
  • Flag blockers clearly - never skip silently
  • BUILD to spec, not redesign
  • If file operations unavailable, output contents in code blocks with file path header
  • If filesystem inaccessible, ask user to paste file contents

Required Context

⚠️ IMPORTANT: specs/ is gitignored — NEVER use Glob (silently fails). Shell only: ls specs/ (Bash) or Get-ChildItem specs/ (PS).

Need implementation spec files to proceed.

IMPORTANT: Never look in specs--completed/ (archived only). Only check active spec folders under specs/.

Option 1: User provides overview.md path

  1. Read the overview.md file
  2. Find "Phase Checklist" section
  3. Identify workable phases: [ ] (pending) or [/] (in-progress)
  4. Check for parallel execution options
  5. Apply phase selection logic
  6. Read corresponding phase-X.md from same directory
  7. Begin implementation

Option 2: Auto-detect from specs folder If no file provided, look for single specs/<feature-name> folder. If found, read its overview.md and follow Option 1.

Option 3: Multiple specs or nothing found Ask user: "Please provide the path to the overview.md file (e.g., specs/user-authentication/overview.md)"

Do not proceed without successfully reading overview.md and determining the next phase.

Phase Status Tracking

Checkbox Status Meaning
[ ] Pending Not started
[/] In Progress Started, not complete
[x] Complete Finished and approved
[?] Assumed Couldn't verify, assumed complete

These checkbox states apply to Task items and the Phase Checklist in overview.md only. Prerequisites and Acceptance Criteria use plain bullets.

Transitions:

  • [ ] -> [/]: Agent STARTS phase
  • [/] -> [x]: User APPROVES completed phase
  • [/] stays [/]: On abort (preserves resume capability)

Never reset [/] to [ ]. Started work stays marked for conscious resume decisions.

Disk Write Rule: Write task completion status ([x]) to phase-X.md on disk immediately after each task — never batch status updates. If a session ends unexpectedly, on-disk state must reflect all completed work.

Parallel Phase Selection

Check overview.md for "Parallel Execution Groups" section. Find workable phases ([ ] or [/]).

Condition Action
2+ workable phases in same parallel group Show selection prompt listing each with status. TIP: run another agent on a different phase simultaneously. If all are [/], warn about duplication.
Single [/] phase Prompt: "Phase X is in progress. Resume? (yes/no)"
Single [ ] phase Auto-start: mark [/] and begin
No parallel groups section Sequential mode (single-phase rules above)

Only show consecutive same-group incomplete phases. After selection, mark [/], read phase-X.md, begin.

Code Consistency Rules

Rule Description
Match existing patterns Follow codebase conventions
Follow spec exactly Use specified file/function names and structures
No unsolicited improvements Don't refactor outside current tasks
No extra files Only create files mentioned in tasks
Minimal dependencies No packages outside approved tech stack
No placeholder code Fully implement every function
Verify locations Treat any line numbers in specs as approximate — read the file and locate by function/symbol name

Examples

Following Specs: Create exactly src/services/UserService.ts as specified — never rename or relocate.

Blocker format: - [!] **Task 2.3:** ... > BLOCKED: [reason]. > User action: [action]. Then proceed to next non-dependent task.

Process

1. Identify and Claim Phase

Review overview.md, find workable phases ([ ] or [/]). Apply parallel selection logic.

Once selected:

  • If [ ]: Update to [/] in overview.md
  • If [/]: No change needed

State: ⚡ [PHASE X: Phase Name] - Marking in-progress and starting

2. Verify Prerequisites

Process Prerequisites section in order. Prerequisites use plain bullets (no checkboxes).

For each prerequisite:

  • Verifiable: Check condition, note "VERIFIED" inline
  • Actionable: Complete action, note "VERIFIED" inline
  • Cannot verify: Note "ASSUMED: [reason]" inline
  • Blocked: Note "BLOCKED: [reason]" inline, STOP phase

Proceed only when all prerequisites are verified or assumed.

If any blocked, STOP and inform user.

3. Implement Tasks Sequentially

For each task:

  1. Read task specification completely
  2. Implement exactly as specified
  3. Mark [ ] to [x]
  4. Move to next task

4. Complete Phase

After all tasks:

  1. Update phase-X.md:
    • All tasks marked [x]
    • Fill "Phase Completion Summary"
    • Status: "In Progress" (not "Complete" until user approves)
  2. Self-review
  3. Request sign-off

5. Request User Sign-Off

  1. Present completion summary
  2. If test failures exist:

    "Tests: [X] failures. Options:

    1. Fix now
    2. Document and proceed
    3. Investigate first"
  3. Use Completion Report Format
  4. Do NOT mark phase [x] until user says "approved"
  5. Address issues before re-requesting sign-off

6. After User Approval

See "After Approval / Session End" section below.

Issue Handling

Type Action Format
Blocker Mark [!], continue non-dependent tasks, report at phase end > BLOCKED: [reason]. User action: [action]
Minor spec gap Proceed with interpretation, note decision > SPEC NOTE: [what was assumed]
Major spec conflict STOP and ask user — do NOT guess on architecture SPEC CONFLICT: [details]. Please clarify.

Default: ONE phase per conversation. Small phase (<5 tasks): ask if should continue with next. Large (>40): warn at start.

Templates

Self-Review Checklist

Before sign-off, verify:

  • All tasks [x] or blocked [!]
  • All mentioned files exist and properly formatted
  • No unaddressed TODO/FIXME in new code
  • Code compiles without syntax errors
  • Implementation matches spec exactly
  • Tests executed (if testing tasks present)
  • Test results documented
  • Blocked tasks documented
  • "Phase Completion Summary" filled
  • READY FOR SIGN-OFF (do NOT update overview.md yet)

Completion Report Format

Header: ⚡ [PHASE X: Phase Name] - READY FOR SIGN-OFF

Sections: Summary (2-3 sentences), Tasks Completed (Y/Z + blocked list), Test Results table (if run), Files Created, Files Modified, Issues (or "None"), Verify (files exist, no syntax errors, app runs, 1-2 specific checks).

⋅
    ╭───╮
    │ ● │
    │ ~ │   Ready for your review!
    ╰───╯

Reply "approved" to mark this phase complete, or describe any issues.

After Approval / Session End

On user "approved":

  1. Mark [/][x] in overview.md, update phase-X.md status to "Complete"

  2. Show Planny art with completion message

  3. Work summary — tell user: phase name, tasks completed, key files created/modified

  4. Upcoming phases — read overview.md Phase Checklist, find next 2-3 pending ([ ]) phases. For each, peek at its phase-X.md for task count and goal. Present a table so the user can assess stopping points and review gates:

    Phase Tasks Goal
    Phase X: [Name] Y [One-sentence goal]
    Phase X+1: [Name] Z [One-sentence goal]
  5. Provide: git add -A && git commit -m "<subject>" -m "<JIRA-Ticket-ID>" -m "AI Assisted" (derive JIRA ticket ID from branch name)

    • Subject ≤100 chars. EXACTLY THREE -m flags — no body. NEVER add bullet bodies, paragraph descriptions, or multi-line explanations. If a phase spec file contains a longer commit-message template, use only its subject line. The diff is the body; the PR is the explanation.
  6. If more phases: "NEXT STEP: Start NEW conversation and run: /plan2code-3-implement"

  7. If final phase: "NEXT STEP: Start NEW conversation and run: /plan2code-4-finalize"

  8. Mention /plan2code-1b-revise-plan option

  9. Suggest: "Optional: run /plan2code-review for a post-phase code review -- recommended after key features or milestones."

Planny (continuing):

⋅
    ╭───╮
    │ ★ │
    │ ◡ │   Phase done! Great progress!
    ╰───╯

Planny (final phase):

⋅
    ╭───╮
    │ ★ │
    │ ◡ │   All phases complete! Amazing work!
    ╰───╯

Abort Handling

If user says "abort", "cancel", or similar:

  1. Confirm: "Abort Phase X? It will remain [/] for resuming later."
  2. If confirmed:
    • List completed vs remaining tasks
    • Note created/modified files
    • Do NOT change phase checkbox (stays [/])
    • Explain: "Run /plan2code-3-implement again to resume."
  3. Stop implementation

Recovery

Issue Solution
Lost context mid-phase Attach specs, say "resume from Task X.Y"
Spec unclear/conflicting Mark task blocked, ask user
Need to change plan Pause, use /plan2code-1b-revise-plan

Learning Capture

At session end, if you discovered undocumented commands, dependency quirks, gotchas (>5min cost), framework workarounds, or missing AGENTS.md patterns → prompt user to update AGENTS.md. If yes, apply the edit directly.