opencodekit 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/agent/planner.md +3 -2
  3. package/dist/template/.opencode/command/accessibility-check.md +293 -30
  4. package/dist/template/.opencode/command/analyze-mockup.md +406 -20
  5. package/dist/template/.opencode/command/analyze-project.md +439 -30
  6. package/dist/template/.opencode/command/brainstorm.md +288 -5
  7. package/dist/template/.opencode/command/commit.md +226 -17
  8. package/dist/template/.opencode/command/create.md +138 -35
  9. package/dist/template/.opencode/command/design-audit.md +477 -29
  10. package/dist/template/.opencode/command/design.md +609 -6
  11. package/dist/template/.opencode/command/edit-image.md +223 -20
  12. package/dist/template/.opencode/command/finish.md +162 -71
  13. package/dist/template/.opencode/command/fix-ci.md +296 -24
  14. package/dist/template/.opencode/command/fix-types.md +345 -13
  15. package/dist/template/.opencode/command/fix-ui.md +293 -13
  16. package/dist/template/.opencode/command/fix.md +256 -9
  17. package/dist/template/.opencode/command/generate-diagram.md +327 -26
  18. package/dist/template/.opencode/command/generate-icon.md +266 -22
  19. package/dist/template/.opencode/command/generate-image.md +232 -12
  20. package/dist/template/.opencode/command/generate-pattern.md +234 -20
  21. package/dist/template/.opencode/command/generate-storyboard.md +231 -21
  22. package/dist/template/.opencode/command/handoff.md +202 -30
  23. package/dist/template/.opencode/command/implement.md +162 -50
  24. package/dist/template/.opencode/command/import-plan.md +247 -51
  25. package/dist/template/.opencode/command/init.md +154 -35
  26. package/dist/template/.opencode/command/integration-test.md +405 -24
  27. package/dist/template/.opencode/command/issue.md +171 -21
  28. package/dist/template/.opencode/command/new-feature.md +382 -54
  29. package/dist/template/.opencode/command/plan.md +144 -118
  30. package/dist/template/.opencode/command/pr.md +229 -28
  31. package/dist/template/.opencode/command/quick-build.md +234 -5
  32. package/dist/template/.opencode/command/research-and-implement.md +436 -12
  33. package/dist/template/.opencode/command/research-ui.md +444 -34
  34. package/dist/template/.opencode/command/research.md +173 -45
  35. package/dist/template/.opencode/command/restore-image.md +416 -22
  36. package/dist/template/.opencode/command/resume.md +439 -63
  37. package/dist/template/.opencode/command/revert-feature.md +341 -64
  38. package/dist/template/.opencode/command/review-codebase.md +193 -4
  39. package/dist/template/.opencode/command/skill-create.md +506 -14
  40. package/dist/template/.opencode/command/skill-optimize.md +487 -16
  41. package/dist/template/.opencode/command/status.md +320 -60
  42. package/dist/template/.opencode/command/summarize.md +374 -33
  43. package/dist/template/.opencode/command/triage.md +355 -0
  44. package/dist/template/.opencode/command/ui-review.md +292 -25
  45. package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
  46. package/package.json +1 -1
@@ -1,41 +1,251 @@
1
1
  ---
2
2
  description: Generate sequential images for visual storytelling
3
- argument-hint: "<story-description> [frames: N] [style: comic|realistic|sketch]"
3
+ argument-hint: "<story-description> [--frames=<N>] [--style=<style>] [--aspect=<ratio>] [--layout=<layout>]"
4
4
  agent: vision
5
5
  model: proxypal/gemini-3-pro-image-preview
6
6
  ---
7
7
 
8
8
  # Generate Storyboard: $ARGUMENTS
9
9
 
10
- Generate a sequence of images telling a visual story.
10
+ Generate a sequence of images telling a visual story with consistent characters and settings.
11
11
 
12
- ## Instructions
12
+ ## Parse Arguments
13
13
 
14
- Parse from `$ARGUMENTS`:
14
+ | Argument | Default | Options |
15
+ | ----------------- | -------- | -------------------------------- |
16
+ | Story description | required | Narrative or script to visualize |
17
+ | `--frames` | 4 | 3-12 frames |
18
+ | `--style` | sketch | See style presets below |
19
+ | `--aspect` | 16:9 | 16:9, 4:3, 1:1, 9:16 |
20
+ | `--layout` | grid | grid, strip, single |
21
+ | `--captions` | true | Include scene descriptions |
22
+ | `--timing` | false | Add duration annotations |
15
23
 
