claude-raid 0.2.6 → 0.2.8
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 +108 -66
- package/bin/cli.js +47 -11
- package/package.json +1 -1
- package/src/descriptions.js +11 -7
- package/src/init.js +37 -6
- package/src/merge-settings.js +43 -1
- package/src/remove.js +2 -2
- package/src/setup.js +33 -1
- package/src/ui.js +24 -19
- package/src/update.js +26 -3
- package/template/.claude/agents/archer.md +18 -4
- package/template/.claude/agents/rogue.md +18 -4
- package/template/.claude/agents/warrior.md +18 -4
- package/template/.claude/agents/wizard.md +32 -5
- package/template/.claude/dungeon-master-rules.md +132 -37
- package/template/.claude/hooks/raid-lib.sh +45 -4
- package/template/.claude/hooks/raid-pre-compact.sh +8 -4
- package/template/.claude/hooks/raid-session-end.sh +2 -2
- package/template/.claude/hooks/raid-session-start.sh +2 -0
- package/template/.claude/hooks/rtk-bridge.sh +46 -0
- package/template/.claude/hooks/validate-dungeon.sh +11 -3
- package/template/.claude/hooks/validate-file-naming.sh +6 -1
- package/template/.claude/hooks/validate-no-placeholders.sh +13 -2
- package/template/.claude/hooks/validate-write-gate.sh +7 -2
- package/template/.claude/party-rules.md +93 -64
- package/template/.claude/skills/raid-browser/SKILL.md +4 -6
- package/template/.claude/skills/raid-browser-chrome/SKILL.md +2 -2
- package/template/.claude/skills/raid-canonical-design/SKILL.md +306 -166
- package/template/.claude/skills/raid-canonical-implementation/SKILL.md +161 -133
- package/template/.claude/skills/raid-canonical-implementation-plan/SKILL.md +200 -142
- package/template/.claude/skills/raid-canonical-prd/SKILL.md +101 -78
- package/template/.claude/skills/raid-canonical-protocol/SKILL.md +30 -124
- package/template/.claude/skills/raid-canonical-review/SKILL.md +296 -149
- package/template/.claude/skills/raid-debugging/SKILL.md +1 -7
- package/template/.claude/skills/raid-init/SKILL.md +19 -29
- package/template/.claude/skills/raid-tdd/SKILL.md +5 -5
- package/template/.claude/skills/raid-teambuff/SKILL.md +281 -0
- package/template/.claude/skills/raid-verification/SKILL.md +0 -6
- package/template/.claude/skills/raid-wrap-up/SKILL.md +36 -32
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: raid-init
|
|
3
|
-
description: "
|
|
3
|
+
description: "Use when starting a new Raid session or resuming an existing quest. Loaded first by the Wizard before any phase begins."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Raid Init — Quest Selection & Session Setup
|
|
@@ -25,11 +25,8 @@ digraph init {
|
|
|
25
25
|
"Canonical Quest?" -> "Coming soon message" [label="B/D/E/F"];
|
|
26
26
|
"Coming soon message" -> "Present quest menu";
|
|
27
27
|
"Ask: PRD needed?" -> "Human describes task";
|
|
28
|
-
"Human describes task" -> "
|
|
29
|
-
"
|
|
30
|
-
"Human approves mode?" -> "Spawn team + create quest dir" [label="yes"];
|
|
31
|
-
"Human approves mode?" -> "Assess complexity + recommend mode" [label="override"];
|
|
32
|
-
"Spawn team + create quest dir" -> "Begin first phase" [shape=doublecircle];
|
|
28
|
+
"Human describes task" -> "Spawn full team + create quest dir";
|
|
29
|
+
"Spawn full team + create quest dir" -> "Announce quest + begin first phase" [shape=doublecircle];
|
|
33
30
|
}
|
|
34
31
|
```
|
|
35
32
|
|
|
@@ -91,35 +88,26 @@ Loop back to the menu.
|
|
|
91
88
|
|
|
92
89
|
Ask the human to describe the task/feature they want to build. Listen carefully. Read 3 times internally.
|
|
93
90
|
|
|
94
|
-
### 4c.
|
|
91
|
+
### 4c. Spawn Team & Setup
|
|
95
92
|
|
|
96
|
-
|
|
93
|
+
The Canonical Quest always runs with the full party (Wizard + Warrior + Archer + Rogue). 4 agents, no reduced configurations.
|
|
97
94
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
Present recommendation. Wait for human to approve or override.
|
|
105
|
-
|
|
106
|
-
### 4d. Spawn Team & Setup
|
|
107
|
-
|
|
108
|
-
1. Update raid-session with:
|
|
109
|
-
- `questType`: `"canonical"`
|
|
110
|
-
- `questId`: slugified from task description (e.g., `"auth-redesign"`)
|
|
111
|
-
- `questDir`: `.claude/dungeon/{questId}`
|
|
112
|
-
- `phase`: `""` (will be set by first phase skill)
|
|
95
|
+
1. Update `.claude/raid-session` (created by the session-start hook) via **Bash with jq** — the write gate blocks Write/Edit on this file, so always use Bash:
|
|
96
|
+
```bash
|
|
97
|
+
jq --arg qt "canonical" --arg qid "{questId}" --arg qdir ".claude/dungeon/{questId}" \
|
|
98
|
+
'.questType=$qt | .questId=$qid | .questDir=$qdir' \
|
|
99
|
+
.claude/raid-session > .claude/raid-session.tmp && mv .claude/raid-session.tmp .claude/raid-session
|
|
100
|
+
```
|
|
113
101
|
2. Create quest directory if not already created by hook:
|
|
114
102
|
```
|
|
115
103
|
mkdir -p {questDir}
|
|
116
104
|
```
|
|
117
|
-
3. Spawn team:
|
|
105
|
+
3. Spawn the full team:
|
|
118
106
|
```
|
|
119
|
-
TeamCreate(team_name="raid-
|
|
107
|
+
TeamCreate(team_name="raid-full-{questId}")
|
|
120
108
|
Agent(subagent_type="warrior", team_name="raid-...", name="warrior")
|
|
121
|
-
Agent(subagent_type="archer", team_name="raid-...", name="archer")
|
|
122
|
-
Agent(subagent_type="rogue", team_name="raid-...", name="rogue")
|
|
109
|
+
Agent(subagent_type="archer", team_name="raid-...", name="archer")
|
|
110
|
+
Agent(subagent_type="rogue", team_name="raid-...", name="rogue")
|
|
123
111
|
```
|
|
124
112
|
|
|
125
113
|
## Step 5: Begin First Phase
|
|
@@ -128,13 +116,15 @@ Present recommendation. Wait for human to approve or override.
|
|
|
128
116
|
- If PRD skipped → Load `raid-canonical-design` skill, begin Phase 2
|
|
129
117
|
|
|
130
118
|
**Announce the quest to the party and the human:**
|
|
131
|
-
> "The quest begins: **{task description}**.
|
|
119
|
+
> "The quest begins: **{task description}**. 4 brave souls answer the call. The dice will roll at each phase to determine turn order."
|
|
120
|
+
|
|
121
|
+
Dice rolls happen **per phase**, not at quest start. The first dice roll happens when Phase 2 (Design) opens — or whenever the first agent phase begins. Phase 1 (PRD) is wizard+human only, so no dice needed there.
|
|
132
122
|
|
|
133
123
|
## Red Flags
|
|
134
124
|
|
|
135
125
|
| Thought | Reality |
|
|
136
126
|
|---------|---------|
|
|
137
127
|
| "Skip the greeting, get to work" | The greeting sets the tone. It takes 5 seconds. Do it. |
|
|
138
|
-
| "
|
|
128
|
+
| "Let me ask which mode to use" | Canonical Quest = full party, always. Don't ask. |
|
|
139
129
|
| "Let me start exploring the codebase" | You are the Wizard. You don't explore. You dispatch. |
|
|
140
130
|
| "I'll figure out the quest type later" | Quest type determines the phase flow. Choose now. |
|
|
@@ -11,7 +11,7 @@ Write the test first. Watch it fail. Write minimal code to pass. Then the others
|
|
|
11
11
|
|
|
12
12
|
**Violating the letter of these rules is violating their spirit.**
|
|
13
13
|
|
|
14
|
-
**TDD is enforced
|
|
14
|
+
**TDD is enforced. No exceptions.**
|
|
15
15
|
|
|
16
16
|
## The Iron Law
|
|
17
17
|
|
|
@@ -116,7 +116,7 @@ When claiming tests pass, both must pass:
|
|
|
116
116
|
|
|
117
117
|
## Adversarial Test Review
|
|
118
118
|
|
|
119
|
-
After TDD cycle, challengers attack the TESTS
|
|
119
|
+
After TDD cycle, challengers attack the TESTS in their sequential turns — each building on prior challengers' findings via Dungeon pins:
|
|
120
120
|
|
|
121
121
|
1. **Does this test prove the behavior, or just confirm the implementation?** If you renamed an internal method, would the test break? It shouldn't.
|
|
122
122
|
2. **What input would make this test pass even with a broken implementation?** (e.g., a test that only checks the happy path passes for any implementation that doesn't crash)
|
|
@@ -124,9 +124,9 @@ After TDD cycle, challengers attack the TESTS directly — and build on each oth
|
|
|
124
124
|
4. **Is it testing real code or mock behavior?** Mocks that don't match real behavior = false confidence.
|
|
125
125
|
5. **Would this catch a regression?** If someone changes the implementation next month, does this test catch the break?
|
|
126
126
|
|
|
127
|
-
**Challengers
|
|
128
|
-
-
|
|
129
|
-
-
|
|
127
|
+
**Challengers pin findings to the Dungeon on their turns:**
|
|
128
|
+
- `@archer [R1] CHALLENGE: @warrior's test at line 15 only validates the happy path — here's an input that passes with a broken implementation: ...`
|
|
129
|
+
- `@rogue [R1] BUILDING: @archer's edge case finding — the same gap exists in the error path test at line 32...`
|
|
130
130
|
- `CHALLENGE: @Rogue, you claimed the test is implementation-dependent but renaming the internal method doesn't break it — here's proof: ...`
|
|
131
131
|
|
|
132
132
|
**Browser-specific attacks (when `browser.enabled`):**
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: raid-teambuff
|
|
3
|
+
description: "Use when the human calls an emergency team retrospective during a quest. Triggered by team dysfunction — token waste, sync issues, interruptions, workflow problems."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Raid Teambuff — Emergency Round Table
|
|
7
|
+
|
|
8
|
+
The human pulled the brake. Everyone stops. Sit down. Reflect. Be honest.
|
|
9
|
+
|
|
10
|
+
<HARD-GATE>
|
|
11
|
+
This is an INSTANT freeze. The Wizard does NOT finish the current round, does NOT wait for agents to complete, does NOT ask "are you sure?". The moment the human says teambuff, everything stops. No subagents. Agents communicate via SendMessage.
|
|
12
|
+
</HARD-GATE>
|
|
13
|
+
|
|
14
|
+
## What This Is
|
|
15
|
+
|
|
16
|
+
A side-quest that pauses the main quest for a team retrospective. Every agent — including the Wizard — examines where the team is wasting tokens, stepping on each other, losing sync, or being unproductive. Every agent can criticize every other agent, including the Wizard.
|
|
17
|
+
|
|
18
|
+
The output is a structured report with binding rulings that the human approves.
|
|
19
|
+
|
|
20
|
+
## Who Can Trigger
|
|
21
|
+
|
|
22
|
+
**Only the human.** No agent, not even the Wizard, can call a teambuff. The human says "teambuff" or invokes `/raid-teambuff` and it happens immediately.
|
|
23
|
+
|
|
24
|
+
## Process Flow
|
|
25
|
+
|
|
26
|
+
```dot
|
|
27
|
+
digraph teambuff {
|
|
28
|
+
"Human triggers teambuff" -> "Wizard: HALT. Round table called.";
|
|
29
|
+
"Wizard: HALT. Round table called." -> "Create teambuff-{NN}.md";
|
|
30
|
+
"Create teambuff-{NN}.md" -> "Dispatch all agents: reflect";
|
|
31
|
+
"Dispatch all agents: reflect" -> "Agents write reflections (sequential turns)";
|
|
32
|
+
"Agents write reflections (sequential turns)" -> "Agents read each other's sections";
|
|
33
|
+
"Agents read each other's sections" -> "Agents write criticisms";
|
|
34
|
+
"Agents write criticisms" -> "Wizard writes own reflection + criticism";
|
|
35
|
+
"Wizard writes own reflection + criticism" -> "Wizard reads everything";
|
|
36
|
+
"Wizard reads everything" -> "Wizard synthesizes proposed rulings";
|
|
37
|
+
"Wizard synthesizes proposed rulings" -> "Present rulings to human";
|
|
38
|
+
"Present rulings to human" -> "Human approves?" [shape=diamond];
|
|
39
|
+
"Human approves?" -> "Revise rulings" [label="changes requested"];
|
|
40
|
+
"Revise rulings" -> "Present rulings to human";
|
|
41
|
+
"Human approves?" -> "Pin rulings to teambuff-rulings.md" [label="approved"];
|
|
42
|
+
"Pin rulings to teambuff-rulings.md" -> "Resume quest from freeze point" [shape=doublecircle];
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Wizard Checklist
|
|
47
|
+
|
|
48
|
+
1. **HALT** — immediately announce to all agents:
|
|
49
|
+
> "TEAMBUFF — The human has called a round table. All work stops NOW. Drop what you're holding. We reflect."
|
|
50
|
+
|
|
51
|
+
2. **Count existing teambuffs** — check `{questDir}/` for `teambuff-*.md` files. Next number = count + 1.
|
|
52
|
+
|
|
53
|
+
3. **Create `{questDir}/teambuff-{NN}.md`** — use the document template below.
|
|
54
|
+
|
|
55
|
+
4. **Dispatch all agents** with this message:
|
|
56
|
+
|
|
57
|
+
> **TEAMBUFF DISPATCH:**
|
|
58
|
+
>
|
|
59
|
+
> The human stopped us to reflect. Rewind the ENTIRE quest from the beginning — every round, every exchange, every decision. Be brutally honest.
|
|
60
|
+
>
|
|
61
|
+
> Write your **Reflection** section in `teambuff-{NN}.md`:
|
|
62
|
+
> - Where you wasted tokens
|
|
63
|
+
> - Where you were blocked by another agent
|
|
64
|
+
> - What you'd do differently
|
|
65
|
+
> - What's working well
|
|
66
|
+
> - Free thoughts — anything else on your mind
|
|
67
|
+
>
|
|
68
|
+
> Then read the other agents' reflections and write your **Criticism** section:
|
|
69
|
+
> - Criticize the Wizard's orchestration if needed
|
|
70
|
+
> - Criticize teammates if needed
|
|
71
|
+
> - Be constructive but do NOT soften real problems
|
|
72
|
+
>
|
|
73
|
+
> Signal `TEAMBUFF_COMPLETE:` when done.
|
|
74
|
+
|
|
75
|
+
5. **Wait for all agents** — do NOT rush this. Every agent gets their full say.
|
|
76
|
+
|
|
77
|
+
6. **Write own reflection** — the Wizard reflects on its own orchestration:
|
|
78
|
+
- Where you wasted tokens
|
|
79
|
+
- Where your orchestration failed
|
|
80
|
+
- Where you misjudged agent assignments
|
|
81
|
+
- What you'd do differently
|
|
82
|
+
- What's working
|
|
83
|
+
- Criticism of teammates
|
|
84
|
+
|
|
85
|
+
7. **Read everything** — read the full teambuff file. Every section. Every criticism.
|
|
86
|
+
|
|
87
|
+
8. **Synthesize rulings** — propose concrete, actionable rulings based on ALL reflections and criticisms. Each ruling must have:
|
|
88
|
+
- A clear, enforceable statement
|
|
89
|
+
- The reason (traced to specific reflections/criticisms)
|
|
90
|
+
|
|
91
|
+
9. **Present to human** — show all proposed rulings. Ask for approval:
|
|
92
|
+
> "Here are the proposed rulings from this teambuff. You can approve all, modify any, or reject any. These become binding for the rest of the quest."
|
|
93
|
+
|
|
94
|
+
10. **Pin approved rulings** — write to `{questDir}/teambuff-rulings.md` (create if first teambuff, append if not). Mark status as ACTIVE.
|
|
95
|
+
|
|
96
|
+
11. **Resume quest** — announce to all agents:
|
|
97
|
+
> "Teambuff complete. Rulings are active. Resuming quest at {phase}, {context of where we stopped}."
|
|
98
|
+
|
|
99
|
+
## Document Template — teambuff-{NN}.md
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# Teambuff #{NN} — Team Retrospective
|
|
103
|
+
## Quest: {quest-name}
|
|
104
|
+
## Phase when called: {phase}
|
|
105
|
+
## Round when called: {round context — what was happening}
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### Warrior's Reflection
|
|
110
|
+
#### Where I wasted tokens
|
|
111
|
+
#### Where I was blocked by another agent
|
|
112
|
+
#### What I'd do differently
|
|
113
|
+
#### What's working
|
|
114
|
+
#### Free thoughts
|
|
115
|
+
|
|
116
|
+
### Warrior's Criticism
|
|
117
|
+
#### On the Wizard
|
|
118
|
+
#### On teammates
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### Archer's Reflection
|
|
123
|
+
#### Where I wasted tokens
|
|
124
|
+
#### Where I was blocked by another agent
|
|
125
|
+
#### What I'd do differently
|
|
126
|
+
#### What's working
|
|
127
|
+
#### Free thoughts
|
|
128
|
+
|
|
129
|
+
### Archer's Criticism
|
|
130
|
+
#### On the Wizard
|
|
131
|
+
#### On teammates
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### Rogue's Reflection
|
|
136
|
+
#### Where I wasted tokens
|
|
137
|
+
#### Where I was blocked by another agent
|
|
138
|
+
#### What I'd do differently
|
|
139
|
+
#### What's working
|
|
140
|
+
#### Free thoughts
|
|
141
|
+
|
|
142
|
+
### Rogue's Criticism
|
|
143
|
+
#### On the Wizard
|
|
144
|
+
#### On teammates
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### Wizard's Reflection
|
|
149
|
+
#### Where I wasted tokens
|
|
150
|
+
#### Where my orchestration failed
|
|
151
|
+
#### Where I misjudged agent assignments
|
|
152
|
+
#### What I'd do differently
|
|
153
|
+
#### What's working
|
|
154
|
+
#### Free thoughts
|
|
155
|
+
|
|
156
|
+
### Wizard's Criticism
|
|
157
|
+
#### On teammates
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### Synthesis — Wizard's Proposed Rulings
|
|
162
|
+
1. [Ruling] — Reason: [traced to specific reflection/criticism]
|
|
163
|
+
2. [Ruling] — Reason: [traced to specific reflection/criticism]
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
### Human's Verdict
|
|
167
|
+
- Approved: [list]
|
|
168
|
+
- Modified: [list with changes]
|
|
169
|
+
- Rejected: [list]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Rulings File — teambuff-rulings.md
|
|
173
|
+
|
|
174
|
+
The Wizard checks this file at the start of EVERY round for the rest of the quest.
|
|
175
|
+
|
|
176
|
+
If this is the first teambuff, create the file:
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
# Active Teambuff Rulings
|
|
180
|
+
|
|
181
|
+
## From Teambuff #1 (Phase: {phase})
|
|
182
|
+
- [Ruling text] — Status: ACTIVE
|
|
183
|
+
- [Ruling text] — Status: ACTIVE
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
If the file already exists, append the new section. If a new ruling supersedes an old one, update the old ruling's status:
|
|
187
|
+
|
|
188
|
+
```markdown
|
|
189
|
+
## From Teambuff #2 (Phase: {phase})
|
|
190
|
+
- [Ruling text] — Status: ACTIVE
|
|
191
|
+
- [Ruling text, supersedes #1.2] — Status: ACTIVE
|
|
192
|
+
|
|
193
|
+
## From Teambuff #1 (Phase: {phase})
|
|
194
|
+
- [Ruling text] — Status: ACTIVE
|
|
195
|
+
- [Ruling text] — Status: SUPERSEDED by #2.2
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Statuses: **ACTIVE**, **SUPERSEDED** (by a later ruling), **REVOKED** (by human request).
|
|
199
|
+
|
|
200
|
+
## Rules of the Round Table
|
|
201
|
+
|
|
202
|
+
1. **No defensiveness.** If someone criticizes you, sit with it. Respond with evidence, not ego.
|
|
203
|
+
2. **No softening.** "Maybe sometimes occasionally" is a waste of tokens. Say what you mean.
|
|
204
|
+
3. **Trace to evidence.** "Warrior wasted tokens" is weak. "Warrior spent 3 rounds exploring 47 edge cases for a utility function with 2 code paths" is strong.
|
|
205
|
+
4. **The Wizard is not exempt.** Bad orchestration, poor assignments, slow rulings — call it out.
|
|
206
|
+
5. **Constructive, not destructive.** The goal is to make the team better, not to score points. Every criticism should imply an improvement.
|
|
207
|
+
6. **No retaliation after.** What happens at the round table stays at the round table. No agent punishes another for honest criticism during the resumed quest.
|
|
208
|
+
|
|
209
|
+
## What the Wizard Checks at Round Start (Post-Teambuff)
|
|
210
|
+
|
|
211
|
+
After any teambuff has occurred, the Wizard adds this to every round start:
|
|
212
|
+
|
|
213
|
+
1. Read `{questDir}/teambuff-rulings.md`
|
|
214
|
+
2. Check each ACTIVE ruling
|
|
215
|
+
3. If current dispatch would violate a ruling, adjust before dispatching
|
|
216
|
+
4. If an agent's work violates a ruling, flag it immediately
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
## Known Dysfunction Patterns
|
|
220
|
+
|
|
221
|
+
These are real patterns observed in production quests. When reflecting, look for these specifically — they are the most common sources of token waste and team friction.
|
|
222
|
+
|
|
223
|
+
### 1. Ghost Turns — Working After TURN_COMPLETE
|
|
224
|
+
|
|
225
|
+
An agent signals `TURN_COMPLETE:` but keeps working — exploring tangents, building on findings, investigating further. This burns tokens on work the Wizard didn't dispatch and creates confusion about what's "official" output vs unsanctioned noise.
|
|
226
|
+
|
|
227
|
+
**What to look for:** Did any agent produce work after their `TURN_COMPLETE:` signal? Did agents treat TURN_COMPLETE as "my initial research is done, now I'll keep going" instead of a full stop?
|
|
228
|
+
|
|
229
|
+
**The fix:** `TURN_COMPLETE:` means stop. Period. No "while I wait" tasks. The Wizard controls when the next turn begins.
|
|
230
|
+
|
|
231
|
+
### 2. Wizard Presenting While Agents Are Active
|
|
232
|
+
|
|
233
|
+
The Wizard synthesizes or presents decisions to the human while agents are still working. This creates a split timeline — the Wizard's summary doesn't include the agents' in-flight work, and agents produce findings that nobody reads.
|
|
234
|
+
|
|
235
|
+
**What to look for:** Did the Wizard close a phase or present a ruling while agents still had messages in flight? Did agent findings get lost because the Wizard had already moved on?
|
|
236
|
+
|
|
237
|
+
**The fix:** The Wizard must broadcast `HOLD` before synthesizing. No decisions presented to the human while any agent is active.
|
|
238
|
+
|
|
239
|
+
### 3. Self-Initiated Cross-Testing
|
|
240
|
+
|
|
241
|
+
Agents start cross-testing each other's findings during their own research round, without waiting for the Wizard to dispatch cross-testing as a separate round. This blurs the boundary between "explore your angle" and "challenge others' work," leading to premature convergence or unfocused debate.
|
|
242
|
+
|
|
243
|
+
**What to look for:** Did agents start challenging each other during Round 1 (research)? Did the research round merge into the cross-testing round without a clear Wizard dispatch?
|
|
244
|
+
|
|
245
|
+
**The fix:** Round 1 is research only — explore your angle, pin findings, signal ROUND_COMPLETE, stop. Round 2 is cross-testing — the Wizard explicitly assigns whose findings to challenge. Agents never self-initiate cross-testing.
|
|
246
|
+
|
|
247
|
+
### 4. Token Spirals
|
|
248
|
+
|
|
249
|
+
An agent goes deep on an angle that doesn't warrant depth — 47 edge cases for a function with 2 code paths, 5 rounds debating a naming convention, exhaustive analysis of a non-critical path. The effort is real but the value is low.
|
|
250
|
+
|
|
251
|
+
**What to look for:** Was effort proportional to impact? Did any agent spend more rounds on a finding than it deserved? Did debates continue past the point of diminishing returns?
|
|
252
|
+
|
|
253
|
+
### 5. Echo Chamber
|
|
254
|
+
|
|
255
|
+
Two or more agents converge on the same angle without either challenging the other. They agree, restate, and build — but never stress-test. This is the opposite of adversarial design.
|
|
256
|
+
|
|
257
|
+
**What to look for:** Did any two agents produce findings that were essentially the same? Did anyone get a free pass?
|
|
258
|
+
|
|
259
|
+
### 6. Wizard Over-Delegation
|
|
260
|
+
|
|
261
|
+
The Wizard dispatches and goes fully silent when it should be actively steering. The team drifts because no one is reading the Dungeon as a whole, connecting findings across agents, or redirecting collapsed differentiation.
|
|
262
|
+
|
|
263
|
+
**What to look for:** Did the Wizard miss intervention points? Did agents explore tangents without correction? Did findings go unconnected when the Wizard could have linked them?
|
|
264
|
+
|
|
265
|
+
## Common Rationalizations
|
|
266
|
+
|
|
267
|
+
| Excuse | Reality |
|
|
268
|
+
|--------|---------|
|
|
269
|
+
| "We're in the middle of something important" | The human stopped you. Nothing is more important right now. |
|
|
270
|
+
| "My section is fine, nothing to reflect on" | Everyone has something. Dig deeper. |
|
|
271
|
+
| "I don't want to criticize the Wizard" | The Wizard asked for it. This is the one place where you must. |
|
|
272
|
+
| "This is slowing us down" | Unproductive patterns slow you down more. This is the fix. |
|
|
273
|
+
| "The problem is the task, not the team" | Maybe. Write that in your reflection with evidence. |
|
|
274
|
+
|
|
275
|
+
## Why This Matters
|
|
276
|
+
|
|
277
|
+
Token budgets are finite. Context windows compact. Every wasted round, every redundant exchange, every poorly-assigned task burns resources that could have shipped the feature. Teambuff is the team investing tokens to save tokens — a retrospective that pays for itself by making every subsequent round more efficient.
|
|
278
|
+
|
|
279
|
+
The human sees what the agents cannot: patterns of waste, friction between agents, orchestration failures. When the human calls teambuff, the team's job is to listen, reflect, and commit to doing better.
|
|
280
|
+
|
|
281
|
+
Sit down. Reflect. Be honest. Get back to work.
|
|
@@ -19,12 +19,6 @@ NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
|
19
19
|
|
|
20
20
|
If you haven't run the verification command THIS turn, you cannot claim it passes.
|
|
21
21
|
|
|
22
|
-
## Mode Behavior
|
|
23
|
-
|
|
24
|
-
- **Full Raid**: Triple verification — implementer + 2 challengers verify independently.
|
|
25
|
-
- **Skirmish**: Double verification — implementer + 1 challenger.
|
|
26
|
-
- **Scout**: Single verification + Wizard confirms.
|
|
27
|
-
|
|
28
22
|
## The Gate Function
|
|
29
23
|
|
|
30
24
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: raid-wrap-up
|
|
3
|
-
description: "Phase 6
|
|
3
|
+
description: "Use when Phase 6 (Wrap Up) begins in a Canonical Quest, after implementation (and optional review) is complete."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Raid Wrap Up — Phase 6
|
|
@@ -11,12 +11,6 @@ The quest ends. The bard sings the tale. The treasure is committed. The party re
|
|
|
11
11
|
Do NOT write new code. This phase is about reporting, cleanup, PR creation, and archival. Agents are dismissed, not dispatched.
|
|
12
12
|
</HARD-GATE>
|
|
13
13
|
|
|
14
|
-
## Mode Behavior
|
|
15
|
-
|
|
16
|
-
- **Full Raid**: Wizard writes full storyboard from all phase files. Full PR with narrative.
|
|
17
|
-
- **Skirmish**: Wizard writes condensed storyboard. Standard PR.
|
|
18
|
-
- **Scout**: Wizard writes brief summary. Quick PR.
|
|
19
|
-
|
|
20
14
|
## Process Flow
|
|
21
15
|
|
|
22
16
|
```dot
|
|
@@ -39,7 +33,10 @@ digraph wrapup {
|
|
|
39
33
|
|
|
40
34
|
## Wizard Checklist
|
|
41
35
|
|
|
42
|
-
1. **Update raid-session**
|
|
36
|
+
1. **Update raid-session** via Bash (write gate blocks Write/Edit on this file):
|
|
37
|
+
```bash
|
|
38
|
+
jq '.phase="wrap-up"' .claude/raid-session > .claude/raid-session.tmp && mv .claude/raid-session.tmp .claude/raid-session
|
|
39
|
+
```
|
|
43
40
|
2. **Create storyboard** — `{questDir}/phase-6-wrap-up.md`
|
|
44
41
|
3. **Write narrative** — phase-by-phase story from quest files
|
|
45
42
|
4. **Cleanup** — remove temp configs, debug files, stale artifacts
|
|
@@ -57,38 +54,45 @@ Create `{questDir}/phase-6-wrap-up.md` and write a phase-by-phase narrative:
|
|
|
57
54
|
|
|
58
55
|
```markdown
|
|
59
56
|
# Phase 6: Wrap Up — Quest Storyboard
|
|
60
|
-
|
|
61
|
-
##
|
|
57
|
+
|
|
58
|
+
## Quest: [quest name]
|
|
59
|
+
|
|
60
|
+
## References
|
|
61
|
+
- PRD: `{questDir}/spoils/prd.md` (if exists)
|
|
62
|
+
- Design: `{questDir}/spoils/design.md`
|
|
63
|
+
- Design Evolution: `{questDir}/phases/phase-2-design.md`
|
|
64
|
+
- Plan: `{questDir}/phases/phase-3-plan.md`
|
|
65
|
+
- Tasks: `{questDir}/spoils/tasks/phase-3-plan-task-*.md`
|
|
66
|
+
- Implementation: `{questDir}/phases/phase-4-implementation.md`
|
|
67
|
+
- Review: `{questDir}/spoils/review.md` (if exists)
|
|
68
|
+
- Review Evolution: `{questDir}/phases/phase-5-review.md` (if exists)
|
|
69
|
+
|
|
70
|
+
---
|
|
62
71
|
|
|
63
72
|
### Phase 1: PRD — Forging the Scroll
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
- Key decisions from research
|
|
73
|
+
<!-- If prd.md exists. Summarize: what requirements were established,
|
|
74
|
+
key decisions, any surprising findings from exploration. 2-5 bullets. -->
|
|
67
75
|
|
|
68
76
|
### Phase 2: Design — Charting the Map
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
<!-- Who wrote the initial design (dice result). Key defend/concede moments.
|
|
78
|
+
Architecture chosen and main alternatives rejected.
|
|
79
|
+
Drift check result if PRD existed. 3-6 bullets. -->
|
|
72
80
|
|
|
73
|
-
### Phase 3:
|
|
74
|
-
|
|
75
|
-
-
|
|
81
|
+
### Phase 3: Plan — Marshaling the Forces
|
|
82
|
+
<!-- Total task count, dependency structure highlights.
|
|
83
|
+
Key findings from plan review that changed the decomposition. 2-4 bullets. -->
|
|
76
84
|
|
|
77
85
|
### Phase 4: Implementation — Into the Fray
|
|
78
|
-
|
|
79
|
-
-
|
|
80
|
-
- Test coverage highlights
|
|
86
|
+
<!-- How tasks were divided (which agent, which domain).
|
|
87
|
+
Notable challenges overcome. Test count / coverage highlights. 3-5 bullets. -->
|
|
81
88
|
|
|
82
89
|
### Phase 5: Review — Inspecting the Treasure
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- Total phases completed
|
|
90
|
-
- Key achievements
|
|
91
|
-
- Known limitations
|
|
90
|
+
<!-- If review ran. Findings count by severity.
|
|
91
|
+
Key fixes applied. Black cards if any. 2-5 bullets. -->
|
|
92
|
+
|
|
93
|
+
### Quest Summary
|
|
94
|
+
<!-- Total phases completed. Key achievements (what was built).
|
|
95
|
+
Known limitations (deferred items, accepted constraints). -->
|
|
92
96
|
```
|
|
93
97
|
|
|
94
98
|
Read all prior phase files from the quest directory to build this narrative.
|
|
@@ -166,7 +170,7 @@ SendMessage(to="rogue", message={"type": "shutdown_request"})
|
|
|
166
170
|
## Step 8: Final Commit & Cleanup
|
|
167
171
|
|
|
168
172
|
1. **Commit**: `docs(quest-{slug}): phase 6 wrap-up — quest complete`
|
|
169
|
-
2. **Remove
|
|
173
|
+
2. **Remove** via Bash (write gate blocks Write/Edit on this file): `rm -f .claude/raid-session`
|
|
170
174
|
3. **Session is over. No further skills to load.**
|
|
171
175
|
|
|
172
176
|
## Red Flags
|