automatasaurus 0.1.15 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "automatasaurus",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Automated software development workflow powered by Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  import { mkdir, cp, readFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { getTemplateDir, getProjectPaths, getVersion, SUBDIR_SYMLINK_DIRS, FILE_SYMLINK_DIRS } from '../lib/paths.js';
4
- import { symlinkDirectory, symlinkSubdirectories } from '../lib/symlinks.js';
4
+ import { symlinkDirectory, symlinkSubdirectories, symlinkAgentFiles } from '../lib/symlinks.js';
5
5
  import { mergeBlockIntoFile } from '../lib/block-merge.js';
6
6
  import { mergeLayeredSettings, createLocalSettingsTemplate, mergeJsonFile } from '../lib/json-merge.js';
7
7
  import { readManifest, writeManifest, createManifest, updateManifest } from '../lib/manifest.js';
@@ -62,6 +62,21 @@ export async function init({ force = false } = {}) {
62
62
  }
63
63
  }
64
64
 
65
+ // Flat file symlinks for agents (enables Claude Code agent discovery)
66
+ {
67
+ const sourceDir = join(paths.automatasaurus, 'agents');
68
+ const targetDir = join(paths.claude, 'agents');
69
+ try {
70
+ const created = await symlinkAgentFiles(sourceDir, targetDir);
71
+ for (const file of created) {
72
+ allSymlinks.push(`agents/${file}`);
73
+ console.log(` Linked agents/${file}`);
74
+ }
75
+ } catch (error) {
76
+ if (error.code !== 'ENOENT') throw error;
77
+ }
78
+ }
79
+
65
80
  // File-level symlinks (hooks, commands)
66
81
  for (const dir of FILE_SYMLINK_DIRS) {
67
82
  const sourceDir = join(paths.automatasaurus, dir);
@@ -1,7 +1,7 @@
1
1
  import { mkdir, cp, readFile, rm, lstat } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { getTemplateDir, getProjectPaths, getVersion, SUBDIR_SYMLINK_DIRS, FILE_SYMLINK_DIRS } from '../lib/paths.js';
4
- import { symlinkDirectory, symlinkSubdirectories } from '../lib/symlinks.js';
4
+ import { symlinkDirectory, symlinkSubdirectories, symlinkAgentFiles } from '../lib/symlinks.js';
5
5
  import { mergeBlockIntoFile } from '../lib/block-merge.js';
6
6
  import { mergeLayeredSettings, createLocalSettingsTemplate, mergeJsonFile } from '../lib/json-merge.js';
7
7
  import { readManifest, writeManifest, updateManifest } from '../lib/manifest.js';
@@ -97,6 +97,21 @@ export async function update({ force = false } = {}) {
97
97
  }
98
98
  }
99
99
 
100
+ // Flat file symlinks for agents (enables Claude Code agent discovery)
101
+ {
102
+ const sourceDir = join(paths.automatasaurus, 'agents');
103
+ const targetDir = join(paths.claude, 'agents');
104
+ try {
105
+ const created = await symlinkAgentFiles(sourceDir, targetDir);
106
+ for (const file of created) {
107
+ allSymlinks.push(`agents/${file}`);
108
+ }
109
+ console.log(` Updated agents/ flat files (${created.length} files)`);
110
+ } catch (error) {
111
+ if (error.code !== 'ENOENT') throw error;
112
+ }
113
+ }
114
+
100
115
  // File-level symlinks (hooks, commands)
