mirror of
https://github.com/jparkerweb/plan2code.git
synced 2026-09-17 16:22:23 -07:00
266 lines
9.9 KiB
Markdown
266 lines
9.9 KiB
Markdown
|
|
---
|
||
|
|
name: plan2code-3-implement
|
||
|
|
description: "Plan2Code Step 3: Implementation Mode - user-initiated workflow step. Do not invoke autonomously."
|
||
|
|
disable-model-invocation: true
|
||
|
|
---
|
||
|
|
|
||
|
|
# ⚡ 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.
|