playbook-ai 1.5.0 → 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,28 @@
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
+
5
27
  ## [1.5.0] — 2026-05-27
6
28
 
7
29
  ### Strategy
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.0
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
 
@@ -1,8 +1,10 @@
1
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
2
 
3
+ **Self-contained.** Does not require `/start`. Reads its own context.
4
+
3
5
  ---
4
6
 
5
- ## Pre-flight: Read context
7
+ ## Pre-flight (Sonnet, inline)
6
8
 
7
9
  Silently read the following before doing anything else:
8
10
  - `WORK_LOG.md` in the current project
@@ -10,172 +12,244 @@ Silently read the following before doing anything else:
10
12
  - Recent git log (last 20 commits) if available
11
13
  - Any open/in-progress PM tasks if a PM MCP is connected
12
14
 
13
- Do not summarize this to the user. Use it to ground the scenarios in the actual project — real constraints, real state, real recent decisions. Generic startup scenarios are useless.
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.
14
21
 
15
22
  ---
16
23
 
17
- ## Intake
24
+ ## Intake (Sonnet, inline)
18
25
 
19
- Ask these questions conversationally — not as a numbered list. One at a time, naturally. Use follow-ups where an answer is thin. The goal is enough material to write scenarios that are specific, not vague.
26
+ Ask conversationally — not as a numbered list. One question at a time. Follow up where answers are thin.
20
27
 
21
- **Question 1 — The north star**
22
- What does massive success look like in concrete terms? Not "we grew a lot" — what's the specific outcome, 12 months from now, that you'd genuinely be proud of? Name it as if it already happened.
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.
23
30
 
24
- **Question 2 — The fear**
25
- What's the specific failure that keeps you up at night? The scenario you'd be embarrassed to explain to someone who believed in you. Be direct.
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.
26
33
 
27
- **Question 3 — The constraints**
28
- What are the hard limits right now? Runway, team size, a deadline that isn't moveable, a dependency you're waiting on. What are you working around?
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.
29
36
 
30
37
  **Timeframe**
31
- Based on the project context and what the user just described, propose a timeframe. Default is 12 months, but:
32
- - Shorter (3–6 months) for a specific launch, campaign, or sprint with a hard end date
33
- - Longer (18–24 months) for platforms, infrastructure, or ventures still finding product-market fit
34
- - Say: *"Based on what you've described, I'd suggest a [N]-month horizon — does that feel right, or should we adjust?"*
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
35
42
 
36
- Confirm the timeframe before proceeding.
43
+ Say: *"Based on what you've described, I'd suggest a [N]-month horizon — does that feel right?"* Confirm before proceeding.
37
44
 
38
45
  ---
39
46
 
40
- ## Three scenarios
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.
41
50
 
42
- Write all three. Past tense throughout. The narrative voice is: you're explaining what happened to someone who loves you and won't let you bullshit them — honest, specific, no spin. This isn't a case study or a consultant's report. It's a candid debrief.
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."*
43
52
 
44
- For each scenario, start at the end of the timeframe and rewind month by month to today. Name specific decisions, not themes. Name the moments where the path forked. Name what was done and what wasn't.
53
+ Note the shaky ones. They go into the brief.
45
54
 
46
55
  ---
47
56
 
48
- ### Scenario A: The Win
57
+ ## Retrospective step (Sonnet subagent — only if prior run exists)
49
58
 
50
- Massive success landed. Rewind from the end state to today.
59
+ If the user chose the update path: before writing the main brief, spawn a lightweight Sonnet subagent to do the comparison work.
51
60
 
52
- What happened? Not just what worked — 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? What was the moment where it could have gone either way, and what made it go right?
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?"*
53
64
 
54
- Be specific about:
55
- - The decisions that compounded (small early, large later)
56
- - The things you *didn't* do that turned out to matter
57
- - The external factors that helped — and what you did to be positioned to benefit from them
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.
58
66
 
59
67
  ---
60
68
 
61
- ### Scenario B: The Unraveling
69
+ ## Generate the brief and spawn subagent
62
70
 
63
- Massive failure. Rewind from the end state to today.
71
+ Compile everything into a futures brief file and spawn an Opus 4.6 subagent. Follow the `/handoff` pattern.
64
72
 
65
- What happened? Not just "we ran out of money" or "we lost momentum" — what specific decisions, delays, and patterns led there? What looked reasonable at the time but wasn't? What was done instead of what actually mattered? When did you first know something was wrong, and what did you do (or not do) about it?
73
+ **1. Write the brief**
66
74
 
67
- Be specific about:
68
- - What was tempting but harmful (the anti-patterns that looked like good ideas)
69
- - What was delayed past the point of recovery
70
- - What the earliest warning sign was — before it became obvious
71
- - What you'd tell yourself in month 2 if you could
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.
72
76
 
73
77
  ---
74
78
 
