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.
- package/dist/index.js +1 -1
- package/dist/template/.opencode/agent/planner.md +3 -2
- package/dist/template/.opencode/command/accessibility-check.md +293 -30
- package/dist/template/.opencode/command/analyze-mockup.md +406 -20
- package/dist/template/.opencode/command/analyze-project.md +439 -30
- package/dist/template/.opencode/command/brainstorm.md +288 -5
- package/dist/template/.opencode/command/commit.md +226 -17
- package/dist/template/.opencode/command/create.md +138 -35
- package/dist/template/.opencode/command/design-audit.md +477 -29
- package/dist/template/.opencode/command/design.md +609 -6
- package/dist/template/.opencode/command/edit-image.md +223 -20
- package/dist/template/.opencode/command/finish.md +162 -71
- package/dist/template/.opencode/command/fix-ci.md +296 -24
- package/dist/template/.opencode/command/fix-types.md +345 -13
- package/dist/template/.opencode/command/fix-ui.md +293 -13
- package/dist/template/.opencode/command/fix.md +256 -9
- package/dist/template/.opencode/command/generate-diagram.md +327 -26
- package/dist/template/.opencode/command/generate-icon.md +266 -22
- package/dist/template/.opencode/command/generate-image.md +232 -12
- package/dist/template/.opencode/command/generate-pattern.md +234 -20
- package/dist/template/.opencode/command/generate-storyboard.md +231 -21
- package/dist/template/.opencode/command/handoff.md +202 -30
- package/dist/template/.opencode/command/implement.md +162 -50
- package/dist/template/.opencode/command/import-plan.md +247 -51
- package/dist/template/.opencode/command/init.md +154 -35
- package/dist/template/.opencode/command/integration-test.md +405 -24
- package/dist/template/.opencode/command/issue.md +171 -21
- package/dist/template/.opencode/command/new-feature.md +382 -54
- package/dist/template/.opencode/command/plan.md +144 -118
- package/dist/template/.opencode/command/pr.md +229 -28
- package/dist/template/.opencode/command/quick-build.md +234 -5
- package/dist/template/.opencode/command/research-and-implement.md +436 -12
- package/dist/template/.opencode/command/research-ui.md +444 -34
- package/dist/template/.opencode/command/research.md +173 -45
- package/dist/template/.opencode/command/restore-image.md +416 -22
- package/dist/template/.opencode/command/resume.md +439 -63
- package/dist/template/.opencode/command/revert-feature.md +341 -64
- package/dist/template/.opencode/command/review-codebase.md +193 -4
- package/dist/template/.opencode/command/skill-create.md +506 -14
- package/dist/template/.opencode/command/skill-optimize.md +487 -16
- package/dist/template/.opencode/command/status.md +320 -60
- package/dist/template/.opencode/command/summarize.md +374 -33
- package/dist/template/.opencode/command/triage.md +355 -0
- package/dist/template/.opencode/command/ui-review.md +292 -25
- package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
- 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
|
|
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
|
-
##
|
|
12
|
+
## Parse Arguments
|
|
13
13
|
|
|
14
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
132
|
+
# Explainer video
|
|
133
|
+
/generate-storyboard Complex data enters system, gets processed, outputs simple insights --frames=5 --style=minimalist
|
|
134
|
+
```
|
|
21
135
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
##
|
|
178
|
+
## Captions & Dialogue
|
|
27
179
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
38
|
-
- Combined storyboard sheet
|
|
39
|
-
- Scene descriptions text file
|
|
244
|
+
## Related Commands
|
|
40
245
|
|
|
41
|
-
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
95
|
-
|
|
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>`
|
|
201
|
+
**Recommended:** Start next session with `/resume <bead-id>`
|
|
114
202
|
|
|
115
203
|
## Artifacts
|
|
116
204
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
|
275
|
+
## Phase 11: Update Bead & Sync
|
|
123
276
|
|
|
124
|
-
|
|
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
|
-
|
|
139
|
-
|
|
307
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
308
|
+
To continue: /resume <bead-id>
|
|
309
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
140
310
|
|
|
141
|
-
The handoff
|
|
311
|
+
The handoff is saved. Start a fresh session for best performance.
|
|
142
312
|
|
|
143
|
-
|
|
313
|
+
Next session will auto-load:
|
|
314
|
+
- This handoff document
|
|
315
|
+
- Previous session context via read_session("last")
|
|
144
316
|
```
|