playbook-ai 1.4.2 → 1.5.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  All notable updates to Playbook are documented here. Only impactful changes are listed — new commands, upgraded behavior, and things that make your workflow better. Cosmetic fixes and internal housekeeping are omitted.
4
4
 
5
+ ## [1.5.2] — 2026-05-28
6
+
7
+ ### Architecture
8
+ - **Subagent model replaces manual handoffs** — `/chess`, `/future`, and `/plan` no longer generate copy-paste prompt blocks for new terminals. All three now spawn Agent subagents directly, with the appropriate model (Opus 4.6 for `/chess` Human Mode and `/future` narratives; Sonnet for `/plan` and `/chess` System Mode). Fresh context window, results return automatically to the main session. No terminal switching, no copy-pasting.
9
+ - **Brief file pattern** — all commands write a structured `.md` brief before spawning. The subagent reads the file (intake data + execution framework); the user reviews a short intake summary in chat (~150-250 words), not the full brief. Output is appended to the same file — brief and results live together as one artifact. Full brief available at `docs/chess/`, `docs/futures/`, or `docs/plans/` for review or editing before running.
10
+ - **`/handoff` rewritten** — now defines the canonical subagent pattern: write brief → show summary → cost warning (Opus only) → spawn Agent → receive results → continue in main session. Used as the reference by `/chess`, `/future`, and `/plan`.
11
+
12
+ ### Commands
13
+ - **`/plan`** — Phase 1 stays inline (conversational direction-setting). Phases 2+3 (hardening + implementation steps) now spawn a Sonnet subagent for complex plans, keeping the main session lean. Simple plans continue inline. Self-contained — no `/start` required.
14
+ - **`/chess`** — Self-contained. Intake summary shown in chat for approval; cost warning before Opus spawn. Chess brief written to `docs/chess/YYYY-MM-DD-[slug].md`; full debrief appended to same file. System Mode: inline Sonnet for simple systems, Sonnet subagent for complex, Opus subagent only when system complexity genuinely warrants it.
15
+ - **`/future`** — `/chess` bridge updated: each swing-state adversarial decision gets a 3-sentence context block (what it is, why it's adversarial, what's at stake) plus an explicit recommendation (run / skip) and a direct *"Run /chess on this?"* confirmation. High threshold for recommending run — both material AND genuinely adversarial. Conservative by default: most runs surface zero chess candidates.
16
+
17
+ ## [1.5.1] — 2026-05-28
18
+
19
+ ### Strategy
20
+ - **`/future` upgraded to handoff model** — now runs the same way as `/chess`: intake and assumption check in the main session (Sonnet), three narratives and synthesis in a fresh Opus 4.6 parallel session. Keeps main session clean; returns the one-screen primary output via return prompt so the user can discuss it immediately. Self-contained — does not require `/start` to have been run first.
21
+ - **Retrospective mode** — on startup, `/future` checks `docs/futures/` for prior runs. If found, offers to run an update that reads what's changed since the prior session and revises the scenarios with actual data. Turns a one-time exercise into a navigation system.
22
+ - **Assumption check** — brief pre-scenario check (borrowed from `/plan`): surfaces the 2–3 assumptions baked into the user's success scenario and asks which feel shaky. Shaky assumptions seed The Unraveling, making it specific rather than generic.
23
+ - **Synthesis verdicts** — quadrant output now uses ✅ / ⚠️ / ❌ format (borrowed from `/chess` System Mode) for scannability.
24
+ - **`/chess` bridge** — swing-state decisions with a real counterparty are flagged `[/chess candidate]` in the output. Creates a natural hand-off between strategic planning and adversarial analysis.
25
+ - **Saves to `docs/futures/`** — full output (all three narratives + synthesis + primary output) persisted as a dated file. Primary output returned verbatim to main session for discussion.
26
+
27
+ ## [1.5.0] — 2026-05-27
28
+
29
+ ### Strategy
30
+ - **New `/future` command** — scenario planning via three futures (The Win, The Unraveling, The Headwind). Reads project context silently, runs a short intake, then writes three past-tense narratives rewound month by month to today. Synthesizes them via quadrant analysis to surface double-confirmed critical actions, swing-state decisions, and failure drivers. Output is one screen: a thesis, 3 load-bearing decisions (ordered by when they must be made), 3 anti-patterns to avoid (with why they're tempting and the early signal you're sliding in), and your move this week. Full narratives available in appendix on request. Ends with an optional 30-day ClickUp or WORK_LOG check-in. The third scenario (The Headwind) is the one most people skip — it surfaces external forces you need to be resilient against, not just what you did right or wrong.
31
+
5
32
  ## [1.4.3] — 2026-05-25
6
33
 
