一键导入
subagent-driven-development
Use when executing implementation plans with independent tasks in the current session
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when executing implementation plans with independent tasks in the current session
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Communicate efficiently without sacrificing clarity - natural, concise, actionable. Global skill loaded for every command and agent.
Use when reviewing or building UI components - ensures keyboard, screen-reader, and visual accessibility (WCAG 2.1 AA) so a11y is built in, not retrofitted.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Manages context caching to optimize token usage and cost by creating, incrementally updating, and invalidating caches while verifying integrity before reuse.
Clean code and engineering discipline: modularity, readability, sizing, naming, duplication, separation of concerns, plus the four behavioral principles - think before coding, simplicity first, surgical changes, and goal-driven execution. Global skill applied to all coding work.
Detects and resolves drift between code, documentation, and contextual knowledge, classifying each drift and recommending concrete sync actions to keep artifacts consistent.
| name | subagent-driven-development |
| description | Use when executing implementation plans with independent tasks in the current session |
| auto_load | ["/build"] |
| applies_to | ["orchestrator"] |
| mandatory | true |
Execute plan by dispatching a fresh implementer subagent per task, a task review (spec compliance + code quality) after each, and a broad whole-branch review at the end.
Why subagents: You delegate tasks to specialized agents with isolated context. By precisely crafting their instructions and context, you ensure they stay focused and succeed at their task. They should never inherit your session's context or history — you construct exactly what they need. This also preserves your own context for coordination work.
Core principle: Fresh subagent per task + task review (spec + quality) + broad final review = high quality, fast iteration
Narration: between tool calls, narrate at most one short line — the ledger and the tool results carry the record.
Continuous execution: Do not pause to check in with your human partner between tasks. Execute all tasks from the plan without stopping. The only reasons to stop are: BLOCKED status you cannot resolve, ambiguity that genuinely prevents progress, or all tasks complete. "Should I continue?" prompts and progress summaries waste their time — they asked you to execute the plan, so execute it.
Auto-Loaded By: /build command workflow
Required For: Orchestrator Agent
Used With: Backend Agent, Frontend Agent, QA Agent
Enforcement: Quality Gate - Fresh subagent + review per task
This skill integrates with Prodige's multi-agent architecture:
.ai/runtime/briefs/task-N-brief.md.ai/runtime/ledgers/progress.jsonProdige Workflow implements subagent-driven development as its core execution model. This skill defines the generic workflow; Prodige provides the agent roles, runtime structure, snapshot system, and command-level integration that makes this pattern production-ready.
Prodige formalizes the "fresh subagent per task" model with specialized agent roles:
Orchestrator Agent (.ai/agents/orchestrator.md)
/build command with a multi-task implementation plan. The Orchestrator is the "controller" role described throughout this skill..ai/runtime/ledgers/progress.json.ai/skills/ based on command contextBackend Agent (.ai/agents/backend.md)
Frontend Agent (.ai/agents/frontend.md)
QA Agent (.ai/agents/qa.md)
Reviewer Agent (.ai/agents/reviewer.md)
Relationship to this skill: The Prodige agents are the roles described in this skill, with explicit behavioral contracts defined in their agent files. When this skill says "dispatch implementer subagent," the Orchestrator dispatches Backend, Frontend, or QA agent. When this skill says "dispatch task reviewer subagent," the Orchestrator dispatches the Reviewer agent.
Prodige organizes the file handoffs and progress tracking this skill requires:
Task Briefs (.ai/runtime/briefs/)
.ai/runtime/briefs/task-N-brief.md.ai/runtime/briefs/task-1-brief.md
.ai/runtime/briefs/task-2-brief.md
.ai/runtime/briefs/task-3-brief.md
Task Reports (.ai/runtime/reports/)
.ai/runtime/reports/task-N-report.mdReview Packages (.ai/runtime/reviews/)
.ai/runtime/reviews/task-N-review-package.txtscripts/review-package BASE HEAD after implementer completes.ai/runtime/reviews/final-review-package.txt (MERGE_BASE to HEAD)Progress Ledger (.ai/runtime/ledgers/progress.json)
.ai/runtime/ledgers/progress.json{
"plan": "docs/plans/feature-x-plan.md",
"branch": "feature/user-auth",
"started": "2024-01-15T10:00:00Z",
"tasks": [
{
"id": 1,
"description": "Hook installation script",
"status": "complete",
"commits": "a1b2c3d..e4f5g6h",
"review": "clean",
"completed": "2024-01-15T10:30:00Z"
},
{
"id": 2,
"description": "Recovery modes",
"status": "complete",
"commits": "e4f5g6h..i7j8k9l",
"review": "clean",
"completed": "2024-01-15T11:15:00Z"
},
{
"id": 3,
"description": "Progress reporting",
"status": "in-progress",
"agent": "backend",
"started": "2024-01-15T11:20:00Z"
}
]
}
Review Reports (.ai/reports/reviews/)
.ai/reports/reviews/task-N-review.md (task reviews), .ai/reports/reviews/final-review.md (whole-branch)/build CommandProdige's /build command (.ai/commands/build.md) is the entry point for subagent-driven development:
Pre-Build:
/build with an approved plantest-driven-development, verification-before-completion, repomap, ripgrepExecution Loop:
.ai/runtime/briefs/task-N-brief.md.ai/runtime/reports/task-N-report.md)scripts/review-package BASE HEAD > .ai/runtime/reviews/task-N-review-package.txt.ai/reports/reviews/task-N-review.mdPost-Build:
scripts/review-package MERGE_BASE HEAD > .ai/runtime/reviews/final-review-package.txt/sync (context update) and prepares handoffProdige uses a snapshot system to manage context and enable parallel execution:
Snapshots:
.ai/context/ files (ARCHITECTURE.md, IMPLEMENTATION.md, CONTEXT.md, DECISIONS.md, CHANGELOG.md)/build, before risky operations, before parallel task dispatch.ai/snapshots/snapshot-{timestamp}/How subagent-driven development uses snapshots:
.ai/snapshots/snapshot-20240115-100000/ARCHITECTURE.md)/sync)Session isolation:
/build execution gets a unique session IDProdige enforces engineering behavioral principles at every stage, aligning with this skill's quality gates:
Principle 1: Think Before Coding (Surface Assumptions)
Principle 2: Simplicity First
Principle 3: Surgical Changes Only
Principle 4: Goal-Driven Execution (Verifiable Success Criteria)
Integration: These principles are baked into Prodige agent contracts. The Reviewer agent's checklist is literally the Engineering principle check. This skill's "Red Flags" section maps directly to Prodige's review severity levels.
Prodige's checkpoint system (.ai/commands/checkpoint.md) integrates with this skill's recovery strategy:
Automatic checkpoints:
/build: checkpoint-pre-build-{feature-name}checkpoint-task-{N}-completecheckpoint-pre-final-reviewManual checkpoints:
/checkpoint stable-state anytimecheckpoint-stable-stateRecovery scenario:
git log to verify commits existRollback scenario:
/rollback checkpoint-task-2-complete/build Execution in ProdigeSetup:
docs/plans/auth-feature-plan.md (3 tasks)/build docs/plans/auth-feature-plan.mdfeature/user-authenticationExecution:
[Orchestrator activates subagent-driven-development skill]
1. Pre-flight:
- Read auth-feature-plan.md
- Extract 3 tasks:
- Task 1: Add POST /auth/login endpoint
- Task 2: Add auth middleware
- Task 3: Add unit tests for auth flow
- Create snapshot: .ai/snapshots/snapshot-20240115-100000/
- Create progress ledger: .ai/runtime/ledgers/progress.json
- Create checkpoint: checkpoint-pre-build-auth-feature
2. Task 1: Add POST /auth/login endpoint
[Orchestrator]
- Extracts Task 1 to .ai/runtime/briefs/task-1-brief.md
- Records BASE commit: a1b2c3d
- Dispatches Backend agent with:
* Brief path: .ai/runtime/briefs/task-1-brief.md
* Report path: .ai/runtime/reports/task-1-report.md
* Global constraints: "Use JWT tokens, bcrypt for passwords"
* Snapshot path: .ai/snapshots/snapshot-20240115-100000/
[Backend agent]
- Reads brief: "Add POST /auth/login endpoint accepting {email, password}, return JWT on success"
- Clarifying question: "Should I use existing users table or create new?"
- [Orchestrator answers: "Use existing users table"]
- Implements using TDD:
* RED: Writes test_login_endpoint.js (expects 200 + token)
* Verifies RED: Test fails (endpoint doesn't exist)
* GREEN: Implements routes/auth.js (login endpoint)
* Verifies GREEN: Test passes
* REFACTOR: Extracts token generation to utils/jwt.js
* Verifies: Tests still green
- Runs full test suite: 42/42 passing
- Self-review: "Logic clear, covered with tests, no concerns"
- Writes .ai/runtime/reports/task-1-report.md:
```
Implemented: POST /auth/login endpoint
Files: routes/auth.js, utils/jwt.js, tests/auth/login.test.js
Tests: npm test -- login.test.js → 3/3 passing
Regression: npm test → 45/45 passing (was 42)
Self-review: No issues found
```
- Returns: DONE (commits: a1b2c3d..e4f5g6h)
[Orchestrator]
- Generates review package:
`scripts/review-package a1b2c3d e4f5g6h > .ai/runtime/reviews/task-1-review-package.txt`
- Dispatches Reviewer agent with:
* Brief: .ai/runtime/briefs/task-1-brief.md
* Report: .ai/runtime/reports/task-1-report.md
* Review package: .ai/runtime/reviews/task-1-review-package.txt
* Global constraints: "Use JWT tokens, bcrypt for passwords"
[Reviewer agent]
- Reads brief, report, review package
- Spec compliance check:
* ✅ POST /auth/login endpoint exists
* ✅ Accepts email, password
* ✅ Returns JWT on success
* ✅ Nothing extra (no password reset, no OAuth)
- Quality check:
* ✅ Simplicity: Functions, no unnecessary classes
* ✅ Surgical: Only auth-related files changed
* ✅ Verification: Test output provided, 45/45 passing
* ✅ TDD followed: Test in diff before implementation
- Writes .ai/reports/reviews/task-1-review.md:
```
Spec Compliance: ✅ All requirements met, nothing extra
Strengths: Clean implementation, good test coverage
Issues: None
Verdict: Task quality APPROVED
```
- Returns: Spec ✅, Quality Approved
[Orchestrator]
- Updates progress ledger:
```json
{"id": 1, "status": "complete", "commits": "a1b2c3d..e4f5g6h", "review": "clean"}
```
- Creates checkpoint: checkpoint-task-1-complete
3. Task 2: Add auth middleware
[Orchestrator]
- Extracts Task 2 to .ai/runtime/briefs/task-2-brief.md
- Records BASE commit: e4f5g6h
- Dispatches Backend agent with brief, report path, snapshot
[Backend agent]
- Reads brief: "Add middleware to protect routes, verify JWT, attach user to req.user"
- No questions (requirements clear)
- Implements using TDD:
* RED: Writes test_auth_middleware.js
* GREEN: Implements middleware/auth.js
* REFACTOR: Extracts JWT verification to utils/jwt.js
- Adds extra feature: Rate limiting on auth endpoints (NOT in brief)
- Writes report, returns: DONE (commits: e4f5g6h..i7j8k9l)
[Orchestrator]
- Generates review package
- Dispatches Reviewer agent
[Reviewer agent]
- Spec compliance check:
* ✅ Middleware protects routes
* ✅ Verifies JWT
* ✅ Attaches user to req.user
* ❌ EXTRA: Rate limiting (not requested)
- Writes review:
```
Spec Compliance: ❌
- Extra: Added rate limiting (not in brief, not in global constraints)
Issues:
- [Important] Scope creep: Remove rate limiting or get approval
Verdict: Must fix
```
- Returns: Spec ❌
[Orchestrator]
- Dispatches fix subagent (same Backend agent) with:
* "Remove rate limiting (scope creep per reviewer)"
* Append fix to .ai/runtime/reports/task-2-report.md
[Backend agent fixer]
- Removes rate limiting code
- Re-runs tests: 48/48 passing
- Appends to report:
```
Fix applied: Removed rate limiting
Tests: npm test → 48/48 passing
```
- Returns: DONE (new commit: i7j8k9l..m1n2o3p)
[Orchestrator]
- Generates new review package (e4f5g6h..m1n2o3p)
- Dispatches Reviewer agent for re-review
[Reviewer agent]
- Reads updated diff
- Spec compliance: ✅ (rate limiting removed)
- Quality: APPROVED
- Returns: Spec ✅, Quality Approved
[Orchestrator]
- Updates progress ledger: Task 2 complete
- Creates checkpoint: checkpoint-task-2-complete
4. Task 3: Add unit tests for auth flow
[Orchestrator]
- Dispatches QA agent (testing task)
[QA agent]
- Implements comprehensive test suite
- Returns: DONE
[Reviewer agent]
- Spec ✅, Quality Approved
[Orchestrator]
- Updates ledger: Task 3 complete
5. Final Whole-Branch Review
[Orchestrator]
- All tasks complete
- Generates final review package:
`scripts/review-package main feature/user-authentication > .ai/runtime/reviews/final-review-package.txt`
- Dispatches Reviewer agent for final review with:
* All task briefs
* Final review package
* Global constraints
* Accumulated minor issues (none in this case)
[Reviewer agent]
- Checks:
* All requirements from plan met: ✅
* No regressions (compared with main): ✅
* Architectural consistency: ✅
* Test coverage adequate: ✅
* No accumulated minor issues: ✅
- Writes .ai/reports/reviews/final-review.md:
```
Final Review: Auth Feature
Spec Compliance: ✅ All plan requirements met
Quality: APPROVED
Regressions: None detected
Merge Readiness: APPROVED
Recommendation: Ready to merge
```
- Returns: APPROVED
[Orchestrator]
- Runs `/sync` to update live context (if needed)
- Writes handoff: .ai/HANDOFF_FOR_NEXT_SESSION.md
- Reports to human: "Auth feature build complete. 3/3 tasks done. Final review clean. Ready for PR."
[Build complete: 2 hours 15 minutes, 3 tasks, 1 review loop (Task 2 scope creep fixed)]
Key Prodige patterns demonstrated:
What Prodige adds:
.ai/runtime/briefs/, .ai/runtime/reports/, .ai/runtime/reviews/, .ai/runtime/ledgers/)/build as entry point, /checkpoint for recovery, /sync for context updates)What remains generic:
Result: Prodige makes this skill production-ready by providing the agent infrastructure, runtime conventions, and tooling that the generic skill describes but doesn't implement.
Orchestrator (You):
Backend Agent:
Frontend Agent:
QA Agent:
Reviewer Agent:
.ai/reports/reviews/digraph when_to_use {
"Have implementation plan?" [shape=diamond];
"Tasks mostly independent?" [shape=diamond];
"Stay in this session?" [shape=diamond];
"subagent-driven-development" [shape=box];
"executing-plans" [shape=box];
"Manual execution or brainstorm first" [shape=box];
"Have implementation plan?" -> "Tasks mostly independent?" [label="yes"];
"Have implementation plan?" -> "Manual execution or brainstorm first" [label="no"];
"Tasks mostly independent?" -> "Stay in this session?" [label="yes"];
"Tasks mostly independent?" -> "Manual execution or brainstorm first" [label="no - tightly coupled"];
"Stay in this session?" -> "subagent-driven-development" [label="yes"];
"Stay in this session?" -> "executing-plans" [label="no - parallel session"];
}
vs. Executing Plans (parallel session):
digraph process {
rankdir=TB;
subgraph cluster_per_task {
label="Per Task";
"Dispatch implementer subagent (./implementer-prompt.md)" [shape=box];
"Implementer subagent asks questions?" [shape=diamond];
"Answer questions, provide context" [shape=box];
"Implementer subagent implements, tests, commits, self-reviews" [shape=box];
"Write diff file, dispatch task reviewer subagent (./task-reviewer-prompt.md)" [shape=box];
"Task reviewer reports spec ✅ and quality approved?" [shape=diamond];
"Dispatch fix subagent for Critical/Important findings" [shape=box];
"Mark task complete in todo list and progress ledger" [shape=box];
}
"Read plan, note context and global constraints, create todos" [shape=box];
"More tasks remain?" [shape=diamond];
"Dispatch final code reviewer subagent (../requesting-code-review/code-reviewer.md)" [shape=box];
"Use finishing-a-development-branch" [shape=box style=filled fillcolor=lightgreen];
"Read plan, note context and global constraints, create todos" -> "Dispatch implementer subagent (./implementer-prompt.md)";
"Dispatch implementer subagent (./implementer-prompt.md)" -> "Implementer subagent asks questions?";
"Implementer subagent asks questions?" -> "Answer questions, provide context" [label="yes"];
"Answer questions, provide context" -> "Dispatch implementer subagent (./implementer-prompt.md)";
"Implementer subagent asks questions?" -> "Implementer subagent implements, tests, commits, self-reviews" [label="no"];
"Implementer subagent implements, tests, commits, self-reviews" -> "Write diff file, dispatch task reviewer subagent (./task-reviewer-prompt.md)";
"Write diff file, dispatch task reviewer subagent (./task-reviewer-prompt.md)" -> "Task reviewer reports spec ✅ and quality approved?";
"Task reviewer reports spec ✅ and quality approved?" -> "Dispatch fix subagent for Critical/Important findings" [label="no"];
"Dispatch fix subagent for Critical/Important findings" -> "Write diff file, dispatch task reviewer subagent (./task-reviewer-prompt.md)" [label="re-review"];
"Task reviewer reports spec ✅ and quality approved?" -> "Mark task complete in todo list and progress ledger" [label="yes"];
"Mark task complete in todo list and progress ledger" -> "More tasks remain?";
"More tasks remain?" -> "Dispatch implementer subagent (./implementer-prompt.md)" [label="yes"];
"More tasks remain?" -> "Dispatch final code reviewer subagent (../requesting-code-review/code-reviewer.md)" [label="no"];
"Dispatch final code reviewer subagent (../requesting-code-review/code-reviewer.md)" -> "Use finishing-a-development-branch";
}
Before dispatching Task 1, scan the plan once for conflicts:
Present everything you find to your human partner as one batched question — each finding beside the plan text that mandates it, asking which governs — before execution begins, not one interrupt per discovery mid-plan. If the scan is clean, proceed without comment. The review loop remains the net for conflicts that only emerge from implementation.
Use the least powerful model that can handle each role to conserve cost and increase speed.
Mechanical implementation tasks (isolated functions, clear specs, 1-2 files): use a fast, cheap model. Most implementation tasks are mechanical when the plan is well-specified.
Integration and judgment tasks (multi-file coordination, pattern matching, debugging): use a standard model.
Architecture and design tasks: use the most capable available model. The final whole-branch review is one of these — dispatch it on the most capable available model, not the session default.
Review tasks: choose the model with the same judgment, scaled to the diff's size, complexity, and risk. A small mechanical diff does not need the most capable model; a subtle concurrency change does.
Always specify the model explicitly when dispatching a subagent. An omitted model inherits your session's model — often the most capable and most expensive — which silently defeats this section.
Turn count beats token price. Wall-clock and context cost scale with how many turns a subagent takes, and the cheapest models routinely take 2-3× the turns on multi-step work — costing more overall. Use a mid-tier model as the floor for reviewers and for implementers working from prose descriptions. When the task's plan text contains the complete code to write, the implementation is transcription plus testing: use the cheapest tier for that implementer. Single-file mechanical fixes also take the cheapest tier.
Task complexity signals (implementation tasks):
Implementer subagents report one of four statuses. Handle each appropriately:
DONE: Generate the review package (scripts/review-package BASE HEAD, from this skill's directory — it prints the unique file path it wrote; BASE is the commit you recorded before dispatching the implementer — never HEAD~1, which silently drops all but the last commit of a multi-commit task), then dispatch the task reviewer with the printed path.
DONE_WITH_CONCERNS: The implementer completed the work but flagged doubts. Read the concerns before proceeding. If the concerns are about correctness or scope, address them before review. If they're observations (e.g., "this file is getting large"), note them and proceed to review.
NEEDS_CONTEXT: The implementer needs information that wasn't provided. Provide the missing context and re-dispatch.
BLOCKED: The implementer cannot complete the task. Assess the blocker:
Never ignore an escalation or force the same model to retry without changes. If the implementer said it's stuck, something needs to change.
The task reviewer may report "⚠️ Cannot verify from diff" items — requirements that live in unchanged code or span tasks. These do not block the rest of the review, but you must resolve each one yourself before marking the task complete: you hold the plan and cross-task context the reviewer lacks. If you confirm an item is a real gap, treat it as a failed spec review — send it back to the implementer and re-review.
Per-task reviews are task-scoped gates. The broad review happens once, at the final whole-branch review. When you fill a reviewer template:
scripts/review-package BASE HEAD and pass the reviewer the file path
it prints (or, without bash: git log --oneline, git diff --stat,
and git diff -U10 for the range, redirected to one uniquely named
file). The output never enters your own context, and the reviewer sees
the commit list, stat summary, and full diff with context in one Read
call. Use the BASE you recorded before dispatching the implementer —
never HEAD~1, which silently truncates multi-commit tasks.scripts/review-package MERGE_BASE HEAD (MERGE_BASE = the commit the
branch started from, e.g. git merge-base main HEAD) and include the
printed path in the final review dispatch, so the final reviewer reads
one file instead of re-deriving the branch diff with git commands.Everything you paste into a dispatch prompt — and everything a subagent prints back — stays resident in your context for the rest of the session and is re-read on every later turn. Hand artifacts over as files:
scripts/task-brief PLAN_FILE N — it extracts the task's full text to a
uniquely named file and prints the path. Compose the dispatch so the
brief stays the single source of requirements. Your dispatch should
contain: (1) one line on where this task fits in the project; (2) the
brief path, introduced as "read this first — it is your requirements,
with the exact values to use verbatim"; (3) interfaces and decisions
from earlier tasks that the brief cannot know; (4) your resolution of
any ambiguity you noticed in the brief; (5) the report-file path and
report contract. Exact values (numbers, magic strings, signatures, test
cases) appear only in the brief.…/task-N-brief.md → report …/task-N-report.md) and put it in
the dispatch prompt. The implementer writes the full report there and
returns only status, commits, a one-line test summary, and concerns.Task Briefs: .ai/runtime/briefs/task-{N}-brief.md
Progress Ledger: .ai/runtime/ledgers/progress.json
Task Reports: .ai/runtime/reports/task-{N}-report.md
Review Reports: .ai/reports/reviews/task-{N}-review.md
Implementation Plan: .ai/context/IMPLEMENTATION.md
Architecture: .ai/context/ARCHITECTURE.md
PRD: .ai/context/PRD.md
Conversation memory does not survive compaction. In real sessions, controllers that lost their place have re-dispatched entire completed task sequences — the single most expensive failure observed. Track progress in a ledger file, not only in todos.
cat "$(git rev-parse --git-path sdd)/progress.md". Tasks listed there
as complete are DONE — do not re-dispatch them; resume at the first task
not marked complete.Task N: complete (commits <base7>..<head7>, review clean).git log over your own recollection.Scenario: Orchestrator executing 3-task feature implementation
# Orchestrator reads plan
Read: .ai/context/IMPLEMENTATION.md
# Plan has 3 tasks:
# Task 1: Implement POST /api/users endpoint (Backend)
# Task 2: Add UserForm component (Frontend)
# Task 3: Add E2E test for user creation (QA)
# Initialize progress ledger
mkdir -p .ai/runtime/ledgers
echo '{"tasks": []}' > .ai/runtime/ledgers/progress.json
Orchestrator:
Create: .ai/runtime/briefs/task-001-brief.md
Dispatch Backend Agent:
Brief: .ai/runtime/briefs/task-001-brief.md
Report: .ai/runtime/reports/task-001-report.md
Context: .ai/context/ARCHITECTURE.md, .ai/context/PRD.md
Backend Agent:
Read brief → Ask clarification (if needed) → Implement with TDD → Self-review → Commit
Returns:
Status: DONE
Commits: abc123, def456
Tests: 12/12 passing
Report: .ai/runtime/reports/task-001-report.md
Orchestrator:
Generate review package: git diff {BASE}..{HEAD}
Dispatch Reviewer Agent:
Brief: .ai/runtime/briefs/task-001-brief.md
Report: .ai/runtime/reports/task-001-report.md
Diff: {review-package}
Save To: .ai/reports/reviews/task-001-review.md
Reviewer Agent:
Spec compliance: ✅
Code quality: ✅ Approved
Issues: None
Orchestrator:
Update ledger:
{"task": 1, "status": "complete", "commits": "abc123..def456", "review": "clean"}
Continue to Task 2
[Same pattern with Frontend Agent]
[Same pattern with QA Agent]
Orchestrator:
All tasks complete
Generate full branch diff: git diff {MERGE_BASE}..HEAD
Dispatch Final Reviewer:
Type: Pre-Merge Review
Diff: Full branch
Save To: .ai/reports/reviews/pre-merge-feature-users.md
Final Reviewer:
Overall: ✅ APPROVED
Merge recommendation: Safe to merge
Orchestrator:
Feature complete
Ready for /release workflow
vs. Manual execution:
vs. Executing Plans:
Efficiency gains:
Quality gates:
Cost:
Never:
scripts/task-brief — instead)scripts/review-package BASE HEAD) and name the printed path in the
promptgit log) after any compaction or resumeIf subagent asks questions:
If reviewer finds issues:
If subagent fails task:
Required workflow skills:
Subagents should use:
Alternative workflow: