The /ab:build command was executing tasks but not tracking progress. This rewrite enforces dual progress tracking in BOTH status.json AND plan.md. Key changes: build.md - Complete restructure: - Step-by-step execution workflow (like migrate.md) - Step 4d MANDATORY: Update both status.json and plan.md - User confirmation required between tasks - Visual Progress Tracker table in plan template planner.md - New plan template: - Progress Tracker table at top with ⬜/✅ indicators - Each task has `- **Status**: ⬜ Pending` field - Status header shows overall progress coder.md - Dual file updates: - 5a: Update status.json (currentTask, tasksCompleted, history) - 5b: Update plan.md Progress Tracker (⬜ Pending → ✅ Done) Benefits: - Visual progress in plan.md (human readable) - JSON progress in status.json (programmatic) - Redundancy ensures progress is never lost - Team can see exactly which tasks are complete 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.4 KiB
description, argument-hint
| description | argument-hint |
|---|---|
| Orchestrate feature implementation from specification | <feature-name> |
Build Feature from Specification
Orchestrate the complete implementation of a feature using its specification.
IMPORTANT: Execute This Workflow Step-by-Step
When this command is invoked, you MUST follow each step in order. After each task completion, you MUST update both status.json AND plan.md before proceeding.
Input
- Feature name: $ARGUMENTS (required, must match existing spec)
Step 1: Load and Validate
Execute immediately:
-
Read the spec file:
.auto-build/specs/{feature-name}/spec.md -
Read the status file:
.auto-build/specs/{feature-name}/status.json -
Read the plan file (if exists):
.auto-build/specs/{feature-name}/plan.md -
Check status and determine next action:
- If
SPEC_COMPLETE→ Go to Step 2 (Worktree offer) then Step 3 (Planning) - If
PLANNING_COMPLETE→ Go to Step 4 (Implementation) - If
IMPLEMENTING→ Resume fromcurrentTaskin status.json
- If
Step 2: Offer Worktree (Only if SPEC_COMPLETE)
Ask the user:
This feature may modify multiple files.
Create an isolated git worktree? (recommended for larger features)
[Yes] [No]
If Yes:
- Run:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/worktree-create.sh {feature-name} - Update status.json with worktree path
- Display:
════════════════════════════════════════════════════════════════
WORKTREE CREATED - ACTION REQUIRED
════════════════════════════════════════════════════════════════
✅ Worktree: ../ab-worktrees/{project}-{feature-name}/
✅ Branch: feature/ab-{feature-name}
⚠️ YOU MUST NOW:
1. Open NEW VSCode window:
code ../ab-worktrees/{project}-{feature-name}/
2. In the NEW window, run:
/ab:build {feature-name}
════════════════════════════════════════════════════════════════
- STOP - Do not continue. Wait for user to switch directories.
If No: Continue to Step 3.
Step 3: Create Plan (Only if SPEC_COMPLETE)
-
Update status.json:
{ "status": "PLANNING", "updated": "{ISO timestamp}" } -
Load memory context:
- Read
.auto-build/memory/patterns.json(if exists) - Read
.auto-build/memory/gotchas.json(if exists)
- Read
-
Create plan.md with this structure:
# Implementation Plan: {feature-name} ## Progress Tracker | Task | Status | Completed | |------|--------|-----------| | Task 1: {title} | ⬜ Pending | | | Task 2: {title} | ⬜ Pending | | | ... | | | ## Tasks ### Task 1: {Title} - **Status**: ⬜ Pending - **Files**: file1.ts, file2.ts - **Description**: What to do - **Dependencies**: None ### Task 2: {Title} - **Status**: ⬜ Pending - **Files**: file3.ts - **Description**: What to do - **Dependencies**: Task 1 ... -
Update status.json:
{ "status": "PLANNING_COMPLETE", "totalTasks": {number of tasks}, "currentTask": 1, "updated": "{ISO timestamp}", "history": [..., {"status": "PLANNING_COMPLETE", "at": "{timestamp}"}] } -
Continue to Step 4.
Step 4: Implementation Loop
FOR EACH TASK, execute these sub-steps in order:
4a. Display Task Banner
════════════════════════════════════════════════════════════════
TASK {N}/{TOTAL}: {Task Title}
════════════════════════════════════════════════════════════════
Status: Starting...
Files: {list of files}
────────────────────────────────────────────────────────────────
4b. Update Status to In-Progress
Write to .auto-build/specs/{feature-name}/status.json:
{
"feature": "{feature-name}",
"status": "IMPLEMENTING",
"currentTask": {N},
"totalTasks": {TOTAL},
"updated": "{ISO timestamp}",
"history": [
...existing...,
{"status": "IMPLEMENTING", "at": "{timestamp}", "task": {N}, "started": true}
]
}
4c. Execute Task
Implement the task according to plan.md specifications.
4d. MANDATORY: Update Progress Files
After completing each task, you MUST execute these updates before doing anything else:
Update 1 - status.json:
Write to .auto-build/specs/{feature-name}/status.json:
{
"feature": "{feature-name}",
"status": "IMPLEMENTING",
"currentTask": {N+1},
"totalTasks": {TOTAL},
"updated": "{ISO timestamp}",
"tasksCompleted": {N},
"history": [
...existing...,
{"status": "IMPLEMENTING", "at": "{timestamp}", "task": {N}, "title": "{title}", "completed": true}
]
}
Update 2 - plan.md Progress Tracker: Edit the plan.md file to update the task status:
- Change
⬜ Pendingto✅ Donefor the completed task - Add completion timestamp
Example edit in plan.md:
## Progress Tracker
| Task | Status | Completed |
|------|--------|-----------|
| Task 1: Setup | ✅ Done | 2025-01-15 14:30 |
| Task 2: API | ⬜ Pending | |
And in the task section:
### Task 1: Setup
- **Status**: ✅ Done (2025-01-15 14:30)
4e. Display Completion and Confirm
════════════════════════════════════════════════════════════════
✅ TASK {N}/{TOTAL} COMPLETED: {Task Title}
════════════════════════════════════════════════════════════════
Progress: {N}/{TOTAL} tasks done ({percentage}%)
Next task: {N+1}. {Next Task Title}
Continue to next task? [Yes] [No] [Skip]
Wait for user confirmation before proceeding to next task.
4f. Repeat
Go back to 4a for the next task until all tasks are complete.
Step 5: Build Complete
When all tasks are done:
-
Update status.json:
{ "status": "IMPLEMENTATION_COMPLETE", "currentTask": {TOTAL}, "totalTasks": {TOTAL}, "tasksCompleted": {TOTAL}, "updated": "{ISO timestamp}", "history": [..., {"status": "IMPLEMENTATION_COMPLETE", "at": "{timestamp}"}] } -
Update plan.md header:
# Implementation Plan: {feature-name} **Status**: ✅ COMPLETE **Completed**: {timestamp} -
Display summary:
════════════════════════════════════════════════════════════════ BUILD COMPLETE: {feature-name} ════════════════════════════════════════════════════════════════ ✅ Tasks completed: {TOTAL}/{TOTAL} 📁 Files modified: {count} ⏱️ Duration: {time} NEXT STEPS: 1. Test the implementation 2. Run QA review: /ab:qa-review 3. Save learnings: /ab:memory-save ════════════════════════════════════════════════════════════════
Resume Logic
If status is IMPLEMENTING with currentTask > 1:
-
Display:
════════════════════════════════════════════════════════════════ RESUMING BUILD: {feature-name} ════════════════════════════════════════════════════════════════ Previous progress: {tasksCompleted}/{TOTAL} tasks completed Resume from: Task {currentTask} [Resume] [Restart from Task 1] [Cancel] -
If Resume: Continue from Step 4 at task {currentTask}
-
If Restart: Reset currentTask to 1, continue from Step 4
Why Progress Tracking Matters
- Team collaboration: Other developers can see progress and continue your work
- Resume capability: If interrupted, you can pick up where you left off
- Visibility: Users can check /ab:status to see current progress
- History: Complete audit trail of implementation
Error Handling
- Task fails: Mark task as failed in history, ask user to fix manually or skip
- Spec not found: Display "Spec not found. Create with: /ab:spec {name}"
- Plan not found but PLANNING_COMPLETE: Re-run planning phase