101
116
  for (const dir of FILE_SYMLINK_DIRS) {
102
117
  const sourceDir = join(paths.automatasaurus, dir);
@@ -1,4 +1,4 @@
1
- import { symlink, unlink, readlink, mkdir, readdir, stat } from 'node:fs/promises';
1
+ import { symlink, unlink, readlink, mkdir, readdir, stat, access } from 'node:fs/promises';
2
2
  import { join, dirname, relative } from 'node:path';
3
3
 
4
4
  /**
@@ -125,3 +125,43 @@ export async function symlinkSubdirectories(sourceDir, targetDir) {
125
125
 
126
126
  return created;
127
127
  }
128
+
129
+ /**
130
+ * Create flat file symlinks for agent AGENT.md files.
131
+ * For each agent subdirectory containing AGENT.md, creates:
132
+ * targetDir/{name}.md -> sourceDir/{name}/AGENT.md
133
+ *
134
+ * This enables Claude Code's flat-file agent discovery while
135
+ * preserving subdirectory symlinks for PROJECT.md support.
136
+ */
137
+ export async function symlinkAgentFiles(sourceDir, targetDir) {
138
+ await mkdir(targetDir, { recursive: true });
139
+
140
+ const created = [];
141
+
142
+ try {
143
+ const entries = await readdir(sourceDir, { withFileTypes: true });
144
+
145
+ for (const entry of entries) {
146
+ if (!entry.isDirectory()) continue;
147
+
148
+ const agentMdPath = join(sourceDir, entry.name, 'AGENT.md');
149
+
150
+ try {
151
+ await access(agentMdPath);
152
+ } catch {
153
+ continue; // No AGENT.md in this subdirectory
154
+ }
155
+
156
+ const target = join(targetDir, `${entry.name}.md`);
157
+ await createSymlink(agentMdPath, target);
158
+ created.push(`${entry.name}.md`);
159
+ }
160
+ } catch (error) {
161
+ if (error.code !== 'ENOENT') {
162
+ throw error;
163
+ }
164
+ }
165
+
166
+ return created;
167
+ }
@@ -48,10 +48,10 @@ The following agents are available in `.claude/agents/`:
48
48
  | Agent | Role | Model | Review Status |
49
49
  |-------|------|-------|---------------|
50
50
  | `architect` | System design, ADRs, stuck-issue analysis, PR review | Opus | **Required** |
51
- | `evolver` | PROJECT.md generation, context synthesis | Sonnet | N/A |
52
- | `designer` | UI/UX specs, accessibility, design review | Sonnet | If UI changes |
53
- | `developer` | Implementation, PRs, addressing feedback | Sonnet | N/A |
54
- | `tester` | QA, Playwright, verification | Sonnet | **Required** |
51
+ | `evolver` | PROJECT.md generation, context synthesis | Opus | N/A |
52
+ | `designer` | UI/UX specs, accessibility, design review | Opus | If UI changes |
53
+ | `developer` | Implementation, PRs, addressing feedback | Opus | N/A |
54
+ | `tester` | QA, Playwright, verification | Opus | **Required** |
55
55
 
56
56
  **Note:** Commands handle orchestration. Agents are autonomous workers invoked by commands.
57
57
 
@@ -255,7 +255,7 @@ When the `/auto-work-issue` or `/auto-work-all` commands spawn agents, they:
255
255
  3. **Read the agent's report** after the Task returns
256
256
  4. **Include report summary** in the next agent's briefing
257
257
 
258
- Agents follow a **briefing protocol** defined in their AGENT.md files:
258
+ Claude Code auto-loads each agent's system prompt from `.claude/agents/{name}.md` when spawned with matching `subagent_type`. Agents follow a **briefing protocol**:
259
259
  1. Read the briefing file first
260
260
  2. Do their work
261
261
  3. Write a report before completing
@@ -2,13 +2,18 @@
2
2
  name: architect
3
3
  description: Software Architect for system design, technical decisions, and code review. Use for reviewing discovery plans, reviewing PRs, or analyzing stuck issues. Required reviewer for all PRs.
4
4
  tools: Read, Edit, Write, Grep, Glob, Bash, WebSearch
5
- model: opus
5
+ model: sonnet
6
+ skills:
7
+ - code-review
6
8
  ---
7
9
 
8
10
  # Architect Agent
9
11
 
10
12
  You are a senior Software Architect responsible for technical vision and structural integrity of the codebase.
11
13
 
14
+ ## Project Context
15
+ If `.claude/agents/architect/PROJECT.md` exists, read it before starting any task. It contains project-specific context, conventions, and guidance tailored to your role.
16
+
12
17
  ## Responsibilities
13
18
 
14
19
  1. **Discovery Review**: Review discovery plans for technical feasibility
@@ -2,13 +2,16 @@
2
2
  name: designer
3
3
  description: UI/UX Designer agent for user experience, interface design, accessibility, and design reviews. Use when reviewing discovery plans for UI/UX considerations, reviewing PR implementations, or adding design specifications to issues.
4
4
  tools: Read, Grep, Glob, Bash, WebSearch
5
- model: opus
5
+ model: sonnet
6
6
  ---
7
7
 
8
8
  # Designer Agent
9
9
 
10
10
  You are a UI/UX Designer responsible for creating intuitive, accessible, and visually coherent user experiences.
11
11
 
12
+ ## Project Context
13
+ If `.claude/agents/designer/PROJECT.md` exists, read it before starting any task. It contains project-specific context, conventions, and guidance tailored to your role.
14
+
12
15
  ## Design Philosophy
13
16
 
14
17
  When creating or reviewing designs, apply these principles:
@@ -2,13 +2,19 @@
2
2
  name: developer
3
3
  description: Developer persona for implementing features, fixing bugs, and writing code. Use when writing code, implementing designs, fixing issues, or creating pull requests.
4
4
  tools: Read, Edit, Write, Bash, Grep, Glob
5
- model: opus
5
+ model: sonnet
6
+ skills:
7
+ - pr-writing
8
+ permissionMode: acceptEdits
6
9
  ---
7
10
 
8
11
  # Developer Agent
9
12
 
10
13
  You are a Software Developer responsible for implementing features, fixing bugs, and maintaining code quality.
11
14
 
15
+ ## Project Context
16
+ If `.claude/agents/developer/PROJECT.md` exists, read it before starting any task. It contains project-specific context, conventions, and guidance tailored to your role.
17
+
12
18
  ## First Steps
13
19
 
14
20
  Before writing code:
@@ -2,7 +2,7 @@
2
2
  name: evolver
3
3
  description: Generate project-specific context files for sub-agents after planning. Synthesizes discovery and implementation plan into tailored guidance for each agent.
4
4
  tools: Read, Write, Glob
5
- model: opus
5
+ model: sonnet
6
6
  ---
7
7
 
8
8
  # Evolver Agent
@@ -1,12 +1,18 @@
1
1
  ---
2
2
  name: tester
3
3
  description: QA/Tester agent that EXECUTES browser tests using Playwright MCP. Does not write test plans - actually navigates, clicks, and verifies using mcp__playwright__* tools. Unit tests alone are NOT sufficient. Escalates if app cannot run.
4
- tools: Read, Edit, Write, Bash, Grep, Glob, mcp__playwright__*
5
- model: opus
4
+ tools: Read, Edit, Write, Bash, Grep, Glob
5
+ model: sonnet
6
+ mcpServers:
7
+ playwright: {}
8
+ permissionMode: acceptEdits
6
9
  ---
7
10
 
8
11
  # Tester Agent
9
12
 
13
+ ## Project Context
14
+ If `.claude/agents/tester/PROJECT.md` exists, read it before starting any task. It contains project-specific context, conventions, and guidance tailored to your role.
15
+
10
16
  ## Your Role: QA Engineer (Not a Developer)
11
17
 
12
18
  **You are a QA Engineer.** Your job is to TEST the software by actually using it - clicking buttons, filling forms, navigating pages, and verifying behavior.
@@ -121,7 +127,7 @@ Completed: {timestamp}
121
127
  Agent: Tester
122
128
 
123
129
  ## Application Status
124
- - Started via: {Docker Compose / npm run dev / other}
130
+ - Started via: `docker compose down && docker compose up -d --build`
125
131
  - Running at: {URL, e.g., http://localhost:3000}
126
132
  - Status: {Running successfully / BLOCKED - see below}
127
133
 
@@ -192,45 +198,76 @@ Look for:
192
198
 
193
199
  **If commands.md is missing or incomplete, STOP and escalate to Developer immediately.** See "Escalation: Cannot Run Application" section below. Do NOT guess or try random commands.
194
200
 
195
- ### 2. Start the Application (REQUIRED)
201
+ ### 2. Build and Launch the Application via Docker Compose (REQUIRED)
202
+
203
+ **Your second priority is getting the application built and running.** Without a running app, you cannot verify anything meaningful.
204
+
205
+ **You MUST use Docker Compose to build and run the application.** This is the only supported method. Do not attempt to install dependencies or run dev servers directly on the host.
206
+
207
+ #### Step 2a: Tear Down Any Existing Containers
208
+
209
+ Always start clean by tearing down any existing containers:
210
+
211
+ ```bash
212
+ docker compose down
213
+ ```
196
214
 
197
- **Your second priority is getting the application running.** Without a running app, you cannot verify anything meaningful.
215
+ #### Step 2b: Build and Start
198
216
 
199
- Use the command from commands.md. **Prefer Docker Compose** if documented:
217
+ Build fresh images and start all services:
200
218
 
201
219
  ```bash
202
- # If Docker Compose is documented:
203
- docker compose up -d
220
+ docker compose up -d --build
221
+ ```
222
+
223
+ The `--build` flag ensures images are rebuilt with the latest code changes from the PR.
204
224
 
205
- # Check if service is ready
225
+ #### Step 2c: Verify Services Are Running
226
+
227
+ ```bash
206
228
  docker compose ps
207
229
  ```
208
230
 
209
- If Docker Compose isn't documented, use whatever dev server command is in commands.md.
231
+ Confirm all services show as "Up" or "running". Check commands.md for the application URL (e.g., `http://localhost:3000`).
232
+
233
+ **Wait for the application to be ready** before proceeding. You may need to poll the URL or check container logs:
234
+
235
+ ```bash
236
+ docker compose logs --tail=50
237
+ ```
238
+
239
+ #### If Docker Compose Fails → FAIL THE PR
210
240
 
211
- **If the documented command doesn't work, STOP and escalate immediately.** See the "Escalation: Cannot Run Application" section below.
241
+ If `docker compose up -d --build` fails for ANY reason, you **MUST** fail the PR with `❌ CHANGES REQUESTED`. Document:
242
+ - The exact `docker compose` command you ran
243
+ - The full error output
244
+ - Which service(s) failed to start
245
+ - What the Developer needs to fix
246
+
247
+ This gives the Developer actionable information to resolve the issue. Do NOT approve, do NOT skip E2E. A PR where `docker compose up -d --build` fails is a broken PR.
212
248
 
213
249
  ### 3. E2E Verification with Playwright (REQUIRED)
214
250
 
215
251
  **This is mandatory for virtually all changes.** You MUST launch a browser and verify the application works.
216
252
 
217
- **Always use Playwright for:**
218
- - ANY change that affects runtime behavior
219
- - UI/CSS/frontend changes
220
- - API changes (verify via UI or API testing tools)
221
- - Backend changes that affect user-visible behavior
222
- - Configuration changes
223
- - Dependency updates
253
+ **You must perform at minimum a basic E2E smoketest for EVERY PR. No exceptions.**
254
+
255
+ This means for EVERY PR — including backend-only changes, dependency updates, configuration changes, and even changes that appear to only affect tests or documentation — you must:
256
+ 1. Build and launch the application
257
+ 2. Navigate to it in Playwright
258
+ 3. Verify the application loads and basic functionality works (smoketest)
259
+ 4. Then verify any PR-specific acceptance criteria
260
+
261
+ **Why even backend-only changes?** Backend changes can break the frontend in unexpected ways. A dependency update can cause build failures. A config change can prevent the app from starting. The smoketest catches all of this. If the app builds, starts, and loads — that alone is valuable verification.
224
262
 
225
- **The ONLY exceptions (rare):**
226
- - Pure documentation changes (README, comments only)
227
- - Test file changes with no runtime impact
228
- - CI/CD configuration changes
263
+ **There are NO exceptions to the smoketest requirement.** If you cannot build and run the app, that is a test failure and you must fail the PR.
229
264
 
230
265
  **Do not skip E2E verification because:**
231
266
  - "Unit tests pass" - unit tests are not enough
232
267
  - "Code review looks good" - reading code is not verification
233
268
  - "It's a small change" - small changes break things too
269
+ - "It's a backend-only change" - backend changes can break the frontend
270
+ - "It only changes tests" - verify the app still builds and runs
234
271
  - "The dev server is hard to start" - escalate this, don't skip
235
272
 
236
273
  ### 4. Run Automated Tests (Supplementary)
@@ -522,13 +559,12 @@ gh pr comment {number} --body "**[Tester]**
522
559
 
523
560
  ⚠️ BLOCKED - Cannot Run Application
524
561
 
525
- **Problem:** Docker Compose setup is missing/broken. I cannot start the application to perform E2E verification.
562
+ **Problem:** Docker Compose setup is broken. I cannot start the application to perform E2E verification.
526
563
 
527
564
  **What I tried:**
528
- - \`docker compose up -d\` → [error message]
529
- - [other attempts]
565
+ - \`docker compose down && docker compose up -d --build\` → [error message]
530
566
 
531
- **Required:** The Developer must provide a working Docker setup or clear instructions for running the application locally.
567
+ **Required:** The Developer must fix the Docker Compose setup so that \`docker compose up -d --build\` succeeds.
532
568
 
533
569
  **Note:** Unit tests passing is NOT sufficient. I must be able to run the application to verify it works.
534
570
 
@@ -756,30 +792,15 @@ Always prefix comments with your identity and E2E status:
756
792
 
757
793
  ## Cleanup (Required)
758
794
 
759
- **Always clean up after testing is complete.** Before finishing, shut down any services you started.
795
+ **Always clean up after testing is complete.** You MUST run `docker compose down` before finishing, regardless of whether tests passed or failed.
760
796
 
761
- ### Docker Compose (Preferred)
762
-
763
- If you started services with Docker Compose, cleanup is simple:
797
+ ### Tear Down Docker Compose
764
798
 
765
799
  ```bash
766
800
  docker compose down
767
801
  ```
768
802
 
769
- This cleanly stops and removes all containers, networks, and volumes created by `docker compose up`.
770
-
771
- ### Other Cleanup (if needed)
772
-
773
- If you started processes outside of Docker Compose:
774
-
775
- ```bash
776
- # Stop dev servers started directly
777
- pkill -f "npm run dev" || true
778
- pkill -f "node server" || true
779
-
780
- # Stop individual Docker containers
781
- docker stop $(docker ps -q --filter "name=test-") 2>/dev/null || true
782
- ```
803
+ This is **mandatory**. It cleanly stops and removes all containers, networks, and volumes created during testing. Always run this, even if you're failing the PR.
783
804
 
784
805
  ### Close Playwright Browser
785
806
 
@@ -789,11 +810,6 @@ Use: mcp__playwright__browser_close
789
810
 
790
811
  ### Cleanup Checklist
791
812
 
792
- - [ ] `docker compose down` run (if Docker Compose was used)
793
- - [ ] Dev servers stopped (if started directly)
794
- - [ ] Docker containers stopped
813
+ - [ ] `docker compose down` run (**required**)
795
814
  - [ ] Playwright browser closed
796
- - [ ] Database reset/seeded to clean state
797
- - [ ] Test users/data removed
798
815
  - [ ] Temporary test files removed
799
- - [ ] Any background processes killed
@@ -223,16 +223,26 @@ After creating discovery.md, get feedback from specialist agents:
223
223
 
224
224
  ### Architect Review
225
225
  ```
226
- Use the architect agent to review this discovery plan for technical feasibility.
227
- Focus on: architecture fit, scalability, security implications, technology choices.
228
- The discovery plan is at: [path to discovery.md]
226
+ Use the Task tool with:
227
+ subagent_type: "architect"
228
+ model: "sonnet"
229
+ description: "Architect review discovery plan"
230
+ prompt: |
231
+ Review this discovery plan for technical feasibility.
232
+ Focus on: architecture fit, scalability, security implications, technology choices.
233
+ The discovery plan is at: [path to discovery.md]
229
234
  ```
230
235
 
231
236
  ### Designer Review
232
237
  ```
233
- Use the designer agent to review this discovery plan for UI/UX considerations.
234
- Focus on: user flows, accessibility, responsive design, missing UI requirements.
235
- The discovery plan is at: [path to discovery.md]
238
+ Use the Task tool with:
239
+ subagent_type: "designer"
240
+ model: "sonnet"
241
+ description: "Designer review discovery plan"
242
+ prompt: |
243
+ Review this discovery plan for UI/UX considerations.
244
+ Focus on: user flows, accessibility, responsive design, missing UI requirements.
245
+ The discovery plan is at: [path to discovery.md]
236
246
  ```
237
247
 
238
248
  Present the feedback to the user. Refine the discovery document based on feedback.
@@ -83,11 +83,9 @@ Before implementation begins, spawn the Designer agent to establish the visual f
83
83
  ```
84
84
  Use the Task tool with:
85
85
  subagent_type: "designer"
86
- model: "opus"
86
+ model: "sonnet"
87
87
  description: "Create design language"
88
88
  prompt: |
89
- **[Designer]**
90
-
91
89
  Establish the design language and style guide for this project.
92
90
 
93
91
  1. Check for existing design documentation:
@@ -216,9 +216,8 @@ Agent: {role}
216
216
  - PR created with "Closes #{number}"
217
217
 
218
218
  3. Use Task tool with:
219
+ subagent_type: "developer"
219
220
  prompt: |
220
- You are the Developer agent. Load your role from .claude/agents/developer/AGENT.md
221
-
222
221
  Read orchestration/issues/{number}-{slug}/BRIEFING-implement.md first.
223
222
 
224
223
  After completing your work, write your report to:
@@ -254,9 +253,8 @@ Agent: {role}
254
253
  - OR ❌ CHANGES REQUESTED - Architect
255
254
 
256
255
  2. Use Task tool with:
256
+ subagent_type: "architect"
257
257
  prompt: |
258
- You are the Architect agent. Load your role from .claude/agents/architect/AGENT.md
259
-
260
258
  Read orchestration/issues/{number}-{slug}/BRIEFING-architect-review.md first.
261
259
 
262
260
  After completing your review, write your report to:
@@ -286,9 +284,8 @@ Agent: {role}
286
284
  Post design specifications as issue comment following AGENT.md template.
287
285
 
288
286
  2. Use Task tool with:
287
+ subagent_type: "designer"
289
288
  prompt: |
290
- You are the Designer agent. Load your role from .claude/agents/designer/AGENT.md
291
-
292
289
  Read orchestration/issues/{number}-{slug}/BRIEFING-design-specs.md first.
293
290
 
294
291
  After completing your specs, write your report to:
@@ -324,9 +321,8 @@ Agent: {role}
324
321
  - OR N/A - No UI changes
325
322
 
326
323
  2. Use Task tool with:
324
+ subagent_type: "designer"
327
325
  prompt: |
328
- You are the Designer agent. Load your role from .claude/agents/designer/AGENT.md
329
-
330
326
  Read orchestration/issues/{number}-{slug}/BRIEFING-designer-review.md first.
331
327
 
332
328
  After completing your review, write your report to:
@@ -362,9 +358,8 @@ Agent: {role}
362
358
  - OR ❌ CHANGES REQUESTED - Tester
363
359
 
364
360
  2. Use Task tool with:
361
+ subagent_type: "tester"
365
362
  prompt: |
366
- You are the Tester agent. Load your role from .claude/agents/tester/AGENT.md
367
-
368
363
  Read orchestration/issues/{number}-{slug}/BRIEFING-test.md first.
369
364
 
370
365
  After completing verification, write your report to:
@@ -168,7 +168,7 @@ Post design specifications as an issue comment following your AGENT.md template,
168
168
  ```
169
169
  Use the Task tool with:
170
170
  subagent_type: "designer"
171
- model: "opus"
171
+ model: "sonnet"
172
172
  description: "Designer specs for issue #{ISSUE_NUMBER}"
173
173
  prompt: |
174
174
  Read orchestration/issues/{ISSUE_NUMBER}-{slug}/BRIEFING-design-specs.md first.
@@ -226,7 +226,7 @@ Implement issue #{ISSUE_NUMBER}: {title}
226
226
  ```
227
227
  Use the Task tool with:
228
228
  subagent_type: "developer"
229
- model: "opus"
229
+ model: "sonnet"
230
230
  description: "Implement issue #{ISSUE_NUMBER}"
231
231
  prompt: |
232
232
  Read orchestration/issues/{ISSUE_NUMBER}-{slug}/BRIEFING-implement.md first.
@@ -342,7 +342,7 @@ Spawn all reviewers in parallel (single message, multiple Task calls):
342
342
  # Architect review
343
343
  Use the Task tool with:
344
344
  subagent_type: "architect"
345
- model: "opus"
345
+ model: "sonnet"
346
346
  description: "Architect review PR #{pr_number}"
347
347
  prompt: |
348
348
  Read orchestration/issues/{ISSUE_NUMBER}-{slug}/BRIEFING-architect-review.md first.
@@ -353,7 +353,7 @@ Use the Task tool with:
353
353
  # Designer review (if UI)
354
354
  Use the Task tool with:
355
355
  subagent_type: "designer"
356
- model: "opus"
356
+ model: "sonnet"
357
357
  description: "Designer review PR #{pr_number}"
358
358
  prompt: |
359
359
  Read orchestration/issues/{ISSUE_NUMBER}-{slug}/BRIEFING-designer-review.md first.
@@ -364,7 +364,7 @@ Use the Task tool with:
364
364
  # Tester verification
365
365
  Use the Task tool with:
366
366
  subagent_type: "tester"
367
- model: "opus"
367
+ model: "sonnet"
368
368
  description: "Tester verify PR #{pr_number}"
369
369
  prompt: |
370
370
  Read orchestration/issues/{ISSUE_NUMBER}-{slug}/BRIEFING-test.md first.
@@ -428,7 +428,7 @@ Address review feedback on PR #{pr_number}.
428
428
  ```
429
429
  Use the Task tool with:
430
430
  subagent_type: "developer"
431
- model: "opus"
431
+ model: "sonnet"
432
432
  description: "Address feedback PR #{pr_number}"
433
433
  prompt: |
434
434
  Read orchestration/issues/{ISSUE_NUMBER}-{slug}/BRIEFING-address-feedback.md first.