15 KiB
Implementation Executor with Phase Management
You are executing an implementation plan with phase-based progress tracking, automatic checkpoints, and resume capability for large tasks.
⚙️ PHASE 1: INITIALIZATION & WORK FOLDER RESOLUTION
Step 1.1: Parse Command Arguments
Input Received: $ARGUMENTS
Parse flags:
-
--resume: Continue from last checkpoint- Reads metadata.phases.current to determine where to continue
- Loads 04-progress.md to show completed work
-
--phase N: Start from specific phase number- Example: --phase 2 starts at Phase 2
- Validates phase exists in plan
-
--no-commit: Skip automatic commits after phases- User will handle git commits manually
- Still updates progress.md
-
--work-dir PATH: Use specific work folder- Example: --work-dir .WIP/EC-1234-add-auth
- Overrides auto-detection
Store parsed values:
resume_mode = [boolean]
specific_phase = [number or null]
auto_commit = [true unless --no-commit]
work_dir = [path or null]
Step 1.2: Auto-detect Work Folder
Objective: Find work folder containing 03-plan.md
Priority Order:
- From --work-dir flag:
work_folder="$work_dir"
- From Git Branch:
branch=$(git rev-parse --abbrev-ref HEAD)
identifier=$(echo "$branch" | grep -oE '[A-Z]{2,10}-[0-9]+')
if [ -n "$identifier" ]; then
work_folder=$(find .WIP -type d -name "${identifier}*" | head -1)
fi
- Recent work folders:
ls -dt .WIP/*/ | head -5
# Check each for 03-plan.md
Validation:
if [ ! -f "$work_folder/03-plan.md" ]; then
echo "❌ No plan found in $work_folder"
echo "Run /schovi:plan first to generate implementation plan"
exit 1
fi
Acknowledge work folder:
📁 **[Implement]** Work folder: $work_folder
Step 1.3: Load Plan and Metadata
Read plan:
cat "$work_folder/03-plan.md"
Parse plan structure:
- Extract phases (look for "## Phase N:" or "### Phase N:" headers)
- Count total phases
- Extract tasks per phase
- Identify if multi-phase or single-phase
Read metadata:
cat "$work_folder/.metadata.json"
Extract phase status:
{
"phases": {
"total": 4,
"completed": 2,
"current": 3,
"list": [
{"number": 1, "title": "...", "status": "completed", "commit": "abc123"},
{"number": 2, "title": "...", "status": "completed", "commit": "def456"},
{"number": 3, "title": "...", "status": "in_progress", "commit": null},
{"number": 4, "title": "...", "status": "pending", "commit": null}
]
}
}
Step 1.4: Read or Create Progress File
If 04-progress.md exists:
cat "$work_folder/04-progress.md"
Parse progress:
- Identify completed phases (✅ markers)
- Identify current phase (🚧 marker)
- Extract last checkpoint commit
If 04-progress.md doesn't exist, create initial:
Use Write tool: $work_folder/04-progress.md
# Implementation Progress
**Work Folder**: [work_folder]
**Plan**: 03-plan.md
**Started**: [timestamp]
## Phases
### ⏳ Phase 1: [Title]
Status: Pending
Tasks: [count] tasks
### ⏳ Phase 2: [Title]
Status: Pending
Tasks: [count] tasks
[... for each phase]
---
**Legend**:
- ✅ Completed
- 🚧 In Progress
- ⏳ Pending
- ❌ Failed
Step 1.5: Determine Starting Phase
Logic:
-
If --phase N provided:
- Start at phase N
- Validate N <= total phases
-
If --resume flag:
- Start at metadata.phases.current
- Or find first non-completed phase in metadata.phases.list
-
If neither flag:
- If phases.completed == 0: Start at phase 1
- Else: Ask user to use --resume or --phase
Acknowledge start point:
🚀 **[Implement]** Starting at Phase [N]: [Title]
⚙️ PHASE 2: PHASE EXECUTION LOOP
For each phase from starting_phase to total_phases:
Step 2.1: Load Phase Context
Extract phase details from plan:
## Phase [N]: [Title]
**Tasks**:
- Task 1: Description
Files: path/to/file.ts:123
- Task 2: Description
Files: path/to/file.ts:456
**Acceptance Criteria**:
- [ ] Criterion 1
- [ ] Criterion 2
Parse:
- phase_number = N
- phase_title = [Title]
- phase_tasks = [List of tasks with file references]
- phase_criteria = [Acceptance criteria]
Show phase header:
╭─────────────────────────────────────────────────────────╮
│ 🚧 PHASE [N]/[TOTAL]: [TITLE] │
╰─────────────────────────────────────────────────────────╯
Tasks: [count]
Files affected: [list key files]
Starting implementation...
Step 2.2: Execute Phase Tasks
For each task in phase:
-
Show task:
📝 Task [N.M]: [Description] Files: [file references] -
Read relevant files:
- Use Read tool for files mentioned in task
- Load context for changes
-
Implement changes:
- Use Edit tool for modifications
- Use Write tool for new files
- Follow task description
-
Mark task complete:
✅ Task [N.M] complete -
Update progress.md (append):
- [x] Task [N.M]: [Description]
Handle errors:
If task fails (edit error, file not found, etc.):
❌ **[Implement]** Task [N.M] failed: [error]
Options:
1. Skip task and continue (mark as TODO)
2. Pause implementation (save progress)
3. Cancel implementation
What would you like to do? [1-3]
Step 2.3: Verify Phase Completion
Check acceptance criteria:
For each criterion in phase_criteria:
- Run tests if criterion mentions testing
- Check file exists if criterion mentions file creation
- Validate logic if criterion is verifiable
Mark:
- ✅ if verified
- ⚠️ if cannot auto-verify (manual check needed)
- ❌ if fails
Summary:
📊 Phase [N] Summary:
✅ Tasks completed: [count]/[total]
⚠️ Manual verification needed: [count]
❌ Tests failing: [count]
[If all ✅]:
✅ Phase [N] complete! Ready to commit.
[If any ❌]:
⚠️ Phase [N] has failures. Review before committing.
Step 2.4: Create Phase Checkpoint
If auto_commit == true (default):
-
Stage changes:
git add . -
Generate commit message:
feat: Complete [Phase Title] (Phase [N]/[TOTAL]) Implemented: - [Task 1 summary] - [Task 2 summary] - [Task 3 summary] Files modified: - path/to/file1.ts - path/to/file2.ts Related to: [identifier] Co-Authored-By: Claude <noreply@anthropic.com> -
Commit:
git add . && git commit -m "$(cat <<'EOF' [commit message from above] EOF )" -
Get commit hash:
git log -1 --format='%H' -
Update metadata:
{ "phases": { "completed": [current + 1], "current": [next phase or null if done], "list": [ ...update phase[N] with status="completed", commit="hash", completedAt="now" ] }, "git": { "commits": [...existing, "hash"], "lastCommit": "hash" }, "timestamps": { "lastModified": "[now]" } } -
Update progress.md:
### ✅ Phase [N]: [Title] (Completed [timestamp]) - [x] Task N.1: [description] - [x] Task N.2: [description] **Commit**: [hash] **Duration**: [time since phase started] -
Acknowledge checkpoint:
💾 **[Implement]** Phase [N] checkpoint created 📍 Commit: [short-hash]
If auto_commit == false (--no-commit):
- Skip git commit
- Update progress.md with status
- Update metadata with completed status (no commit hash)
- Show: "⚠️ Commit skipped (--no-commit flag). Commit manually when ready."
Step 2.5: Check if Pause Requested
After each phase, ask:
🎯 Phase [N] complete! ([completed]/[total] phases done)
Continue to Phase [N+1]? [yes/no/pause]
- yes: Continue immediately
- no: Pause (resume with --resume)
- pause: Same as no
If user says "yes":
- Continue to next phase
If user says "no" or "pause":
- Update metadata.phases.current to next phase
- Save all progress
- Show resume instructions:
⏸️ **[Implement]** Implementation paused Progress saved: - Completed: [count] phases - Next: Phase [N+1] To resume: /schovi:implement --resume - Exit phase loop
Step 2.6: Move to Next Phase
If more phases remaining:
- Increment current_phase
- Loop back to Step 2.1
If all phases complete:
- Proceed to Phase 3 (Completion)
⚙️ PHASE 3: COMPLETION
Step 3.1: Final Summary
╭─────────────────────────────────────────────────────────╮
│ ✅ IMPLEMENTATION COMPLETE │
╰─────────────────────────────────────────────────────────╯
**Work Folder**: $work_folder
**Phases Completed**: [total]
[For each phase]:
✅ Phase [N]: [Title]
Commit: [hash]
Tasks: [count]
**Total Commits**: [count]
**Total Files Modified**: [count]
**Next Steps**:
- Review changes: git log --oneline
- Run tests: [test command if available]
- Create PR: /schovi:publish
Step 3.2: Update Final Metadata
Set workflow as complete:
{
"workflow": {
"completed": ["analyze", "plan", "implement"],
"current": "implement"
},
"phases": {
"completed": [total],
"current": null
},
"timestamps": {
"lastModified": "[now]",
"completed": "[now]"
}
}
Step 3.3: Proactive Next Steps
Offer to create PR:
🚀 Ready to publish?
I can create a GitHub Pull Request with:
- Branch: [current branch]
- Title: [from Jira or commits]
- Description: [from plan and progress]
- Changes: [all commits]
Would you like me to run `/schovi:publish` now? [yes/no]
If user says "yes":
- Use SlashCommand tool:
/schovi:publish
If user says "no":
Perfect! Here's what you can do:
1. 📤 Create PR manually:
- /schovi:publish
- Or: gh pr create
2. 🧪 Run tests:
- npm test
- pytest
- [project-specific]
3. 📝 Review changes:
- git diff main
- git log --oneline
4. ✅ Mark as done:
- Implementation complete! 🎉
⚙️ ERROR HANDLING
Scenario 1: No Plan Found
❌ Cannot start implementation - no plan found
Work folder: $work_folder
Required: 03-plan.md
Actions:
1. Generate plan: /schovi:plan
2. Or specify different work folder: --work-dir PATH
Scenario 2: Git Conflicts
❌ Git conflicts detected
Cannot commit Phase [N] due to merge conflicts.
Actions:
1. Resolve conflicts manually
2. Stage resolved files: git add .
3. Resume: /schovi:implement --resume
Or:
- Skip auto-commit: /schovi:implement --no-commit
- Commit manually later
Scenario 3: Test Failures
⚠️ Tests failing after Phase [N]
Phase committed but tests are failing.
Options:
1. Continue anyway (fix later)
2. Pause and fix now
3. Rollback phase (git reset HEAD~1)
What would you like to do? [1-3]
Scenario 4: File Not Found
❌ Cannot find file: path/to/file.ts:123
Mentioned in Phase [N], Task [M]
Possible causes:
- File path incorrect in plan
- File not yet created
- Wrong directory
Actions:
1. Skip task (mark as TODO)
2. Search for file: find . -name "file.ts"
3. Pause implementation
What would you like to do? [1-3]
💡 USAGE EXAMPLES
Example 1: Fresh Implementation
# After analyze → plan workflow
/schovi:implement
# Workflow:
# 1. Auto-detects work folder from git branch
# 2. Loads 03-plan.md
# 3. Creates 04-progress.md
# 4. Executes Phase 1
# 5. Commits Phase 1
# 6. Asks to continue to Phase 2
# 7. Repeats until all phases done
Example 2: Resume After Pause
# Previously paused after Phase 2
/schovi:implement --resume
# Workflow:
# 1. Auto-detects work folder
# 2. Reads metadata: phases.current = 3
# 3. Loads progress from 04-progress.md
# 4. Shows: "Resuming from Phase 3"
# 5. Continues with Phase 3
Example 3: Start from Specific Phase
# Jump to Phase 3 (skip 1 and 2)
/schovi:implement --phase 3
# Use case: Phases 1-2 already done manually
Example 4: Manual Commits
# Implement without auto-commits
/schovi:implement --no-commit
# Workflow:
# 1. Executes all tasks
# 2. Updates progress.md
# 3. No git commits
# 4. User commits manually when ready
🎯 KEY FEATURES
- Phase-based Execution: Break large tasks into manageable phases
- Progress Tracking: 04-progress.md shows exactly what's done
- Pause/Resume: Stop anytime, resume later with --resume
- Automatic Checkpoints: Git commit after each phase
- Metadata Sync: Full workflow state in .metadata.json
- Error Recovery: Handle failures gracefully, allow skip/retry
- Context Management: Load only current phase details
- Proactive: Offers next steps (create PR, run tests)
📋 VALIDATION CHECKLIST
Before starting implementation:
- Work folder found
- 03-plan.md exists and readable
- Metadata loaded successfully
- Git working directory clean (or user acknowledges)
- Phases extracted from plan
- Starting phase determined
During implementation:
- Each task executed successfully or marked for skip
- Progress.md updated after each task
- Phase checkpoint created (commit or progress update)
- Metadata updated with phase status
- User prompted for pause after each phase
After completion:
- All phases marked complete
- Final metadata updated
- Summary shown to user
- Next steps provided
🚀 WORKFLOW INTEGRATION
Full Workflow:
spec → analyze → plan → implement → commit → publish
↓ ↓ ↓ ↓
01-spec 02-anly 03-plan 04-prog
Technical Workflow:
analyze → plan → implement → commit → publish
↓ ↓ ↓
02-anly 03-plan 04-prog
Bug Workflow:
debug → [plan] → implement → commit → publish
↓ ↓
02-dbg 04-prog
🎉 BEGIN IMPLEMENTATION
Start with Phase 1: Initialization & Work Folder Resolution.