16
- - Story description or script
17
- - Number of frames (default: 4)
18
- - Visual style (default: sketch)
24
+ ---
25
+
26
+ ## Style Presets
27
+
28
+ | Style | Description | Best For |
29
+ | ------------ | ----------------------------------------- | ---------------------------------- |
30
+ | `sketch` | Hand-drawn, rough lines, quick | Pre-production, drafts |
31
+ | `comic` | Bold lines, panels, dynamic | Marketing, entertainment |
32
+ | `realistic` | Photo-realistic rendering | Film pre-viz, client presentations |
33
+ | `animation` | Clean lines, flat colors | Animated content planning |
34
+ | `noir` | High contrast, shadows, dramatic | Thriller, drama |
35
+ | `watercolor` | Soft, artistic, painterly | Emotional narratives |
36
+ | `minimalist` | Simple shapes, icons | UX flows, explainers |
37
+ | `cinematic` | Widescreen, film grain, dramatic lighting | Video production |
38
+ | `children` | Bright colors, friendly, rounded | Kids content |
39
+ | `technical` | Clean, annotated, precise | Product demos, tutorials |
40
+
41
+ ---
42
+
43
+ ## Aspect Ratios
44
+
45
+ | Ratio | Dimensions | Use Case |
46
+ | -------- | ----------- | -------------------------------- |
47
+ | `16:9` | Widescreen | Video, YouTube, presentations |
48
+ | `4:3` | Traditional | Classic film, some presentations |
49
+ | `1:1` | Square | Social media, Instagram |
50
+ | `9:16` | Vertical | TikTok, Stories, Reels |
51
+ | `2.35:1` | Anamorphic | Cinematic widescreen |
52
+
53
+ ---
54
+
55
+ ## Shot Types
56
+
57
+ Specify shot types in your description for precise framing:
58
+
59
+ | Shot | Description | Emotional Effect |
60
+ | ------------------- | ------------------------------------ | --------------------------- |
61
+ | `wide/establishing` | Full environment, tiny figures | Context, scale, isolation |
62
+ | `medium` | Waist up, some environment | Conversation, action |
63
+ | `close-up` | Face or object fills frame | Emotion, detail, importance |
64
+ | `extreme close-up` | Eyes, hands, small detail | Intensity, intimacy |
65
+ | `over-shoulder` | Behind one character, facing another | Dialogue, connection |
66
+ | `bird's eye` | Directly above | Overview, vulnerability |
67
+ | `low angle` | Looking up at subject | Power, dominance |
68
+ | `high angle` | Looking down at subject | Weakness, submission |
69
+ | `POV` | Character's viewpoint | Immersion, subjectivity |
70
+
71
+ **Example prompt with shots:**
72
+
73
+ ```
74
+ Frame 1: Wide shot - City skyline at sunset, small figure on rooftop
75
+ Frame 2: Medium shot - Character turns, looking worried
76
+ Frame 3: Close-up - Phone screen showing message
77
+ Frame 4: Over-shoulder - Character reading, city blurred behind
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Panel Layouts
83
+
84
+ | Layout | Description | Frames |
85
+ | ---------- | -------------------------- | ------------------- |
86
+ | `grid` | Even grid arrangement | Any (auto-arranges) |
87
+ | `strip` | Single horizontal row | 3-6 frames |
88
+ | `vertical` | Single vertical column | 3-6 frames |
89
+ | `featured` | One large + smaller panels | 4-6 frames |
90
+ | `single` | Individual images only | Any |
91
+
92
+ ---
93
+
94
+ ## Use Cases
95
+
96
+ ### Video Production
97
+
98
+ ```bash
99
+ # Commercial storyboard
100
+ /generate-storyboard Product unboxing: hands open box, reveal product, show features, happy customer using it --frames=6 --style=cinematic --aspect=16:9
101
+
102
+ # Music video
103
+ /generate-storyboard Singer in empty warehouse, dancing, memories flash, reunites with loved one --frames=8 --style=noir --timing
104
+ ```
105
+
106
+ ### UX/Product Flows
107
+
108
+ ```bash
109
+ # User journey
110
+ /generate-storyboard User discovers app, signs up, completes first task, shares achievement --frames=4 --style=minimalist --aspect=1:1
111
+
112
+ # Feature explainer
113
+ /generate-storyboard Problem: messy desk. Solution: our app. Result: organized life --frames=3 --style=technical
114
+ ```
115
+
116
+ ### Marketing/Social
117
+
118
+ ```bash
119
+ # Social campaign
120
+ /generate-storyboard Day in the life with our coffee: morning routine, commute, work meeting, evening relaxation --frames=4 --style=watercolor --aspect=9:16
121
+
122
+ # Brand story
123
+ /generate-storyboard Founder's journey: garage startup, first customer, team growth, today's success --frames=6 --style=sketch
124
+ ```
125
+
126
+ ### Animation Planning
127
+
128
+ ```bash
129
+ # Character animation
130
+ /generate-storyboard Character walks in, sees something surprising, reacts with joy, celebrates --frames=4 --style=animation
19
131
 
