opencodekit 0.16.3 → 0.16.5

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 (37) hide show
  1. package/dist/index.js +7685 -2238
  2. package/dist/template/.opencode/AGENTS.md +7 -7
  3. package/dist/template/.opencode/agent/build.md +1 -2
  4. package/dist/template/.opencode/agent/plan.md +0 -1
  5. package/dist/template/.opencode/command/create.md +2 -2
  6. package/dist/template/.opencode/command/design.md +1 -1
  7. package/dist/template/.opencode/command/handoff.md +2 -2
  8. package/dist/template/.opencode/command/plan.md +19 -19
  9. package/dist/template/.opencode/command/pr.md +2 -2
  10. package/dist/template/.opencode/command/research.md +1 -1
  11. package/dist/template/.opencode/command/resume.md +3 -3
  12. package/dist/template/.opencode/command/review-codebase.md +2 -2
  13. package/dist/template/.opencode/command/ship.md +4 -4
  14. package/dist/template/.opencode/command/start.md +7 -7
  15. package/dist/template/.opencode/command/status.md +3 -3
  16. package/dist/template/.opencode/command/ui-review.md +2 -2
  17. package/dist/template/.opencode/command/verify.md +1 -1
  18. package/dist/template/.opencode/memory/beads-workflow.md +65 -65
  19. package/dist/template/.opencode/memory.db-shm +0 -0
  20. package/dist/template/.opencode/memory.db-wal +0 -0
  21. package/dist/template/.opencode/plans/1770013678126-witty-planet.md +1 -1
  22. package/dist/template/.opencode/plans/1770112267595-shiny-rocket.md +258 -0
  23. package/dist/template/.opencode/plans/swarm-protocol.md +8 -8
  24. package/dist/template/.opencode/plugin/README.md +2 -2
  25. package/dist/template/.opencode/plugin/compaction.ts +1 -1
  26. package/dist/template/.opencode/plugin/swarm-enforcer.ts +6 -6
  27. package/dist/template/.opencode/skill/beads/SKILL.md +156 -372
  28. package/dist/template/.opencode/skill/beads/references/BOUNDARIES.md +23 -22
  29. package/dist/template/.opencode/skill/beads/references/DEPENDENCIES.md +23 -29
  30. package/dist/template/.opencode/skill/beads/references/RESUMABILITY.md +5 -8
  31. package/dist/template/.opencode/skill/beads/references/WORKFLOWS.md +43 -39
  32. package/dist/template/.opencode/skill/beads-bridge/SKILL.md +18 -8
  33. package/dist/template/.opencode/skill/session-management/SKILL.md +2 -2
  34. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +4 -4
  35. package/dist/template/.opencode/tool/beads-sync.ts +5 -5
  36. package/dist/template/.opencode/tool/observation.ts +1 -1
  37. package/package.json +6 -19
@@ -1,4 +1,4 @@
1
- # Boundaries: When to Use bd\_\* vs TodoWrite
1
+ # Boundaries: When to Use br vs TodoWrite
2
2
 
3
3
  Decision criteria for choosing between beads tools and TodoWrite.
4
4
 
@@ -6,12 +6,12 @@ Decision criteria for choosing between beads tools and TodoWrite.
6
6
 
7
7
  **"Could I resume this work after 2 weeks away?"**
8
8
 
9
- - If beads would help you resume → **use bd\_\***
9
+ - If beads would help you resume → **use br**
10
10
  - If markdown skim would suffice → **TodoWrite is fine**
11
11
 
12
12
  ## Decision Matrix
13
13
 
14
- ### Use bd\_\* for:
14
+ ### Use br for:
15
15
 
16
16
  **Multi-Session Work**
17
17
 
@@ -78,7 +78,7 @@ Decision criteria for choosing between beads tools and TodoWrite.
78
78
 
79
79
  ## Detailed Comparison
80
80
 
81
- | Aspect | bd\_\* | TodoWrite |
81
+ | Aspect | br CLI | TodoWrite |
82
82
  | ---------------- | --------------------------------- | ---------------------- |
