opencode-swarm-plugin 0.4.0 → 0.5.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/.beads/issues.jsonl +44 -0
- package/README.md +31 -12
- package/dist/index.js +38 -38
- package/dist/plugin.js +38 -38
- package/examples/commands/swarm.md +50 -0
- package/package.json +1 -1
- package/src/swarm.integration.test.ts +31 -42
- package/src/swarm.ts +47 -49
package/.beads/issues.jsonl
CHANGED
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
{"id":"opencode-swarm-plugin-0kb2.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:23:18.629425-08:00","updated_at":"2025-12-08T08:23:20.440674-08:00","closed_at":"2025-12-08T08:23:20.440674-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0kb2.1","depends_on_id":"opencode-swarm-plugin-0kb2","type":"parent-child","created_at":"2025-12-08T08:23:18.629757-08:00","created_by":"daemon"}]}
|
|
9
9
|
{"id":"opencode-swarm-plugin-0llr","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.509809-08:00","updated_at":"2025-12-07T19:56:44.737443-08:00","closed_at":"2025-12-07T19:56:44.737443-08:00"}
|
|
10
10
|
{"id":"opencode-swarm-plugin-0oku","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.956973-08:00","updated_at":"2025-12-08T08:11:42.61703-08:00","closed_at":"2025-12-08T08:11:42.61703-08:00"}
|
|
11
|
+
{"id":"opencode-swarm-plugin-0rkr","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.903394-08:00","updated_at":"2025-12-08T09:09:33.255022-08:00","closed_at":"2025-12-08T09:09:33.255022-08:00"}
|
|
11
12
|
{"id":"opencode-swarm-plugin-0tgw","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.149976-08:00","updated_at":"2025-12-08T08:25:10.1787-08:00","closed_at":"2025-12-08T08:25:10.1787-08:00"}
|
|
12
13
|
{"id":"opencode-swarm-plugin-0wk","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:37:34.417512-08:00","updated_at":"2025-12-07T19:37:36.339262-08:00","closed_at":"2025-12-07T19:37:36.339262-08:00"}
|
|
13
14
|
{"id":"opencode-swarm-plugin-0zn","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.200661-08:00","updated_at":"2025-12-07T19:37:36.249197-08:00","closed_at":"2025-12-07T19:37:36.249197-08:00"}
|
|
15
|
+
{"id":"opencode-swarm-plugin-14md","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.299923-08:00","updated_at":"2025-12-08T09:09:33.422668-08:00","closed_at":"2025-12-08T09:09:33.422668-08:00"}
|
|
14
16
|
{"id":"opencode-swarm-plugin-165","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.522313-08:00","updated_at":"2025-12-07T19:37:36.383505-08:00","closed_at":"2025-12-07T19:37:36.383505-08:00"}
|
|
15
17
|
{"id":"opencode-swarm-plugin-17kj","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.282723-08:00","updated_at":"2025-12-08T08:11:41.82511-08:00","closed_at":"2025-12-08T08:11:41.82511-08:00"}
|
|
16
18
|
{"id":"opencode-swarm-plugin-19wa","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.462796-08:00","updated_at":"2025-12-07T19:57:08.958826-08:00","closed_at":"2025-12-07T19:57:08.958826-08:00"}
|
|
@@ -40,7 +42,9 @@
|
|
|
40
42
|
{"id":"opencode-swarm-plugin-1qr.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:07.627583-08:00","updated_at":"2025-12-07T19:36:09.169627-08:00","closed_at":"2025-12-07T19:36:09.169627-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-1qr.4","depends_on_id":"opencode-swarm-plugin-1qr","type":"parent-child","created_at":"2025-12-07T19:36:07.627872-08:00","created_by":"daemon"}]}
|
|
41
43
|
{"id":"opencode-swarm-plugin-1qv5","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.009801-08:00","updated_at":"2025-12-08T07:53:46.398529-08:00","closed_at":"2025-12-08T07:53:46.398529-08:00"}
|
|
42
44
|
{"id":"opencode-swarm-plugin-1r2","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.787144-08:00","updated_at":"2025-12-07T19:39:11.878331-08:00","closed_at":"2025-12-07T19:39:11.878331-08:00"}
|
|
45
|
+
{"id":"opencode-swarm-plugin-1t0k","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.703953-08:00","updated_at":"2025-12-08T09:09:33.136938-08:00","closed_at":"2025-12-08T09:09:33.136938-08:00"}
|
|
43
46
|
{"id":"opencode-swarm-plugin-1vaa","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:56:55.955842-08:00","updated_at":"2025-12-08T08:56:58.247047-08:00","closed_at":"2025-12-08T08:56:58.247047-08:00"}
|
|
47
|
+
{"id":"opencode-swarm-plugin-1wb2","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.868118-08:00","updated_at":"2025-12-08T09:09:33.2302-08:00","closed_at":"2025-12-08T09:09:33.2302-08:00"}
|
|
44
48
|
{"id":"opencode-swarm-plugin-1wnx","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.150099-08:00","updated_at":"2025-12-07T19:39:31.249358-08:00","closed_at":"2025-12-07T19:39:31.249358-08:00"}
|
|
45
49
|
{"id":"opencode-swarm-plugin-23kk","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:22:17.924026-08:00","updated_at":"2025-12-08T08:22:19.752108-08:00","closed_at":"2025-12-08T08:22:19.752108-08:00"}
|
|
46
50
|
{"id":"opencode-swarm-plugin-23kk.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:22:17.956649-08:00","updated_at":"2025-12-08T08:22:19.780372-08:00","closed_at":"2025-12-08T08:22:19.780372-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-23kk.1","depends_on_id":"opencode-swarm-plugin-23kk","type":"parent-child","created_at":"2025-12-08T08:22:17.956953-08:00","created_by":"daemon"}]}
|
|
@@ -70,9 +74,11 @@
|
|
|
70
74
|
{"id":"opencode-swarm-plugin-2x34","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.145513-08:00","updated_at":"2025-12-07T19:41:13.549149-08:00","closed_at":"2025-12-07T19:41:13.549149-08:00"}
|
|
71
75
|
{"id":"opencode-swarm-plugin-2xdk","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T07:49:09.163908-08:00","updated_at":"2025-12-08T07:49:11.826376-08:00","closed_at":"2025-12-08T07:49:11.826376-08:00"}
|
|
72
76
|
{"id":"opencode-swarm-plugin-2xm","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-07T19:34:52.279812-08:00","updated_at":"2025-12-07T19:34:54.48258-08:00","closed_at":"2025-12-07T19:34:54.48258-08:00"}
|
|
77
|
+
{"id":"opencode-swarm-plugin-36uo","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.014966-08:00","updated_at":"2025-12-08T09:09:33.303459-08:00","closed_at":"2025-12-08T09:09:33.303459-08:00"}
|
|
73
78
|
{"id":"opencode-swarm-plugin-37az","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.247814-08:00","updated_at":"2025-12-08T08:05:36.051352-08:00","closed_at":"2025-12-08T08:05:36.051352-08:00"}
|
|
74
79
|
{"id":"opencode-swarm-plugin-3c0h","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:06.042676-08:00","updated_at":"2025-12-07T19:57:08.336974-08:00","closed_at":"2025-12-07T19:57:08.336974-08:00"}
|
|
75
80
|
{"id":"opencode-swarm-plugin-3e3o","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.71229-08:00","updated_at":"2025-12-08T07:46:52.478079-08:00","closed_at":"2025-12-08T07:46:52.478079-08:00"}
|
|
81
|
+
{"id":"opencode-swarm-plugin-3e7p","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.57109-08:00","updated_at":"2025-12-08T09:09:32.647281-08:00","closed_at":"2025-12-08T09:09:32.647281-08:00"}
|
|
76
82
|
{"id":"opencode-swarm-plugin-3fa7","title":"Add rate limiting to Agent Mail","description":"Implement per-agent rate limiting with Redis backend to prevent abuse","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-08T08:28:07.547069-08:00","updated_at":"2025-12-08T08:29:09.032995-08:00","closed_at":"2025-12-08T08:29:09.032995-08:00"}
|
|
77
83
|
{"id":"opencode-swarm-plugin-3fa7.1","title":"Add Redis dependency and connection","description":"Add redis-py to requirements.txt and create Redis connection helper","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:28:14.489575-08:00","updated_at":"2025-12-08T08:28:54.193001-08:00","closed_at":"2025-12-08T08:28:54.193001-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-3fa7.1","depends_on_id":"opencode-swarm-plugin-3fa7","type":"parent-child","created_at":"2025-12-08T08:28:14.489983-08:00","created_by":"daemon"}]}
|
|
78
84
|
{"id":"opencode-swarm-plugin-3fa7.2","title":"Implement rate limiter class","description":"Create RateLimiter class using Redis sorted sets for sliding window rate limiting","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:28:14.527429-08:00","updated_at":"2025-12-08T08:29:08.941471-08:00","closed_at":"2025-12-08T08:29:08.941471-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-3fa7.2","depends_on_id":"opencode-swarm-plugin-3fa7","type":"parent-child","created_at":"2025-12-08T08:28:14.527749-08:00","created_by":"daemon"}]}
|
|
@@ -97,6 +103,7 @@
|
|
|
97
103
|
{"id":"opencode-swarm-plugin-3pj","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.468436-08:00","updated_at":"2025-12-07T19:37:36.793281-08:00","closed_at":"2025-12-07T19:37:36.793281-08:00"}
|
|
98
104
|
{"id":"opencode-swarm-plugin-3qp","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.845918-08:00","updated_at":"2025-12-07T19:39:11.927501-08:00","closed_at":"2025-12-07T19:39:11.927501-08:00"}
|
|
99
105
|
{"id":"opencode-swarm-plugin-3zw","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.954171-08:00","updated_at":"2025-12-07T19:39:11.975757-08:00","closed_at":"2025-12-07T19:39:11.975757-08:00"}
|
|
106
|
+
{"id":"opencode-swarm-plugin-40dw","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.93528-08:00","updated_at":"2025-12-08T09:09:33.280064-08:00","closed_at":"2025-12-08T09:09:33.280064-08:00"}
|
|
100
107
|
{"id":"opencode-swarm-plugin-40s3","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.000169-08:00","updated_at":"2025-12-08T08:23:20.156883-08:00","closed_at":"2025-12-08T08:23:20.156883-08:00"}
|
|
101
108
|
{"id":"opencode-swarm-plugin-41tn","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-07T19:56:42.421151-08:00","updated_at":"2025-12-07T19:56:44.695015-08:00","closed_at":"2025-12-07T19:56:44.695015-08:00"}
|
|
102
109
|
{"id":"opencode-swarm-plugin-41wj","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T08:56:55.245953-08:00","updated_at":"2025-12-08T08:56:57.860151-08:00","closed_at":"2025-12-08T08:56:57.860151-08:00"}
|
|
@@ -144,6 +151,7 @@
|
|
|
144
151
|
{"id":"opencode-swarm-plugin-56b.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.830994-08:00","updated_at":"2025-12-07T19:37:35.916483-08:00","closed_at":"2025-12-07T19:37:35.916483-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-56b.2","depends_on_id":"opencode-swarm-plugin-56b","type":"parent-child","created_at":"2025-12-07T19:37:35.831286-08:00","created_by":"daemon"}]}
|
|
145
152
|
{"id":"opencode-swarm-plugin-57cg","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.941601-08:00","updated_at":"2025-12-08T07:53:46.340787-08:00","closed_at":"2025-12-08T07:53:46.340787-08:00"}
|
|
146
153
|
{"id":"opencode-swarm-plugin-59g9","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:36:17.061598-08:00","updated_at":"2025-12-08T08:36:19.385951-08:00","closed_at":"2025-12-08T08:36:19.385951-08:00"}
|
|
154
|
+
{"id":"opencode-swarm-plugin-59lp","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.569486-08:00","updated_at":"2025-12-08T09:09:33.085717-08:00","closed_at":"2025-12-08T09:09:33.085717-08:00"}
|
|
147
155
|
{"id":"opencode-swarm-plugin-59zk","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:29.013763-08:00","updated_at":"2025-12-08T08:14:31.236956-08:00","closed_at":"2025-12-08T08:14:31.236956-08:00"}
|
|
148
156
|
{"id":"opencode-swarm-plugin-5clp","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:56:43.706972-08:00","updated_at":"2025-12-07T19:56:45.317385-08:00","closed_at":"2025-12-07T19:56:45.317385-08:00"}
|
|
149
157
|
{"id":"opencode-swarm-plugin-5clp.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.734921-08:00","updated_at":"2025-12-07T19:56:45.339143-08:00","closed_at":"2025-12-07T19:56:45.339143-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5clp.1","depends_on_id":"opencode-swarm-plugin-5clp","type":"parent-child","created_at":"2025-12-07T19:56:43.735193-08:00","created_by":"daemon"}]}
|
|
@@ -194,6 +202,7 @@
|
|
|
194
202
|
{"id":"opencode-swarm-plugin-6wkv","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:14:29.792336-08:00","updated_at":"2025-12-08T08:14:31.557975-08:00","closed_at":"2025-12-08T08:14:31.557975-08:00"}
|
|
195
203
|
{"id":"opencode-swarm-plugin-6wkv.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:14:29.822365-08:00","updated_at":"2025-12-08T08:14:31.584421-08:00","closed_at":"2025-12-08T08:14:31.584421-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-6wkv.1","depends_on_id":"opencode-swarm-plugin-6wkv","type":"parent-child","created_at":"2025-12-08T08:14:29.823792-08:00","created_by":"daemon"}]}
|
|
196
204
|
{"id":"opencode-swarm-plugin-6zh1","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.58612-08:00","updated_at":"2025-12-07T19:39:31.471458-08:00","closed_at":"2025-12-07T19:39:31.471458-08:00"}
|
|
205
|
+
{"id":"opencode-swarm-plugin-70f5","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.43114-08:00","updated_at":"2025-12-08T09:09:32.988939-08:00","closed_at":"2025-12-08T09:09:32.988939-08:00"}
|
|
197
206
|
{"id":"opencode-swarm-plugin-75cl","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.905176-08:00","updated_at":"2025-12-08T07:53:46.313642-08:00","closed_at":"2025-12-08T07:53:46.313642-08:00"}
|
|
198
207
|
{"id":"opencode-swarm-plugin-75x7","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:49:10.547159-08:00","updated_at":"2025-12-08T07:49:12.461308-08:00","closed_at":"2025-12-08T07:49:12.461308-08:00"}
|
|
199
208
|
{"id":"opencode-swarm-plugin-75x7.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:10.580969-08:00","updated_at":"2025-12-08T07:49:12.486661-08:00","closed_at":"2025-12-08T07:49:12.486661-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-75x7.1","depends_on_id":"opencode-swarm-plugin-75x7","type":"parent-child","created_at":"2025-12-08T07:49:10.581322-08:00","created_by":"daemon"}]}
|
|
@@ -249,6 +258,7 @@
|
|
|
249
258
|
{"id":"opencode-swarm-plugin-8gwa.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.660941-08:00","updated_at":"2025-12-08T08:25:11.754936-08:00","closed_at":"2025-12-08T08:25:11.754936-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8gwa.1","depends_on_id":"opencode-swarm-plugin-8gwa","type":"parent-child","created_at":"2025-12-08T08:25:11.661256-08:00","created_by":"daemon"}]}
|
|
250
259
|
{"id":"opencode-swarm-plugin-8gwa.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.699068-08:00","updated_at":"2025-12-08T08:25:11.816301-08:00","closed_at":"2025-12-08T08:25:11.816301-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8gwa.2","depends_on_id":"opencode-swarm-plugin-8gwa","type":"parent-child","created_at":"2025-12-08T08:25:11.69946-08:00","created_by":"daemon"}]}
|
|
251
260
|
{"id":"opencode-swarm-plugin-8gwh","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:57:06.70515-08:00","updated_at":"2025-12-07T19:57:08.554987-08:00","closed_at":"2025-12-07T19:57:08.554987-08:00"}
|
|
261
|
+
{"id":"opencode-swarm-plugin-8hhc","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.363237-08:00","updated_at":"2025-12-08T09:09:31.388981-08:00","closed_at":"2025-12-08T09:09:31.388981-08:00"}
|
|
252
262
|
{"id":"opencode-swarm-plugin-8i74","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:46:50.283343-08:00","updated_at":"2025-12-08T07:46:52.284254-08:00","closed_at":"2025-12-08T07:46:52.284254-08:00"}
|
|
253
263
|
{"id":"opencode-swarm-plugin-8i74.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.319778-08:00","updated_at":"2025-12-08T07:46:52.310954-08:00","closed_at":"2025-12-08T07:46:52.310954-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8i74.1","depends_on_id":"opencode-swarm-plugin-8i74","type":"parent-child","created_at":"2025-12-08T07:46:50.320111-08:00","created_by":"daemon"}]}
|
|
254
264
|
{"id":"opencode-swarm-plugin-8i74.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.35649-08:00","updated_at":"2025-12-08T07:46:52.338209-08:00","closed_at":"2025-12-08T07:46:52.338209-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8i74.2","depends_on_id":"opencode-swarm-plugin-8i74","type":"parent-child","created_at":"2025-12-08T07:46:50.356877-08:00","created_by":"daemon"}]}
|
|
@@ -263,10 +273,12 @@
|
|
|
263
273
|
{"id":"opencode-swarm-plugin-8u3","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:54.094622-08:00","updated_at":"2025-12-07T19:34:54.159994-08:00","closed_at":"2025-12-07T19:34:54.159994-08:00"}
|
|
264
274
|
{"id":"opencode-swarm-plugin-8um","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.553979-08:00","updated_at":"2025-12-07T19:36:08.658993-08:00","closed_at":"2025-12-07T19:36:08.658993-08:00"}
|
|
265
275
|
{"id":"opencode-swarm-plugin-8z8","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.559683-08:00","updated_at":"2025-12-07T19:34:54.655431-08:00","closed_at":"2025-12-07T19:34:54.655431-08:00"}
|
|
276
|
+
{"id":"opencode-swarm-plugin-902a","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.07378-08:00","updated_at":"2025-12-08T09:09:33.327887-08:00","closed_at":"2025-12-08T09:09:33.327887-08:00"}
|
|
266
277
|
{"id":"opencode-swarm-plugin-93e","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:19.580617-08:00","updated_at":"2025-12-07T19:39:21.044657-08:00","closed_at":"2025-12-07T19:39:21.044657-08:00"}
|
|
267
278
|
{"id":"opencode-swarm-plugin-94mr","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.633998-08:00","updated_at":"2025-12-08T07:49:12.12296-08:00","closed_at":"2025-12-08T07:49:12.12296-08:00"}
|
|
268
279
|
{"id":"opencode-swarm-plugin-94qw","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.998023-08:00","updated_at":"2025-12-08T08:56:58.751714-08:00","closed_at":"2025-12-08T08:56:58.751714-08:00"}
|
|
269
280
|
{"id":"opencode-swarm-plugin-96ww","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.546006-08:00","updated_at":"2025-12-08T08:56:58.026583-08:00","closed_at":"2025-12-08T08:56:58.026583-08:00"}
|
|
281
|
+
{"id":"opencode-swarm-plugin-98oh","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.231853-08:00","updated_at":"2025-12-08T09:09:33.887506-08:00","closed_at":"2025-12-08T09:09:33.887506-08:00"}
|
|
270
282
|
{"id":"opencode-swarm-plugin-99kl","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:25:09.19481-08:00","updated_at":"2025-12-08T08:25:11.989888-08:00","closed_at":"2025-12-08T08:25:11.989888-08:00"}
|
|
271
283
|
{"id":"opencode-swarm-plugin-9c51","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.111119-08:00","updated_at":"2025-12-08T08:25:12.950452-08:00","closed_at":"2025-12-08T08:25:12.950452-08:00"}
|
|
272
284
|
{"id":"opencode-swarm-plugin-9c6","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-07T19:34:52.310497-08:00","updated_at":"2025-12-07T19:34:54.508737-08:00","closed_at":"2025-12-07T19:34:54.508737-08:00"}
|
|
@@ -321,12 +333,14 @@
|
|
|
321
333
|
{"id":"opencode-swarm-plugin-b3pr","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.77563-08:00","updated_at":"2025-12-08T08:23:20.062473-08:00","closed_at":"2025-12-08T08:23:20.062473-08:00"}
|
|
322
334
|
{"id":"opencode-swarm-plugin-b40","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.696949-08:00","updated_at":"2025-12-07T19:34:54.75136-08:00","closed_at":"2025-12-07T19:34:54.75136-08:00"}
|
|
323
335
|
{"id":"opencode-swarm-plugin-b5m","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.175896-08:00","updated_at":"2025-12-07T19:39:12.06669-08:00","closed_at":"2025-12-07T19:39:12.06669-08:00"}
|
|
336
|
+
{"id":"opencode-swarm-plugin-b8oi","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T09:09:30.538591-08:00","updated_at":"2025-12-08T09:09:33.061926-08:00","closed_at":"2025-12-08T09:09:33.061926-08:00"}
|
|
324
337
|
{"id":"opencode-swarm-plugin-b8t","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.385225-08:00","updated_at":"2025-12-07T19:36:08.543822-08:00","closed_at":"2025-12-07T19:36:08.543822-08:00"}
|
|
325
338
|
{"id":"opencode-swarm-plugin-baua","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:29.909783-08:00","updated_at":"2025-12-07T19:39:31.53741-08:00","closed_at":"2025-12-07T19:39:31.53741-08:00"}
|
|
326
339
|
{"id":"opencode-swarm-plugin-baua.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.93858-08:00","updated_at":"2025-12-07T19:39:31.56027-08:00","closed_at":"2025-12-07T19:39:31.56027-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-baua.1","depends_on_id":"opencode-swarm-plugin-baua","type":"parent-child","created_at":"2025-12-07T19:39:29.938853-08:00","created_by":"daemon"}]}
|
|
327
340
|
{"id":"opencode-swarm-plugin-baua.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-07T19:39:29.968075-08:00","updated_at":"2025-12-07T19:39:31.581422-08:00","closed_at":"2025-12-07T19:39:31.581422-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-baua.2","depends_on_id":"opencode-swarm-plugin-baua","type":"parent-child","created_at":"2025-12-07T19:39:29.968363-08:00","created_by":"daemon"}]}
|
|
328
341
|
{"id":"opencode-swarm-plugin-baua.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:39:29.995311-08:00","updated_at":"2025-12-07T19:39:31.603333-08:00","closed_at":"2025-12-07T19:39:31.603333-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-baua.3","depends_on_id":"opencode-swarm-plugin-baua","type":"parent-child","created_at":"2025-12-07T19:39:29.995588-08:00","created_by":"daemon"}]}
|
|
329
342
|
{"id":"opencode-swarm-plugin-bfry","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.349211-08:00","updated_at":"2025-12-08T08:14:31.809384-08:00","closed_at":"2025-12-08T08:14:31.809384-08:00"}
|
|
343
|
+
{"id":"opencode-swarm-plugin-bhou","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T09:09:30.49932-08:00","updated_at":"2025-12-08T09:09:33.037008-08:00","closed_at":"2025-12-08T09:09:33.037008-08:00"}
|
|
330
344
|
{"id":"opencode-swarm-plugin-bil","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.72472-08:00","updated_at":"2025-12-07T19:39:20.642494-08:00","closed_at":"2025-12-07T19:39:20.642494-08:00"}
|
|
331
345
|
{"id":"opencode-swarm-plugin-blhh","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.544524-08:00","updated_at":"2025-12-07T19:41:14.154813-08:00","closed_at":"2025-12-07T19:41:14.154813-08:00"}
|
|
332
346
|
{"id":"opencode-swarm-plugin-bo3t","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.590376-08:00","updated_at":"2025-12-07T19:57:08.981729-08:00","closed_at":"2025-12-07T19:57:08.981729-08:00"}
|
|
@@ -335,6 +349,9 @@
|
|
|
335
349
|
{"id":"opencode-swarm-plugin-bs9","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:34:53.2161-08:00","updated_at":"2025-12-07T19:34:54.924685-08:00","closed_at":"2025-12-07T19:34:54.924685-08:00"}
|
|
336
350
|
{"id":"opencode-swarm-plugin-bsdi","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:53:44.245806-08:00","updated_at":"2025-12-08T07:53:46.503005-08:00","closed_at":"2025-12-08T07:53:46.503005-08:00"}
|
|
337
351
|
{"id":"opencode-swarm-plugin-bv3m","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.148679-08:00","updated_at":"2025-12-08T08:05:35.457241-08:00","closed_at":"2025-12-08T08:05:35.457241-08:00"}
|
|
352
|
+
{"id":"opencode-swarm-plugin-bvrh","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.796296-08:00","updated_at":"2025-12-08T09:09:33.605943-08:00","closed_at":"2025-12-08T09:09:33.605943-08:00"}
|
|
353
|
+
{"id":"opencode-swarm-plugin-bvrh.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.8317-08:00","updated_at":"2025-12-08T09:09:33.630658-08:00","closed_at":"2025-12-08T09:09:33.630658-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bvrh.1","depends_on_id":"opencode-swarm-plugin-bvrh","type":"parent-child","created_at":"2025-12-08T09:09:31.832015-08:00","created_by":"daemon"}]}
|
|
354
|
+
{"id":"opencode-swarm-plugin-bvrh.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.869253-08:00","updated_at":"2025-12-08T09:09:33.656157-08:00","closed_at":"2025-12-08T09:09:33.656157-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bvrh.2","depends_on_id":"opencode-swarm-plugin-bvrh","type":"parent-child","created_at":"2025-12-08T09:09:31.869579-08:00","created_by":"daemon"}]}
|
|
338
355
|
{"id":"opencode-swarm-plugin-bvvt","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.579794-08:00","updated_at":"2025-12-08T08:25:12.218334-08:00","closed_at":"2025-12-08T08:25:12.218334-08:00"}
|
|
339
356
|
{"id":"opencode-swarm-plugin-bxai","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.405415-08:00","updated_at":"2025-12-08T07:49:11.962035-08:00","closed_at":"2025-12-08T07:49:11.962035-08:00"}
|
|
340
357
|
{"id":"opencode-swarm-plugin-byj9","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.947426-08:00","updated_at":"2025-12-08T08:23:20.618013-08:00","closed_at":"2025-12-08T08:23:20.618013-08:00"}
|
|
@@ -347,6 +364,7 @@
|
|
|
347
364
|
{"id":"opencode-swarm-plugin-bzed.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:25:10.546772-08:00","updated_at":"2025-12-08T08:25:12.589201-08:00","closed_at":"2025-12-08T08:25:12.589201-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bzed.2","depends_on_id":"opencode-swarm-plugin-bzed","type":"parent-child","created_at":"2025-12-08T08:25:10.547138-08:00","created_by":"daemon"}]}
|
|
348
365
|
{"id":"opencode-swarm-plugin-bzed.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:25:10.584208-08:00","updated_at":"2025-12-08T08:25:12.616327-08:00","closed_at":"2025-12-08T08:25:12.616327-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bzed.3","depends_on_id":"opencode-swarm-plugin-bzed","type":"parent-child","created_at":"2025-12-08T08:25:10.584529-08:00","created_by":"daemon"}]}
|
|
349
366
|
{"id":"opencode-swarm-plugin-c03","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.184183-08:00","updated_at":"2025-12-07T19:39:20.369619-08:00","closed_at":"2025-12-07T19:39:20.369619-08:00"}
|
|
367
|
+
{"id":"opencode-swarm-plugin-c1hd","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T09:09:31.186427-08:00","updated_at":"2025-12-08T09:09:33.37485-08:00","closed_at":"2025-12-08T09:09:33.37485-08:00"}
|
|
350
368
|
{"id":"opencode-swarm-plugin-c1l5","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:05:32.70289-08:00","updated_at":"2025-12-08T08:05:35.186328-08:00","closed_at":"2025-12-08T08:05:35.186328-08:00"}
|
|
351
369
|
{"id":"opencode-swarm-plugin-c37s","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:19.06198-08:00","updated_at":"2025-12-08T08:23:20.643672-08:00","closed_at":"2025-12-08T08:23:20.643672-08:00"}
|
|
352
370
|
{"id":"opencode-swarm-plugin-c3j","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:19.17763-08:00","updated_at":"2025-12-07T19:39:20.795069-08:00","closed_at":"2025-12-07T19:39:20.795069-08:00"}
|
|
@@ -364,6 +382,7 @@
|
|
|
364
382
|
{"id":"opencode-swarm-plugin-cjq3","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:19.197074-08:00","updated_at":"2025-12-08T08:23:20.668185-08:00","closed_at":"2025-12-08T08:23:20.668185-08:00"}
|
|
365
383
|
{"id":"opencode-swarm-plugin-cmo6","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T07:53:44.299916-08:00","updated_at":"2025-12-08T07:53:46.527966-08:00","closed_at":"2025-12-08T07:53:46.527966-08:00"}
|
|
366
384
|
{"id":"opencode-swarm-plugin-cor","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.00247-08:00","updated_at":"2025-12-07T19:34:53.027513-08:00","closed_at":"2025-12-07T19:34:53.027513-08:00"}
|
|
385
|
+
{"id":"opencode-swarm-plugin-cppl","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.130656-08:00","updated_at":"2025-12-08T09:09:33.351067-08:00","closed_at":"2025-12-08T09:09:33.351067-08:00"}
|
|
367
386
|
{"id":"opencode-swarm-plugin-crcm","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.504179-08:00","updated_at":"2025-12-08T08:23:19.920645-08:00","closed_at":"2025-12-08T08:23:19.920645-08:00"}
|
|
368
387
|
{"id":"opencode-swarm-plugin-csdh","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:25:10.806508-08:00","updated_at":"2025-12-08T08:25:12.779477-08:00","closed_at":"2025-12-08T08:25:12.779477-08:00"}
|
|
369
388
|
{"id":"opencode-swarm-plugin-csdh.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.846377-08:00","updated_at":"2025-12-08T08:25:12.806068-08:00","closed_at":"2025-12-08T08:25:12.806068-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-csdh.1","depends_on_id":"opencode-swarm-plugin-csdh","type":"parent-child","created_at":"2025-12-08T08:25:10.846682-08:00","created_by":"daemon"}]}
|
|
@@ -452,12 +471,14 @@
|
|
|
452
471
|
{"id":"opencode-swarm-plugin-fsu","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:07.858243-08:00","updated_at":"2025-12-07T19:36:09.243449-08:00","closed_at":"2025-12-07T19:36:09.243449-08:00"}
|
|
453
472
|
{"id":"opencode-swarm-plugin-ftw","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.495292-08:00","updated_at":"2025-12-07T19:36:08.612936-08:00","closed_at":"2025-12-07T19:36:08.612936-08:00"}
|
|
454
473
|
{"id":"opencode-swarm-plugin-fv7a","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:48.987023-08:00","updated_at":"2025-12-08T07:46:51.655046-08:00","closed_at":"2025-12-08T07:46:51.655046-08:00"}
|
|
474
|
+
{"id":"opencode-swarm-plugin-fw10","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.62651-08:00","updated_at":"2025-12-08T09:09:33.111246-08:00","closed_at":"2025-12-08T09:09:33.111246-08:00"}
|
|
455
475
|
{"id":"opencode-swarm-plugin-fxyg","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.00973-08:00","updated_at":"2025-12-08T08:05:35.380276-08:00","closed_at":"2025-12-08T08:05:35.380276-08:00"}
|
|
456
476
|
{"id":"opencode-swarm-plugin-fzi","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.307604-08:00","updated_at":"2025-12-07T19:37:36.295003-08:00","closed_at":"2025-12-07T19:37:36.295003-08:00"}
|
|
457
477
|
{"id":"opencode-swarm-plugin-fzy2","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.160485-08:00","updated_at":"2025-12-08T08:23:20.183038-08:00","closed_at":"2025-12-08T08:23:20.183038-08:00"}
|
|
458
478
|
{"id":"opencode-swarm-plugin-g1ew","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:36:17.759116-08:00","updated_at":"2025-12-08T08:36:19.615871-08:00","closed_at":"2025-12-08T08:36:19.615871-08:00"}
|
|
459
479
|
{"id":"opencode-swarm-plugin-g1ew.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.799402-08:00","updated_at":"2025-12-08T08:36:19.646496-08:00","closed_at":"2025-12-08T08:36:19.646496-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-g1ew.1","depends_on_id":"opencode-swarm-plugin-g1ew","type":"parent-child","created_at":"2025-12-08T08:36:17.79972-08:00","created_by":"daemon"}]}
|
|
460
480
|
{"id":"opencode-swarm-plugin-g1ew.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.840961-08:00","updated_at":"2025-12-08T08:36:19.680324-08:00","closed_at":"2025-12-08T08:36:19.680324-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-g1ew.2","depends_on_id":"opencode-swarm-plugin-g1ew","type":"parent-child","created_at":"2025-12-08T08:36:17.84128-08:00","created_by":"daemon"}]}
|
|
481
|
+
{"id":"opencode-swarm-plugin-g3uu","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.47499-08:00","updated_at":"2025-12-08T09:09:33.449119-08:00","closed_at":"2025-12-08T09:09:33.449119-08:00"}
|
|
461
482
|
{"id":"opencode-swarm-plugin-g6ai","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.465409-08:00","updated_at":"2025-12-08T07:49:11.988385-08:00","closed_at":"2025-12-08T07:49:11.988385-08:00"}
|
|
462
483
|
{"id":"opencode-swarm-plugin-ga3","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.459646-08:00","updated_at":"2025-12-07T19:39:20.527941-08:00","closed_at":"2025-12-07T19:39:20.527941-08:00"}
|
|
463
484
|
{"id":"opencode-swarm-plugin-ggq","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.582584-08:00","updated_at":"2025-12-07T19:36:08.680139-08:00","closed_at":"2025-12-07T19:36:08.680139-08:00"}
|
|
@@ -469,6 +490,7 @@
|
|
|
469
490
|
{"id":"opencode-swarm-plugin-gpse.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.52435-08:00","updated_at":"2025-12-08T07:49:11.619347-08:00","closed_at":"2025-12-08T07:49:11.619347-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gpse.1","depends_on_id":"opencode-swarm-plugin-gpse","type":"parent-child","created_at":"2025-12-08T07:49:11.524725-08:00","created_by":"daemon"}]}
|
|
470
491
|
{"id":"opencode-swarm-plugin-gpse.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.56095-08:00","updated_at":"2025-12-08T07:49:11.671061-08:00","closed_at":"2025-12-08T07:49:11.671061-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gpse.2","depends_on_id":"opencode-swarm-plugin-gpse","type":"parent-child","created_at":"2025-12-08T07:49:11.561312-08:00","created_by":"daemon"}]}
|
|
471
492
|
{"id":"opencode-swarm-plugin-gswv","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.538704-08:00","updated_at":"2025-12-08T07:53:46.579794-08:00","closed_at":"2025-12-08T07:53:46.579794-08:00"}
|
|
493
|
+
{"id":"opencode-swarm-plugin-gv0f","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.833154-08:00","updated_at":"2025-12-08T09:09:33.206848-08:00","closed_at":"2025-12-08T09:09:33.206848-08:00"}
|
|
472
494
|
{"id":"opencode-swarm-plugin-gv83","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.193886-08:00","updated_at":"2025-12-08T08:21:29.896242-08:00","closed_at":"2025-12-08T08:21:29.896242-08:00"}
|
|
473
495
|
{"id":"opencode-swarm-plugin-gvib","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:53:45.028986-08:00","updated_at":"2025-12-08T07:53:46.85409-08:00","closed_at":"2025-12-08T07:53:46.85409-08:00"}
|
|
474
496
|
{"id":"opencode-swarm-plugin-gvib.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.059308-08:00","updated_at":"2025-12-08T07:53:46.877097-08:00","closed_at":"2025-12-08T07:53:46.877097-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gvib.1","depends_on_id":"opencode-swarm-plugin-gvib","type":"parent-child","created_at":"2025-12-08T07:53:45.059607-08:00","created_by":"daemon"}]}
|
|
@@ -571,6 +593,7 @@
|
|
|
571
593
|
{"id":"opencode-swarm-plugin-ksju","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.209169-08:00","updated_at":"2025-12-07T19:39:31.293491-08:00","closed_at":"2025-12-07T19:39:31.293491-08:00"}
|
|
572
594
|
{"id":"opencode-swarm-plugin-ku18","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:21:28.450162-08:00","updated_at":"2025-12-08T08:21:30.491525-08:00","closed_at":"2025-12-08T08:21:30.491525-08:00"}
|
|
573
595
|
{"id":"opencode-swarm-plugin-ku18.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:21:28.485702-08:00","updated_at":"2025-12-08T08:21:30.521433-08:00","closed_at":"2025-12-08T08:21:30.521433-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ku18.1","depends_on_id":"opencode-swarm-plugin-ku18","type":"parent-child","created_at":"2025-12-08T08:21:28.486067-08:00","created_by":"daemon"}]}
|
|
596
|
+
{"id":"opencode-swarm-plugin-kuy2","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T09:09:31.591559-08:00","updated_at":"2025-12-08T09:09:33.474734-08:00","closed_at":"2025-12-08T09:09:33.474734-08:00"}
|
|
574
597
|
{"id":"opencode-swarm-plugin-kzyo","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:56:55.201159-08:00","updated_at":"2025-12-08T08:56:57.826934-08:00","closed_at":"2025-12-08T08:56:57.826934-08:00"}
|
|
575
598
|
{"id":"opencode-swarm-plugin-l0nf","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T08:05:32.672544-08:00","updated_at":"2025-12-08T08:05:35.160106-08:00","closed_at":"2025-12-08T08:05:35.160106-08:00"}
|
|
576
599
|
{"id":"opencode-swarm-plugin-l1l","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:39:09.442299-08:00","updated_at":"2025-12-07T19:39:11.67709-08:00","closed_at":"2025-12-07T19:39:11.67709-08:00"}
|
|
@@ -589,6 +612,7 @@
|
|
|
589
612
|
{"id":"opencode-swarm-plugin-ldqm","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:32.790881-08:00","updated_at":"2025-12-08T08:05:35.238079-08:00","closed_at":"2025-12-08T08:05:35.238079-08:00"}
|
|
590
613
|
{"id":"opencode-swarm-plugin-lib","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:37:35.075852-08:00","updated_at":"2025-12-07T19:37:36.603302-08:00","closed_at":"2025-12-07T19:37:36.603302-08:00"}
|
|
591
614
|
{"id":"opencode-swarm-plugin-lib.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:37:35.106453-08:00","updated_at":"2025-12-07T19:37:36.623173-08:00","closed_at":"2025-12-07T19:37:36.623173-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-lib.1","depends_on_id":"opencode-swarm-plugin-lib","type":"parent-child","created_at":"2025-12-07T19:37:35.106715-08:00","created_by":"daemon"}]}
|
|
615
|
+
{"id":"opencode-swarm-plugin-lit5","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.797757-08:00","updated_at":"2025-12-08T09:09:33.183527-08:00","closed_at":"2025-12-08T09:09:33.183527-08:00"}
|
|
592
616
|
{"id":"opencode-swarm-plugin-ll15","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:22:18.723191-08:00","updated_at":"2025-12-08T08:22:18.922132-08:00","closed_at":"2025-12-08T08:22:18.922132-08:00"}
|
|
593
617
|
{"id":"opencode-swarm-plugin-ll15.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:18.756408-08:00","updated_at":"2025-12-08T08:22:18.841276-08:00","closed_at":"2025-12-08T08:22:18.841276-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ll15.1","depends_on_id":"opencode-swarm-plugin-ll15","type":"parent-child","created_at":"2025-12-08T08:22:18.756747-08:00","created_by":"daemon"}]}
|
|
594
618
|
{"id":"opencode-swarm-plugin-ll15.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:18.788908-08:00","updated_at":"2025-12-08T08:22:18.895654-08:00","closed_at":"2025-12-08T08:22:18.895654-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ll15.2","depends_on_id":"opencode-swarm-plugin-ll15","type":"parent-child","created_at":"2025-12-08T08:22:18.789319-08:00","created_by":"daemon"}]}
|
|
@@ -639,6 +663,10 @@
|
|
|
639
663
|
{"id":"opencode-swarm-plugin-mp8b","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:05:33.3177-08:00","updated_at":"2025-12-08T08:05:35.533355-08:00","closed_at":"2025-12-08T08:05:35.533355-08:00"}
|
|
640
664
|
{"id":"opencode-swarm-plugin-mquw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.67798-08:00","updated_at":"2025-12-08T08:14:31.039942-08:00","closed_at":"2025-12-08T08:14:31.039942-08:00"}
|
|
641
665
|
{"id":"opencode-swarm-plugin-mrlu","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.613409-08:00","updated_at":"2025-12-08T08:22:19.162032-08:00","closed_at":"2025-12-08T08:22:19.162032-08:00"}
|
|
666
|
+
{"id":"opencode-swarm-plugin-msud","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.67052-08:00","updated_at":"2025-12-08T09:09:33.50072-08:00","closed_at":"2025-12-08T09:09:33.50072-08:00"}
|
|
667
|
+
{"id":"opencode-swarm-plugin-msud.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.702476-08:00","updated_at":"2025-12-08T09:09:33.525777-08:00","closed_at":"2025-12-08T09:09:33.525777-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-msud.1","depends_on_id":"opencode-swarm-plugin-msud","type":"parent-child","created_at":"2025-12-08T09:09:31.702811-08:00","created_by":"daemon"}]}
|
|
668
|
+
{"id":"opencode-swarm-plugin-msud.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T09:09:31.733374-08:00","updated_at":"2025-12-08T09:09:33.551412-08:00","closed_at":"2025-12-08T09:09:33.551412-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-msud.2","depends_on_id":"opencode-swarm-plugin-msud","type":"parent-child","created_at":"2025-12-08T09:09:31.733661-08:00","created_by":"daemon"}]}
|
|
669
|
+
{"id":"opencode-swarm-plugin-msud.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T09:09:31.764092-08:00","updated_at":"2025-12-08T09:09:33.578655-08:00","closed_at":"2025-12-08T09:09:33.578655-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-msud.3","depends_on_id":"opencode-swarm-plugin-msud","type":"parent-child","created_at":"2025-12-08T09:09:31.764403-08:00","created_by":"daemon"}]}
|
|
642
670
|
{"id":"opencode-swarm-plugin-mtb0","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.247083-08:00","updated_at":"2025-12-08T08:36:17.279005-08:00","closed_at":"2025-12-08T08:36:17.279005-08:00"}
|
|
643
671
|
{"id":"opencode-swarm-plugin-myyr","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.892474-08:00","updated_at":"2025-12-08T08:56:58.727861-08:00","closed_at":"2025-12-08T08:56:58.727861-08:00"}
|
|
644
672
|
{"id":"opencode-swarm-plugin-mzb","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:36:07.346308-08:00","updated_at":"2025-12-07T19:36:08.960016-08:00","closed_at":"2025-12-07T19:36:08.960016-08:00"}
|
|
@@ -715,6 +743,7 @@
|
|
|
715
743
|
{"id":"opencode-swarm-plugin-psm","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:19.273159-08:00","updated_at":"2025-12-07T19:39:20.860341-08:00","closed_at":"2025-12-07T19:39:20.860341-08:00"}
|
|
716
744
|
{"id":"opencode-swarm-plugin-psm.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:39:19.30463-08:00","updated_at":"2025-12-07T19:39:20.883252-08:00","closed_at":"2025-12-07T19:39:20.883252-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-psm.1","depends_on_id":"opencode-swarm-plugin-psm","type":"parent-child","created_at":"2025-12-07T19:39:19.304929-08:00","created_by":"daemon"}]}
|
|
717
745
|
{"id":"opencode-swarm-plugin-pvw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.123613-08:00","updated_at":"2025-12-07T19:39:20.346988-08:00","closed_at":"2025-12-07T19:39:20.346988-08:00"}
|
|
746
|
+
{"id":"opencode-swarm-plugin-px38","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.475528-08:00","updated_at":"2025-12-08T09:09:33.937467-08:00","closed_at":"2025-12-08T09:09:33.937467-08:00"}
|
|
718
747
|
{"id":"opencode-swarm-plugin-pzj6","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:05.916664-08:00","updated_at":"2025-12-07T19:57:08.239624-08:00","closed_at":"2025-12-07T19:57:08.239624-08:00"}
|
|
719
748
|
{"id":"opencode-swarm-plugin-q05b","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.495416-08:00","updated_at":"2025-12-08T08:14:30.963712-08:00","closed_at":"2025-12-08T08:14:30.963712-08:00"}
|
|
720
749
|
{"id":"opencode-swarm-plugin-q1ao","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.057252-08:00","updated_at":"2025-12-08T08:23:18.081432-08:00","closed_at":"2025-12-08T08:23:18.081432-08:00"}
|
|
@@ -745,6 +774,7 @@
|
|
|
745
774
|
{"id":"opencode-swarm-plugin-r98c","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:14:29.141593-08:00","updated_at":"2025-12-08T08:14:31.283727-08:00","closed_at":"2025-12-08T08:14:31.283727-08:00"}
|
|
746
775
|
{"id":"opencode-swarm-plugin-rcin","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:49:10.311118-08:00","updated_at":"2025-12-08T07:49:12.327386-08:00","closed_at":"2025-12-08T07:49:12.327386-08:00"}
|
|
747
776
|
{"id":"opencode-swarm-plugin-rfb","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.514284-08:00","updated_at":"2025-12-07T19:39:20.550661-08:00","closed_at":"2025-12-07T19:39:20.550661-08:00"}
|
|
777
|
+
{"id":"opencode-swarm-plugin-rnvw","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.128747-08:00","updated_at":"2025-12-08T09:09:33.864055-08:00","closed_at":"2025-12-08T09:09:33.864055-08:00"}
|
|
748
778
|
{"id":"opencode-swarm-plugin-rr3d","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:23:18.274457-08:00","updated_at":"2025-12-08T08:23:20.208121-08:00","closed_at":"2025-12-08T08:23:20.208121-08:00"}
|
|
749
779
|
{"id":"opencode-swarm-plugin-rrih","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:41:11.977841-08:00","updated_at":"2025-12-07T19:41:13.848868-08:00","closed_at":"2025-12-07T19:41:13.848868-08:00"}
|
|
750
780
|
{"id":"opencode-swarm-plugin-rrih.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.015561-08:00","updated_at":"2025-12-07T19:41:13.874074-08:00","closed_at":"2025-12-07T19:41:13.874074-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-rrih.1","depends_on_id":"opencode-swarm-plugin-rrih","type":"parent-child","created_at":"2025-12-07T19:41:12.015905-08:00","created_by":"daemon"}]}
|
|
@@ -769,6 +799,9 @@
|
|
|
769
799
|
{"id":"opencode-swarm-plugin-sfs","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.365861-08:00","updated_at":"2025-12-07T19:37:36.31803-08:00","closed_at":"2025-12-07T19:37:36.31803-08:00"}
|
|
770
800
|
{"id":"opencode-swarm-plugin-sfzw","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:21:26.954077-08:00","updated_at":"2025-12-08T08:21:29.776605-08:00","closed_at":"2025-12-08T08:21:29.776605-08:00"}
|
|
771
801
|
{"id":"opencode-swarm-plugin-sgso","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.823698-08:00","updated_at":"2025-12-08T08:22:19.267297-08:00","closed_at":"2025-12-08T08:22:19.267297-08:00"}
|
|
802
|
+
{"id":"opencode-swarm-plugin-shmi","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:32.700868-08:00","updated_at":"2025-12-08T09:09:32.892363-08:00","closed_at":"2025-12-08T09:09:32.892363-08:00"}
|
|
803
|
+
{"id":"opencode-swarm-plugin-shmi.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.732667-08:00","updated_at":"2025-12-08T09:09:32.8181-08:00","closed_at":"2025-12-08T09:09:32.8181-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-shmi.1","depends_on_id":"opencode-swarm-plugin-shmi","type":"parent-child","created_at":"2025-12-08T09:09:32.733006-08:00","created_by":"daemon"}]}
|
|
804
|
+
{"id":"opencode-swarm-plugin-shmi.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.766428-08:00","updated_at":"2025-12-08T09:09:32.867989-08:00","closed_at":"2025-12-08T09:09:32.867989-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-shmi.2","depends_on_id":"opencode-swarm-plugin-shmi","type":"parent-child","created_at":"2025-12-08T09:09:32.768721-08:00","created_by":"daemon"}]}
|
|
772
805
|
{"id":"opencode-swarm-plugin-slxb","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:56:56.672463-08:00","updated_at":"2025-12-08T08:56:58.554736-08:00","closed_at":"2025-12-08T08:56:58.554736-08:00"}
|
|
773
806
|
{"id":"opencode-swarm-plugin-slxb.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:56:56.703332-08:00","updated_at":"2025-12-08T08:56:58.578023-08:00","closed_at":"2025-12-08T08:56:58.578023-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-slxb.1","depends_on_id":"opencode-swarm-plugin-slxb","type":"parent-child","created_at":"2025-12-08T08:56:56.703615-08:00","created_by":"daemon"}]}
|
|
774
807
|
{"id":"opencode-swarm-plugin-snho","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:49.296253-08:00","updated_at":"2025-12-08T07:46:51.819855-08:00","closed_at":"2025-12-08T07:46:51.819855-08:00"}
|
|
@@ -813,6 +846,11 @@
|
|
|
813
846
|
{"id":"opencode-swarm-plugin-txep","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:11:40.264723-08:00","updated_at":"2025-12-08T08:11:42.28708-08:00","closed_at":"2025-12-08T08:11:42.28708-08:00"}
|
|
814
847
|
{"id":"opencode-swarm-plugin-txep.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.297487-08:00","updated_at":"2025-12-08T08:11:42.312604-08:00","closed_at":"2025-12-08T08:11:42.312604-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txep.1","depends_on_id":"opencode-swarm-plugin-txep","type":"parent-child","created_at":"2025-12-08T08:11:40.297798-08:00","created_by":"daemon"}]}
|
|
815
848
|
{"id":"opencode-swarm-plugin-txep.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.329538-08:00","updated_at":"2025-12-08T08:11:42.337696-08:00","closed_at":"2025-12-08T08:11:42.337696-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txep.2","depends_on_id":"opencode-swarm-plugin-txep","type":"parent-child","created_at":"2025-12-08T08:11:40.329857-08:00","created_by":"daemon"}]}
|
|
849
|
+
{"id":"opencode-swarm-plugin-u33l","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.971493-08:00","updated_at":"2025-12-08T09:09:33.730575-08:00","closed_at":"2025-12-08T09:09:33.730575-08:00"}
|
|
850
|
+
{"id":"opencode-swarm-plugin-u33l.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.002048-08:00","updated_at":"2025-12-08T09:09:33.755227-08:00","closed_at":"2025-12-08T09:09:33.755227-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.1","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.002347-08:00","created_by":"daemon"}]}
|
|
851
|
+
{"id":"opencode-swarm-plugin-u33l.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.034741-08:00","updated_at":"2025-12-08T09:09:33.780515-08:00","closed_at":"2025-12-08T09:09:33.780515-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.2","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.035068-08:00","created_by":"daemon"}]}
|
|
852
|
+
{"id":"opencode-swarm-plugin-u33l.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.066939-08:00","updated_at":"2025-12-08T09:09:33.805193-08:00","closed_at":"2025-12-08T09:09:33.805193-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.3","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.067253-08:00","created_by":"daemon"}]}
|
|
853
|
+
{"id":"opencode-swarm-plugin-u33l.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.099315-08:00","updated_at":"2025-12-08T09:09:33.83474-08:00","closed_at":"2025-12-08T09:09:33.83474-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.4","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.099617-08:00","created_by":"daemon"}]}
|
|
816
854
|
{"id":"opencode-swarm-plugin-u4cv","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:05.799579-08:00","updated_at":"2025-12-07T19:57:08.192357-08:00","closed_at":"2025-12-07T19:57:08.192357-08:00"}
|
|
817
855
|
{"id":"opencode-swarm-plugin-u5lz","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.831249-08:00","updated_at":"2025-12-08T07:49:12.197825-08:00","closed_at":"2025-12-08T07:49:12.197825-08:00"}
|
|
818
856
|
{"id":"opencode-swarm-plugin-u82u","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:10.790425-08:00","updated_at":"2025-12-07T19:41:13.346845-08:00","closed_at":"2025-12-07T19:41:13.346845-08:00"}
|
|
@@ -848,9 +886,12 @@
|
|
|
848
886
|
{"id":"opencode-swarm-plugin-v4g4.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.618692-08:00","updated_at":"2025-12-08T08:14:30.698262-08:00","closed_at":"2025-12-08T08:14:30.698262-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v4g4.1","depends_on_id":"opencode-swarm-plugin-v4g4","type":"parent-child","created_at":"2025-12-08T08:14:30.618992-08:00","created_by":"daemon"}]}
|
|
849
887
|
{"id":"opencode-swarm-plugin-v4g4.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.650693-08:00","updated_at":"2025-12-08T08:14:30.745857-08:00","closed_at":"2025-12-08T08:14:30.745857-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v4g4.2","depends_on_id":"opencode-swarm-plugin-v4g4","type":"parent-child","created_at":"2025-12-08T08:14:30.65101-08:00","created_by":"daemon"}]}
|
|
850
888
|
{"id":"opencode-swarm-plugin-v4wk","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.273976-08:00","updated_at":"2025-12-08T07:49:11.911446-08:00","closed_at":"2025-12-08T07:49:11.911446-08:00"}
|
|
889
|
+
{"id":"opencode-swarm-plugin-v6v9","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.764976-08:00","updated_at":"2025-12-08T09:09:33.160752-08:00","closed_at":"2025-12-08T09:09:33.160752-08:00"}
|
|
851
890
|
{"id":"opencode-swarm-plugin-v72","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.816102-08:00","updated_at":"2025-12-07T19:39:11.902421-08:00","closed_at":"2025-12-07T19:39:11.902421-08:00"}
|
|
852
891
|
{"id":"opencode-swarm-plugin-v8oa","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.951289-08:00","updated_at":"2025-12-08T07:46:51.033444-08:00","closed_at":"2025-12-08T07:46:51.033444-08:00"}
|
|
853
892
|
{"id":"opencode-swarm-plugin-v8rf","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:39:28.865894-08:00","updated_at":"2025-12-07T19:39:31.084269-08:00","closed_at":"2025-12-07T19:39:31.084269-08:00"}
|
|
893
|
+
{"id":"opencode-swarm-plugin-vbhx","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.902467-08:00","updated_at":"2025-12-08T09:09:33.682198-08:00","closed_at":"2025-12-08T09:09:33.682198-08:00"}
|
|
894
|
+
{"id":"opencode-swarm-plugin-vbhx.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T09:09:31.939635-08:00","updated_at":"2025-12-08T09:09:33.706872-08:00","closed_at":"2025-12-08T09:09:33.706872-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-vbhx.1","depends_on_id":"opencode-swarm-plugin-vbhx","type":"parent-child","created_at":"2025-12-08T09:09:31.939954-08:00","created_by":"daemon"}]}
|
|
854
895
|
{"id":"opencode-swarm-plugin-vc5","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.895729-08:00","updated_at":"2025-12-07T19:34:55.311453-08:00","closed_at":"2025-12-07T19:34:55.311453-08:00"}
|
|
855
896
|
{"id":"opencode-swarm-plugin-vd03","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.740823-08:00","updated_at":"2025-12-07T19:56:44.871695-08:00","closed_at":"2025-12-07T19:56:44.871695-08:00"}
|
|
856
897
|
{"id":"opencode-swarm-plugin-vh4o","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:29.103901-08:00","updated_at":"2025-12-08T08:21:30.778313-08:00","closed_at":"2025-12-08T08:21:30.778313-08:00"}
|
|
@@ -900,6 +941,7 @@
|
|
|
900
941
|
{"id":"opencode-swarm-plugin-wwqt","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.579904-08:00","updated_at":"2025-12-08T08:05:36.125724-08:00","closed_at":"2025-12-08T08:05:36.125724-08:00"}
|
|
901
942
|
{"id":"opencode-swarm-plugin-wytl","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:32.855796-08:00","updated_at":"2025-12-08T08:05:35.266626-08:00","closed_at":"2025-12-08T08:05:35.266626-08:00"}
|
|
902
943
|
{"id":"opencode-swarm-plugin-wzbh","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.286939-08:00","updated_at":"2025-12-08T07:53:46.997846-08:00","closed_at":"2025-12-08T07:53:46.997846-08:00"}
|
|
944
|
+
{"id":"opencode-swarm-plugin-wzk5","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T09:09:30.46577-08:00","updated_at":"2025-12-08T09:09:33.012614-08:00","closed_at":"2025-12-08T09:09:33.012614-08:00"}
|
|
903
945
|
{"id":"opencode-swarm-plugin-x36x","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:48.799533-08:00","updated_at":"2025-12-08T07:46:51.571401-08:00","closed_at":"2025-12-08T07:46:51.571401-08:00"}
|
|
904
946
|
{"id":"opencode-swarm-plugin-x6s7","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.428719-08:00","updated_at":"2025-12-08T08:05:35.590764-08:00","closed_at":"2025-12-08T08:05:35.590764-08:00"}
|
|
905
947
|
{"id":"opencode-swarm-plugin-x7ik","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.323817-08:00","updated_at":"2025-12-07T19:56:44.625732-08:00","closed_at":"2025-12-07T19:56:44.625732-08:00"}
|
|
@@ -948,6 +990,7 @@
|
|
|
948
990
|
{"id":"opencode-swarm-plugin-yvnz","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.993848-08:00","updated_at":"2025-12-08T08:36:19.361588-08:00","closed_at":"2025-12-08T08:36:19.361588-08:00"}
|
|
949
991
|
{"id":"opencode-swarm-plugin-z011","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.770825-08:00","updated_at":"2025-12-08T07:49:12.173678-08:00","closed_at":"2025-12-08T07:49:12.173678-08:00"}
|
|
950
992
|
{"id":"opencode-swarm-plugin-z0s","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.949471-08:00","updated_at":"2025-12-07T19:36:06.970397-08:00","closed_at":"2025-12-07T19:36:06.970397-08:00"}
|
|
993
|
+
{"id":"opencode-swarm-plugin-z0zh","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T09:09:31.242765-08:00","updated_at":"2025-12-08T09:09:33.398869-08:00","closed_at":"2025-12-08T09:09:33.398869-08:00"}
|
|
951
994
|
{"id":"opencode-swarm-plugin-z4bc","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.542895-08:00","updated_at":"2025-12-08T08:25:12.189207-08:00","closed_at":"2025-12-08T08:25:12.189207-08:00"}
|
|
952
995
|
{"id":"opencode-swarm-plugin-z7bu","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.356112-08:00","updated_at":"2025-12-08T08:14:30.865474-08:00","closed_at":"2025-12-08T08:14:30.865474-08:00"}
|
|
953
996
|
{"id":"opencode-swarm-plugin-z8td","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:17.11505-08:00","updated_at":"2025-12-08T08:22:19.411331-08:00","closed_at":"2025-12-08T08:22:19.411331-08:00"}
|
|
@@ -961,6 +1004,7 @@
|
|
|
961
1004
|
{"id":"opencode-swarm-plugin-znu","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:33.942962-08:00","updated_at":"2025-12-07T19:37:36.098353-08:00","closed_at":"2025-12-07T19:37:36.098353-08:00"}
|
|
962
1005
|
{"id":"opencode-swarm-plugin-zp9","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:08.055038-08:00","updated_at":"2025-12-07T19:36:08.128158-08:00","closed_at":"2025-12-07T19:36:08.128158-08:00"}
|
|
963
1006
|
{"id":"opencode-swarm-plugin-zw3b","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T07:49:09.23617-08:00","updated_at":"2025-12-08T07:49:11.88343-08:00","closed_at":"2025-12-08T07:49:11.88343-08:00"}
|
|
1007
|
+
{"id":"opencode-swarm-plugin-zxic","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.336447-08:00","updated_at":"2025-12-08T09:09:33.91114-08:00","closed_at":"2025-12-08T09:09:33.91114-08:00"}
|
|
964
1008
|
{"id":"opencode-swarm-plugin-zzw","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:34:53.29698-08:00","updated_at":"2025-12-07T19:34:54.947962-08:00","closed_at":"2025-12-07T19:34:54.947962-08:00"}
|
|
965
1009
|
{"id":"opencode-swarm-plugin-zzw.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.324677-08:00","updated_at":"2025-12-07T19:34:54.971396-08:00","closed_at":"2025-12-07T19:34:54.971396-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zzw.1","depends_on_id":"opencode-swarm-plugin-zzw","type":"parent-child","created_at":"2025-12-07T19:34:53.324987-08:00","created_by":"daemon"}]}
|
|
966
1010
|
{"id":"opencode-swarm-plugin-zzw.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-07T19:34:53.354227-08:00","updated_at":"2025-12-07T19:34:54.993123-08:00","closed_at":"2025-12-07T19:34:54.993123-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zzw.2","depends_on_id":"opencode-swarm-plugin-zzw","type":"parent-child","created_at":"2025-12-07T19:34:53.354536-08:00","created_by":"daemon"}]}
|
package/README.md
CHANGED
|
@@ -138,7 +138,7 @@ Client-side, per-agent rate limits prevent abuse and ensure fair resource usage
|
|
|
138
138
|
| `swarm_complete` | Mark subtask complete with UBS bug scan, release reservations |
|
|
139
139
|
| `swarm_record_outcome` | Record outcome for implicit feedback (duration, errors, retries) |
|
|
140
140
|
| `swarm_subtask_prompt` | Generate prompt for spawned subtask agent (V1 - includes coordination) |
|
|
141
|
-
| `swarm_spawn_subtask` | Generate V2 prompt
|
|
141
|
+
| `swarm_spawn_subtask` | Generate V2 prompt with Agent Mail/beads instructions for subagents |
|
|
142
142
|
| `swarm_complete_subtask` | Handle subtask completion: close bead, create issue beads |
|
|
143
143
|
| `swarm_evaluation_prompt` | Generate self-evaluation prompt |
|
|
144
144
|
|
|
@@ -429,24 +429,43 @@ The plugin enforces these limits regardless of input:
|
|
|
429
429
|
- Thread summaries use LLM mode for concise output
|
|
430
430
|
- File reservations auto-track for cleanup
|
|
431
431
|
|
|
432
|
-
##
|
|
432
|
+
## Custom Commands
|
|
433
433
|
|
|
434
|
-
This plugin provides
|
|
434
|
+
This plugin provides tools that work with OpenCode's [custom commands](https://opencode.ai/docs/commands). Create a `/swarm` command to orchestrate multi-agent work.
|
|
435
|
+
|
|
436
|
+
### Setup /swarm Command
|
|
437
|
+
|
|
438
|
+
Copy the example command to your OpenCode config:
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
cp examples/commands/swarm.md ~/.config/opencode/command/
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### Usage
|
|
435
445
|
|
|
436
446
|
```
|
|
437
447
|
/swarm "Add user authentication with OAuth providers"
|
|
438
448
|
```
|
|
439
449
|
|
|
440
|
-
|
|
450
|
+
### How It Works
|
|
451
|
+
|
|
452
|
+
1. **Decompose** - `swarm_decompose` breaks task into subtasks with file assignments
|
|
453
|
+
2. **Create beads** - `beads_create_epic` creates epic + subtasks atomically
|
|
454
|
+
3. **Spawn agents** - `swarm_spawn_subtask` generates prompts WITH Agent Mail/beads instructions
|
|
455
|
+
4. **Parallel work** - Subagents use Agent Mail to communicate, beads to track progress
|
|
456
|
+
5. **Coordination** - Agents report progress, ask questions, announce blockers via Agent Mail
|
|
457
|
+
6. **Completion** - Agents use `swarm_complete` when done
|
|
458
|
+
7. **Cleanup** - `beads_sync` pushes to git
|
|
459
|
+
|
|
460
|
+
### Subagent Capabilities
|
|
461
|
+
|
|
462
|
+
Spawned subagents have **full access** to all plugin tools:
|
|
463
|
+
|
|
464
|
+
- **Agent Mail** - `agentmail_send`, `agentmail_inbox`, `agentmail_reserve`, etc.
|
|
465
|
+
- **Beads** - `beads_update`, `beads_create`, `swarm_complete`
|
|
466
|
+
- All standard OpenCode tools
|
|
441
467
|
|
|
442
|
-
|
|
443
|
-
2. **Create beads** - Use `beads_create_epic` for atomic issue creation
|
|
444
|
-
3. **Initialize agents** - Each agent calls `agentmail_init`
|
|
445
|
-
4. **Reserve files** - Prevent conflicts with `agentmail_reserve`
|
|
446
|
-
5. **Coordinate** - Agents communicate via `agentmail_send`
|
|
447
|
-
6. **Track status** - Use `SwarmStatusSchema` for progress
|
|
448
|
-
7. **Evaluate** - Validate work with `EvaluationSchema`
|
|
449
|
-
8. **Cleanup** - Release reservations and sync beads
|
|
468
|
+
The prompts tell agents to actively communicate and coordinate.
|
|
450
469
|
|
|
451
470
|
## Error Handling
|
|
452
471
|
|
package/dist/index.js
CHANGED
|
@@ -23701,61 +23701,57 @@ Before writing code:
|
|
|
23701
23701
|
4. **Communicate your plan** via Agent Mail if non-trivial
|
|
23702
23702
|
|
|
23703
23703
|
Begin work on your subtask now.`;
|
|
23704
|
-
var SUBTASK_PROMPT_V2 = `You are
|
|
23704
|
+
var SUBTASK_PROMPT_V2 = `You are a swarm agent working on: **{subtask_title}**
|
|
23705
23705
|
|
|
23706
|
-
##
|
|
23707
|
-
**
|
|
23706
|
+
## Identity
|
|
23707
|
+
- **Bead ID**: {bead_id}
|
|
23708
|
+
- **Epic ID**: {epic_id}
|
|
23708
23709
|
|
|
23710
|
+
## Task
|
|
23709
23711
|
{subtask_description}
|
|
23710
23712
|
|
|
23711
|
-
## Files
|
|
23713
|
+
## Files (exclusive reservation)
|
|
23712
23714
|
{file_list}
|
|
23713
23715
|
|
|
23714
|
-
|
|
23716
|
+
Only modify these files. Need others? Message the coordinator.
|
|
23715
23717
|
|
|
23716
23718
|
## Context
|
|
23717
23719
|
{shared_context}
|
|
23718
23720
|
|
|
23719
|
-
##
|
|
23721
|
+
## MANDATORY: Use These Tools
|
|
23720
23722
|
|
|
23721
|
-
|
|
23722
|
-
|
|
23723
|
-
|
|
23724
|
-
|
|
23723
|
+
### Agent Mail - communicate with the swarm
|
|
23724
|
+
\`\`\`typescript
|
|
23725
|
+
// Report progress, ask questions, announce blockers
|
|
23726
|
+
agentmail_send({
|
|
23727
|
+
to: ["coordinator"],
|
|
23728
|
+
subject: "Progress update",
|
|
23729
|
+
body: "What you did or need",
|
|
23730
|
+
thread_id: "{epic_id}"
|
|
23731
|
+
})
|
|
23732
|
+
\`\`\`
|
|
23725
23733
|
|
|
23726
|
-
|
|
23734
|
+
### Beads - track your work
|
|
23735
|
+
- **Blocked?** \`beads_update({ id: "{bead_id}", status: "blocked" })\`
|
|
23736
|
+
- **Found bug?** \`beads_create({ title: "Bug description", type: "bug" })\`
|
|
23737
|
+
- **Done?** \`swarm_complete({ bead_id: "{bead_id}", summary: "What you did", files_touched: [...] })\`
|
|
23727
23738
|
|
|
23728
|
-
|
|
23739
|
+
## Workflow
|
|
23729
23740
|
|
|
23730
|
-
|
|
23731
|
-
|
|
23732
|
-
|
|
23733
|
-
|
|
23734
|
-
|
|
23735
|
-
|
|
23736
|
-
"issues_found": ["any problems or concerns discovered"],
|
|
23737
|
-
"tests_passed": true,
|
|
23738
|
-
"notes": "Any additional context for the coordinator"
|
|
23739
|
-
}
|
|
23740
|
-
\`\`\`
|
|
23741
|
+
1. **Read** the files first
|
|
23742
|
+
2. **Plan** your approach (message coordinator if complex)
|
|
23743
|
+
3. **Implement** the changes
|
|
23744
|
+
4. **Verify** (typecheck, tests)
|
|
23745
|
+
5. **Report** progress via Agent Mail
|
|
23746
|
+
6. **Complete** with swarm_complete when done
|
|
23741
23747
|
|
|
23742
|
-
|
|
23748
|
+
**Never work silently.** Communicate progress and blockers immediately.
|
|
23743
23749
|
|
|
23744
|
-
|
|
23745
|
-
{
|
|
23746
|
-
"success": false,
|
|
23747
|
-
"summary": "What you attempted",
|
|
23748
|
-
"blocker": "Description of what's blocking you",
|
|
23749
|
-
"files_modified": [],
|
|
23750
|
-
"suggestions": ["possible", "solutions"]
|
|
23751
|
-
}
|
|
23752
|
-
\`\`\`
|
|
23753
|
-
|
|
23754
|
-
Begin work now.`;
|
|
23750
|
+
Begin now.`;
|
|
23755
23751
|
function formatSubtaskPromptV2(params) {
|
|
23756
23752
|
const fileList = params.files.length > 0 ? params.files.map((f) => `- \`${f}\``).join(`
|
|
23757
|
-
`) : "(no specific files
|
|
23758
|
-
return SUBTASK_PROMPT_V2.replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none
|
|
23753
|
+
`) : "(no specific files - use judgment)";
|
|
23754
|
+
return SUBTASK_PROMPT_V2.replace(/{bead_id}/g, params.bead_id).replace(/{epic_id}/g, params.epic_id).replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none)");
|
|
23759
23755
|
}
|
|
23760
23756
|
var EVALUATION_PROMPT = `Evaluate the work completed for this subtask.
|
|
23761
23757
|
|
|
@@ -24357,9 +24353,10 @@ var swarm_subtask_prompt = tool({
|
|
|
24357
24353
|
}
|
|
24358
24354
|
});
|
|
24359
24355
|
var swarm_spawn_subtask = tool({
|
|
24360
|
-
description: "Prepare a subtask for spawning
|
|
24356
|
+
description: "Prepare a subtask for spawning. Returns prompt with Agent Mail/beads instructions.",
|
|
24361
24357
|
args: {
|
|
24362
24358
|
bead_id: tool.schema.string().describe("Subtask bead ID"),
|
|
24359
|
+
epic_id: tool.schema.string().describe("Parent epic bead ID"),
|
|
24363
24360
|
subtask_title: tool.schema.string().describe("Subtask title"),
|
|
24364
24361
|
subtask_description: tool.schema.string().optional().describe("Detailed subtask instructions"),
|
|
24365
24362
|
files: tool.schema.array(tool.schema.string()).describe("Files assigned to this subtask"),
|
|
@@ -24367,6 +24364,8 @@ var swarm_spawn_subtask = tool({
|
|
|
24367
24364
|
},
|
|
24368
24365
|
async execute(args) {
|
|
24369
24366
|
const prompt = formatSubtaskPromptV2({
|
|
24367
|
+
bead_id: args.bead_id,
|
|
24368
|
+
epic_id: args.epic_id,
|
|
24370
24369
|
subtask_title: args.subtask_title,
|
|
24371
24370
|
subtask_description: args.subtask_description || "",
|
|
24372
24371
|
files: args.files,
|
|
@@ -24375,6 +24374,7 @@ var swarm_spawn_subtask = tool({
|
|
|
24375
24374
|
return JSON.stringify({
|
|
24376
24375
|
prompt,
|
|
24377
24376
|
bead_id: args.bead_id,
|
|
24377
|
+
epic_id: args.epic_id,
|
|
24378
24378
|
files: args.files
|
|
24379
24379
|
}, null, 2);
|
|
24380
24380
|
}
|
package/dist/plugin.js
CHANGED
|
@@ -23660,61 +23660,57 @@ Before writing code:
|
|
|
23660
23660
|
4. **Communicate your plan** via Agent Mail if non-trivial
|
|
23661
23661
|
|
|
23662
23662
|
Begin work on your subtask now.`;
|
|
23663
|
-
var SUBTASK_PROMPT_V2 = `You are
|
|
23663
|
+
var SUBTASK_PROMPT_V2 = `You are a swarm agent working on: **{subtask_title}**
|
|
23664
23664
|
|
|
23665
|
-
##
|
|
23666
|
-
**
|
|
23665
|
+
## Identity
|
|
23666
|
+
- **Bead ID**: {bead_id}
|
|
23667
|
+
- **Epic ID**: {epic_id}
|
|
23667
23668
|
|
|
23669
|
+
## Task
|
|
23668
23670
|
{subtask_description}
|
|
23669
23671
|
|
|
23670
|
-
## Files
|
|
23672
|
+
## Files (exclusive reservation)
|
|
23671
23673
|
{file_list}
|
|
23672
23674
|
|
|
23673
|
-
|
|
23675
|
+
Only modify these files. Need others? Message the coordinator.
|
|
23674
23676
|
|
|
23675
23677
|
## Context
|
|
23676
23678
|
{shared_context}
|
|
23677
23679
|
|
|
23678
|
-
##
|
|
23680
|
+
## MANDATORY: Use These Tools
|
|
23679
23681
|
|
|
23680
|
-
|
|
23681
|
-
|
|
23682
|
-
|
|
23683
|
-
|
|
23682
|
+
### Agent Mail - communicate with the swarm
|
|
23683
|
+
\`\`\`typescript
|
|
23684
|
+
// Report progress, ask questions, announce blockers
|
|
23685
|
+
agentmail_send({
|
|
23686
|
+
to: ["coordinator"],
|
|
23687
|
+
subject: "Progress update",
|
|
23688
|
+
body: "What you did or need",
|
|
23689
|
+
thread_id: "{epic_id}"
|
|
23690
|
+
})
|
|
23691
|
+
\`\`\`
|
|
23684
23692
|
|
|
23685
|
-
|
|
23693
|
+
### Beads - track your work
|
|
23694
|
+
- **Blocked?** \`beads_update({ id: "{bead_id}", status: "blocked" })\`
|
|
23695
|
+
- **Found bug?** \`beads_create({ title: "Bug description", type: "bug" })\`
|
|
23696
|
+
- **Done?** \`swarm_complete({ bead_id: "{bead_id}", summary: "What you did", files_touched: [...] })\`
|
|
23686
23697
|
|
|
23687
|
-
|
|
23698
|
+
## Workflow
|
|
23688
23699
|
|
|
23689
|
-
|
|
23690
|
-
|
|
23691
|
-
|
|
23692
|
-
|
|
23693
|
-
|
|
23694
|
-
|
|
23695
|
-
"issues_found": ["any problems or concerns discovered"],
|
|
23696
|
-
"tests_passed": true,
|
|
23697
|
-
"notes": "Any additional context for the coordinator"
|
|
23698
|
-
}
|
|
23699
|
-
\`\`\`
|
|
23700
|
+
1. **Read** the files first
|
|
23701
|
+
2. **Plan** your approach (message coordinator if complex)
|
|
23702
|
+
3. **Implement** the changes
|
|
23703
|
+
4. **Verify** (typecheck, tests)
|
|
23704
|
+
5. **Report** progress via Agent Mail
|
|
23705
|
+
6. **Complete** with swarm_complete when done
|
|
23700
23706
|
|
|
23701
|
-
|
|
23707
|
+
**Never work silently.** Communicate progress and blockers immediately.
|
|
23702
23708
|
|
|
23703
|
-
|
|
23704
|
-
{
|
|
23705
|
-
"success": false,
|
|
23706
|
-
"summary": "What you attempted",
|
|
23707
|
-
"blocker": "Description of what's blocking you",
|
|
23708
|
-
"files_modified": [],
|
|
23709
|
-
"suggestions": ["possible", "solutions"]
|
|
23710
|
-
}
|
|
23711
|
-
\`\`\`
|
|
23712
|
-
|
|
23713
|
-
Begin work now.`;
|
|
23709
|
+
Begin now.`;
|
|
23714
23710
|
function formatSubtaskPromptV2(params) {
|
|
23715
23711
|
const fileList = params.files.length > 0 ? params.files.map((f) => `- \`${f}\``).join(`
|
|
23716
|
-
`) : "(no specific files
|
|
23717
|
-
return SUBTASK_PROMPT_V2.replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none
|
|
23712
|
+
`) : "(no specific files - use judgment)";
|
|
23713
|
+
return SUBTASK_PROMPT_V2.replace(/{bead_id}/g, params.bead_id).replace(/{epic_id}/g, params.epic_id).replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none)");
|
|
23718
23714
|
}
|
|
23719
23715
|
var EVALUATION_PROMPT = `Evaluate the work completed for this subtask.
|
|
23720
23716
|
|
|
@@ -24308,9 +24304,10 @@ var swarm_subtask_prompt = tool({
|
|
|
24308
24304
|
}
|
|
24309
24305
|
});
|
|
24310
24306
|
var swarm_spawn_subtask = tool({
|
|
24311
|
-
description: "Prepare a subtask for spawning
|
|
24307
|
+
description: "Prepare a subtask for spawning. Returns prompt with Agent Mail/beads instructions.",
|
|
24312
24308
|
args: {
|
|
24313
24309
|
bead_id: tool.schema.string().describe("Subtask bead ID"),
|
|
24310
|
+
epic_id: tool.schema.string().describe("Parent epic bead ID"),
|
|
24314
24311
|
subtask_title: tool.schema.string().describe("Subtask title"),
|
|
24315
24312
|
subtask_description: tool.schema.string().optional().describe("Detailed subtask instructions"),
|
|
24316
24313
|
files: tool.schema.array(tool.schema.string()).describe("Files assigned to this subtask"),
|
|
@@ -24318,6 +24315,8 @@ var swarm_spawn_subtask = tool({
|
|
|
24318
24315
|
},
|
|
24319
24316
|
async execute(args) {
|
|
24320
24317
|
const prompt = formatSubtaskPromptV2({
|
|
24318
|
+
bead_id: args.bead_id,
|
|
24319
|
+
epic_id: args.epic_id,
|
|
24321
24320
|
subtask_title: args.subtask_title,
|
|
24322
24321
|
subtask_description: args.subtask_description || "",
|
|
24323
24322
|
files: args.files,
|
|
@@ -24326,6 +24325,7 @@ var swarm_spawn_subtask = tool({
|
|
|
24326
24325
|
return JSON.stringify({
|
|
24327
24326
|
prompt,
|
|
24328
24327
|
bead_id: args.bead_id,
|
|
24328
|
+
epic_id: args.epic_id,
|
|
24329
24329
|
files: args.files
|
|
24330
24330
|
}, null, 2);
|
|
24331
24331
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Decompose task into parallel subtasks and coordinate agents
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
You are a swarm coordinator. Break down the following task into parallel subtasks.
|
|
6
|
+
|
|
7
|
+
## Task
|
|
8
|
+
|
|
9
|
+
$ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Instructions
|
|
12
|
+
|
|
13
|
+
1. Use `swarm_decompose` to generate a decomposition prompt for the task
|
|
14
|
+
2. Analyze the task and create a decomposition with:
|
|
15
|
+
- Epic title and description
|
|
16
|
+
- 2-5 parallelizable subtasks with file assignments
|
|
17
|
+
- No file conflicts between subtasks
|
|
18
|
+
3. Create the epic using `beads_create_epic`
|
|
19
|
+
4. For each subtask:
|
|
20
|
+
- Mark bead in_progress with `beads_start`
|
|
21
|
+
- Use `swarm_spawn_subtask` to generate a prompt (includes Agent Mail/beads instructions)
|
|
22
|
+
- Spawn a Task agent with that prompt
|
|
23
|
+
5. Monitor progress via Agent Mail inbox
|
|
24
|
+
6. After all subtasks complete:
|
|
25
|
+
- Close the epic with `beads_close`
|
|
26
|
+
- Sync to git with `beads_sync`
|
|
27
|
+
|
|
28
|
+
## Subagent Capabilities
|
|
29
|
+
|
|
30
|
+
Subagents have FULL access to:
|
|
31
|
+
|
|
32
|
+
- **Agent Mail** - `agentmail_send`, `agentmail_inbox`, etc.
|
|
33
|
+
- **Beads** - `beads_update`, `beads_create`, `swarm_complete`
|
|
34
|
+
- All standard tools (Read, Write, Edit, Bash, etc.)
|
|
35
|
+
|
|
36
|
+
The prompts generated by `swarm_spawn_subtask` tell agents to:
|
|
37
|
+
|
|
38
|
+
- Report progress via Agent Mail
|
|
39
|
+
- Update bead status if blocked
|
|
40
|
+
- Create new beads for discovered issues
|
|
41
|
+
- Use `swarm_complete` when done
|
|
42
|
+
|
|
43
|
+
## Coordination
|
|
44
|
+
|
|
45
|
+
- Use the epic ID as the `thread_id` for all Agent Mail messages
|
|
46
|
+
- Agents communicate with each other and with you (coordinator)
|
|
47
|
+
- Check `agentmail_inbox` periodically for updates
|
|
48
|
+
- Use `agentmail_summarize_thread` to get thread overview
|
|
49
|
+
|
|
50
|
+
Begin decomposition now.
|
package/package.json
CHANGED
|
@@ -959,10 +959,12 @@ describe("Graceful Degradation", () => {
|
|
|
959
959
|
// Coordinator-Centric Swarm Tools (V2)
|
|
960
960
|
// ============================================================================
|
|
961
961
|
|
|
962
|
-
describe("
|
|
962
|
+
describe("Swarm Prompt V2 (with Agent Mail/Beads)", () => {
|
|
963
963
|
describe("formatSubtaskPromptV2", () => {
|
|
964
964
|
it("generates correct prompt with all fields", () => {
|
|
965
965
|
const result = formatSubtaskPromptV2({
|
|
966
|
+
bead_id: "bd-123.1",
|
|
967
|
+
epic_id: "bd-123",
|
|
966
968
|
subtask_title: "Add OAuth provider",
|
|
967
969
|
subtask_description: "Configure Google OAuth in the auth config",
|
|
968
970
|
files: ["src/auth/google.ts", "src/auth/config.ts"],
|
|
@@ -982,16 +984,15 @@ describe("Coordinator-Centric Swarm Tools", () => {
|
|
|
982
984
|
// Check shared context is included
|
|
983
985
|
expect(result).toContain("We are using NextAuth.js v5");
|
|
984
986
|
|
|
985
|
-
// Check
|
|
986
|
-
expect(result).toContain("
|
|
987
|
-
expect(result).toContain("
|
|
988
|
-
expect(result).toContain("## Context");
|
|
989
|
-
expect(result).toContain("## Instructions");
|
|
990
|
-
expect(result).toContain("## When Complete");
|
|
987
|
+
// Check bead/epic IDs are substituted
|
|
988
|
+
expect(result).toContain("bd-123.1");
|
|
989
|
+
expect(result).toContain("bd-123");
|
|
991
990
|
});
|
|
992
991
|
|
|
993
992
|
it("handles missing optional fields", () => {
|
|
994
993
|
const result = formatSubtaskPromptV2({
|
|
994
|
+
bead_id: "bd-456.1",
|
|
995
|
+
epic_id: "bd-456",
|
|
995
996
|
subtask_title: "Simple task",
|
|
996
997
|
subtask_description: "",
|
|
997
998
|
files: [],
|
|
@@ -1004,16 +1005,16 @@ describe("Coordinator-Centric Swarm Tools", () => {
|
|
|
1004
1005
|
expect(result).toContain("(see title)");
|
|
1005
1006
|
|
|
1006
1007
|
// Check fallback for empty files
|
|
1007
|
-
expect(result).toContain(
|
|
1008
|
-
"(no specific files assigned - use your judgment)",
|
|
1009
|
-
);
|
|
1008
|
+
expect(result).toContain("(no specific files - use judgment)");
|
|
1010
1009
|
|
|
1011
1010
|
// Check fallback for missing context
|
|
1012
|
-
expect(result).toContain("(none
|
|
1011
|
+
expect(result).toContain("(none)");
|
|
1013
1012
|
});
|
|
1014
1013
|
|
|
1015
1014
|
it("handles files with special characters", () => {
|
|
1016
1015
|
const result = formatSubtaskPromptV2({
|
|
1016
|
+
bead_id: "bd-789.1",
|
|
1017
|
+
epic_id: "bd-789",
|
|
1017
1018
|
subtask_title: "Handle paths",
|
|
1018
1019
|
subtask_description: "Test file paths",
|
|
1019
1020
|
files: [
|
|
@@ -1030,51 +1031,39 @@ describe("Coordinator-Centric Swarm Tools", () => {
|
|
|
1030
1031
|
describe("SUBTASK_PROMPT_V2", () => {
|
|
1031
1032
|
it("contains expected sections", () => {
|
|
1032
1033
|
// Check all main sections are present in the template
|
|
1033
|
-
expect(SUBTASK_PROMPT_V2).toContain("##
|
|
1034
|
+
expect(SUBTASK_PROMPT_V2).toContain("## Task");
|
|
1034
1035
|
expect(SUBTASK_PROMPT_V2).toContain("{subtask_title}");
|
|
1035
1036
|
expect(SUBTASK_PROMPT_V2).toContain("{subtask_description}");
|
|
1036
1037
|
|
|
1037
|
-
expect(SUBTASK_PROMPT_V2).toContain("## Files
|
|
1038
|
+
expect(SUBTASK_PROMPT_V2).toContain("## Files");
|
|
1038
1039
|
expect(SUBTASK_PROMPT_V2).toContain("{file_list}");
|
|
1039
1040
|
|
|
1040
1041
|
expect(SUBTASK_PROMPT_V2).toContain("## Context");
|
|
1041
1042
|
expect(SUBTASK_PROMPT_V2).toContain("{shared_context}");
|
|
1042
1043
|
|
|
1043
|
-
expect(SUBTASK_PROMPT_V2).toContain("##
|
|
1044
|
-
expect(SUBTASK_PROMPT_V2).toContain("Read first");
|
|
1045
|
-
expect(SUBTASK_PROMPT_V2).toContain("Plan your approach");
|
|
1046
|
-
expect(SUBTASK_PROMPT_V2).toContain("Make the changes");
|
|
1047
|
-
expect(SUBTASK_PROMPT_V2).toContain("Verify");
|
|
1048
|
-
|
|
1049
|
-
expect(SUBTASK_PROMPT_V2).toContain("## When Complete");
|
|
1050
|
-
expect(SUBTASK_PROMPT_V2).toContain('"success"');
|
|
1051
|
-
expect(SUBTASK_PROMPT_V2).toContain('"summary"');
|
|
1052
|
-
expect(SUBTASK_PROMPT_V2).toContain('"files_modified"');
|
|
1044
|
+
expect(SUBTASK_PROMPT_V2).toContain("## Workflow");
|
|
1053
1045
|
});
|
|
1054
1046
|
|
|
1055
|
-
it("
|
|
1056
|
-
// V2 prompt
|
|
1057
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1058
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1059
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1060
|
-
expect(SUBTASK_PROMPT_V2).not.toContain("send_message");
|
|
1047
|
+
it("DOES contain Agent Mail instructions", () => {
|
|
1048
|
+
// V2 prompt tells agents to USE Agent Mail
|
|
1049
|
+
expect(SUBTASK_PROMPT_V2).toContain("Agent Mail");
|
|
1050
|
+
expect(SUBTASK_PROMPT_V2).toContain("agentmail_send");
|
|
1051
|
+
expect(SUBTASK_PROMPT_V2).toContain("thread_id");
|
|
1061
1052
|
});
|
|
1062
1053
|
|
|
1063
|
-
it("
|
|
1064
|
-
// V2 prompt
|
|
1065
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1066
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1067
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1068
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1069
|
-
expect(SUBTASK_PROMPT_V2).
|
|
1070
|
-
expect(SUBTASK_PROMPT_V2).not.toContain("swarm_complete");
|
|
1054
|
+
it("DOES contain beads instructions", () => {
|
|
1055
|
+
// V2 prompt tells agents to USE beads
|
|
1056
|
+
expect(SUBTASK_PROMPT_V2).toContain("{bead_id}");
|
|
1057
|
+
expect(SUBTASK_PROMPT_V2).toContain("{epic_id}");
|
|
1058
|
+
expect(SUBTASK_PROMPT_V2).toContain("beads_update");
|
|
1059
|
+
expect(SUBTASK_PROMPT_V2).toContain("beads_create");
|
|
1060
|
+
expect(SUBTASK_PROMPT_V2).toContain("swarm_complete");
|
|
1071
1061
|
});
|
|
1072
1062
|
|
|
1073
|
-
it("
|
|
1074
|
-
|
|
1075
|
-
expect(SUBTASK_PROMPT_V2).toContain("
|
|
1076
|
-
expect(SUBTASK_PROMPT_V2).toContain(
|
|
1077
|
-
expect(SUBTASK_PROMPT_V2).toContain('"blocker"');
|
|
1063
|
+
it("instructs agents to communicate", () => {
|
|
1064
|
+
expect(SUBTASK_PROMPT_V2).toContain("Never work silently");
|
|
1065
|
+
expect(SUBTASK_PROMPT_V2).toContain("Report progress");
|
|
1066
|
+
expect(SUBTASK_PROMPT_V2).toContain("coordinator");
|
|
1078
1067
|
});
|
|
1079
1068
|
});
|
|
1080
1069
|
});
|
package/src/swarm.ts
CHANGED
|
@@ -360,72 +360,65 @@ Before writing code:
|
|
|
360
360
|
Begin work on your subtask now.`;
|
|
361
361
|
|
|
362
362
|
/**
|
|
363
|
-
*
|
|
363
|
+
* Streamlined subtask prompt (V2) - still uses Agent Mail and beads
|
|
364
364
|
*
|
|
365
|
-
* This
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
* Key differences from V1:
|
|
369
|
-
* - No Agent Mail instructions (subagents can't use it)
|
|
370
|
-
* - No beads instructions (subagents can't use it)
|
|
371
|
-
* - Expects structured JSON response for coordinator to process
|
|
365
|
+
* This is a cleaner version of SUBTASK_PROMPT that's easier to parse.
|
|
366
|
+
* Agents MUST use Agent Mail for communication and beads for tracking.
|
|
372
367
|
*/
|
|
373
|
-
export const SUBTASK_PROMPT_V2 = `You are
|
|
368
|
+
export const SUBTASK_PROMPT_V2 = `You are a swarm agent working on: **{subtask_title}**
|
|
374
369
|
|
|
375
|
-
##
|
|
376
|
-
**
|
|
370
|
+
## Identity
|
|
371
|
+
- **Bead ID**: {bead_id}
|
|
372
|
+
- **Epic ID**: {epic_id}
|
|
377
373
|
|
|
374
|
+
## Task
|
|
378
375
|
{subtask_description}
|
|
379
376
|
|
|
380
|
-
## Files
|
|
377
|
+
## Files (exclusive reservation)
|
|
381
378
|
{file_list}
|
|
382
379
|
|
|
383
|
-
|
|
380
|
+
Only modify these files. Need others? Message the coordinator.
|
|
384
381
|
|
|
385
382
|
## Context
|
|
386
383
|
{shared_context}
|
|
387
384
|
|
|
388
|
-
##
|
|
389
|
-
|
|
390
|
-
1. **Read first** - Understand the current state of the files before making changes
|
|
391
|
-
2. **Plan your approach** - Think through what changes are needed
|
|
392
|
-
3. **Make the changes** - Implement the required functionality
|
|
393
|
-
4. **Verify** - Check that your changes work (run tests/typecheck if applicable)
|
|
385
|
+
## MANDATORY: Use These Tools
|
|
394
386
|
|
|
395
|
-
|
|
387
|
+
### Agent Mail - communicate with the swarm
|
|
388
|
+
\`\`\`typescript
|
|
389
|
+
// Report progress, ask questions, announce blockers
|
|
390
|
+
agentmail_send({
|
|
391
|
+
to: ["coordinator"],
|
|
392
|
+
subject: "Progress update",
|
|
393
|
+
body: "What you did or need",
|
|
394
|
+
thread_id: "{epic_id}"
|
|
395
|
+
})
|
|
396
|
+
\`\`\`
|
|
396
397
|
|
|
397
|
-
|
|
398
|
+
### Beads - track your work
|
|
399
|
+
- **Blocked?** \`beads_update({ id: "{bead_id}", status: "blocked" })\`
|
|
400
|
+
- **Found bug?** \`beads_create({ title: "Bug description", type: "bug" })\`
|
|
401
|
+
- **Done?** \`swarm_complete({ bead_id: "{bead_id}", summary: "What you did", files_touched: [...] })\`
|
|
398
402
|
|
|
399
|
-
|
|
400
|
-
{
|
|
401
|
-
"success": true,
|
|
402
|
-
"summary": "Brief description of what you accomplished",
|
|
403
|
-
"files_modified": ["list", "of", "files", "you", "changed"],
|
|
404
|
-
"files_created": ["any", "new", "files"],
|
|
405
|
-
"issues_found": ["any problems or concerns discovered"],
|
|
406
|
-
"tests_passed": true,
|
|
407
|
-
"notes": "Any additional context for the coordinator"
|
|
408
|
-
}
|
|
409
|
-
\`\`\`
|
|
403
|
+
## Workflow
|
|
410
404
|
|
|
411
|
-
|
|
405
|
+
1. **Read** the files first
|
|
406
|
+
2. **Plan** your approach (message coordinator if complex)
|
|
407
|
+
3. **Implement** the changes
|
|
408
|
+
4. **Verify** (typecheck, tests)
|
|
409
|
+
5. **Report** progress via Agent Mail
|
|
410
|
+
6. **Complete** with swarm_complete when done
|
|
412
411
|
|
|
413
|
-
|
|
414
|
-
{
|
|
415
|
-
"success": false,
|
|
416
|
-
"summary": "What you attempted",
|
|
417
|
-
"blocker": "Description of what's blocking you",
|
|
418
|
-
"files_modified": [],
|
|
419
|
-
"suggestions": ["possible", "solutions"]
|
|
420
|
-
}
|
|
421
|
-
\`\`\`
|
|
412
|
+
**Never work silently.** Communicate progress and blockers immediately.
|
|
422
413
|
|
|
423
|
-
Begin
|
|
414
|
+
Begin now.`;
|
|
424
415
|
|
|
425
416
|
/**
|
|
426
417
|
* Format the V2 subtask prompt for a specific agent
|
|
427
418
|
*/
|
|
428
419
|
export function formatSubtaskPromptV2(params: {
|
|
420
|
+
bead_id: string;
|
|
421
|
+
epic_id: string;
|
|
429
422
|
subtask_title: string;
|
|
430
423
|
subtask_description: string;
|
|
431
424
|
files: string[];
|
|
@@ -434,15 +427,17 @@ export function formatSubtaskPromptV2(params: {
|
|
|
434
427
|
const fileList =
|
|
435
428
|
params.files.length > 0
|
|
436
429
|
? params.files.map((f) => `- \`${f}\``).join("\n")
|
|
437
|
-
: "(no specific files
|
|
430
|
+
: "(no specific files - use judgment)";
|
|
438
431
|
|
|
439
|
-
return SUBTASK_PROMPT_V2.replace(
|
|
432
|
+
return SUBTASK_PROMPT_V2.replace(/{bead_id}/g, params.bead_id)
|
|
433
|
+
.replace(/{epic_id}/g, params.epic_id)
|
|
434
|
+
.replace("{subtask_title}", params.subtask_title)
|
|
440
435
|
.replace(
|
|
441
436
|
"{subtask_description}",
|
|
442
437
|
params.subtask_description || "(see title)",
|
|
443
438
|
)
|
|
444
439
|
.replace("{file_list}", fileList)
|
|
445
|
-
.replace("{shared_context}", params.shared_context || "(none
|
|
440
|
+
.replace("{shared_context}", params.shared_context || "(none)");
|
|
446
441
|
}
|
|
447
442
|
|
|
448
443
|
/**
|
|
@@ -1507,15 +1502,15 @@ export const swarm_subtask_prompt = tool({
|
|
|
1507
1502
|
/**
|
|
1508
1503
|
* Prepare a subtask for spawning with Task tool (V2 prompt)
|
|
1509
1504
|
*
|
|
1510
|
-
*
|
|
1511
|
-
* the V2 template (no Agent Mail/beads instructions - coordinator handles coordination).
|
|
1505
|
+
* Generates a streamlined prompt that tells agents to USE Agent Mail and beads.
|
|
1512
1506
|
* Returns JSON that can be directly used with Task tool.
|
|
1513
1507
|
*/
|
|
1514
1508
|
export const swarm_spawn_subtask = tool({
|
|
1515
1509
|
description:
|
|
1516
|
-
"Prepare a subtask for spawning
|
|
1510
|
+
"Prepare a subtask for spawning. Returns prompt with Agent Mail/beads instructions.",
|
|
1517
1511
|
args: {
|
|
1518
1512
|
bead_id: tool.schema.string().describe("Subtask bead ID"),
|
|
1513
|
+
epic_id: tool.schema.string().describe("Parent epic bead ID"),
|
|
1519
1514
|
subtask_title: tool.schema.string().describe("Subtask title"),
|
|
1520
1515
|
subtask_description: tool.schema
|
|
1521
1516
|
.string()
|
|
@@ -1531,6 +1526,8 @@ export const swarm_spawn_subtask = tool({
|
|
|
1531
1526
|
},
|
|
1532
1527
|
async execute(args) {
|
|
1533
1528
|
const prompt = formatSubtaskPromptV2({
|
|
1529
|
+
bead_id: args.bead_id,
|
|
1530
|
+
epic_id: args.epic_id,
|
|
1534
1531
|
subtask_title: args.subtask_title,
|
|
1535
1532
|
subtask_description: args.subtask_description || "",
|
|
1536
1533
|
files: args.files,
|
|
@@ -1541,6 +1538,7 @@ export const swarm_spawn_subtask = tool({
|
|
|
1541
1538
|
{
|
|
1542
1539
|
prompt,
|
|
1543
1540
|
bead_id: args.bead_id,
|
|
1541
|
+
epic_id: args.epic_id,
|
|
1544
1542
|
files: args.files,
|
|
1545
1543
|
},
|
|
1546
1544
|
null,
|