20
- ## Styles
132
+ # Explainer video
133
+ /generate-storyboard Complex data enters system, gets processed, outputs simple insights --frames=5 --style=minimalist
134
+ ```
21
135
 
22
- - **comic**: Bold lines, panels, speech bubbles
23
- - **realistic**: Photo-realistic scenes
24
- - **sketch**: Hand-drawn, rough storyboard style
136
+ ---
137
+
138
+ ## Maintaining Consistency
139
+
140
+ ### Character Consistency
141
+
142
+ Include character details in your prompt:
143
+
144
+ ```
145
+ Main character: Young woman, short black hair, red jacket, determined expression
146
+ Setting: Rainy city at night, neon signs, wet streets
147
+ ```
148
+
149
+ ### Consistency Tips
150
+
151
+ 1. **Define characters first**: Age, hair, clothing, distinguishing features
152
+ 2. **Establish setting**: Time of day, weather, key environmental elements
153
+ 3. **Maintain color palette**: Specify dominant colors to carry through
154
+ 4. **Reference previous frames**: "Same character from frame 1..."
155
+ 5. **Use consistent lighting**: Define light source direction
156
+
157
+ ---
158
+
159
+ ## Transitions & Timing
160
+
161
+ Use `--timing` to add duration annotations:
162
+
163
+ | Transition | Symbol | Description |
164
+ | ---------- | ------ | -------------------- | --------------- |
165
+ | Cut | `→` | Instant switch |
166
+ | Fade | `~>` | Gradual transition |
167
+ | Dissolve | `<~>` | Blend between frames |
168
+ | Wipe | ` | >` | Edge transition |
169
+
170
+ **Example output with timing:**
171
+
172
+ ```
173
+ Frame 1 (3s) → Frame 2 (2s) ~> Frame 3 (4s) → Frame 4 (2s)
174
+ ```
175
+
176
+ ---
25
177
 
26
- ## Process
178
+ ## Captions & Dialogue
27
179
 
28
- 1. Break story into key moments
29
- 2. Maintain visual consistency (characters, settings)
30
- 3. Generate each frame with clear narrative progression
31
- 4. Number frames sequentially
180
+ Include dialogue or narration:
181
+
182
+ ```bash
183
+ /generate-storyboard Scene: coffee shop meeting
184
+ Frame 1: "Two old friends spot each other" - wide shot, recognition
185
+ Frame 2: "They haven't seen each other in years" - medium, approaching
186
+ Frame 3: "Warm embrace" - close-up, emotional hug
187
+ Frame 4: "Just like old times" - sitting, laughing, coffee cups
188
+ ```
189
+
190
+ ---
32
191
 
33
192
  ## Output
34
193
 
35
- Save to `.opencode/memory/design/storyboards/<story-name>/`:
194
+ ### File Structure
195
+
196
+ ```
197
+ .opencode/memory/design/storyboards/[story-name]/
198
+ ├── frames/
199
+ │ ├── 01-establishing.png
200
+ │ ├── 02-introduction.png
201
+ │ ├── 03-conflict.png
202
+ │ └── 04-resolution.png
203
+ ├── storyboard-sheet.png # Combined layout
204
+ ├── storyboard-sheet.pdf # Print-ready
205
+ └── script.md # Scene descriptions + timing
206
+ ```
207
+
208
+ ### Script Output
209
+
210
+ ```markdown
211
+ # Storyboard: [Story Name]
212
+
213
+ ## Frame 1 - Establishing Shot
214
+
215
+ **Duration:** 3 seconds
216
+ **Shot:** Wide
217
+ **Description:** City skyline at sunset, small figure visible on rooftop
218
+ **Audio:** Ambient city sounds, distant traffic
219
+ **Transition:** Cut to →
220
+
221
+ ## Frame 2 - Introduction
222
+
223
+ **Duration:** 2 seconds
224
+ **Shot:** Medium
225
+ **Description:** Character turns, worried expression
226
+ **Dialogue:** (thinking) "Where is she?"
227
+ **Transition:** Fade to ~>
228
+ ```
229
+
230
+ ---
231
+
232
+ ## Limitations
233
+
234
+ | Limitation | Workaround |
235
+ | ----------------------------- | ---------------------------------------------------------- |
236
+ | Perfect character consistency | Include detailed character description; may need touch-ups |
237
+ | Exact pose matching | Describe poses clearly; use reference terms |
238
+ | Complex action sequences | Break into more frames |
239
+ | Text/dialogue in image | Add text in post-processing |
240
+ | Specific brand elements | Describe style, add logos later |
241
+
242
+ ---
36
243
 
37
- - Individual frame images (01.png, 02.png, etc.)
38
- - Combined storyboard sheet
39
- - Scene descriptions text file
244
+ ## Related Commands
40
245
 
41
- Report generated sequence.
246
+ | Need | Command |
247
+ | --------------------- | ------------------- |
248
+ | Generate single image | `/generate-image` |
249
+ | Edit a frame | `/edit-image` |
250
+ | Create diagram | `/generate-diagram` |
251
+ | Analyze reference | `/analyze-mockup` |
@@ -8,10 +8,25 @@ agent: build
8
8
 
9
9
  **Load skill:** `skill({ name: "verification-before-completion" })`
10
10
 
11
- ## Phase 1: Gather State
11
+ ## Phase 1: Check Messages
12
+
13
+ Check for any messages that might affect handoff:
14
+
15
+ ```typescript
16
+ bd_inbox({ n: 5, unread: true, global: true });
17
+ ```
18
+
19
+ ## Phase 2: Release Locks
20
+
21
+ Release any file reservations you hold:
22
+
23
+ ```typescript
24
+ bd_release({ _: true });
25
+ ```
26
+
27
+ ## Phase 3: Gather State
12
28
 
13
29
  ```typescript