83
83
  | **Persistence** | Git-backed, survives compaction | Session-only |
84
84
  | **Dependencies** | Graph-based, auto ready detection | Manual |
@@ -89,10 +89,10 @@ Decision criteria for choosing between beads tools and TodoWrite.
89
89
 
90
90
  ## Integration Patterns
91
91
 
92
- ### Pattern 1: bd\_\* as Strategic, TodoWrite as Tactical
92
+ ### Pattern 1: br as Strategic, TodoWrite as Tactical
93
93
 
94
94
  ```
95
- bd task: "Implement user authentication" (epic)
95
+ br task: "Implement user authentication" (epic)
96
96
  ├─ Child: "Create login endpoint"
97
97
  ├─ Child: "Add JWT validation" ← Currently working
98
98
  └─ Child: "Implement logout"
@@ -108,16 +108,17 @@ TodoWrite (for JWT validation):
108
108
 
109
109
  ```
110
110
  Session start:
111
- - bd_claim() gets "Add JWT validation"
111
+ - br ready gets "Add JWT validation"
112
+ - br update <id> --status in_progress
112
113
  - Extract acceptance criteria into TodoWrite
113
114
  - Work through TodoWrite items
114
- - Update bd notes as you learn
115
- - bd_done() when TodoWrite complete
115
+ - Update br notes as you learn
116
+ - br close <id> when TodoWrite complete
116
117
  ```
117
118
 
118
119
  ### Pattern 3: Transition Mid-Session
119
120
 
120
- **From TodoWrite to bd\_\*:**
121
+ **From TodoWrite to br:**
121
122
 
122
123
  Trigger signals:
123
124
 
@@ -129,11 +130,11 @@ Trigger signals:
129
130
  **How to transition:**
130
131
 
131
132
  ```
132
- 1. bd_add() with current TodoWrite content
133
+ 1. br create with current TodoWrite content
133
134
  2. Note: "Discovered multi-session work"
134
135
  3. Add dependencies as discovered
135
136
  4. Keep TodoWrite for current session
136
- 5. Update bd notes before session ends
137
+ 5. Update br notes before session ends
137
138
  ```
138
139
 
139
140
  ## Common Mistakes
@@ -147,9 +148,9 @@ Trigger signals:
147
148
  - Lose design decisions
148
149
  - Duplicate work
149
150
 
150
- **Solution:** Use bd\_\* instead.
151
+ **Solution:** Use br instead.
151
152
 
152
- ### Mistake 2: bd\_\* for Simple Linear Tasks
153
+ ### Mistake 2: br for Simple Linear Tasks
153
154
 
154
155
  **What happens:**
155
156
 
@@ -168,9 +169,9 @@ Trigger signals:
168
169
  - Keep using TodoWrite despite poor fit
169
170
  - Lose context when session ends
170
171
 
171
- **Solution:** Transition to bd\_\* when complexity appears.
172
+ **Solution:** Transition to br when complexity appears.
172
173
 
173
- ### Mistake 4: Creating Too Many bd Issues
174
+ ### Mistake 4: Creating Too Many br Issues
174
175
 
175
176
  **What happens:**
176
177
 
@@ -178,7 +179,7 @@ Trigger signals:
178
179
  - Database cluttered
179
180
  - Hard to find meaningful work
180
181
 
181
- **Solution:** Use 2-week test. Would bd help after 2 weeks? If no, skip.
182
+ **Solution:** Use 2-week test. Would br help after 2 weeks? If no, skip.
182
183
 
183
184
  ## The Transition Point
184
185
 
@@ -191,28 +192,28 @@ Trigger signals:
191
192
  - "User might not continue today"
192
193
  - "Found three related issues"
193
194
 
194
- When you notice these: Create bd issue, preserve context.
195
+ When you notice these: Create br issue, preserve context.
195
196
 
196
197
  ## Summary Heuristics
197
198
 
198
199
  **Time horizon:**
199
200
 
200
201
  - Same session → TodoWrite
201
- - Multiple sessions → bd\_\*
202
+ - Multiple sessions → br
202
203
 
203
204
  **Dependency structure:**
204
205
 
205
206
  - Linear steps → TodoWrite
206
- - Blockers/prerequisites → bd\_\*
207
+ - Blockers/prerequisites → br
207
208
 
208
209
  **Scope clarity:**
209
210
 
210
211
  - Well-defined → TodoWrite
211
- - Exploratory → bd\_\*
212
+ - Exploratory → br
212
213
 
213
214
  **Multi-agent:**
214
215
 
215
216
  - Single agent → Either
216
- - Multiple agents → bd\_\*
217
+ - Multiple agents → br
217
218
 
218
219
  **When in doubt:** Use the 2-week test.
@@ -4,15 +4,13 @@ Beads supports task dependencies for ordering work.
4
4
 
5
5
  ## Overview
6
6
 
7
- Dependencies affect what work is "ready" - tasks with unmet dependencies won't appear in `bd_claim()` results.
7
+ Dependencies affect what work is "ready" - tasks with unmet dependencies won't appear in `br ready` results.
8
8
 
9
9
  ## Creating Dependencies
10
10
 
11
- ```typescript
12
- bd_add({
13
- title: "Implement API endpoint",
14
- deps: ["task:setup-db"], // depends on setup-db task
15
- });
11
+ ```bash
12
+ br create --title "Implement API endpoint" --blocked-by setup-db
13
+ # This task depends on setup-db completing first
16
14
  ```
