Files
2025-11-30 09:00:21 +08:00

246 lines
6.3 KiB
Markdown

---
tags: ["workflow", "development", "execution"]
description: "Execute specific implementation phases from task plans with test-first enforcement"
argument-hint: "### PHASE | ### --next | --next | ### --full | --full"
allowed-tools: ["Read", "Write", "Edit", "MultiEdit", "Bash", "Grep", "Glob", "TodoWrite", "Task"]
model: claude-sonnet-4-5
references_guidelines:
- docs/development/workflows/pm-workflows.md # Phase execution protocol
- docs/development/workflows/task-workflow.md # TDD phases, quality gates
- docs/development/workflows/bug-workflow.md # Reproduction-first phases
- docs/development/workflows/spike-workflow.md # Spike exploration with branches
- docs/development/workflows/worklog-format.md # WORKLOG entry formats
- docs/development/workflows/git-workflow.md # Branch creation and verification
- docs/development/workflows/agent-coordination.md # Agent handoff patterns
---
# /implement Command
**WHAT**: Execute implementation phases with test-first enforcement and agent coordination.
**HOW**: Detects issue type, follows its workflow, enforces quality gates.
## Usage
```bash
/implement 001 1.1 # Execute specific phase (detects type from file)
/implement 003 2.2 # Execute bug fix phase
/implement 005 # Spike: asks which plan, creates spike branch
/implement 001 --next # Auto-find next uncompleted phase
/implement --next # Auto-detect issue + next phase
/implement 001 --full # Execute all remaining phases
/implement PROJ-123 --next # Jira issue
```
## Issue Type Detection
**Reads issue file to determine type and workflow:**
```bash
# In pm/issues/###-name/ directory:
if [ -f "TASK.md" ]; then type="task" # TDD phases
elif [ -f "BUG.md" ]; then type="bug" # Reproduction-first
elif [ -f "SPIKE.md" ]; then type="spike" # Exploration plans
fi
```
| Issue File | Workflow | Branch Pattern |
|------------|----------|----------------|
| TASK.md | TDD (RED/GREEN/REFACTOR) | `feature/###` |
| BUG.md | Reproduction-first | `bugfix/###` |
| SPIKE.md | Exploration (per plan) | `spike/###/plan-N` |
## Execution Flow
### 1. Parse & Validate
- Parse issue ID and phase (or auto-detect)
- Locate issue directory: `pm/issues/{ID}-*/`
- Read issue file (TASK.md/BUG.md/SPIKE.md)
- Read PLAN.md (or PLAN-N.md for spikes)
- Create WORKLOG.md if missing (with Phase Commits header)
### 2. Type-Specific Handling
**For TASK/BUG:**
- Create feature/bugfix branch if needed
- Execute phase with TDD checkpoints
- Follow quality gates per workflow
**For SPIKE (see below):**
- Ask which plan to explore
- Create spike branch
- Execute without quality gates
### 3. Agent Coordination
Select agent based on phase domain:
- `frontend-specialist`, `backend-specialist`, `database-specialist`
- `test-engineer` for RED phases
- `code-reviewer` for REFACTOR phases
### 4. TDD Checkpoints (TASK/BUG)
- **RED**: Tests FAIL before implementation
- **GREEN**: Tests PASS after implementation
- **REFACTOR**: Review ≥90 to complete
### 5. Track Progress
- Write WORKLOG entry
- Update Phase Commits section
- Check off PLAN.md checkbox
- Commit changes
---
## SPIKE Implementation
**When issue type is SPIKE, behavior changes significantly.**
### Step 1: Select Plan
```
Which plan do you want to explore?
Available plans:
1. PLAN-1.md: GraphQL with Apollo Server
2. PLAN-2.md: REST with Express
Enter plan number: _
```
### Step 2: Create Spike Branch
```bash
# From current branch (usually develop)
git checkout -b spike/005/plan-1
```
### Step 3: Execute Exploration
**Differences from TASK/BUG:**
| Aspect | TASK/BUG | SPIKE |
|--------|----------|-------|
| TDD checkpoints | Required | Not enforced |
| Code review | Required (≥90) | Not required |
| Commits | To feature branch | To spike branch |
| WORKLOG | WORKLOG.md | WORKLOG-N.md |
| Branch merge | Yes (to develop) | Never |
### Step 4: Track Findings
- Update WORKLOG-N.md on spike branch
- Document discoveries, surprises, benchmarks
- Track time spent vs time box
### Example SPIKE Flow
```
User: /implement 005
AI: Issue 005 (spike): "GraphQL vs REST for our API?"
Which plan do you want to explore?
1. PLAN-1.md: GraphQL with Apollo Server
2. PLAN-2.md: REST with Express
User: 1
AI: Creating branch spike/005/plan-1...
> ⚠️ SPIKE EXPLORATION
> Code will be committed to spike branch, not merged to main.
> Track discoveries in WORKLOG-1.md.
Executing PLAN-1.md Phase 1: Setup
→ Installing Apollo Server...
→ Creating basic schema...
→ Updating WORKLOG-1.md
✓ Phase 1 complete (1.5 hours spent, 6.5 remaining)
Continue to Phase 2? (yes/no/stop)
```
---
## Task-Specific Scripts
**Temporary scripts go in task directory:**
```
pm/issues/001-user-auth/
├── TASK.md
├── PLAN.md
├── WORKLOG.md
└── scripts/
├── generate-test-users.sh
├── migrate-passwords.js
└── debug-jwt-validation.js
```
**Why:** Easy cleanup, clear context, no root clutter.
**Root `scripts/`:** Only for universal utilities used across tasks.
---
## Modes
| Mode | Command | Behavior |
|------|---------|----------|
| Specific | `/implement 001 1.1` | Execute single phase |
| Next | `/implement 001 --next` | Find first uncompleted |
| Full | `/implement 001 --full` | Execute all remaining |
| Auto | `/implement --next` | Auto-detect issue + next |
---
## Example (TASK)
```
User: /implement 001 --next
AI: Next: 1.RED - Write failing tests for user login
Proceed? (yes/no)
User: yes
AI: Spawning test-engineer...
→ Tests written (8 test cases)
→ Running tests...
→ [RED CHECKPOINT] 8 tests FAILED ✓
✓ Phase 1.RED complete
Next: /implement 001 --next
```
---
## Error Handling
| Error | Resolution |
|-------|------------|
| Issue not found | Check `pm/issues/{ID}-*/` exists |
| PLAN.md missing | Run `/plan {ID}` first |
| Unknown type | Verify TASK.md/BUG.md/SPIKE.md exists |
| Spike no plans | Run `/plan ###` to create plans |
| Phase complete | Use `--next` for next phase |
## Integration
```
/issue → /plan ### → /implement ### → /complete ### → /branch merge
```
**SPIKE flow:**
```
/issue → /plan ### → /implement ### → /complete ###
(creates spike branch)
(never merges to develop)
```