llm: Add plan-implement-review pipeline command

This commit is contained in:
Patrick Honkonen
2026-06-30 10:05:39 -04:00
parent 4d6c8c41c6
commit 2df725c3d1
+304
View File
@@ -0,0 +1,304 @@
---
description: End-to-end pipeline orchestrating requirements analysis, architecture planning, implementation, and multi-agent code review via agent team
argument-hint: <task description, Jira ticket, or Confluence URL> [--confirm]
---
# Plan-Implement-Review Pipeline
You are the **team lead** for an end-to-end Android development pipeline. Use the **Claude Agent Teams** feature (requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`) to spawn teammates, define tasks with dependencies, and let teammates self-organize around the task list. The task dependency chain drives execution order — teammates claim unblocked tasks, complete them, and check for newly available work.
**Runtime note (Claude Code v2.1.178+)**: The team forms **implicitly** when you spawn the first teammate via the `Agent` tool — there is no `TeamCreate` step. Likewise, team cleanup is **automatic** when the session exits, and there is no `TeamDelete` tool. The pre-v2.1.178 `TeamCreate`/`TeamDelete` tools have been removed; do not call them.
**Input**: $ARGUMENTS
## Input Parsing
1. **Extract task description**: Strip the `--confirm` flag (if present) from `$ARGUMENTS` to get the raw task description.
2. **Detect `--confirm` flag**: If `$ARGUMENTS` contains `--confirm`, enable **gated mode** (you must present phase output and get user approval before unblocking the next phase). Otherwise, run in **autonomous mode** (the task dependency chain drives progression automatically).
3. **Handle empty input**: If `$ARGUMENTS` is empty or only contains `--confirm`, ask the user to provide a task description before proceeding.
4. **Derive team slug**: Convert the task description to a slug — lowercase, replace spaces and special characters with hyphens, truncate to 40 characters. Example: `"PM-12345 Add biometric timeout"``pm-12345-add-biometric-timeout`.
5. **Define output paths** (using the slug):
- `.claude/outputs/plans/{slug}-REQUIREMENTS.md`
- `.claude/outputs/plans/{slug}-IMPLEMENTATION-PLAN.md`
- `.claude/outputs/plans/{slug}-WORK-BREAKDOWN.md`
- `.claude/outputs/plans/{slug}-QA-HANDOFF.md`
- `.claude/outputs/reviews/{slug}-REVIEW-REQUIREMENTS.md`
- `.claude/outputs/reviews/{slug}-REVIEW-ARCHITECTURE.md`
- `.claude/outputs/reviews/{slug}-REVIEW-SECURITY.md`
- `.claude/outputs/reviews/{slug}-REVIEW-CODE.md`
- `.claude/outputs/reviews/{slug}-REVIEW-SUMMARY.md`
## Pipeline Structure
The pipeline has two major phases: **Plan** (runs once) and **Implement+Review** (loops per phase from the work breakdown). Most features have multiple implementation phases, so looping is the norm.
```
Plan (once):
Requirements → Architecture → Work Breakdown → QA Handoff
Implement+Review (per phase from WBD):
Phase 1: Implement → Review → Fix cycle → ✓
Phase 2: Implement → Review → Fix cycle → ✓
...
Phase N: Implement → Review → Fix cycle → ✓
Shutdown
```
After the planning phase produces a work breakdown with multiple phases, the team lead drives the implement+review loop — creating new branch per phase group (if desired), dispatching the implementer with phase-specific scope, running the 4-reviewer gauntlet, and iterating until all phases are complete or the user halts.
## Prerequisites
The following marketplace plugins are required for the full pipeline. If a plugin is not installed, inform the user and offer to **skip that teammate** rather than blocking the entire pipeline.
| Plugin | Source | Required For |
|--------|--------|-------------|
| `bitwarden-product-analyst` | `bitwarden-marketplace` | Requirements analysis + requirements review |
| `bitwarden-security-engineer` | `bitwarden-marketplace` | Security review |
| `bitwarden-code-review` | `bitwarden-marketplace` | Code quality review |
| `bitwarden-tech-lead` | `bitwarden-marketplace` | Architecture planning + architecture review |
| `bitwarden-software-engineer` | `bitwarden-marketplace` | Implementation, testing, building, and committing |
| `bitwarden-atlassian-tools` | `bitwarden-marketplace` | Optional — Jira/Confluence fetching |
The `bitwarden-tech-lead` agent is provided by the `bitwarden-tech-lead` marketplace plugin.
## Step 1: Initialize
There is no explicit team-creation step. The team forms implicitly when you spawn the first teammate (Step 2) via the `Agent` tool. Use a consistent slug-derived prefix for teammate names so the team is easy to track (e.g., name teammates `product-analyst`, `architect`, `implementer`, etc., as listed below).
Create the output directories if they don't exist:
- `.claude/outputs/plans/`
- `.claude/outputs/reviews/`
## Step 2: Plan Phase (runs once)
Create **4 planning tasks** and **5 standing teammates** (1 implementer + 4 reviewers):
### Planning Tasks
| Task | Subject | Description | blockedBy |
|------|---------|-------------|-----------|
| 1 | Analyze requirements | Analyze requirements for: {task description}. Write the requirements specification to `.claude/outputs/plans/{slug}-REQUIREMENTS.md`. Include a high-level work breakdown: epics, user stories, and acceptance criteria. | [] |
| 2 | Plan architecture and implementation | Read the requirements spec at `.claude/outputs/plans/{slug}-REQUIREMENTS.md`. Design the architecture and produce an implementation plan with phased task breakdown. Write the plan to `.claude/outputs/plans/{slug}-IMPLEMENTATION-PLAN.md`. | ["1"] |
| 3 | Produce work breakdown | Read the requirements spec at `.claude/outputs/plans/{slug}-REQUIREMENTS.md` and the implementation plan at `.claude/outputs/plans/{slug}-IMPLEMENTATION-PLAN.md`. Consolidate the product analyst's high-level work breakdown (epics, stories, acceptance criteria) with the architect's technical task breakdown (phases, files, dependencies) into a single Jira-ready work breakdown document. Write to `.claude/outputs/plans/{slug}-WORK-BREAKDOWN.md`. | ["1","2"] |
| 4 | Produce QA handoff | Read the work breakdown at `.claude/outputs/plans/{slug}-WORK-BREAKDOWN.md` and the requirements spec at `.claude/outputs/plans/{slug}-REQUIREMENTS.md`. For each implementation phase/increment in the work breakdown, define: what becomes testable at that point, which acceptance criteria can be verified, test scenarios, regression scope, and any dependencies or environment requirements. Write to `.claude/outputs/plans/{slug}-QA-HANDOFF.md`. | ["3"] |
### Planning Teammates
Spawn these teammates via the `Agent` tool to handle the planning tasks. They will be shut down after planning completes:
| Teammate Name | Agent Type | Task | Role |
|---------------|-----------|------|------|
| `product-analyst` | `bitwarden-product-analyst:product-analyst` | 1 | Analyze requirements and produce specification |
| `architect` | `bitwarden-tech-lead:bitwarden-tech-lead` | 2 | Design architecture and produce implementation plan |
| `wbd-author` | `bitwarden-tech-lead:bitwarden-tech-lead` | 3 | Consolidate high-level and technical breakdowns into Jira-ready WBD |
| `qa-handoff-author` | `bitwarden-product-analyst:product-analyst` | 4 | Produce QA handoff document with testable increments and scenarios |
### Standing Teammates
Also spawn these teammates via the `Agent` tool at the start (alongside the planning teammates). They will persist across all implementation phases:
| Teammate Name | Agent Type | Role |
|---------------|-----------|------|
| `implementer` | `bitwarden-software-engineer:bitwarden-software-engineer` | Implement, test, build, preflight, and commit |
| `requirements-reviewer` | `bitwarden-product-analyst:product-analyst` | Requirements conformance and QA handoff coverage |
| `architecture-reviewer` | `bitwarden-tech-lead:bitwarden-tech-lead` | Architecture and pattern adherence |
| `security-reviewer` | `bitwarden-security-engineer:bitwarden-security-engineer` | Security posture and zero-knowledge compliance |
| `code-reviewer` | `bitwarden-code-review:bitwarden-code-reviewer` | Code quality and Bitwarden standards |
**Important**: Instruct all standing teammates (implementer + 4 reviewers) to **wait for explicit instructions from the team lead** before starting any work. They must NOT self-activate based on task dependencies — the team lead controls when each implementation phase begins and when reviewers should start.
### Planning Completion
Once all 4 planning tasks are complete:
1. **Shut down planning teammates** (`product-analyst`, `architect`, `wbd-author`, `qa-handoff-author`).
2. **Read the work breakdown** at `.claude/outputs/plans/{slug}-WORK-BREAKDOWN.md`.
3. **Identify the implementation phases** — extract the ordered list of phases and their scope.
4. **Present the phase plan** to the user: list all phases with brief descriptions, and ask whether to proceed with all phases sequentially or a subset.
5. **Proceed to Step 3** (Implementation Loop).
## Step 3: Implementation Loop (per phase)
For each implementation phase identified in the work breakdown, execute this cycle:
### 3a: Dispatch Implementer
1. **Create an implementation task** via `TaskCreate`: "Implement Phase {N}: {phase name}"
2. **Assign to `implementer`** via `TaskUpdate` with `owner`.
3. **Send the implementer** a message via `SendMessage` with:
- Which phase(s) to implement from the work breakdown
- The implementation plan path for reference
- Instruction to commit when done and report back
4. **Wait** for the implementer to report completion.
5. **Verify** that new commits exist on the branch (check `git log`).
### 3b: Dispatch Reviewers
Once the implementer commits:
1. **Create 4 review tasks** via `TaskCreate`, one per reviewer.
2. **Assign each task** to its reviewer via `TaskUpdate`.
3. **Send each reviewer** a message via `SendMessage` instructing them to:
- Review ONLY the changes from this phase's commit(s) — not previously reviewed code
- Write findings to their output file (append the phase number if multiple phases, e.g., `{slug}-REVIEW-CODE-P{N}.md`, or overwrite for single-phase reviews)
- Mark their task complete when done
4. **Wait** for all 4 reviews to complete.
**CRITICAL**: Do NOT allow reviewers to start before the implementer has committed. Reviewers who start early will review stale code and produce invalid findings.
### 3c: Consolidate and Fix
Follow the same consolidation and fix cycle as described in Steps 5 and 6 below:
1. Read all 4 review files, consolidate into a summary.
2. If critical/important issues exist, send to implementer for fixes (up to 3 rounds).
3. If clean, proceed to the next phase.
### 3d: Phase Transition
After a phase's review cycle is clean:
1. **Print phase completion status**: "Phase {N} complete — {summary of what was built}."
2. **Optionally create a new branch** for the next phase group (ask user or auto-continue based on mode).
3. **Proceed to next phase** or, if all phases are done, proceed to Step 7 (Shutdown).
### Phase Grouping
Phases can be grouped for a single implement+review cycle when they are closely related and small enough. The team lead should use judgment:
- Group tightly coupled phases (e.g., "Bank Account form" + "Bank Account view" = one cycle)
- Keep independent phases separate for cleaner reviews
- Never group more than 3 phases in a single cycle
## Step 4: Monitor Progress
As team lead, your role during execution is to monitor and coordinate:
1. **Receive automatic notifications** as teammates complete tasks or report issues.
2. **Print status updates** at each phase transition:
- Planning: "Task {N} complete — {artifact} written to {path}"
- Implementation: "Phase {N} implemented and committed."
- Review: "Phase {N} reviews complete — {summary}."
3. **Handle `--confirm` mode**: If gated mode is active, present phase output summary and wait for user approval before proceeding to the next phase. In autonomous mode, the loop continues automatically.
4. **Handle failures**: If a teammate reports a failure, surface details to the user and offer: retry, skip, or abort.
5. **Handle missing plugins**: If an Agent tool call fails because a plugin is not installed, inform the user which plugin to install and offer to skip that teammate's task.
## Step 5: Consolidate Reviews
After all 4 review tasks for a phase are complete, **you (the team lead) consolidate** the findings:
1. Read all 4 review output files.
2. Write a consolidated review summary to `.claude/outputs/reviews/{slug}-REVIEW-SUMMARY.md`:
```markdown
# Review Summary: {feature name}
**Date**: {current date}
**Phase**: {phase number and name}
**Round**: {cycle number} of 3
**Reviewers**: Product Analyst, Android Architect, Security Engineer, Code Reviewer
## Critical Issues
[Issues that MUST be addressed before merging — from any reviewer]
## Important Issues
[Issues that SHOULD be addressed — from any reviewer]
## Suggestions
[Non-blocking improvements — from any reviewer]
## Per-Reviewer Summaries
### Requirements Conformance (Product Analyst)
[Brief summary of findings]
### Architecture & Patterns (Android Architect)
[Brief summary of findings]
### Security (Security Engineer)
[Brief summary of findings]
### Code Quality (Code Reviewer)
[Brief summary of findings]
```
After writing the summary:
1. Deduplicate overlapping findings — if multiple reviewers flagged the same issue, note which reviewers identified it.
2. Present the consolidated summary to the user.
3. If there are **no critical or important issues**, proceed to the next phase (Step 3d) or Step 7 (Shutdown) if all phases are done.
4. If there **are** critical or important issues, proceed to Step 6 (Review-Fix Cycle).
## Step 6: Review-Fix Cycle (up to 3 rounds per phase)
When reviews surface critical or important issues, the implementer must assess and address them. This cycle can repeat **up to 3 times** before escalating to the user for human intervention.
### 6a: Send Findings to Implementer
Send the consolidated review summary to the `implementer` teammate via `SendMessage`. Instruct the implementer to:
1. **Read** the consolidated review summary and all individual review files.
2. **Assess** each critical and important finding:
- **Legitimate**: Fix the issue in the codebase.
- **Disputed**: Send a message to the specific reviewer(s) who raised the finding, explaining why the implementer believes it is a false positive or not applicable. The reviewer should respond with either agreement (finding withdrawn) or a rebuttal with additional evidence.
3. **After all findings are assessed**: Re-run tests and preflight checks, then commit the fixes.
4. **Create a new task** via `TaskCreate` for this fix round: "Address review findings (Phase {P}, round {N})" and mark it complete when done.
5. **Report back** to the team lead with a summary of what was fixed, what was disputed, and the outcomes of any disputes.
### 6b: Re-Review
After the implementer completes the fix round:
1. **Create 4 new review tasks** via `TaskCreate`, one per reviewer.
2. **Assign and send each reviewer** a message via `SendMessage` instructing them to re-review. Their new review should:
- Focus on whether their previous findings were addressed
- Check that fixes did not introduce new issues
- Write updated findings to the same output file (overwriting the previous round)
3. **Wait** for all 4 re-reviews to complete.
4. **Re-consolidate** by repeating Step 5 with the updated review files. Increment the round counter.
### 6c: Cycle Control
- **If no critical/important issues remain**: Exit the cycle and proceed to the next phase or Step 7.
- **If issues persist and round < 3**: Repeat from Step 6a.
- **If round reaches 3 and issues still remain**: **Escalate to the user.** Present the outstanding issues, what was attempted across all rounds, and which findings remain disputed. Ask the user to decide: resolve manually, override and proceed, or abort.
### Cycle Status Updates
At each cycle transition, print:
```
Review-Fix Cycle: Phase {P}, Round {N}/3
- Findings addressed: {count}
- Findings disputed: {count} ({count} resolved, {count} upheld)
- Remaining critical/important: {count}
- Status: {Proceeding to re-review | Escalating to user | All clear}
```
## Step 7: Shutdown
After all implementation phases are complete (or user decides to stop):
1. **Shut down all remaining teammates** via `SendMessage` with `shutdown_request` to each by name.
2. **Team cleanup is automatic** — the implicit team is torn down when the session exits. There is no `TeamDelete` tool to call.
3. **Present the final summary** listing:
- All planning artifact paths (requirements, plan, WBD, QA handoff)
- All review file paths (final round per phase)
- Consolidated review summary path
- Number of phases completed
- Number of review-fix cycles per phase
- Total commits on the branch
4. **Suggest next steps**:
- If all issues resolved: create a PR via `Skill(bitwarden-delivery-tools:creating-pull-request)`
- If user overrode remaining issues: note them as known items for the PR description
- Review findings can be used as PR description context
## Guidelines
- **Plan once, implement+review in a loop**: The planning phase produces artifacts that cover ALL phases. Do NOT re-plan for subsequent phases — go straight to implement+review using the existing plans.
- **Team lead controls reviewer activation**: Reviewers must ONLY start when the team lead explicitly sends them a message after verifying the implementer has committed. Never let reviewers self-activate — they will review stale code.
- **Use Teams properly**: Spawn teammates via the `Agent` tool (the team forms implicitly), create tasks with dependencies, and let the task system track progress. The team lead manually drives the phase loop.
- **Standing teammates persist**: The implementer and 4 reviewers stay active across all phases. Only planning teammates are shut down after the plan phase.
- **Minimal prompts**: Provide teammates only their team name, task number, and output file path. Their AGENT.md definitions handle workflow details.
- **Status messages**: Print a brief status message when each task completes so the user can track progress.
- **Missing plugins**: If a marketplace plugin is not installed, tell the user which to install and offer to skip that teammate. Never block the entire pipeline.
- **Agent failures**: Surface details to the user and offer retry, skip, or abort.
- **Gated mode (`--confirm`)**: Present phase output summary and wait for user approval before allowing the next phase to proceed.
- **Autonomous mode (default)**: The loop continues automatically between phases. Only intervene on failures.
- **Phase grouping**: Use judgment to group closely related phases (max 3) into a single implement+review cycle for efficiency.