7
34
  ### Performance
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.3
1
+ 1.5.2
package/commands/chess.md CHANGED
@@ -1,4 +1,6 @@
1
- Adversarial strategy analysis and technical stress-testing. Two modes: Human Mode (opponent-modeled, branch-traced) for situations with a real adversary; System Mode (assumption-attack, failure-traced) for technical plans with no human counterparty. Intake runs in the primary session (Sonnet). Human Mode generates a parallel Opus 4.6 handoff; System Mode runs inline.
1
+ Adversarial strategy analysis and technical stress-testing. Two modes: Human Mode (opponent-modeled, branch-traced) for situations with a real adversary; System Mode (assumption-attack, failure-traced) for technical plans with no human counterparty.
2
+
3
+ **Self-contained.** Does not require `/start`. Reads its own context.
2
4
 
3
5
  ---
4
6
 
@@ -14,15 +16,13 @@ Three routes. Assess before doing anything else.
14
16
 
15
17
  **Borderline:** Name what makes it ambiguous. Ask the user to confirm before proceeding.
16
18
 
17
- The pre-flight runs on Sonnet. Do not begin intake until the route is confirmed.
18
-
19
19
  ---
20
20
 
21
21
  ## Human Mode
22
22
 
23
- ### Intake: Build the chess brief
23
+ ### Intake
24
24
 
25
- Run in the primary session on Sonnet. Ask these questions conversationally — not as a numbered list. Group related questions naturally. Use follow-ups where the answer is thin. The goal is a complete picture before the chess engine runs.
25
+ Run in the main session on Sonnet. Ask conversationally — not as a numbered list. Group related questions naturally. Use follow-ups where the answer is thin.
26
26
 
27
27
  **The situation**
28
28
  - What is the decision, negotiation, or situation you're navigating?
@@ -49,55 +49,61 @@ Run in the primary session on Sonnet. Ask these questions conversationally — n
49
49
  - What moves are you currently considering?
50
50
  - What counts as a win? An acceptable outcome? A loss?
51
51
 
52
- Once intake is complete, read the summary back to the user and confirm it's accurate before generating the handoff prompt.
53
-
54
52
  ---
55
53
 
56
- ### Generate the handoff prompt
57
-
58
- Compile everything from intake into a self-contained chess brief. Fill in all [BRACKETS] with real values — current date, actual repo path (use the current working directory), and a short topic slug derived from the situation (e.g., `hilldun-negotiation`, `board-vote`, `vendor-renewal`).
54
+ ### Generate the brief and spawn subagent
59
55
 
60
- Create the `docs/chess/` directory in the current project if it doesn't already exist.
56
+ Once intake is complete, compile everything into a chess brief file and spawn an Opus 4.6 subagent. Follow the `/handoff` pattern.
61
57
 
62
- Present the completed handoff prompt to the user in a clearly labeled block:
58
+ **1. Write the brief**
63
59
 
64
- > **Open a new terminal window and paste this entire block:**
60
+ Create `docs/chess/` if it doesn't exist. Write `docs/chess/YYYY-MM-DD-[slug].md` using the template below. Fill in all [BRACKETS] with real values.
65
61
 
66
62
  ---
67
63
 
68
- #### Handoff prompt (embed verbatim — this is what runs in the parallel session)
69
-
70
- ---
71
-
72
- You are running a chess-style adversarial analysis. Intake is complete — all context is below. Your job is to think several moves ahead, model each adversary's rational behavior, and produce a debrief the user can act on. Do not ask questions. Do not invoke any slash commands. Run straight through.
73
-
74
- Run on Opus 4.6 (`claude-opus-4-6`). Do not switch models.
64
+ ```
65
+ # Chess Brief — [YYYY-MM-DD] — [slug]
66
+ *Human Mode*
75
67
 
76
- ---
68
+ ## Run instructions
69
+ Run on Opus 4.6 (claude-opus-4-6). Do not switch models. Do not ask questions. Do not invoke slash commands. Surface reasoning in chat as you go. Append all output under ## Output in this file.
77
70
 
78
- **SITUATION**
79
- [Paste situation summary]
71
+ ## Situation
72
+ [Situation summary]
80
73
 
81
- **OBJECTIVE**
74
+ ## Objective
82
75
  [What the user is trying to achieve]
83
76
 
84
- **TIME HORIZON**
77
+ ## Time horizon
85
78
  [One-time / ongoing / deadline: YYYY-MM-DD]
86
79
 
87
- **YOUR POSITION**
88
- [Standing (stronger/equal/weaker), BATNA, non-negotiables, information held back, what adversary likely assumes]
89
-
90
- **ADVERSARIES**
91
- [For each: name/role, primary goal, secondary interests, motivations, aggression level, BATNA, constraints, what they know about the user]
92
-
93
- **THE BOARD**
94
- [Current state, moves already made or said, moves under consideration, definition of win / acceptable / loss]
95
-
96
- ---
97
-
98
- **CHESS REASONING FRAMEWORK**
99
-
100
- Surface your reasoning in chat as you go — the user is watching in real time.
80
+ ## Your position
81
+ Standing: [stronger / equal / weaker]
82
+ BATNA: [best alternative if this doesn't go their way]
83
+ Non-negotiables: [what they won't concede]
84
+ Information held back: [what they're not disclosing]
85
+ What adversary likely assumes: [their read of the user's position]
86
+
87
+ ## Adversaries
88
+ [For each adversary:]
89
+ **[Name / Role]**
90
+ - Primary goal: [what they want most]
91
+ - Secondary interests: [other things they care about]
92
+ - Motivations: [financial / ego / power / relationship / legal / other]
93
+ - Aggression level: [passive / moderate / aggressive]
94
+ - BATNA: [their best alternative]
95
+ - Constraints: [budget limits, authority limits, approvals needed, external pressures]
96
+ - What they know: [their read of the user's position]
97
+
98
+ ## The board
99
+ Current state: [what's happening right now]
100
+ Moves already made: [what's been said or done that constrains the situation]
101
+ Moves under consideration: [what the user is thinking about doing]
102
+ Win: [definition]
103
+ Acceptable: [definition]
104
+ Loss: [definition]
105
+
106
+ ## Chess reasoning framework
101
107
 
102
108
  **Step 1 — Inhabit each adversary**
103
109
 
@@ -110,7 +116,6 @@ Stay strictly within rational human motivation. Model what a reasonable person i
110
116
  For each move the user is considering, trace the likely sequence of responses 3–4 moves deep, or until the path reaches a clearly labeled terminal state. Prune branches that are implausible given the adversary's model — don't trace everything, trace what matters.
111
117
 
112
118
  Format each branch as:
113
-
114
119
  ```