14
- // Bead info
15
30
  bd_show({ id: "$ARGUMENTS" });
16
31
  ```
17
32
 
@@ -26,7 +41,33 @@ git status --porcelain
26
41
  git diff --stat
27
42
  ```
28
43
 
29
- ## Phase 2: Commit WIP (if needed)
44
+ ## Phase 4: Verify Artifacts
45
+
46
+ Check what artifacts exist and are valid:
47
+
48
+ ```bash
49
+ ls -la .beads/artifacts/<bead-id>/ 2>/dev/null
50
+ ```
51
+
52
+ For each artifact, verify it's not empty:
53
+
54
+ ```bash
55
+ wc -l .beads/artifacts/<bead-id>/spec.md 2>/dev/null
56
+ wc -l .beads/artifacts/<bead-id>/research.md 2>/dev/null
57
+ wc -l .beads/artifacts/<bead-id>/plan.md 2>/dev/null
58
+ ```
59
+
60
+ ```
61
+ Artifact Check:
62
+ ━━━━━━━━━━━━━━
63
+
64
+ - spec.md: [exists/missing] ([N] lines)
65
+ - research.md: [exists/missing] ([N] lines)
66
+ - plan.md: [exists/missing] ([N] lines)
67
+ - review.md: [exists/missing] ([N] lines)
68
+ ```
69
+
70
+ ## Phase 5: Commit WIP (if needed)
30
71
 
31
72
  If uncommitted changes exist:
32
73
 
@@ -35,7 +76,23 @@ git add -A
35
76
  git commit -m "WIP: <bead-id> - [current step]"
