$npx -y skills add aaddrick/claude-pipeline --skill implement-issueUse when given a GitHub issue number and base branch to implement end-to-end
| 1 | # Implement Issue |
| 2 | |
| 3 | End-to-end issue implementation via orchestrator script. |
| 4 | |
| 5 | **Announce at start:** "Using implement-issue to run orchestrator for #$ISSUE against $BRANCH" |
| 6 | |
| 7 | **Arguments:** |
| 8 | - `$1` — GitHub issue number (required) |
| 9 | - `$2` — Base branch name (required) |
| 10 | |
| 11 | ## Invocation |
| 12 | |
| 13 | Immediately launch the orchestrator: |
| 14 | |
| 15 | ```bash |
| 16 | .claude/scripts/implement-issue-orchestrator.sh \ |
| 17 | --issue $ISSUE_NUMBER \ |
| 18 | --branch $BASE_BRANCH |
| 19 | ``` |
| 20 | |
| 21 | Or with explicit agent override: |
| 22 | |
| 23 | ```bash |
| 24 | .claude/scripts/implement-issue-orchestrator.sh \ |
| 25 | --issue $ISSUE_NUMBER \ |
| 26 | --branch $BASE_BRANCH \ |
| 27 | --agent bulletproof-frontend-developer |
| 28 | ``` |
| 29 | |
| 30 | ## Monitoring |
| 31 | |
| 32 | Each run creates its own status.json inside the log directory: |
| 33 | |
| 34 | ```bash |
| 35 | # Find the latest run's status file |
| 36 | jq . logs/implement-issue/issue-${ISSUE_NUMBER}-*/status.json |
| 37 | ``` |
| 38 | |
| 39 | Watch live: |
| 40 | |
| 41 | ```bash |
| 42 | # Replace with your actual log dir path (shown at startup) |
| 43 | watch -n 5 'jq -c "{state,stage:.current_stage,task:.current_task,quality:.quality_iterations}" logs/implement-issue/issue-123-20260221-153045-12345/status.json' |
| 44 | ``` |
| 45 | |
| 46 | ## Stages |
| 47 | |
| 48 | | Stage | Agent | Description | |
| 49 | |-------|-------|-------------| |
| 50 | | setup | default | fetch, worktree, research, evaluate, plan | |
| 51 | | implement | per-task | execute each task from plan | |
| 52 | | task-review | spec-reviewer | verify task achieved goal | |
| 53 | | fix | per-task | address review findings (uses task's agent) | |
| 54 | | simplify | code-simplifier | clean up code | |
| 55 | | test | php-test-validator | run test suite | |
| 56 | | review | code-reviewer | internal code review | |
| 57 | | docs | phpdoc-writer | add PHPDoc blocks | |
| 58 | | pr | default | create/update PR | |
| 59 | | spec-review | spec-reviewer | verify PR achieves issue goals | |
| 60 | | code-review | code-reviewer | final code quality check | |
| 61 | | tech-docs | technical-doc-writer | assess/write/update docs in docs/{domain}/ | |
| 62 | | complete | default | post summary | |
| 63 | |
| 64 | ## Available Implementation Agents |
| 65 | |
| 66 | The plan stage selects the best agent per task from: |
| 67 | |
| 68 | | Agent | Use For | |
| 69 | |-------|---------| |
| 70 | | laravel-backend-developer | PHP/Laravel: controllers, models, services, middleware, migrations, API, PHPUnit | |
| 71 | | bulletproof-frontend-developer | CSS, responsive design, Blade templates, frontend code | |
| 72 | | bash-script-craftsman | Shell scripts, portability, BATS tests | |
| 73 | | technical-doc-writer | Architecture docs, design docs, data flows, API contracts in docs/{domain}/ | |
| 74 | |
| 75 | ## Schemas |
| 76 | |
| 77 | Located in `.claude/scripts/schemas/implement-issue-*.json` |
| 78 | |
| 79 | ## Logging |
| 80 | |
| 81 | Logs written to `logs/implement-issue/issue-N-timestamp/`: |
| 82 | - `orchestrator.log` — main log |
| 83 | - `stages/` — per-stage Claude output |
| 84 | - `context/` — parsed outputs (tasks.json, etc.) |
| 85 | - `status.json` — real-time status (primary location, no root-level status.json) |
| 86 | |
| 87 | ## Exit Codes |
| 88 | |
| 89 | | Code | Meaning | |
| 90 | |------|---------| |
| 91 | | 0 | Success, PR created and approved | |
| 92 | | 1 | Error during a stage | |
| 93 | | 2 | Max iterations exceeded | |
| 94 | | 3 | Configuration/argument error | |
| 95 | |
| 96 | ## CLI Session Isolation |
| 97 | |
| 98 | All `claude -p` invocations in orchestrator scripts **must** use `--no-resume` to prevent |
| 99 | session context contamination. Without it, the CLI may resume a cached session and the model |
| 100 | will return "already processed" instead of following the schema prompt — causing "No structured |
| 101 | output" failures. |
| 102 | |
| 103 | **Exception:** Explicit `--resume $SESSION_ID` after rate limit recovery is intentional and correct. |
| 104 | |
| 105 | ## Integration |
| 106 | |
| 107 | Called by `handle-issues` via `batch-orchestrator.sh`. |