115
120
  Your move → Adversary response → Your counter → Their counter → Terminal: [favorable / acceptable / problematic]
116
121
  → Risk branch: if [X] instead → Terminal: [recovery cost]
@@ -126,56 +131,53 @@ Where in the move tree can you shift a terminal state? What moves create future
126
131
 
127
132
  **Step 5 — Recommended line**
128
133
 
129
- State the recommended opening move clearly. Explain why it scores better than the alternatives across the terminal states. Include the top 2 contingency responses for the most likely adversary deviation from the expected path.
134
+ State the recommended opening move clearly. Explain why it scores better than the alternatives across the terminal states. Include the top 2 contingency responses for the most likely adversary deviation.
130
135
 
131
136
  Be specific: *"Open with X. If they respond with Y, do Z. If they respond with W instead, do V."*
132
137
 
133
- ---
134
-
135
- **OUTPUT**
136
-
137
- When the analysis is complete:
138
+ ## Output format
139
+ Structure the output as:
140
+ 1. Adversary models — internal model for each adversary
141
+ 2. Move tree — branches traced per Step 2
142
+ 3. Recommended line — the opening move and top 2 contingencies
143
+ 4. Assumption flags — where the analysis is most fragile
138
144
 
139
- 1. Write the full debrief to: `[REPO_PATH]/docs/chess/[YYYY-MM-DD]-[topic-slug].md`
140
- - Create the directory if it doesn't exist
141
- - Structure: Situation → Adversary models → Move tree → Recommended line → Contingencies → Assumption flags
145
+ ---
142
146
 
143
- 2. Display the full debrief in chat so the user can read through it.
147
+ ## Output
144
148
 