36
77
  ```
37
78
 
38
- ## Phase 3: Create Handoff
79
+ ## Phase 6: Calculate Session Stats
80
+
81
+ Track estimation accuracy:
82
+
83
+ ```
84
+ Session Stats:
85
+ ━━━━━━━━━━━━━━
86
+
87
+ Estimate: [S/M/L] (~[N] tool calls)
88
+ Actual: [N] tool calls
89
+ Variance: [+/-N%]
90
+
91
+ Progress: [N]% complete
92
+ Time in session: [estimated duration]
93
+ ```
94
+
95
+ ## Phase 7: Create Handoff
39
96
 
40
97
  Write `.beads/artifacts/<bead-id>/handoffs/<timestamp>.md`:
41
98
 
@@ -47,15 +104,26 @@ Write `.beads/artifacts/<bead-id>/handoffs/<timestamp>.md`:
47
104
 
48
105
  ## Provenance
49
106
 
50
- - **Repo:** [git remote URL]
51
- - **Branch:** [branch name]
52
- - **Commit:** [commit hash]
53
- - **Clean:** [yes/no]
107
+ | Field | Value |
108
+ | ------ | ---------------- |
109
+ | Repo | [git remote URL] |
110
+ | Branch | [branch name] |
111
+ | Commit | [commit hash] |
112
+ | Clean | [yes/no] |
113
+
114
+ ## Session Stats
115
+
116
+ | Metric | Value |
117
+ | -------- | ------------- |
118
+ | Estimate | [S/M/L] |
119
+ | Budget | ~[N] calls |
120
+ | Actual | [N] calls |
121
+ | Variance | [+/-N%] |
122
+ | Progress | [N]% complete |
54
123
 
55
124
  ## Session Context
56
125
 
57
- **Current Session:** [session ID from OpenCode]
58
- **Token Usage:** [if available]
126
+ **Current Session:** [session ID]
59
127
 
60
128
  Next session can load context with:
61
129
  ```
@@ -66,10 +134,12 @@ read_session("last", project="current")
66
134
 
67
135
  ## Bead State
68
136
 
69
- - **ID:** <bead-id>
70
- - **Title:** [title]
71
- - **Status:** [status]
72
- - **Priority:** [priority]
137
+ | Field | Value |
138
+ | -------- | ---------- |
139
+ | ID | <bead-id> |
140
+ | Title | [title] |
141
+ | Status | [status] |
142
+ | Priority | [priority] |
73
143
 
74
144
  ## Progress
75
145
 
@@ -80,7 +150,7 @@ read_session("last", project="current")
80
150
 
81
151
  ### In Progress
82
152
 
