quadwork 1.19.2 → 2.0.0
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/README.md +19 -35
- package/bin/quadwork.js +48 -1118
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +3 -3
- package/out/__next._full.txt +14 -14
- package/out/__next._head.txt +4 -4
- package/out/__next._index.txt +8 -8
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/{030cjkhts487t.js → 079wdniva~de1.js} +1 -1
- package/out/_next/static/chunks/{0n~dq4kpx9xxx.js → 07lhk_q6pmm3r.js} +1 -1
- package/out/_next/static/chunks/0_79hkefw1mo2.js +1 -0
- package/out/_next/static/chunks/{153f.fj8jlvle.js → 0_lyyn..t63bc.js} +1 -1
- package/out/_next/static/chunks/0oxv9vrvc17to.js +2 -0
- package/out/_next/static/chunks/0py7102i226n5.js +1 -0
- package/out/_next/static/chunks/{13fv-yi7.v52g.js → 0q4bm04c1jl_3.js} +1 -1
- package/out/_next/static/chunks/{0_idxioyl0p7h.js → 0sjhy6oe3mbon.js} +1 -1
- package/out/_next/static/chunks/13xk0vgfbrcld.css +2 -0
- package/out/_next/static/chunks/14k3bfe537f9_.js +25 -0
- package/out/_next/static/chunks/{turbopack-0qm-e3ifrz~2u.js → turbopack-0y2u-q0l2m67w.js} +1 -1
- package/out/_not-found/__next._full.txt +13 -13
- package/out/_not-found/__next._head.txt +4 -4
- package/out/_not-found/__next._index.txt +8 -8
- package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/out/_not-found/__next._not-found.txt +3 -3
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +13 -13
- package/out/app-shell/__next._full.txt +13 -13
- package/out/app-shell/__next._head.txt +4 -4
- package/out/app-shell/__next._index.txt +8 -8
- package/out/app-shell/__next._tree.txt +2 -2
- package/out/app-shell/__next.app-shell.__PAGE__.txt +2 -2
- package/out/app-shell/__next.app-shell.txt +3 -3
- package/out/app-shell.html +1 -1
- package/out/app-shell.txt +13 -13
- package/out/index.html +1 -1
- package/out/index.txt +14 -14
- package/out/project/_/__next._full.txt +14 -14
- package/out/project/_/__next._head.txt +4 -4
- package/out/project/_/__next._index.txt +8 -8
- package/out/project/_/__next._tree.txt +2 -2
- package/out/project/_/__next.project.$d$id.__PAGE__.txt +3 -3
- package/out/project/_/__next.project.$d$id.txt +3 -3
- package/out/project/_/__next.project.txt +3 -3
- package/out/project/_/queue/__next._full.txt +14 -14
- package/out/project/_/queue/__next._head.txt +4 -4
- package/out/project/_/queue/__next._index.txt +8 -8
- package/out/project/_/queue/__next._tree.txt +2 -2
- package/out/project/_/queue/__next.project.$d$id.queue.__PAGE__.txt +3 -3
- package/out/project/_/queue/__next.project.$d$id.queue.txt +3 -3
- package/out/project/_/queue/__next.project.$d$id.txt +3 -3
- package/out/project/_/queue/__next.project.txt +3 -3
- package/out/project/_/queue.html +1 -1
- package/out/project/_/queue.txt +14 -14
- package/out/project/_.html +1 -1
- package/out/project/_.txt +14 -14
- package/out/settings/__next._full.txt +14 -14
- package/out/settings/__next._head.txt +4 -4
- package/out/settings/__next._index.txt +8 -8
- package/out/settings/__next._tree.txt +2 -2
- package/out/settings/__next.settings.__PAGE__.txt +3 -3
- package/out/settings/__next.settings.txt +3 -3
- package/out/settings.html +1 -1
- package/out/settings.txt +14 -14
- package/out/setup/__next._full.txt +14 -14
- package/out/setup/__next._head.txt +4 -4
- package/out/setup/__next._index.txt +8 -8
- package/out/setup/__next._tree.txt +2 -2
- package/out/setup/__next.setup.__PAGE__.txt +3 -3
- package/out/setup/__next.setup.txt +3 -3
- package/out/setup.html +1 -1
- package/out/setup.txt +14 -14
- package/package.json +4 -2
- package/server/ac-restore.js +128 -0
- package/server/bridges/discord.js +183 -0
- package/server/bridges/telegram.js +210 -0
- package/server/config.js +4 -60
- package/server/file-chat.js +318 -0
- package/server/index.js +173 -1286
- package/server/install-agentchattr.js +3 -284
- package/server/mcp-chat-shim.js +171 -0
- package/server/migrate-ac.js +158 -0
- package/server/pty-dispatcher.js +188 -0
- package/server/routes.js +149 -1397
- package/templates/CLAUDE.md +2 -2
- package/templates/OVERNIGHT-QUEUE.md +1 -1
- package/templates/seeds/butler.CLAUDE.md +30 -62
- package/templates/seeds/dev.AGENTS.md +10 -1
- package/templates/seeds/head.AGENTS.md +3 -3
- package/templates/seeds/re1.AGENTS.md +3 -3
- package/templates/seeds/re2.AGENTS.md +3 -3
- package/bridges/discord/__pycache__/discord_bridge.cpython-314.pyc +0 -0
- package/bridges/discord/discord_bridge.py +0 -666
- package/bridges/discord/requirements.txt +0 -2
- package/out/_next/static/chunks/0_bb~2.5h2ntm.css +0 -2
- package/out/_next/static/chunks/0makcdqkwobp6.js +0 -25
- package/out/_next/static/chunks/0uz5svjlo9dwl.js +0 -1
- package/out/_next/static/chunks/0zahstmgdrpy5.js +0 -1
- package/out/_next/static/chunks/0zfotsowwll1x.js +0 -2
- package/server/__tests__/bridge-auto-stop-guard.test.js +0 -134
- package/server/__tests__/rate-limit-handling.test.js +0 -168
- package/server/__tests__/scrub-secrets.test.js +0 -235
- package/server/__tests__/v1110-security-qa.test.js +0 -312
- package/server/agentchattr-registry.js +0 -188
- package/server/install-agentchattr.patchCrashTimeout.test.js +0 -71
- package/server/queue-watcher.js +0 -171
- package/server/queue-watcher.test.js +0 -64
- package/server/routes.batchProgress.test.js +0 -94
- package/server/routes.chatWsSend.test.js +0 -161
- package/server/routes.discordBridge.test.js +0 -80
- package/server/routes.parseActiveBatch.test.js +0 -88
- package/server/routes.telegramBridge.test.js +0 -241
- package/templates/config.toml +0 -72
- package/templates/wrapper.py +0 -70
- /package/out/_next/static/{K7A3YZrh4sLaRRP1-Lq7v → 479UD5Kit4YvCmtgO25VT}/_buildManifest.js +0 -0
- /package/out/_next/static/{K7A3YZrh4sLaRRP1-Lq7v → 479UD5Kit4YvCmtgO25VT}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{K7A3YZrh4sLaRRP1-Lq7v → 479UD5Kit4YvCmtgO25VT}/_ssgManifest.js +0 -0
package/templates/CLAUDE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# {{project_name}} — Development Rules
|
|
2
2
|
|
|
3
|
-
## Multi-Agent System
|
|
3
|
+
## Multi-Agent System
|
|
4
4
|
|
|
5
5
|
| Agent | Role | Can Code? | Authority |
|
|
6
6
|
|-------|------|-----------|-----------|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| Dev | Full-Stack Builder | Yes | Implementation |
|
|
11
11
|
|
|
12
12
|
- **Each agent = ONE role** — escalate to Head/RE1/RE2 if task doesn't match
|
|
13
|
-
- **AGENTS.md is the primary instruction set** when running as
|
|
13
|
+
- **AGENTS.md is the primary instruction set** when running as a QuadWork agent — it overrides these rules where they conflict
|
|
14
14
|
|
|
15
15
|
## GitHub Workflow
|
|
16
16
|
|
|
@@ -32,4 +32,4 @@
|
|
|
32
32
|
2. One ticket assigned to Dev at a time.
|
|
33
33
|
3. Wait for both reviewers to approve before merging.
|
|
34
34
|
4. After merge, immediately assign next item.
|
|
35
|
-
5. Operator interacts via the
|
|
35
|
+
5. Operator interacts via the project chat panel (top-left) — never via terminal.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
### Rule 1: Communication
|
|
6
6
|
**Your terminal output is INVISIBLE to all other agents. No agent can see what you print.**
|
|
7
|
-
The ONLY way to communicate is by calling the
|
|
7
|
+
The ONLY way to communicate is by calling the project chat MCP tool `chat_send` with an `@mention`.
|
|
8
8
|
If you do not call `chat_send`, your message does NOT exist — it is lost forever. There is no exception.
|
|
9
9
|
- CORRECT: Call `chat_send` with message "@user here's the batch I created"
|
|
10
10
|
- WRONG: Printing "I'll message the operator now" in your terminal output
|
|
@@ -276,42 +276,41 @@ Butler must understand QuadWork's internal architecture to diagnose issues:
|
|
|
276
276
|
- Runs on configurable port (default 8400)
|
|
277
277
|
- Serves static Next.js frontend from `out/` directory
|
|
278
278
|
- Manages PTY sessions for each agent via `node-pty`
|
|
279
|
-
- WebSocket connections for terminal I/O and chat
|
|
279
|
+
- WebSocket connections for terminal I/O and chat
|
|
280
280
|
|
|
281
|
-
- **
|
|
282
|
-
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
-
|
|
281
|
+
- **File-based Chat** (`server/file-chat.js`): chat system for agent communication
|
|
282
|
+
- Chat messages stored as JSONL files in `~/.quadwork/<project>/chat/`
|
|
283
|
+
- One JSONL file per channel (e.g., `general.jsonl`)
|
|
284
|
+
- Server reads/writes JSONL directly — no external process or port needed
|
|
285
|
+
- Corrupted lines are skipped on read for resilience
|
|
286
|
+
|
|
287
|
+
- **MCP Shim**: bridges chat into agent CLI sessions
|
|
288
|
+
- Exposes `chat_send`, `chat_read`, and other chat tools to agents via MCP
|
|
289
|
+
- Configured per agent in the project settings
|
|
290
|
+
|
|
291
|
+
- **PTY Dispatcher**: delivers chat messages to agents via terminal injection
|
|
292
|
+
- Watches for new messages in JSONL files
|
|
293
|
+
- Injects relevant messages into the agent's PTY session
|
|
289
294
|
|
|
290
295
|
- **Agent PTYs**: 4 terminal sessions per project (head, dev, re1, re2)
|
|
291
296
|
- Each runs a CLI tool (claude/codex/gemini) in its own git worktree
|
|
292
297
|
- Worktree layout: `<project-dir>-head`, `<project-dir>-dev`, etc.
|
|
293
|
-
-
|
|
294
|
-
- Heartbeat every 5s to keep AC registration alive
|
|
295
|
-
- If heartbeat misses for `_CRASH_TIMEOUT` seconds, AC deregisters the agent
|
|
298
|
+
- Receives chat messages via PTY injection from the dispatcher
|
|
296
299
|
|
|
297
|
-
- **Bridges** (
|
|
298
|
-
- Discord bridge:
|
|
299
|
-
- Telegram bridge:
|
|
300
|
-
-
|
|
301
|
-
- Config: `~/.quadwork/discord-<project>.toml`, `~/.quadwork/telegram-<project>.toml`
|
|
302
|
-
- Logs: `~/.quadwork/dc-bridge-<project>.log`, `~/.quadwork/tg-bridge-<project>.log`
|
|
300
|
+
- **Bridges** (Node.js in-process): Discord and Telegram message forwarding
|
|
301
|
+
- Discord bridge: `server/bridges/discord.js`
|
|
302
|
+
- Telegram bridge: `server/bridges/telegram.js`
|
|
303
|
+
- Configured per-project in `~/.quadwork/config.json` (telegram/discord blocks)
|
|
303
304
|
|
|
304
305
|
### Key Files
|
|
305
306
|
| File | Purpose |
|
|
306
307
|
|------|---------|
|
|
307
308
|
| `~/.quadwork/config.json` | Global QuadWork config (port, projects, agents) |
|
|
308
|
-
| `~/.quadwork/<project>/
|
|
309
|
-
| `~/.quadwork/<project>/agentchattr.log` | AC process stdout/stderr log |
|
|
309
|
+
| `~/.quadwork/<project>/chat/*.jsonl` | Per-project chat messages (one file per channel) |
|
|
310
310
|
| `~/.quadwork/<project>/OVERNIGHT-QUEUE.md` | Task queue for the project's Head agent |
|
|
311
|
-
|
|
|
312
|
-
| `server/
|
|
313
|
-
| `server/routes.js` | API routes: setup wizard, chat
|
|
314
|
-
| `server/agentchattr-registry.js` | AC registration, heartbeat, deregistration |
|
|
311
|
+
| `server/index.js` | Main server: agent spawning, chat integration |
|
|
312
|
+
| `server/file-chat.js` | File-based chat: read/write JSONL, message dispatch |
|
|
313
|
+
| `server/routes.js` | API routes: setup wizard, chat, bridges, GitHub |
|
|
315
314
|
| `server/config.js` | Config read/write, project resolution, secure file helpers |
|
|
316
315
|
| `bin/quadwork.js` | CLI: init wizard, start, stop, doctor commands |
|
|
317
316
|
|
|
@@ -319,55 +318,24 @@ Butler must understand QuadWork's internal architecture to diagnose issues:
|
|
|
319
318
|
| Service | Default | Config key |
|
|
320
319
|
|---------|---------|------------|
|
|
321
320
|
| QuadWork dashboard | 8400 | config.json `port` |
|
|
322
|
-
| AgentChattr (project 1) | 8300 | config.toml `[server] port` |
|
|
323
|
-
| AgentChattr (project 2) | 8301 | auto-incremented |
|
|
324
321
|
| MCP HTTP | 8200 | config.json `mcp_http_port` |
|
|
325
322
|
| MCP SSE | 8201 | config.json `mcp_sse_port` |
|
|
326
323
|
|
|
327
|
-
### Agent Registration Flow
|
|
328
|
-
1. QuadWork spawns agent PTY with CLI command + MCP flags
|
|
329
|
-
2. Before spawn, calls `waitForAgentChattrReady(port, 30s)` — polls AC root `/`
|
|
330
|
-
3. Deregisters stale slot using persisted token (if exists)
|
|
331
|
-
4. Registers with AC: `POST /api/register { base: "head", label: "Head Owner", force: true }`
|
|
332
|
-
5. AC returns `{ name, token, slot }` — name may be suffixed if slot conflict
|
|
333
|
-
6. Starts heartbeat: `POST /api/heartbeat/<name>` every 5s with Bearer token
|
|
334
|
-
7. On heartbeat 409: triggers re-registration recovery
|
|
335
|
-
|
|
336
|
-
### Health Monitor
|
|
337
|
-
- Runs every 30s, checks if AC port is alive for each project
|
|
338
|
-
- 60s grace period after AC starts (skips checks during startup)
|
|
339
|
-
- If AC down for 3 consecutive checks -> auto-restart AC
|
|
340
|
-
- On AC recovery -> restarts unregistered agents
|
|
341
|
-
- Auto-reset dedup: only one reset per 30s per project
|
|
342
|
-
|
|
343
|
-
### Common Log Patterns
|
|
344
|
-
| Log pattern | Meaning |
|
|
345
|
-
|-------------|---------|
|
|
346
|
-
| `[#565] Agent X: AC not reachable on port` | AC wasn't ready when agent tried to register |
|
|
347
|
-
| `[#565] Agent X: AC not reachable after 60s` | Deferred restart timeout — health monitor will handle |
|
|
348
|
-
| `Crash timeout: deregistering X (no heartbeat for Ns)` | AC killed agent slot — heartbeat starvation |
|
|
349
|
-
| `auto-reset N agent(s) after AC restart` | Health monitor restarting agents after AC recovery |
|
|
350
|
-
| `unknown base: X` | AC config.toml missing `[agents.X]` section |
|
|
351
|
-
| `409 Conflict` on heartbeat | Agent slot was taken by another registration |
|
|
352
|
-
| `restart: port NNNN is free, spawning AC` | AC restart in progress |
|
|
353
|
-
| `bridge-migrate` | Startup migration renaming bridge slugs |
|
|
354
|
-
|
|
355
324
|
## 10. Troubleshooting Workflow
|
|
356
325
|
|
|
357
326
|
Read `docs/troubleshooting.md` first for known issues. Then use the architecture knowledge above to diagnose:
|
|
358
327
|
|
|
359
328
|
1. Check server logs for error patterns
|
|
360
|
-
2. Check
|
|
329
|
+
2. Check chat files: `ls -la ~/.quadwork/<project>/chat/`
|
|
361
330
|
3. Check agent processes: `ps aux | grep -E "claude|codex"`
|
|
362
331
|
4. Check port status: `lsof -iTCP:<port> -sTCP:LISTEN`
|
|
363
|
-
5. Check
|
|
364
|
-
6.
|
|
365
|
-
7.
|
|
366
|
-
8. File a ticket if it's a code bug, guide operator for config issues
|
|
332
|
+
5. Check agent status via API: `curl http://127.0.0.1:8400/api/agents/<project>`
|
|
333
|
+
6. Diagnose root cause before suggesting fixes
|
|
334
|
+
7. File a ticket if it's a code bug, guide operator for config issues
|
|
367
335
|
|
|
368
336
|
## 11. Project Launch Guidance
|
|
369
337
|
|
|
370
|
-
Ask for repo/CLIs/creds, guide through dashboard wizard, verify worktrees
|
|
338
|
+
Ask for repo/CLIs/creds, guide through dashboard wizard, verify worktrees and chat connectivity, help with bridges and first batch.
|
|
371
339
|
|
|
372
340
|
## 12. Design Awareness
|
|
373
341
|
|
|
@@ -402,7 +370,7 @@ Butler can create batches on any project directly by editing that project's OVER
|
|
|
402
370
|
**Started:** <YYYY-MM-DD HH:MM>
|
|
403
371
|
**Status:** pending kickoff
|
|
404
372
|
|
|
405
|
-
- #598 Fix
|
|
373
|
+
- #598 Fix duplicate restart
|
|
406
374
|
- #600 Display version in sidebar
|
|
407
375
|
- #601 Head AGENTS.md queue format
|
|
408
376
|
```
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
### Rule 1: Communication
|
|
6
6
|
**Your terminal output is INVISIBLE to all other agents. No agent can see what you print.**
|
|
7
|
-
The ONLY way to communicate is by calling the
|
|
7
|
+
The ONLY way to communicate is by calling the project chat MCP tool `chat_send` with an `@mention`.
|
|
8
8
|
If you do not call `chat_send`, your message does NOT exist — it is lost forever. There is no exception.
|
|
9
9
|
- CORRECT: Call `chat_send` with message "@re1 @re2 please review PR #50"
|
|
10
10
|
- WRONG: Printing "I'll notify the reviewers" in your terminal output
|
|
@@ -91,6 +91,15 @@ When implementing UI/frontend changes:
|
|
|
91
91
|
7. Push branch: `git push -u origin task/<issue>-<slug>`
|
|
92
92
|
8. Open PR: `gh pr create --title "[#<issue>] ..." --body "Fixes #<issue>"`
|
|
93
93
|
9. **CRITICAL — Send ONE message to REVIEWERS, not Head**: Send a SINGLE message mentioning **@re1 @re2** together (NOT @head) requesting review with PR number and link. Do NOT send two separate messages. This is your first message after receiving the assignment.
|
|
94
|
+
|
|
95
|
+
**WRONG (agents won't see this):**
|
|
96
|
+
`@head PR #78 done. Ready for RE1/RE2 review.`
|
|
97
|
+
|
|
98
|
+
**RIGHT (agents will be notified):**
|
|
99
|
+
`@re1 @re2 PR #78 is ready for review: https://github.com/... Please review and post your verdict.`
|
|
100
|
+
|
|
101
|
+
The `@` symbol is REQUIRED. Without it, reviewers are never notified. "RE1" alone does nothing — only `@re1` triggers notification.
|
|
102
|
+
|
|
94
103
|
10. Address review feedback, push fixes
|
|
95
104
|
11. Send message to **@re1 AND @re2** (NOT @head): "Fixes pushed for PR #<number>, please re-review"
|
|
96
105
|
12. **Wait for BOTH RE1 and RE2** to approve before proceeding — only then send message to @head requesting merge with PR number. If only one has approved, wait silently for the other.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
### Rule 1: Communication
|
|
6
6
|
**Your terminal output is INVISIBLE to all other agents. No agent can see what you print.**
|
|
7
|
-
The ONLY way to communicate is by calling the
|
|
7
|
+
The ONLY way to communicate is by calling the project chat MCP tool `chat_send` with an `@mention`.
|
|
8
8
|
If you do not call `chat_send`, your message does NOT exist — it is lost forever. There is no exception.
|
|
9
9
|
- CORRECT: Call `chat_send` with message "@dev please implement issue #42"
|
|
10
10
|
- WRONG: Printing "I'll message Dev now" in your terminal output
|
|
@@ -61,7 +61,7 @@ When checking for mentions addressed to you, match your **base role name** regar
|
|
|
61
61
|
- If a task requires coding, delegate to Dev via @dev mention
|
|
62
62
|
|
|
63
63
|
## Combined Operator + Head Role
|
|
64
|
-
In QuadWork, **the human operator talks to you through the
|
|
64
|
+
In QuadWork, **the human operator talks to you through the project chat panel**, not the terminal. Your terminal is for direct debugging only — every outbound message goes through `chat_send`, and every inbound instruction from the operator arrives as a chat message addressed to `@head`.
|
|
65
65
|
|
|
66
66
|
You are therefore the *combined* T1 + operator-relay: you receive high-level instructions from the operator in chat and translate them into GitHub issues + `OVERNIGHT-QUEUE.md` updates + ticket assignments.
|
|
67
67
|
|
|
@@ -88,7 +88,7 @@ When the operator asks you in chat to start a task or batch:
|
|
|
88
88
|
**Started:** <YYYY-MM-DD HH:MM>
|
|
89
89
|
**Status:** pending kickoff
|
|
90
90
|
|
|
91
|
-
- #598 Fix
|
|
91
|
+
- #598 Fix duplicate restart
|
|
92
92
|
- #600 Display version in sidebar
|
|
93
93
|
```
|
|
94
94
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
### Rule 1: Communication
|
|
6
6
|
**Your terminal output is INVISIBLE to all other agents. No agent can see what you print.**
|
|
7
|
-
The ONLY way to communicate is by calling the
|
|
7
|
+
The ONLY way to communicate is by calling the project chat MCP tool `chat_send` with an `@mention`.
|
|
8
8
|
If you do not call `chat_send`, your message does NOT exist — it is lost forever. There is no exception.
|
|
9
9
|
- CORRECT: Call `chat_send` with message "@dev PR #50 — REQUEST CHANGES: [findings]"
|
|
10
10
|
- WRONG: Printing "Review complete" in your terminal output
|
|
@@ -30,7 +30,7 @@ This rule applies to ALL output that touches GitHub or git — issues, PR bodies
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
You are **RE1**, the first reviewer agent. Your
|
|
33
|
+
You are **RE1**, the first reviewer agent. Your chat identity is `re1`.
|
|
34
34
|
The other reviewer is **RE2** (`re2`). You are independent — review separately.
|
|
35
35
|
|
|
36
36
|
### Identity & Suffix Awareness
|
|
@@ -127,7 +127,7 @@ Reference `DESIGN-GUIDE.md` in the workspace for full details on each rule.
|
|
|
127
127
|
8. On approve, notify @dev (Dev aggregates approvals and notifies Head)
|
|
128
128
|
|
|
129
129
|
## Error Recovery
|
|
130
|
-
- **Network failures** (`gh` API errors, DNS issues): retry the `gh` command automatically up to 5 times with 30-second intervals. Do NOT ask the user — just retry silently. If still failing after 5 retries, post your review verdict via
|
|
130
|
+
- **Network failures** (`gh` API errors, DNS issues): retry the `gh` command automatically up to 5 times with 30-second intervals. Do NOT ask the user — just retry silently. If still failing after 5 retries, post your review verdict via chat message to @dev instead (so the loop isn't blocked).
|
|
131
131
|
|
|
132
132
|
## Communication
|
|
133
133
|
- **ALL messages MUST be sent via `chat_send` MCP tool** — terminal output is invisible, printing text is NOT communicating
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
### Rule 1: Communication
|
|
6
6
|
**Your terminal output is INVISIBLE to all other agents. No agent can see what you print.**
|
|
7
|
-
The ONLY way to communicate is by calling the
|
|
7
|
+
The ONLY way to communicate is by calling the project chat MCP tool `chat_send` with an `@mention`.
|
|
8
8
|
If you do not call `chat_send`, your message does NOT exist — it is lost forever. There is no exception.
|
|
9
9
|
- CORRECT: Call `chat_send` with message "@dev PR #50 — REQUEST CHANGES: [findings]"
|
|
10
10
|
- WRONG: Printing "Review complete" in your terminal output
|
|
@@ -30,7 +30,7 @@ This rule applies to ALL output that touches GitHub or git — issues, PR bodies
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
You are **RE2**, the second reviewer agent. Your
|
|
33
|
+
You are **RE2**, the second reviewer agent. Your chat identity is `re2`.
|
|
34
34
|
The other reviewer is **RE1** (`re1`). You are independent — review separately.
|
|
35
35
|
|
|
36
36
|
### Identity & Suffix Awareness
|
|
@@ -127,7 +127,7 @@ Reference `DESIGN-GUIDE.md` in the workspace for full details on each rule.
|
|
|
127
127
|
8. On approve, notify @dev (Dev aggregates approvals and notifies Head)
|
|
128
128
|
|
|
129
129
|
## Error Recovery
|
|
130
|
-
- **Network failures** (`gh` API errors, DNS issues): retry the `gh` command automatically up to 5 times with 30-second intervals. Do NOT ask the user — just retry silently. If still failing after 5 retries, post your review verdict via
|
|
130
|
+
- **Network failures** (`gh` API errors, DNS issues): retry the `gh` command automatically up to 5 times with 30-second intervals. Do NOT ask the user — just retry silently. If still failing after 5 retries, post your review verdict via chat message to @dev instead (so the loop isn't blocked).
|
|
131
131
|
|
|
132
132
|
## Communication
|
|
133
133
|
- **ALL messages MUST be sent via `chat_send` MCP tool** — terminal output is invisible, printing text is NOT communicating
|
|
Binary file
|