145
- 3. Display this block at the end — formatted exactly as shown:
149
+ *(appended by subagent)*
150
+ ```
146
151
 
147
152
  ---
148
- **Return prompt — paste this into your original session:**
149
153
 
150
- > Chess debrief complete. Read the analysis at `[REPO_PATH]/docs/chess/[YYYY-MM-DD]-[topic-slug].md` and pull the recommended line and top contingencies into our working context so we can decide next steps.
151
- ---
154
+ **2. Show intake summary and get approval**
152
155
 
153
- 4. Close with a clearly formatted terminal closer display exactly this as the final output:
156
+ Display a short summary in chat: situation in one sentence, objective, adversaries named, key position details (standing, BATNA, non-negotiables). Do NOT show the full framework. Say: *"Here's what I captured — [summary]. Does this look right?"*
154
157
 
155
- ```
156
- Chess session complete. You can close this window.
157
- (Do not run /end — the primary session handles closeout.)
158
- ```
158
+ If the user wants to review or edit before running: *"The full brief is at [path] if you want to adjust anything first."*
159
159
 
160
- ---
160
+ **3. Cost warning**
161
161
 
162
- End of handoff prompt.
162
+ *"This runs on Opus 4.6 — noticeably more expensive than a standard session. Proceed?"*
163
163
 
164
- ---
164
+ **4. Spawn the subagent**
165
+
166
+ Spawn an Agent (`model: 'opus'`): *"Read [absolute path to brief file] in full, then execute exactly as instructed. Do not ask questions. Do not invoke slash commands. Append all output under ## Output in that file."*
165
167
 
166
- After presenting the handoff prompt to the user, say:
168
+ **5. Surface results**
167
169
 
168
- > *"Open a new terminal, paste the block above, and watch the chess engine work. When it's done, use the return prompt to bring the debrief back into this session."*
170
+ When the subagent returns, present the recommended line and top contingencies in the main session. The full debrief is in the brief file at `docs/chess/[filename]`.
169
171
 
170
172
  ---
171
173
 
172
174
  ## System Mode
173
175
 
174
- ### Intake: Build the stress-test brief
176
+ ### Intake
175
177
 
176
178
  If the system, plan, and constraints are already established in the conversation, skip directly to the stress-test. Only ask for information that's genuinely missing.
177
179
 
178
- If context is thin, ask conversationally — not as a numbered list. Use follow-ups where the answer is thin. The goal is a complete picture before the stress-test runs.
180
+ If context is thin, ask conversationally:
179
181
 
180
182
  **The system**
181
183
  - What are you trying to build, fix, or change?
@@ -187,13 +189,15 @@ If context is thin, ask conversationally — not as a numbered list. Use follow-
187
189
  - What outcome are you trying to guarantee?
188
190
  - What's an acceptable failure mode vs. an unacceptable one?
189
191
 
190
- Once you have sufficient context, proceed directly — no need to read it back unless something is ambiguous.
191
-
192
192
  ---
193
193
 
194
- ### System stress-test framework
194
+ ### System stress-test
195
+
196
+ **Simple systems** (single service, clear dependencies, limited blast radius): run inline on Sonnet. No subagent needed.
197
+
198
+ **Complex systems** (multiple interacting services, deep dependency chains, complex state machines): follow the `/handoff` pattern. Write a brief to `docs/chess/YYYY-MM-DD-[slug]-system.md` with the system description, plan, and the framework below. Spawn a Sonnet subagent (`model: 'sonnet'`). Escalate the subagent to Opus 4.6 (`model: 'opus'`) only when the system complexity genuinely warrants it.
195
199
 
196
- Default: run inline on Sonnet. Escalate to Opus 4.6 inline (no parallel session) when the system is complex enough that a shallow pass would miss real risks — multiple interacting services, deep dependency chains, complex state machines. Surface your reasoning in chat as you go.
200
+ Surface reasoning in chat as you go.
197
201
 
198
202
  **Step 1 — Map the assumptions**
199
203
 
@@ -0,0 +1,255 @@
1
+ Scenario planning via three futures. Rewinds each path month by month to today, synthesizes the decisions that mattered most, and delivers a one-screen action guide with a clear first move.
2
+
3
+ **Self-contained.** Does not require `/start`. Reads its own context.
4
+
5
+ ---
6
+
7
+ ## Pre-flight (Sonnet, inline)
8
+
9
+ Silently read the following before doing anything else:
10
+ - `WORK_LOG.md` in the current project
11
+ - `CLAUDE.md` in the current project
12
+ - Recent git log (last 20 commits) if available
13
+ - Any open/in-progress PM tasks if a PM MCP is connected
14
+
15
+ Do not summarize this to the user. Use it to ground the scenarios in the actual project.
16
+
17
+ **Check for prior runs.** Look for files in `docs/futures/`.
18
+
19
+ - If prior run(s) exist: note the most recent file and say: *"I see a /future from [date] — start fresh, or run an update? An update reads what's changed and revises the scenarios with actual data."*
20
+ - If no prior runs: proceed to intake.
21
+
22
+ ---
23
+
24
+ ## Intake (Sonnet, inline)
25
+
26
+ Ask conversationally — not as a numbered list. One question at a time. Follow up where answers are thin.
27
+
28
+ **The north star**
29
+ What does massive success look like in concrete terms? Not "we grew a lot" — what's the specific outcome you'd be genuinely proud of? Name it as if it already happened.
30
+
31
+ **The fear**
32
+ What's the specific failure that keeps you up at night? The one you'd be embarrassed to explain to someone who believed in you.
33
+
34
+ **The constraints**
35
+ What are the hard limits right now? Runway, team size, a deadline that can't move, a dependency you're waiting on.
36
+
37
+ **Timeframe**
38
+ Based on project context and what the user described, propose a timeframe:
39
+ - 3–6 months: specific launch, campaign, or sprint with a hard end date
40
+ - 12 months: default for most products and ventures
41
+ - 18–24 months: platforms, infrastructure, or early-stage ventures
42
+
43
+ Say: *"Based on what you've described, I'd suggest a [N]-month horizon — does that feel right?"* Confirm before proceeding.
44
+
45
+ ---
46
+
47
+ ## Assumption check (Sonnet, inline)
48
+
49
+ Brief — not a full /plan. Restate the user's success scenario in one sentence, then surface 2-3 assumptions it rests on. Ask which feel solid and which feel shaky.
50
+
51
+ *"Your success scenario — [restate it] — rests on a few things being true: [A], [B], [C]. Which of these feel solid, and which feel like open questions? Anything shaky will shape what The Unraveling looks like."*
52
+
53
+ Note the shaky ones. They go into the brief.
54
+
55
+ ---
56
+
57
+ ## Retrospective step (Sonnet subagent — only if prior run exists)
58
+
59
+ If the user chose the update path: before writing the main brief, spawn a lightweight Sonnet subagent to do the comparison work.
60
+
61
+ Subagent receives:
62
+ - The prior /future output (read from `docs/futures/[most-recent-file].md` — the ## Output section only)
63
+ - The user's answer to: *"What's the most significant thing that's changed since then — in the project, market, or your constraints?"*
64
+
65
+ Subagent produces: a 200-300 word comparison note — what the prior thesis got right, where reality diverged, what that changes going into the updated scenarios. This note gets included in the main brief so the Opus subagent doesn't need to re-read the full prior file.
66
+
67
+ ---
68
+
69
+ ## Generate the brief and spawn subagent
70
+
71
+ Compile everything into a futures brief file and spawn an Opus 4.6 subagent. Follow the `/handoff` pattern.
72
+
73
+ **1. Write the brief**
74
+
75
+ Create `docs/futures/` if it doesn't exist. Write `docs/futures/YYYY-MM-DD-[slug].md` using the template below. Fill in all [BRACKETS] with real values.
76
+
77
+ ---
78
+
79
+ ```
80
+ # Future Brief — [YYYY-MM-DD] — [slug]
81
+ [Fresh run / Retrospective update from [prior date]]
82
+
83
+ ## Run instructions
84
+ Run on Opus 4.6 (claude-opus-4-6). Do not switch models. Do not ask questions. Do not invoke slash commands. Surface reasoning in chat as you go. Append all output under ## Output in this file.
85
+
86
+ ## Project context
87
+ [3-5 bullet points from WORK_LOG + CLAUDE.md: current state, recent decisions, known constraints. Enough to ground the scenarios — not a wall of text.]
88
+
89
+ ## Intake
90
+ - North star: [specific success outcome, past tense]
91
+ - Fear: [specific failure]
92
+ - Constraints: [runway, team, deadlines, dependencies]
93
+ - Timeframe: [N months]
94
+ - Shaky assumptions: [the ones the user flagged as uncertain]
95
+
96
+ [If retrospective:]
97
+ ## What's changed since [prior date]
98
+ [The 200-300 word comparison note from the Sonnet retrospective step]
99
+
100
+ ## Futures framework
101
+
102
+ **Three narratives**
103
+
104
+ Write all three in past tense. Voice: explaining what happened to someone who loves you and won't let you bullshit them. Start each at the end of the timeframe and rewind month by month to today. Name decisions, not themes. Name the fork points.
105
+
106
+ **The Win**
107
+ Massive success. What decisions and actions were instrumental? What did you do in month 2 that set up month 8? What did you resist that would have derailed you?
108
+
109
+ Cover:
110
+ - The decisions that compounded early and paid off late
111
+ - The things you didn't do that turned out to matter
112
+ - The moment it could have gone either way — and what made it go right
113
+ - External factors that helped, and what you did to be positioned for them
114
+
115
+ **The Unraveling**
116
+ Massive failure. Anchor this in the shaky assumptions from intake — show how they played out.
117
+
118
+ Cover:
119
+ - What was tempting but harmful (looked like a good idea at the time)
120
+ - What was delayed past the point of recovery
121
+ - The earliest warning sign — before it became obvious
122
+ - What you'd tell yourself in month 2 if you could
123
+
124
+ **The Headwind**
125
+ You did almost everything right. The universe didn't cooperate. This scenario teaches what you need to be resilient against, not just what to do differently.
126
+
127
+ Cover:
128
+ - What external forces hit that you couldn't have fully predicted
129
+ - What exposure you had that you didn't need
130
+ - What resilience you had — and what you wish you'd built
131
+ - The real ceiling on what was achievable, even with strong execution
132
+
133
+ [If retrospective:] For each narrative, note where the prior projections diverged from what actually happened. What did the prior /future get right? What did it miss?
134
+
135
+ ---
136
+
137
+ **Synthesis**
138
+
139
+ Do this reasoning internally. Only the output appears in the final results.
140
+
141
+ **Quadrant analysis** — classify every significant decision/action across the three scenarios:
142
+ - ✅ Double-confirmed critical — appears in The Win AND its absence drives The Unraveling. Highest-confidence levers.
143
+ - ⚠️ Swing-state — present in both Win and Unraveling but executed differently. Hard calls, not obvious moves. Flag each — don't flatten them.
144
+ - ❌ Failure driver — appears in The Unraveling, absent from The Win. Anti-patterns.
145
+ - Resilience gap — surfaces from The Headwind. Within your control but requires deliberate preparation.
146
+
147
+ **Leading indicators** — for each ❌ and ⚠️ item: what was the earliest signal it was going wrong? Not month 8 — month 2. Extract from the narratives, not asked of the user.
148
+
149
+ **Irreversibility** — tag each ✅ and ⚠️ item:
150
+ - *(irreversible)* — hiring, pricing model, core tech choices, pivots, strategic commitments
151
+ - *(iterable)* — can be course-corrected without major cost
152
+
153
+ **Order by when** — sort output items by when the decision needs to be made. Timing drives action.
154
+
155
+ **Chess candidates** — for each ⚠️ swing-state decision: does it involve a real counterparty with genuinely competing interests? If yes, note it internally. These get surfaced in the /chess bridge section of the output.
156
+
157
+ ---
158
+
159
+ **Primary output**
160
+
161
+ Write the one-screen summary. Tight — everything that matters, nothing that doesn't.
162
+
163
+ **The thesis**
164
+ One paragraph. The single most important variable separating The Win from The Unraveling. Name the one fork in the road.
165
+
166
+ [If retrospective:] One sentence first: whether the prior thesis still holds or has shifted.
167
+
168
+ **3 load-bearing decisions** (✅ double-confirmed, ordered by when)
169
+
170
+ For each:
171
+ - **The decision** — stated plainly
172
+ - **When** — specific window, not "eventually"
173
+ - **Early warning sign** — earliest signal it's going wrong
174
+ - Mark *(irreversible)* where it applies
175
+
176
+ Three max.
177
+
178
+ **3 things not to do** (❌ failure drivers)
179
+
180
+ For each:
181
+ - **The anti-pattern** — what it is
182
+ - **Why it's tempting** — if it weren't, you wouldn't need the warning
183
+ - **The signal you're sliding into it** — earliest sign
184
+
185
+ Three max.
186
+
187
+ **Your move this week**
188
+ One or two specific actions, this week. Entry point into the critical path.
189
+
190
+ ---
191
+
192
+ *Full narratives, complete quadrant, and everything else surfaced are in the appendix. Ask to see it.*
193
+
194
+ ---
195
+
196
+ ## Output
197
+
198
+ *(appended by subagent)*
199
+ ```
200
+
201
+ ---
202
+
203
+ **2. Show intake summary and get approval**
204
+
205
+ Display a short summary in chat: north star in one sentence, fear, constraints, timeframe, shaky assumptions. Do NOT show the full framework. Say: *"Here's what I captured — [summary]. Does this look right?"*
206
+
207
+ If the user wants to review or edit: *"The full brief is at [path] if you want to adjust anything first."*
208
+
209
+ **3. Cost warning**
210
+
211
+ *"This runs on Opus 4.6 — noticeably more expensive than a standard session. Proceed?"*
212
+
213
+ **4. Spawn the subagent**
214
+
215
+ Spawn an Agent (`model: 'opus'`): *"Read [absolute path to brief file] in full, then execute exactly as instructed. Do not ask questions. Do not invoke slash commands. Append all output under ## Output in that file."*
216
+
217
+ **5. Surface results**
218
+
219
+ When the subagent returns, present the one-screen primary output (thesis → 3 decisions → 3 anti-patterns → your move this week) in the main session for discussion.
220
+
221
+ ---
222
+
223
+ ## /chess bridge (after results return)
224
+
225
+ After presenting the primary output, evaluate the chess candidates the subagent identified. For each ⚠️ swing-state decision that involves a real counterparty:
226
+
227
+ Apply a strict filter before surfacing. BOTH must be true:
228
+ 1. **Real adversarial tension** — a counterparty whose interests genuinely compete with yours, not just a vendor you're selecting or a partner whose goals are aligned
229
+ 2. **Material and hard to reverse** — significant money, a strategic dependency, or a relationship where getting it wrong costs you something you can't easily get back
230
+
231
+ If both aren't true, don't mention /chess. Most /future runs surface zero chess candidates. One is meaningful.
232
+
233
+ **When a candidate clears the filter**, present it as:
234
+
235
+ > **[Decision name]**
236
+ > [One sentence: what the decision is and who the counterparty is.]
237
+ > [One sentence: what their competing interest is and why that creates genuine tension.]
238
+ > [One sentence: what's at stake — the material downside or opportunity cost if this goes wrong.]
239
+ > **Recommendation: [Run /chess / Skip /chess]** — [one-line rationale]
240
+ >
241
+ > *Run /chess on this?*
242
+
243
+ The recommendation to run should be conservative. If the stakes are meaningful and the outcome is genuinely uncertain, recommend run. If the adversarial component is minor, the counterparty's interests are broadly aligned, or the decision is iterable — recommend skip.
244
+
245
+ If no candidates clear the filter, say nothing about /chess.
246
+
247
+ ---
248
+
249
+ ## Follow-up
250
+
251
+ After the /chess bridge (or if no chess candidates), offer once:
252
+ - If ClickUp MCP is connected: *"Want me to create a ClickUp task to review the load-bearing decisions 30 days from now?"*
253
+ - Otherwise: *"Want me to add a 30-day review reminder to WORK_LOG.md?"*
254
+
255
+ One line. Don't push it.
@@ -1,41 +1,82 @@
1
- This command is for CLAUDE to invoke, never the user. Generate a parallel session prompt when a task should run in a separate Claude Code terminal with fresh context.
1
+ This command is for Claude to invoke not the user. It defines the canonical subagent pattern used by /chess, /future, /plan, and any task that benefits from a fresh context window. Replaces the old copy-paste terminal approach entirely.
2
2
 
3
- ## When to use this
3
+ ---
4
4
 
5
- Only when ALL of these are true:
6
- - The task is substantial enough to benefit from a fresh context window
7
- - The task is independent from the main session's current work
8
- - Continuing in the main session would materially degrade output quality
9
- - A subagent within this session can't handle it (too large, needs its own lifecycle)
5
+ ## The pattern
10
6
 
11
- Do NOT use when:
12
- - The session is almost done anyway
13
- - A subagent would suffice
14
- - The overhead of context-switching outweighs the benefit
7
+ **Step 1 Intake in main session (Sonnet)**
8
+ Run intake conversationally. Collect everything the subagent needs to execute without asking questions.
15
9
 
16
- ## What to generate
10
+ **Step 2 Write the brief**
11
+ Compile intake data + execution framework into a structured .md file. Use the relevant subdirectory:
12
+ - `/chess` → `docs/chess/YYYY-MM-DD-[slug].md`
13
+ - `/future` → `docs/futures/YYYY-MM-DD-[slug].md`
14
+ - `/plan` → `docs/plans/YYYY-MM-DD-[slug].md`
15
+ - Generic → `docs/handoffs/YYYY-MM-DD-[slug].md`
17
16
 
18
- Create a complete, self-contained prompt block to paste into a new Claude Code terminal. The block must include:
17
+ Create the directory if it doesn't exist.
19
18
 
20
- 1. **Context** — Everything the new session needs to know. No assumptions about shared state. Include specific file paths, IDs, table names, and any decisions already made.
21
- 2. **Task** — Clear, specific instructions for what to do.
22
- 3. **Embedded commands**If the new session should /plan first, say so explicitly in the prompt.
23
- 4. **Output instructions** — Tell the new session to:
24
- - Save all artifacts to files (not just terminal output)
25
- - Write a brief summary to `HANDOFF_RESULT.md` in the project root: what was done, what files changed, any decisions made
26
- - Do NOT run /end — no WORK_LOG update, no PM tool update, no commit. Just do the work and stop.
27
- - The user will close the terminal when done.
19
+ **Brief file structure:**
20
+ ```
21
+ # [Command] Brief[YYYY-MM-DD] [slug]
28
22
 