83
- - [ ] [Current step] - [where stopped]
153
+ - [ ] [Current step] - [where stopped, what's next]
84
154
 
85
155
  ### Remaining
86
156
 
@@ -91,8 +161,10 @@ read_session("last", project="current")
91
161
 
92
162
  ### Key Files
93
163
 
94
- - `src/foo.ts:42` - [why relevant]
95
- - `src/bar.ts` - [why relevant]
164
+ | File | Relevance |
165
+ | ----------------- | ---------------- |
166
+ | `src/foo.ts:42` | [why relevant] |
167
+ | `src/bar.ts` | [why relevant] |
96
168
 
97
169
  ### Decisions Made
98
170
 
@@ -101,7 +173,22 @@ read_session("last", project="current")
101
173
 
102
174
  ### Blockers/Issues
103
175
 
104
- - [Issue 1] - [status]
176
+ - [Issue 1] - [status: resolved/pending/blocked]
177
+
178
+ ## Lessons Learned
179
+
180
+ ### What Went Well
181
+
182
+ - [Thing that worked smoothly]
183
+
184
+ ### What Was Harder Than Expected
185
+
186
+ - [Challenge encountered]
187
+ - [Why it was harder]
188
+
189
+ ### Patterns Discovered
190
+
191
+ - [Pattern worth remembering]
105
192
 
106
193
  ## Resume Instructions
107
194
 
@@ -109,36 +196,121 @@ read_session("last", project="current")
109
196
 
110
197
  1. [First thing to do]
111
198
  2. [Second thing to do]
199
+ 3. [Third thing to do]
112
200
 
113
- **Recommended:** Start next session with `/resume <bead-id>` to auto-load this handoff + previous session context.
201
+ **Recommended:** Start next session with `/resume <bead-id>`
114
202
 
115
203
  ## Artifacts
116
204
 
117
- - spec.md: [exists/missing]
118
- - research.md: [exists/missing]
119
- - plan.md: [exists/missing]
205
+ | Artifact | Status | Lines |
206
+ | ------------ | ------- | ----- |
207
+ | spec.md | [✓/✗] | [N] |
208
+ | research.md | [✓/✗] | [N] |
209
+ | plan.md | [✓/✗] | [N] |
210
+ | review.md | [✓/✗] | [N] |
211
+ ```
212
+
213
+ ## Phase 8: Create Observation (if notable learnings)
214
+
215
+ If session revealed patterns or gotchas:
216
+
217
+ ```typescript
218
+ observation({
219
+ type: "learning",
220
+ title: "Session learning: [topic]",
221
+ content: `
222
+ ## What Happened
223
+ [Brief description]
224
+
225
+ ## Lesson
226
+ [What we learned]
227
+
228
+ ## Application
229
+ [When to apply this learning]
230
+ `,
231
+ concepts: "[keywords]",
232
+ bead_id: "<bead-id>",
233
+ });
234
+ ```
235
+
236
+ ## Phase 9: Update Memory (if gotchas found)
237
+
238
+ If you discovered issues worth remembering:
239
+
240
+ ```typescript
241
+ memory -
242
+ update({
243
+ file: "project/gotchas",
244
+ content: `
245
+ ## [Gotcha Title]
246
+
247
+ **Symptom:** [What you see]
248
+ **Cause:** [Root cause]
249
+ **Fix:** [How to resolve]
250
+ `,
251
+ mode: "append",
252
+ });
253
+ ```
254
+
255
+ ## Phase 10: Notify Blockers (if any)
256
+
257
+ If there are blockers for next session:
258
+
259
+ ```typescript
260
+ bd_msg({
261
+ subj: "Handoff: <bead-id> - Blocked",
262
+ body: `
263
+ Blockers:
264
+ - [Blocker 1]
265
+ - [Blocker 2]
266
+
267
+ Needs: [what's required to unblock]
268
+ `,
269
+ to: "all",
270
+ importance: "high",
271
+ global: true,
272
+ });
120
273
  ```
121
274
 
122
- ## Phase 4: Update Bead
275
+ ## Phase 11: Update Bead & Sync
123
276
 
124
- Add a note about the handoff via `bd_msg` or update spec with handoff reference.
277
+ ```typescript
278
+ bd_msg({
279
+ subj: "Handoff created",
280
+ body: "Progress: [N]%\nNext: [what needs to happen]",
281
+ to: "all",
282
+ importance: "normal",
283
+ global: false,
284
+ });
285
+
286
+ bd_sync({ reason: "Handoff created for $ARGUMENTS" });
287
+ ```
125
288
 
126
289
  ## Output
127
290
 
128
291
  ```
129
292
  Handoff Created: <bead-id>
130
- ━━━━━━━━━━━━━━━━━━━━━━━━
293
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━
131
294
 
132
295
  Commit: [hash]
133
296
  Branch: [branch]
297
+ Progress: [N]% complete
298
+
299
+ Session Stats:
300
+ - Estimate: [S/M/L] (~[N] calls)
301
+ - Actual: [N] calls
302
+ - Variance: [+/-N%]
134
303
 
304
+ Artifacts verified: [N]/[N]
135
305
  Saved: .beads/artifacts/<bead-id>/handoffs/<timestamp>.md
136
306
 
137
- ━━━━━━━━━━━━━━━━━━━━━━━━
138
- 🔄 Press Ctrl+K to compact session with handoff context
139
- ━━━━━━━━━━━━━━━━━━━━━━━━
307
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━
308
+ To continue: /resume <bead-id>
309
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━
140
310
 
141
- The handoff plugin will automatically inject this context into the new session.
311
+ The handoff is saved. Start a fresh session for best performance.
142
312
 
143
- Alternatively, resume manually: /resume <bead-id>
313
+ Next session will auto-load:
314
+ - This handoff document
315
+ - Previous session context via read_session("last")
144
316
  ```