75
- ### Scenario C: The Headwind
79
+ ```
80
+ # Future Brief — [YYYY-MM-DD] — [slug]
81
+ [Fresh run / Retrospective update from [prior date]]
76
82
 
77
- You did almost everything right. The universe didn't cooperate. Rewind from the end state to today.
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.
78
85
 
79
- This is the scenario most people don't think about because it's uncomfortable — you can't control it, and it feels like an excuse. But naming it clearly is the difference between being blindsided and being resilient.
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.]
80
88
 
81
- What external forces hit that you couldn't have fully predicted? A market shift, a competitor move, a platform change, a regulatory event, a macro condition, a key relationship that fell through. What was the real ceiling on what could be achieved even with strong execution?
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]
82
95
 
83
- Be specific about:
84
- - What you were exposed to that you didn't need to be
85
- - What resilience you had built and what you wish you'd built
86
- - The difference between "bad luck" and "we were fragile in a way we could have fixed"
87
- - What "doing everything right" actually looked like in this world
96
+ [If retrospective:]
97
+ ## What's changed since [prior date]
98
+ [The 200-300 word comparison note from the Sonnet retrospective step]
88
99
 
89
- ---
100
+ ## Futures framework
90
101
 
91
- ## Synthesis
102
+ **Three narratives**
92
103
 
93
- Do this internally before writing the final output. Do not show the synthesis process to the user only the output.
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.
94
105
 
95
- **Quadrant analysis**
96
- Classify decisions and actions across the three scenarios:
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?
97
108
 
98
- - **Double-confirmed critical** — appears in The Win AND its absence appears in The Unraveling. These are the highest-confidence levers.
99
- - **Swing-state decisions** present in The Win but also present (differently executed) in The Unraveling. These are hard calls, not obvious moves. Flag them explicitly.
100
- - **Failure drivers** — appear in The Unraveling and are absent from The Win. The anti-patterns.
101
- - **Resilience gaps** — surface from The Headwind. Things within your control that would have changed your exposure to external forces.
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
102
114
 
103
- **Leading indicators**
104
- For each critical decision or turning point in The Unraveling: what was the *earliest signal* that this was coming? Not month 8 when it was obvious month 2, when there was still time. Extract these from the narrative, don't ask the user. They're already embedded in the story.
115
+ **The Unraveling**
116
+ Massive failure. Anchor this in the shaky assumptions from intakeshow 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
105
123
 
106
- **Irreversibility flag**
107
- Tag each load-bearing decision as:
108
- - **Hard to reverse** — hiring, pricing model, core tech choices, pivots, strategic commitments
109
- - **Iterable** — things you can course-correct on without major cost
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.
110
126
 
111
- Hard-to-reverse decisions deserve more upfront thought and appear earlier in the output.
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
112
132
 
113
- **Order by when, not importance**
114
- Sort all output items by *when* the decision needs to be made, not by abstract importance. Timing drives action; importance doesn't.
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?
115
134
 
116
135
  ---
117
136
 
118
- ## Output
137
+ **Synthesis**
119
138
 
120
- Present the primary output in full. Then offer the appendix.
139
+ Do this reasoning internally. Only the output appears in the final results.
121
140
 
122
- ---
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.
123
146
 
124
- **The thesis**
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.
125
148
 
126
- One paragraph. The single most important variable the fork in the road that, more than anything else, separates The Win from The Unraveling. Don't list three things. Name the one.
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.
127
156
 
128
157
  ---
129
158
 
130
- **3 load-bearing decisions**
159
+ **Primary output**
131
160
 
132
- The decisions that cascade if you get them wrong or delay them. For each:
133
- - **The decision** — what it is, stated plainly
134
- - **When it needs to be made** — a specific window ("before month 3," "within the next 6 weeks"), not "eventually"
135
- - **Early warning sign** — the earliest signal that this is going wrong, before it's obvious
136
- - Mark hard-to-reverse decisions with *(irreversible)*
161
+ Write the one-screen summary. Tight everything that matters, nothing that doesn't.
137
162
 
138
- Ordered by when, not importance. Three max. If more surfaced, put the rest in the appendix.
163
+ **The thesis**
164
+ One paragraph. The single most important variable separating The Win from The Unraveling. Name the one fork in the road.
139
165
 
140
- ---
166
+ [If retrospective:] One sentence first: whether the prior thesis still holds or has shifted.
141
167
 
142
- **3 things not to do**
168
+ **3 load-bearing decisions** (✅ double-confirmed, ordered by when)
143
169
 
144
- From The Unraveling. For each:
145
- - **The anti-pattern** — what it is
146
- - **Why it's tempting** — if it weren't tempting, you wouldn't need the warning
147
- - **The signal you're sliding into it** — the earliest sign, before it becomes entrenched
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
148
175
 
149
- Three max. The most dangerous ones — the ones that looked like good ideas.
176
+ Three max.
150
177
 
151
- ---
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.
152
186
 
153
187
  **Your move this week**
188
+ One or two specific actions, this week. Entry point into the critical path.
189
+
190
+ ---
154
191
 
155
- One or two specific actions, this week. Not "eventually" — this week. These are the entry point into the critical path. Everything else can wait until these are done.
192
+ *Full narratives, complete quadrant, and everything else surfaced are in the appendix. Ask to see it.*
156
193
 
157
194
  ---
158
195
 
159
- *Full narratives, complete quadrant synthesis, and everything else the exercise surfaced are in the appendix. Type "show appendix" to read.*
196
+ ## Output
197
+
198
+ *(appended by subagent)*
199
+ ```
160
200
 
161
201
  ---
162
202
 
163
- **Follow-up**
203
+ **2. Show intake summary and get approval**
164
204
 
165
- After presenting the output, offer one of the following (based on what tools are connected):
166
- - If ClickUp MCP is connected: *"Want me to create a ClickUp task to review the load-bearing decisions 30 days from now?"*
167
- - Otherwise: *"Want me to add a reminder to WORK_LOG.md to revisit these decisions in 30 days?"*
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."*
168
216
 
169
- This is a one-line offer. Don't push it.
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.
170
220
 
171
221
  ---
172
222
 
173
- ## Appendix (on request)
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?*
174
242
 
175
- If the user types "show appendix" or asks to see more:
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.
176
244
 
177
- 1. **Full narratives** all three scenarios in full
178
- 2. **Quadrant synthesis** — the full classification of every decision/action that surfaced
179
- 3. **Everything else** — items that didn't make the top 3 in either output section, labeled "worth knowing, not the priority right now"
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?"*
180
254
 
181
- Present the appendix cleanly, clearly separated from the primary output.
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.5.0",
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"