29
- ## Format for the user
23
+ ## Run instructions
24
+ Run on [model]. Do not ask questions. Do not invoke slash commands.
25
+ Append all output under ## Output in this file.
30
26
 
31
- Present the prompt in a single code block that can be copy-pasted. Preface it with:
32
- - One sentence explaining what the parallel session will do
33
- - "Open a new Claude Code terminal and paste the block below. When it's done, come back here and tell me 'parallel done.'"
27
+ ## [Intake data context, goals, constraints, situation]
34
28
 
35
- ## After return
29
+ ## Framework
30
+ [Full execution instructions for the subagent]
36
31
 
37
- When the user says the parallel session is done:
38
- 1. Read `HANDOFF_RESULT.md` from the project root
39
- 2. Integrate the results into the main session's work
40
- 3. Delete `HANDOFF_RESULT.md` (cleanup)
41
- 4. Continue with the main session's work
32
+ ---
33
+
34
+ ## Output
35
+
36
+ *(appended by subagent)*
37
+ ```
38
+
39
+ **Step 3 — Show intake summary in chat**
40
+ Display 150-250 words covering what was captured. This is what the user reviews and approves — not the full brief or the framework. Say: *"Here's what I captured — [summary]. Does this look right?"*
41
+
42
+ If the user wants to inspect or edit before running: *"The full brief is at [path] if you want to adjust anything first."*
43
+
44
+ **Step 4 — Cost warning for Opus**
45
+ If the subagent will run on Opus 4.6, say before spawning: *"This runs on Opus 4.6 — noticeably more expensive than a standard session. Proceed?"*
46
+
47
+ **Step 5 — Spawn the subagent**
48
+ After the user confirms, spawn an Agent with the appropriate model:
49
+ - Opus 4.6 (`model: 'opus'`): /chess Human Mode, /future narratives + synthesis. **Never Opus 4.7.**
50
+ - Sonnet (`model: 'sonnet'`): /plan Phases 2+3, /chess System Mode, generic handoffs
51
+
52
+ Subagent prompt: *"Read [absolute path to brief file] in full, then execute exactly as instructed in that file. Do not ask questions. Do not invoke slash commands. Append all output under the ## Output section of that same file."*
53
+
54
+ **Step 6 — Receive and surface results**
55
+ The subagent appends output to the brief file and returns a summary to the main session. Present the key findings to the user for discussion.
56
+
57
+ **Step 7 — Continue in main session**
58
+ Discussion, follow-up decisions, and next steps happen here. Do not start a new session for the debrief.
59
+
60
+ ---
61
+
62
+ ## When to use subagents vs. inline
63
+
64
+ Use a subagent when:
65
+ - The task will generate substantial output (3,000+ tokens) that would bloat main session
66
+ - A fresh context window produces meaningfully better output (adversarial analysis, scenario narratives)
67
+ - The task is independent enough to run without back-and-forth
68
+
69
+ Stay inline when:
70
+ - The task is conversational or needs real-time course-correction
71
+ - The output is short and immediately actionable
72
+ - The overhead of a subagent isn't worth it
73
+
74
+ ---
75
+
76
+ ## Generic handoff (no specific command)
77
+
78
+ When handing off work not covered by /chess, /future, or /plan:
79
+ 1. Summarize task + context into a brief
80
+ 2. Save to `docs/handoffs/YYYY-MM-DD-[slug].md`
81
+ 3. Follow steps 3-7 above
82
+ 4. After return: read the Output section, integrate results into the main session's work
package/commands/plan.md CHANGED
@@ -1,18 +1,30 @@
1
1
  Before making any changes, assess the task and create a structured plan.
2
2
 
3
- ## Phase 1: Assess Complexity
3
+ **Self-contained.** Does not require `/start` to have been run.
4
+
5
+ ---
6
+
7
+ ## Phase 1: Assess Complexity (Sonnet, inline)
4
8
 
5
9
  Read all relevant files first. Then determine:
6
- - **Is this straightforward?** (One obvious approach, clear requirements) → Skip to Phase 2.
10
+ - **Is this straightforward?** (One obvious approach, clear requirements) → proceed directly to Phase 2 inline.
7
11
  - **Are there meaningful tradeoffs?** (Multiple approaches, architectural choices, unclear requirements) → Brainstorm first:
8
12
  - Present 2-3 approaches with pros/cons in short, scannable sections
9
13
  - Flag which approach you'd recommend and why
10
14
  - Wait for approval of a direction before proceeding
11
15
  - Save the decision to `docs/decisions/YYYY-MM-DD-<topic>.md` if it's non-trivial
12
16
 
17
+ Once the direction is approved, assess whether the plan warrants a subagent:
18
+ - **Simple plan** (single file, clear scope, low risk surface) → continue inline for Phases 2+3
19
+ - **Complex plan** (multi-file, architectural choices, meaningful risk surface, current session context is already heavy) → spawn a Sonnet subagent for Phases 2+3
20
+
21
+ ---
22
+
13
23
  ## Phase 2: Harden the Direction
14
24
 
15
- Before writing implementation steps, stress-test the chosen direction. Scale depth to complexity a one-file change gets a quick paragraph, a multi-system feature gets the full treatment.
25
+ **Simple plansinline (Sonnet):**
26
+
27
+ Before writing implementation steps, stress-test the chosen direction.
16
28
 
17
29
  1. **Assumption audit** — List every assumption the direction makes. Validate each one against actual code, docs, APIs, or data. Flag any that are unverified or risky.
18
30
  2. **Risk war-game** — For each meaningful risk:
@@ -23,6 +35,21 @@ Before writing implementation steps, stress-test the chosen direction. Scale dep
23
35
 
24
36
  Fold the results back: drop wrong assumptions and adjust the direction before writing steps. Add a **Risks & Mitigations** summary — a scannable table or bullet list.
25
37
 
38
+ **Complex plans — Sonnet subagent (follow `/handoff` pattern):**
39
+
40
+ Write a brief to `docs/plans/YYYY-MM-DD-[slug].md` containing:
41
+ - The approved direction and all relevant context (file paths, schemas, APIs, constraints)
42
+ - The Phase 2+3 framework below
43
+ - Instruction to return the complete hardened plan in its response
44
+
45
+ Show the user a short summary of the direction and context captured. Confirm before spawning.
46
+
47
+ Spawn a Sonnet subagent (`model: 'sonnet'`): *"Read [absolute path] in full, then execute exactly as instructed. Do not ask questions. Do not invoke slash commands. Append all output under ## Output in that file."*
48
+
49
+ When the subagent returns, present the hardened plan to the user and wait for approval before making any changes.
50
+
51
+ ---
52
+
26
53
  ## Phase 3: Implementation Steps
27
54
 
28
55
  Direction is hardened. Write the execution plan once, correctly.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playbook-ai",
3
- "version": "1.4.2",
3
+ "version": "1.5.2",
4
4
  "description": "Operating playbook for non-technical founders working with Claude Code",
5
5
  "bin": {
6
6
  "playbook-ai": "bin/cli.js"