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 +1 -1
- package/src/commands/init.js +16 -1
- package/src/commands/update.js +16 -1
- package/src/lib/symlinks.js +41 -1
- package/template/CLAUDE.block.md +5 -5
- package/template/agents/architect/AGENT.md +6 -1
- package/template/agents/designer/AGENT.md +4 -1
- package/template/agents/developer/AGENT.md +7 -1
- package/template/agents/evolver/AGENT.md +1 -1
- package/template/agents/tester/AGENT.md +66 -50
- package/template/commands/auto-discovery.md +16 -6
- package/template/commands/auto-plan.md +1 -3
- package/template/skills/agent-coordination/SKILL.md +5 -10
- package/template/skills/work-issue/SKILL.md +6 -6
package/package.json
CHANGED
package/src/commands/init.js
CHANGED
|
@@ -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);
|
package/src/commands/update.js
CHANGED
|
@@ -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);
|
package/src/lib/symlinks.js
CHANGED
|
@@ -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
|
+
}
|
package/template/CLAUDE.block.md
CHANGED
|
@@ -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 |
|
|
52
|
-
| `designer` | UI/UX specs, accessibility, design review |
|
|
53
|
-
| `developer` | Implementation, PRs, addressing feedback |
|
|
54
|
-
| `tester` | QA, Playwright, verification |
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
5
|
-
model:
|
|
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:
|
|
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.
|
|
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
|
-
|
|
215
|
+
#### Step 2b: Build and Start
|
|
198
216
|
|
|
199
|
-
|
|
217
|
+
Build fresh images and start all services:
|
|
200
218
|
|
|
201
219
|
```bash
|
|
202
|
-
|
|
203
|
-
|
|
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
|
-
|
|
225
|
+
#### Step 2c: Verify Services Are Running
|
|
226
|
+
|
|
227
|
+
```bash
|
|
206
228
|
docker compose ps
|
|
207
229
|
```
|
|
208
230
|
|
|
209
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
218
|
-
|
|
219
|
-
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
-
|
|
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
|
-
**
|
|
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
|
|
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
|
|
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.**
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
227
|
-
|
|
228
|
-
|
|
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
|
|
234
|
-
|
|
235
|
-
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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.
|