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.
Files changed (39) hide show
  1. package/README.md +108 -66
  2. package/bin/cli.js +47 -11
  3. package/package.json +1 -1
  4. package/src/descriptions.js +11 -7
  5. package/src/init.js +37 -6
  6. package/src/merge-settings.js +43 -1
  7. package/src/remove.js +2 -2
  8. package/src/setup.js +33 -1
  9. package/src/ui.js +24 -19
  10. package/src/update.js +26 -3
  11. package/template/.claude/agents/archer.md +18 -4
  12. package/template/.claude/agents/rogue.md +18 -4
  13. package/template/.claude/agents/warrior.md +18 -4
  14. package/template/.claude/agents/wizard.md +32 -5
  15. package/template/.claude/dungeon-master-rules.md +132 -37
  16. package/template/.claude/hooks/raid-lib.sh +45 -4
  17. package/template/.claude/hooks/raid-pre-compact.sh +8 -4
  18. package/template/.claude/hooks/raid-session-end.sh +2 -2
  19. package/template/.claude/hooks/raid-session-start.sh +2 -0
  20. package/template/.claude/hooks/rtk-bridge.sh +46 -0
  21. package/template/.claude/hooks/validate-dungeon.sh +11 -3
  22. package/template/.claude/hooks/validate-file-naming.sh +6 -1
  23. package/template/.claude/hooks/validate-no-placeholders.sh +13 -2
  24. package/template/.claude/hooks/validate-write-gate.sh +7 -2
  25. package/template/.claude/party-rules.md +93 -64
  26. package/template/.claude/skills/raid-browser/SKILL.md +4 -6
  27. package/template/.claude/skills/raid-browser-chrome/SKILL.md +2 -2
  28. package/template/.claude/skills/raid-canonical-design/SKILL.md +306 -166
  29. package/template/.claude/skills/raid-canonical-implementation/SKILL.md +161 -133
  30. package/template/.claude/skills/raid-canonical-implementation-plan/SKILL.md +200 -142
  31. package/template/.claude/skills/raid-canonical-prd/SKILL.md +101 -78
  32. package/template/.claude/skills/raid-canonical-protocol/SKILL.md +30 -124
  33. package/template/.claude/skills/raid-canonical-review/SKILL.md +296 -149
  34. package/template/.claude/skills/raid-debugging/SKILL.md +1 -7
  35. package/template/.claude/skills/raid-init/SKILL.md +19 -29
  36. package/template/.claude/skills/raid-tdd/SKILL.md +5 -5
  37. package/template/.claude/skills/raid-teambuff/SKILL.md +281 -0
  38. package/template/.claude/skills/raid-verification/SKILL.md +0 -6
  39. package/template/.claude/skills/raid-wrap-up/SKILL.md +36 -32
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: raid-init
3
- description: "Quest selection, greeting, session setup, and dungeon resume. Loaded by wizard at session start. Teaches the wizard how to greet the human, present quest choices, and begin the quest."
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" -> "Assess complexity + recommend mode";
29
- "Assess complexity + recommend mode" -> "Human approves mode?";
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. Mode Recommendation
91
+ ### 4c. Spawn Team & Setup
95
92
 
96
- Assess complexity and recommend a mode:
93
+ The Canonical Quest always runs with the full party (Wizard + Warrior + Archer + Rogue). 4 agents, no reduced configurations.
97
94
 
98
- | Mode | When | Agents |
99
- |------|------|--------|
100
- | **Full Raid** | Large features, architectural changes, complex refactors | 3 (Warrior, Archer, Rogue) |
101
- | **Skirmish** | Medium features, focused changes | 2 (pick most relevant) |
102
- | **Scout** | Small fixes, minor additions | 1 (pick most relevant) |
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-{mode}-{questId}")
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") // Full Raid + Skirmish
122
- Agent(subagent_type="rogue", team_name="raid-...", name="rogue") // Full Raid only
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}**. Mode: **{mode}**. {agent count} brave souls answer the call."
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
- | "The human knows what mode to use" | Recommend first. Let them override. That's the protocol. |
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 in ALL modes — Full Raid, Skirmish, and Scout. No exceptions.**
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 directlyand build on each other's critiques:
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 interact directly:**
128
- - `CHALLENGE: @Warrior, your test at line 15 only validates the happy path — here's an input that passes with a broken implementation: ...`
129
- - `BUILDING: @Archer, your edge case finding — the same gap exists in the error path test at line 32...`
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 of Canonical Quest. Generates quest storyboard report, creates PR, archives dungeon to vault, dismisses party. No new code."
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** set phase to `"wrap-up"`
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
- ## Quest: <quest name>
61
- ## Mode: <mode>
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
- (if phase-1-prd.md exists)
65
- - What requirements were established
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
- - Architecture chosen and why
70
- - Key trade-offs resolved
71
- - Alternatives considered and rejected
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: Implementation Plan — Marshaling the Forces
74
- - Number of tasks, dependency structure
75
- - Risk areas identified
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
- - What was built
79
- - Challenges overcome
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
- (if phase-5-review.md exists)
84
- - Findings pinned and resolved
85
- - Black cards (if any)
86
- - Fixes applied
87
-
88
- ### Summary
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**: `.claude/raid-session`
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