17
15
 
18
16
  ## Dependency Patterns
@@ -23,7 +21,7 @@ bd_add({
23
21
  setup-db → implement-api → add-tests → deploy
24
22
  ```
25
23
 
26
- Each task depends on the previous. `bd_claim()` shows only the current step.
24
+ Each task depends on the previous. `br ready` shows only the current step.
27
25
 
28
26
  ### Parallel Then Merge
29
27
 
@@ -47,19 +45,15 @@ One foundational task blocks multiple features.
47
45
 
48
46
  ## Epic with Children
49
47
 
50
- ```typescript
51
- // Create epic
52
- bd_add({ title: "OAuth Integration", type: "epic" });
53
- // Returns: { id: "oauth-abc" }
54
-
55
- // Create children with parent
56
- bd_add({ title: "Setup credentials", parent: "oauth-abc" });
57
- bd_add({
58
- title: "Implement flow",
59
- parent: "oauth-abc",
60
- deps: ["task:credentials"],
61
- });
62
- bd_add({ title: "Add UI", parent: "oauth-abc", deps: ["task:flow"] });
48
+ ```bash
49
+ # Create epic
50
+ br create --title "OAuth Integration" --type epic --priority 1
51
+ # Returns: oauth-abc
52
+
53
+ # Create children with parent
54
+ br create --title "Setup credentials" --parent oauth-abc
55
+ br create --title "Implement flow" --parent oauth-abc --blocked-by credentials
56
+ br create --title "Add UI" --parent oauth-abc --blocked-by flow
63
57
  ```
64
58
 
65
59
  ## Automatic Unblocking
@@ -67,9 +61,9 @@ bd_add({ title: "Add UI", parent: "oauth-abc", deps: ["task:flow"] });
67
61
  When you close a task that's blocking others:
68
62
 
69
63
  ```
70
- 1. bd_done({ id: "setup-db" })
64
+ 1. br close setup-db --reason "Schema created"
71
65
  2. Beads automatically updates: implement-api is now ready
72
- 3. bd_claim() returns implement-api
66
+ 3. br ready returns implement-api
73
67
  4. No manual unblocking needed
74
68
  ```
75
69
 
@@ -91,8 +85,8 @@ docs depends on feature // "prefer to update docs after"
91
85
 
92
86
  **Wrong:**
93
87
 
94
- ```
95
- bd_add({ title: "API", deps: ["task:tests"] }) // API depends on tests?
88
+ ```bash
89
+ br create --title "API" --blocked-by tests # API depends on tests?
96
90
  ```
97
91
 
98
92
  **Problem:** Usually tests depend on API, not the other way.
@@ -121,10 +115,10 @@ bd_add({ title: "API", deps: ["task:tests"] }) // API depends on tests?
121
115
 
122
116
  ## Viewing Dependencies
123
117
 
124
- ```typescript
125
- bd_show({ id: "task-abc" });
126
- // Shows what blocks this task and what this task blocks
118
+ ```bash
119
+ br show <id>
120
+ # Shows what blocks this task and what this task blocks
127
121
 
128
- bd_blocked();
129
- // Shows all blocked tasks across project
122
+ br list --status open
123
+ # Shows all open tasks, check dependencies in details
130
124
  ```
@@ -52,28 +52,26 @@ DESIRED OUTPUT:
52
52
  Actual structure, not just "return markdown"
53
53
  ```
54
54
 
55
- ```
55
+ ````
56
56
 
57
57
  ## Example: Before vs After
58
58
 
59
59
  ### Not Resumable
60
60
 
61
61
  ```
62
-
63
62
  Title: Add dynamic capabilities
64
63
  Notes: Working on it. Made some progress.
65
-
66
- ```
64
+ ````
67
65
 
68
66
  **Problem:** Future agent doesn't know:
67
+
69
68
  - Which API endpoints to call
70
69
  - What responses look like
71
70
  - What format to return
72
71
 
73
72
  ### Resumable
74
73
 
75
- ```
76
-
74
+ ````
77
75
  Title: Add dynamic capabilities resources
78
76
 
79
77
  Notes:
@@ -82,12 +80,11 @@ IN PROGRESS: Formatting response as markdown.
82
80
  NEXT: Add caching for API responses.
83
81
 
84
82
  WORKING CODE:
85
-
86
83
  ```python
87
84
  service = build('drive', 'v3', credentials=creds)
88
85
  about = service.about().get(fields='importFormats').execute()
89
86
  # Returns dict with 49 entries
90
- ```
87
+ ````
91
88
 
92
89
  DESIRED OUTPUT:
93
90
 
@@ -2,17 +2,19 @@
2
2
 
3
3
  Detailed step-by-step workflows for common beads usage patterns.
4
4
 
5
+ **Note:** `br` (beads_rust) is non-invasive and never executes git commands. After `br sync --flush-only`, you must manually run `git add .beads/ && git commit`.
6
+
5
7
  ## Session Start Workflow
6
8
 
7
9
  **Every session when beads is available:**
8
10
 
9
11
  ```
10
12
  Session Start:
11
- - [ ] bd_init({ team: "project", role: "fe" })
12
- - [ ] bd_claim() to get ready work
13
- - [ ] If none ready, bd_ls({ status: "open" })
14
- - [ ] bd_show({ id }) for full context
15
- - [ ] bd_reserve({ paths }) before editing
13
+ - [ ] br ready to find unblocked work
14
+ - [ ] br update <id> --status in_progress to claim
15
+ - [ ] If none ready, br list --status open
16
+ - [ ] br show <id> for full context
17
+ - [ ] Begin work
16
18
  ```
17
19
 
18
20
  ## Compaction Survival
@@ -23,8 +25,8 @@ Session Start:
23
25
 
24
26
  ```
25
27
  After Compaction:
26
- - [ ] bd_ls({ status: "in_progress" }) to see active work
27
- - [ ] bd_show({ id }) for each in_progress task
28
+ - [ ] br list --status in_progress to see active work
29
+ - [ ] br show <id> for each in_progress task
28
30
  - [ ] Read notes: COMPLETED, IN PROGRESS, BLOCKERS, KEY DECISIONS
29
31
  - [ ] Reconstruct TodoWrite from notes if needed
30
32
  ```
@@ -54,7 +56,7 @@ Working on auth. Made some progress.
54
56
  Discovery:
55
57
  - [ ] Notice bug, improvement, or follow-up
56
58
  - [ ] Assess: blocker or deferrable?
57
- - [ ] bd_add({ title, desc, pri })
59
+ - [ ] br create --title "..." --type bug --priority 1
58
60
  - [ ] If blocker: pause and switch
59
61
  - [ ] If deferrable: continue current work
60
62
  ```
@@ -86,15 +88,15 @@ A **Ready Front** is the set of tasks with all dependencies satisfied.
86
88
 
87
89
  **Example: OAuth Integration**
88
90
 
89
- ```typescript
90
- // Create epic
91
- bd_add({ title: "OAuth integration", type: "epic" });
91
+ ```bash
92
+ # Create epic
93
+ br create --title "OAuth integration" --type epic --priority 1
92
94
 
93
- // Walk backward: What does OAuth need?
94
- bd_add({ title: "Login/logout endpoints", parent: "oauth-abc" });
95
- bd_add({ title: "Token storage and refresh", parent: "oauth-abc" });
96
- bd_add({ title: "Authorization code flow", parent: "oauth-abc" });
97
- bd_add({ title: "OAuth client credentials", parent: "oauth-abc" }); // foundation
95
+ # Walk backward: What does OAuth need?
96
+ br create --title "Login/logout endpoints" --parent oauth-abc
97
+ br create --title "Token storage and refresh" --parent oauth-abc
98
+ br create --title "Authorization code flow" --parent oauth-abc
99
+ br create --title "OAuth client credentials" --parent oauth-abc # foundation
98
100
  ```
99
101
 
100
102
  ## Side Quest Handling
@@ -102,9 +104,9 @@ bd_add({ title: "OAuth client credentials", parent: "oauth-abc" }); // foundatio
102
104
  ```
103
105
  Side Quest:
104
106
  - [ ] During main work, discover problem
105
- - [ ] bd_add() for side quest
107
+ - [ ] br create for side quest
106
108
  - [ ] Assess: blocker or deferrable?
107
- - [ ] If blocker: bd_release(), switch to side quest
109
+ - [ ] If blocker: switch to side quest
108
110
  - [ ] If deferrable: note it, continue main work
109
111
  ```
110
112
 
@@ -116,8 +118,10 @@ Side Quest:
116
118
  Session End:
117
119
  - [ ] Work reaching stopping point
118
120
  - [ ] Update notes with COMPLETED/IN PROGRESS/NEXT
119
- - [ ] bd_done() if task complete
121
+ - [ ] br close <id> --reason "..." if task complete
120
122
  - [ ] Otherwise leave in_progress with notes
123
+ - [ ] br sync --flush-only
124
+ - [ ] git add .beads/ && git commit -m "session end"
121
125
  - [ ] RESTART SESSION
122
126
  ```
123
127
 
@@ -125,8 +129,8 @@ Session End:
125
129
 
126
130
  ```
127
131
  Session Start with in_progress:
128
- - [ ] bd_ls({ status: "in_progress" })
129
- - [ ] bd_show({ id }) for each
132
+ - [ ] br list --status in_progress
133
+ - [ ] br show <id> for each
130
134
  - [ ] Read notes field
131
135
  - [ ] Continue from notes context
132
136
  ```
@@ -137,9 +141,8 @@ Session Start with in_progress:
137
141
 
138
142
  ```
139
143
  Unblocking:
140
- - [ ] bd_ls({ status: "open" }) to see all tasks
141
- - [ ] bd_blocked() to find blocked tasks
142
- - [ ] Identify blocker tasks
144
+ - [ ] br list --status open to see all tasks
145
+ - [ ] Identify blocked tasks and their blockers
143
146
  - [ ] Work on blockers first
144
147
  - [ ] Closing blocker unblocks dependent work
145
148
  ```
@@ -150,14 +153,15 @@ Unblocking:
150
153
 
151
154
  ```
152
155
  Hybrid:
153
- - [ ] bd_claim() for high-level task
156
+ - [ ] br ready to find high-level task
157
+ - [ ] br update <id> --status in_progress
154
158
  - [ ] Create TodoWrite from acceptance criteria
155
159
  - [ ] Work through TodoWrite items
156
- - [ ] Update bd notes as you learn
157
- - [ ] When TodoWrite complete, bd_done()
160
+ - [ ] Update br notes as you learn
161
+ - [ ] When TodoWrite complete, br close <id>
158
162
  ```
159
163
 
160
- **Why hybrid**: bd provides persistent structure, TodoWrite provides visible progress.
164
+ **Why hybrid**: br provides persistent structure, TodoWrite provides visible progress.
161
165
 
162
166
  ## Common Patterns
163
167
 
@@ -166,7 +170,7 @@ Hybrid:
166
170
  ```
167
171
  1. Create research task
168
172
  2. Update notes with findings
169
- 3. bd_add() for discoveries
173
+ 3. br create for discoveries
170
174
  4. Close research with conclusion
171
175
  ```
172
176
 
@@ -185,7 +189,7 @@ Hybrid:
185
189
  ```
186
190
  1. Create tasks for each step
187
191
  2. Work through in dependency order
188
- 3. bd_claim() shows next step
192
+ 3. br ready shows next step
189
193
  4. Each completion unblocks next
190
194
  ```
191
195
 
@@ -194,10 +198,9 @@ Hybrid:
194
198
  ### Starting Any Session
195
199
 
196
200
  ```
197
- - [ ] bd_init()
198
- - [ ] bd_claim() or bd_ls()
199
- - [ ] bd_show() for context
200
- - [ ] bd_reserve() files
201
+ - [ ] br ready
202
+ - [ ] br update <id> --status in_progress
203
+ - [ ] br show <id> for context
201
204
  - [ ] Begin work
202
205
  ```
203
206
 
@@ -205,10 +208,9 @@ Hybrid:
205
208
 
206
209
  ```
207
210
  - [ ] Notice new work needed
208
- - [ ] bd_add() with clear title
209
- - [ ] Add context in desc
211
+ - [ ] br create --title "..." with clear title
212
+ - [ ] Add context in description
210
213
  - [ ] Assess blocker vs deferrable
211
- - [ ] Update statuses
212
214
  ```
213
215
 
214
216
  ### Completing Work
@@ -216,7 +218,9 @@ Hybrid:
216
218
  ```
217
219
  - [ ] Implementation done
218
220
  - [ ] Tests passing
219
- - [ ] bd_done() with summary
220
- - [ ] bd_claim() for next work
221
+ - [ ] br close <id> --reason "..."
222
+ - [ ] br sync --flush-only
223
+ - [ ] git add .beads/ && git commit
224
+ - [ ] br ready for next work
221
225
  - [ ] RESTART SESSION
222
226
  ```
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: beads-bridge
3
3
  description: >
4
- Multi-agent task coordination using Beads Village plugin tools. Use when work spans multiple sessions,
4
+ Multi-agent task coordination using br (beads_rust) and OpenCode tools. Use when work spans multiple sessions,
5
5
  has dependencies, needs file locking, or requires agent coordination. Covers claim/reserve/done cycle,
6
6
  dependency management, hierarchical decomposition, and session protocols.
7
- version: "1.0.0"
7
+ version: "2.0.0"
8
8
  license: MIT
9
9
  ---
10
10
 
@@ -12,11 +12,13 @@ license: MIT
12
12
 
13
13
  Bridge between Beads git-backed task tracking, OpenCode's native todo system, and swarm coordination.
14
14
 
15
+ **Note:** `br` (beads_rust) is non-invasive and never executes git commands. After `br sync --flush-only`, you must manually run `git add .beads/ && git commit`.
16
+
15
17
  ## Overview
16
18
 
17
- **Beads Bridge = Beads + OpenCode Todos + Swarm Monitor**
19
+ **Beads Bridge = Beads (br) + OpenCode Todos + Swarm Monitor**
18
20
 
19
- - **Beads**: Git-backed task tracking with dependency management
21
+ - **Beads (br)**: Git-backed task tracking with dependency management
20
22
  - **OpenCode Todos**: Native session-scoped task lists for subagents
21
23
  - **Swarm Monitor**: Real-time progress tracking (visualization only)
22
24
 
@@ -145,7 +147,7 @@ Full cycle from Beads task to swarm execution and back:
145
147
  await beads_sync({ operation: "push" });
146
148
 
147
149
  // 2. Claim the parent Bead
148
- await bash("bd update parent-task --status in_progress");
150
+ await bash("br update parent-task --status in_progress");
149
151
 
150
152
  // 3. Analyze and spawn swarm
151
153
  const analysis = await swarm_plan({
@@ -166,8 +168,10 @@ await swarm_monitor({
166
168
  team_name: "api-refactor-swarm",
167
169
  });
168
170
 
169
- // 7. Close parent Bead
170
- await bash("bd close parent-task --reason 'Swarm completed all subtasks'");
171
+ // 7. Close parent Bead and sync
172
+ await bash("br close parent-task --reason 'Swarm completed all subtasks'");
173
+ await bash("br sync --flush-only");
174
+ await bash("git add .beads/ && git commit -m 'close parent-task'");
171
175
  ```
172
176
 
173
177
  ### Pattern B: Dependency-Aware Task Scheduling
@@ -240,6 +244,10 @@ Next steps:
240
244
  mode: "replace",
241
245
  });
242
246
 
247
+ // Sync beads before ending session
248
+ await bash("br sync --flush-only");
249
+ await bash("git add .beads/ && git commit -m 'session handoff'");
250
+
243
251
  // Start of session 2: Check status and continue
244
252
  const status = await swarm_monitor({
245
253
  operation: "status",
@@ -278,7 +286,8 @@ DURING WORK:
278
286
  SESSION END:
279
287
  beads-sync({ operation: "pull" }) // Sync completed todos back to Beads
280
288
  swarm-monitor({ operation: "clear", team_name: "..." }) // Cleanup swarm state
281
- bd sync // Push Beads changes to git
289
+ br sync --flush-only // Export Beads changes
290
+ git add .beads/ && git commit -m "..." // Commit changes to git
282
291
 
283
292
  RECOVERY:
284
293
  beads-sync({ operation: "get_shared", list_id: "..." }) // Get shared task list
@@ -292,3 +301,4 @@ RECOVERY:
292
301
  3. **Pull completed todos back to Beads** - Keep tracking system in sync
293
302
  4. **Check swarm status before spawning** - Avoid duplicate work
294
303
  5. **Clear swarm state when done** - Cleanup after completion
304
+ 6. **Always sync and commit before session end** - `br sync --flush-only` then `git add .beads/ && git commit`
@@ -64,7 +64,7 @@ Use before `read_session` to get a quick overview of what happened in a past ses
64
64
 
65
65
  ## When to Start New Session
66
66
 
67
- - Completing distinct task from `bd ready`
67
+ - Completing distinct task from `br ready`
68
68
  - Token usage approaching 150k
69
69
  - Switching phases (implementation → review → testing)
70
70
  - After handoff (`/handoff <bead-id>`)
@@ -90,7 +90,7 @@ Use all available sources:
90
90
  1. `read_session("last")` - Previous session work
91
91
  2. Git state - `git diff`, `git log` - Code changes
92
92
  3. Memory files - `.opencode/memory/*` - Persistent context
93
- 4. Beads - `bd show <id>` - Task specs
93
+ 4. Beads - `br show <id>` - Task specs
94
94
 
95
95
  **Don't**: Carry everything forward. Extract what's needed, discard the rest.
96
96
 
@@ -264,7 +264,7 @@ await swarm_monitor({
264
264
  });
265
265
 
266
266
  // 5. Close parent bead
267
- await bash("bd close parent-task --reason 'Swarm completed all subtasks'");
267
+ await bash("br close parent-task --reason 'Swarm completed all subtasks'");
268
268
  ```
269
269
 
270
270
  ## Dependency Graph Features
@@ -477,7 +477,7 @@ Swarm works on top of Beads:
477
477
  3. **Workers claim child** beads (via delegation packets)
478
478
  4. **Progress tracked** via `swarm-monitor progress_update`
479
479
  5. **Completion syncs** back via `beads-sync pull`
480
- 6. **Close parent** bead with `bd close`
480
+ 6. **Close parent** bead with `br close`
481
481
 
482
482
  ```typescript
483
483
  // Full integration workflow
@@ -486,7 +486,7 @@ await beads_sync({ operation: "push" }); // Make Beads visible
486
486
  await swarm_monitor({ operation: "render_block", team_name: "..." }); // Monitor progress
487
487
  // ... monitor completion ...
488
488
  await beads_sync({ operation: "pull" }); // Sync completed back
489
- await bash("bd close parent-task --reason 'Swarm completed'");
489
+ await bash("br close parent-task --reason 'Swarm completed'");
490
490
  ```
491
491
 
492
492
  ## Quick Reference - Kimi K2.5 PARL Pattern
@@ -506,7 +506,7 @@ SWARM LAUNCH (PARL):
506
506
  5. MONITOR: swarm_monitor({ operation: "render_block" })
507
507
  → Real-time TUI progress
508
508
  6. VERIFY: npm run typecheck && npm run lint && npm test
509
- 7. CLOSE: beads-sync({ operation: "pull" }) && bd close <bead>
509
+ 7. CLOSE: beads-sync({ operation: "pull" }) && br close <bead>
510
510
 
511
511
  WORKER EXECUTION:
512
512
  1. Read delegation packet
@@ -140,9 +140,9 @@ async function pushBeadsToTodos(
140
140
  filter = "open",
141
141
  ): Promise<string> {
142
142
  try {
143
- // Get beads tasks using bd list
144
- const statusFilter = filter === "all" ? "" : `--status=${filter}`;
145
- const { stdout } = await execAsync(`bd list ${statusFilter} --json`, {
143
+ // Get beads tasks using br list (beads_rust)
144
+ const statusFilter = filter === "all" ? "" : `--status ${filter}`;
145
+ const { stdout } = await execAsync(`br list ${statusFilter} --json`, {
146
146
  cwd: worktree,
147
147
  });
148
148
 
@@ -150,7 +150,7 @@ async function pushBeadsToTodos(
150
150
  try {
151
151
  beadTasks = JSON.parse(stdout);
152
152
  } catch {
153
- // bd list might not support --json, parse text output
153
+ // br list might not support --json, parse text output
154
154
  beadTasks = parseBeadListOutput(stdout);
155
155
  }
156
156
 
@@ -262,7 +262,7 @@ async function pullTodosToBeads(
262
262
  for (const todo of completedBeadTodos) {
263
263
  try {
264
264
  await execAsync(
265
- `bd close ${todo.beadId} --reason "Completed via todo"`,
265
+ `br close ${todo.beadId} --reason "Completed via todo"`,
266
266
  { cwd: worktree },
267
267
  );
268
268
  updated.push(todo.beadId!);
@@ -254,7 +254,7 @@ export default tool({
254
254
  const { execSync } = await import("node:child_process");
255
255
  const noteContent = `${TYPE_ICONS[obsType]} ${obsType}: ${args.title}`;
256
256
  execSync(
257
- `bd edit ${args.bead_id} --note "${noteContent.replace(/"/g, '\\"')}"`,
257
+ `br edit ${args.bead_id} --note "${noteContent.replace(/"/g, '\\"')}"`,
258
258
  {
259
259
  cwd: process.cwd(),
260
260
  encoding: "utf-8",