opencodekit 0.9.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +116 -47
  3. package/dist/template/.opencode/agent/build.md +16 -48
  4. package/dist/template/.opencode/agent/explore.md +13 -34
  5. package/dist/template/.opencode/agent/planner.md +41 -11
  6. package/dist/template/.opencode/agent/review.md +2 -23
  7. package/dist/template/.opencode/agent/rush.md +24 -65
  8. package/dist/template/.opencode/agent/scout.md +5 -21
  9. package/dist/template/.opencode/agent/vision.md +0 -14
  10. package/dist/template/.opencode/command/accessibility-check.md +293 -30
  11. package/dist/template/.opencode/command/analyze-mockup.md +406 -20
  12. package/dist/template/.opencode/command/analyze-project.md +439 -30
  13. package/dist/template/.opencode/command/brainstorm.md +288 -5
  14. package/dist/template/.opencode/command/commit.md +226 -17
  15. package/dist/template/.opencode/command/create.md +138 -35
  16. package/dist/template/.opencode/command/design-audit.md +477 -29
  17. package/dist/template/.opencode/command/design.md +609 -6
  18. package/dist/template/.opencode/command/edit-image.md +223 -20
  19. package/dist/template/.opencode/command/finish.md +162 -71
  20. package/dist/template/.opencode/command/fix-ci.md +296 -24
  21. package/dist/template/.opencode/command/fix-types.md +345 -13
  22. package/dist/template/.opencode/command/fix-ui.md +293 -13
  23. package/dist/template/.opencode/command/fix.md +256 -9
  24. package/dist/template/.opencode/command/generate-diagram.md +327 -26
  25. package/dist/template/.opencode/command/generate-icon.md +266 -22
  26. package/dist/template/.opencode/command/generate-image.md +232 -12
  27. package/dist/template/.opencode/command/generate-pattern.md +234 -20
  28. package/dist/template/.opencode/command/generate-storyboard.md +231 -21
  29. package/dist/template/.opencode/command/handoff.md +202 -30
  30. package/dist/template/.opencode/command/implement.md +162 -50
  31. package/dist/template/.opencode/command/import-plan.md +247 -51
  32. package/dist/template/.opencode/command/init.md +154 -35
  33. package/dist/template/.opencode/command/integration-test.md +405 -24
  34. package/dist/template/.opencode/command/issue.md +171 -21
  35. package/dist/template/.opencode/command/new-feature.md +382 -54
  36. package/dist/template/.opencode/command/plan.md +144 -118
  37. package/dist/template/.opencode/command/pr.md +229 -28
  38. package/dist/template/.opencode/command/quick-build.md +234 -5
  39. package/dist/template/.opencode/command/research-and-implement.md +436 -12
  40. package/dist/template/.opencode/command/research-ui.md +444 -34
  41. package/dist/template/.opencode/command/research.md +173 -45
  42. package/dist/template/.opencode/command/restore-image.md +416 -22
  43. package/dist/template/.opencode/command/resume.md +439 -63
  44. package/dist/template/.opencode/command/revert-feature.md +341 -64
  45. package/dist/template/.opencode/command/review-codebase.md +193 -4
  46. package/dist/template/.opencode/command/skill-create.md +506 -14
  47. package/dist/template/.opencode/command/skill-optimize.md +487 -16
  48. package/dist/template/.opencode/command/status.md +320 -60
  49. package/dist/template/.opencode/command/summarize.md +374 -33
  50. package/dist/template/.opencode/command/triage.md +355 -0
  51. package/dist/template/.opencode/command/ui-review.md +292 -25
  52. package/dist/template/.opencode/plugin/README.md +110 -98
  53. package/dist/template/.opencode/plugin/compactor.ts +95 -171
  54. package/dist/template/.opencode/plugin/enforcer.ts +177 -127
  55. package/dist/template/.opencode/plugin/injector.ts +150 -0
  56. package/dist/template/.opencode/plugin/lib/notify.ts +86 -0
  57. package/dist/template/.opencode/plugin/notification.ts +57 -123
  58. package/dist/template/.opencode/plugin/truncator.ts +60 -166
  59. package/dist/template/.opencode/skill/mqdh/SKILL.md +161 -0
  60. package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
  61. package/dist/template/.opencode/skill/v0/SKILL.md +154 -0
  62. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Import external plan into Beads - create epics and issues with dependencies
3
- argument-hint: "<plan-file.md> [epic-prefix]"
3
+ argument-hint: "<plan-file.md> [--prefix=<epic-prefix>] [--dry-run] [--force]"
4
4
  agent: build
5
5
  ---
6
6
 
@@ -10,23 +10,68 @@ agent: build
10
10
 
11
11
  Import a markdown plan into Beads epics and issues. Follows Steve Yegge's "plan outside, import inside" pattern.
12
12
 
13
+ ## Parse Arguments
14
+
15
+ | Argument | Default | Description |
16
+ | ----------- | -------- | ---------------------------------- |
17
+ | Plan file | required | Path to markdown plan |
18
+ | `--prefix` | none | Prefix for epic titles |
19
+ | `--dry-run` | false | Preview without creating beads |
20
+ | `--force` | false | Import even if duplicates detected |
21
+
22
+ ---
23
+
13
24
  ## Phase 1: Load Plan
14
25
 
15
26
  Read the plan file:
16
27
 
17
28
  ```bash
18
- cat $ARGUMENTS
29
+ read $ARGUMENTS
19
30
  ```
20
31
 
21
32
  If file not found: "Plan file not found. Provide path to markdown plan."
22
33
 
23
- ## Phase 2: Analyze Structure
34
+ ---
35
+
36
+ ## Phase 2: Duplicate Detection
37
+
38
+ Before importing, check for existing beads with similar titles:
39
+
40
+ ```typescript
41
+ bd_ls({ status: "all", limit: 50, offset: 0 });
42
+ ```
43
+
44
+ Compare plan titles against existing beads:
45
+
46
+ ```
47
+ Duplicate Check:
48
+ ━━━━━━━━━━━━━━━━
49
+
50
+ ⚠ Potential duplicates found:
51
+ - "User Authentication" similar to existing bd-abc123: "Auth System"
52
+ - "Create login form" similar to existing bd-def456: "Login Form Component"
53
+
54
+ Options:
55
+ 1. Skip duplicates (import only new items)
56
+ 2. Force import (create duplicates)
57
+ 3. Cancel import
58
+
59
+ Select option (1/2/3):
60
+ ```
61
+
62
+ If `--force` flag set, skip this check and import everything.
63
+
64
+ ---
65
+
66
+ ## Phase 3: Analyze Structure
24
67
 
25
68
  Parse the plan for:
26
69
 
27
70
  - **Epics**: Top-level sections (## headers)
28
71
  - **Issues**: Sub-sections or task lists (### headers, - [ ] items)
29
72
  - **Dependencies**: References between sections, "after X", "requires Y"
73
+ - **Estimates**: Size markers (S, M, L, XL, or time estimates)
74
+ - **Tags**: Hashtags or category markers (#frontend, #backend, etc.)
30
75
 
31
76
  Report:
32
77
 
@@ -37,66 +82,109 @@ Plan Analysis: [filename]
37
82
  Epics found: [count]
38
83
  Issues found: [count]
39
84
  Dependencies: [count]
85
+ Estimated effort: [total hours/points]
40
86
 
41
87
  Structure:
42
- ├── [Epic 1 title] ([issue count] issues)
43
- │ ├── [Issue 1]
44
- │ └── [Issue 2]
45
- ├── [Epic 2 title] ([issue count] issues)
46
- │ └── [Issue 1] → depends on [Epic 1/Issue 2]
88
+ ├── [Epic 1 title] ([issue count] issues, [estimate])
89
+ │ ├── [Issue 1] [S] #frontend
90
+ │ └── [Issue 2] [M] #backend → depends on Issue 1
91
+ ├── [Epic 2 title] ([issue count] issues, [estimate])
92
+ │ └── [Issue 1] [L] → depends on [Epic 1/Issue 2]
47
93
  └── ...
48
94
 
49
95
  Proceed with import? (yes/modify/cancel)
50
96
  ```
51
97
 
52
- **STOP and wait for approval.**
98
+ **STOP and wait for approval** (unless `--dry-run`, then just show preview).
99
+
100
+ ---
53
101
 
54
- ## Phase 3: Create Epics
102
+ ## Phase 4: Create Epics
55
103
 
56
104
  For each epic (top-level section):
57
105
 
58
106
  ```typescript
59
107
  bd_add({
60
- title: "[Epic title]",
108
+ title: "[prefix][Epic title]",
61
109
  type: "epic",
62
110
  pri: 2,
63
111
  desc: "[description from plan]",
112
+ tags: ["imported", ...inferred_tags],
64
113
  });
65
114
  ```
66
115
 
67
116
  Store epic IDs for dependency linking.
68
117
 
69
- ## Phase 4: Create Issues
118
+ **Progress feedback:**
119
+
120
+ ```
121
+ Creating epics... [1/3] ████░░░░░░ User Authentication
122
+ Creating epics... [2/3] ██████░░░░ Dashboard
123
+ Creating epics... [3/3] ██████████ Settings ✓
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Phase 5: Create Issues
70
129
 
71
130
  For each issue under an epic:
72
131
 
73
132
  ```typescript
74
133
  bd_add({
75
134
  title: "[Issue title]",
76
- type: "task",
77
- pri: 2,
78
- desc: "[description]",
135
+ type: "<inferred-type>",
136
+ pri: <inferred-priority>,
137
+ desc: "[description]\n\nEstimate: [size]\nSource: [plan-file]",
79
138
  parent: "<epic-id>",
139
+ tags: [...inferred_tags]
80
140
  });
81
141
  ```
82
142
 
83
- **Infer type from content:**
143
+ ### Type Inference
144
+
145
+ | Content Pattern | Type |
146
+ | --------------------------------- | ------- |
147
+ | "fix", "bug", "error", "broken" | bug |
148
+ | "test", "spec", "coverage" | task |
149
+ | "refactor", "cleanup", "optimize" | task |
150
+ | "docs", "document", "readme" | docs |
151
+ | Default | feature |
152
+
153
+ ### Priority Inference
84
154
 
85
- - Contains "fix", "bug", "error" → `-t bug`
86
- - Contains "test", "spec" → `-t task`
87
- - Contains "refactor", "cleanup" `-t chore`
88
- - Default `-t feature`
155
+ | Marker | Priority |
156
+ | ------------------------------------- | -------- |
157
+ | "critical", "urgent", "blocker", "P0" | 0 |
158
+ | "important", "high", "P1" | 1 |
159
+ | Default | 2 |
160
+ | "low", "nice to have", "P3" | 3 |
161
+ | "backlog", "someday", "P4" | 4 |
89
162
 
90
- **Infer priority from markers:**
163
+ ### Estimation Inference
91
164
 
92
- - "critical", "urgent", "blocker" `-p 0`
93
- - "important", "high" `-p 1`
94
- - Default `-p 2`
95
- - "low", "nice to have" `-p 3`
165
+ | Marker | Meaning | Suggested Hours |
166
+ | ------------------- | -------------- | --------------- |
167
+ | XS, "trivial" | Extra small | 1-2 hours |
168
+ | S, "small" | Small | 2-4 hours |
169
+ | M, "medium" | Medium | 4-8 hours |
170
+ | L, "large" | Large | 1-2 days |
171
+ | XL, "extra large" | Extra large | 3-5 days |
172
+ | "[N]h", "[N] hours" | Explicit hours | N hours |
173
+ | "[N]d", "[N] days" | Explicit days | N \* 8 hours |
96
174
 
97
- ## Phase 5: Link Dependencies
175
+ ### Tag Inference
98
176
 
99
- For issues with dependencies, use the `deps` parameter when creating:
177
+ Detect from content and extract:
178
+
179
+ - `#frontend`, `#backend`, `#devops`, `#design`
180
+ - `@assignee` patterns
181
+ - `[component-name]` references
182
+
183
+ ---
184
+
185
+ ## Phase 6: Link Dependencies
186
+
187
+ For issues with dependencies, use the `deps` parameter:
100
188
 
101
189
  ```typescript
102
190
  bd_add({
@@ -107,16 +195,53 @@ bd_add({
107
195
  });
108
196
  ```
109
197
 
110
- Common patterns to detect:
198
+ ### Dependency Patterns
199
+
200
+ | Pattern | Interpretation |
201
+ | --------------------------- | ---------------------- |
202
+ | "after [X]" | X blocks this |
203
+ | "requires [Y]" | Y blocks this |
204
+ | "depends on [Z]" | Z blocks this |
205
+ | "before [W]" | This blocks W |
206
+ | "blocked by [V]" | V blocks this |
207
+ | Numbered steps (1, 2, 3...) | Sequential blocking |
208
+ | Indented sub-items | Parent blocks children |
111
209
 
112
- - "after [X]" → X blocks this
113
- - "requires [Y]" → Y blocks this
114
- - "before [Z]" this blocks Z
115
- - Numbered steps → sequential blocking
210
+ ---
211
+
212
+ ## Phase 7: Rollback on Failure
213
+
214
+ If any creation fails, offer rollback:
215
+
216
+ ```
217
+ ❌ Error creating issue "Setup database"
218
+ Reason: [error message]
116
219
 
117
- ## Phase 6: Review Pass
220
+ Created so far:
221
+ - bd-abc123: Epic: User Auth
222
+ - bd-def456: Issue: Login form
118
223
 
119
- Ask agent to review the imported beads:
224
+ Options:
225
+ 1. Rollback (delete created beads)
226
+ 2. Continue (skip failed, proceed with rest)
227
+ 3. Abort (keep created, stop here)
228
+
229
+ Select option (1/2/3):
230
+ ```
231
+
232
+ Rollback implementation:
233
+
234
+ ```typescript
235
+ // Delete in reverse order
236
+ bd_update({ id: "bd-def456", status: "cancelled" });
237
+ bd_update({ id: "bd-abc123", status: "cancelled" });
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Phase 8: Review Pass
243
+
244
+ After import, review for quality:
120
245
 
121
246
  ```
122
247
  Import complete. Running review pass...
@@ -128,45 +253,94 @@ For each epic, verify:
128
253
  - Description captures intent
129
254
  - Issues are properly scoped
130
255
  - Dependencies make sense
256
+ - Estimates are reasonable
131
257
 
132
258
  Suggest improvements:
133
259
 
134
260
  ```
135
261
  Review Suggestions:
136
- - <bead-id>: [suggestion]
137
- - <bead-id>: [suggestion]
262
+ ━━━━━━━━━━━━━━━━━━
263
+
264
+ - bd-abc123: Title vague → "Implement Auth" → "Implement JWT Authentication"
265
+ - bd-def456: Missing estimate → Suggest: M (4-8 hours)
266
+ - bd-ghi789: Circular dependency detected with bd-jkl012
138
267
 
139
268
  Apply suggestions? (yes/no/select)
140
269
  ```
141
270
 
142
- ## Phase 7: Polish (Optional)
271
+ ---
272
+
273
+ ## Phase 9: Polish (Optional)
274
+
275
+ If user approves suggestions, update the beads:
143
276
 
144
- If user approves suggestions, update the spec files in `.beads/artifacts/<bead-id>/` directly.
277
+ ```typescript
278
+ bd_update({ id: "bd-abc123", title: "Implement JWT Authentication" });
279
+ ```
145
280
 
146
281
  Iterate up to 5 times if user requests more refinement.
147
282
 
283
+ ---
284
+
148
285
  ## Output
149
286
 
150
287
  ```
151
288
  Plan Imported: [filename]
152
289
  ━━━━━━━━━━━━━━━━━━━━━━━
153
290
 
154
- Epics: [count]
155
- Issues: [count]
156
- Dependencies: [count]
291
+ Summary:
292
+ ├── Epics: [count]
293
+ ├── Issues: [count]
294
+ ├── Dependencies: [count]
295
+ ├── Estimated effort: [total]
296
+ └── Duplicates skipped: [count]
157
297
 
158
298
  Created:
159
- ├── <epic-1-id>: [title]
160
- │ ├── <issue-1-id>: [title]
161
- │ └── <issue-2-id>: [title] → blocked by <issue-1-id>
162
- ├── <epic-2-id>: [title]
163
- │ └── <issue-3-id>: [title]
299
+ ├── bd-epic-001: User Authentication
300
+ │ ├── bd-task-001: Create login form [S] #frontend
301
+ │ └── bd-task-002: Implement JWT tokens [M] #backend → blocked by bd-task-001
302
+ ├── bd-epic-002: Dashboard
303
+ │ └── bd-task-003: Dashboard layout [M] #frontend
164
304
  └── ...
165
305
 
166
- Start work: `bd_ls({ status: "ready", limit: 10, offset: 0 })`
167
- First task: /implement <first-unblocked-id>
306
+ Next Steps:
307
+ ├── View ready tasks: bd_ls({ status: "ready" })
308
+ ├── Start first task: /implement bd-task-001
309
+ └── View dependencies: bd_insights()
168
310
  ```
169
311
 
312
+ ---
313
+
314
+ ## Dry Run Mode
315
+
316
+ With `--dry-run`, show what WOULD be created without creating anything:
317
+
318
+ ```bash
319
+ /import-plan docs/feature-plan.md --dry-run
320
+ ```
321
+
322
+ Output:
323
+
324
+ ```
325
+ DRY RUN - No beads will be created
326
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
327
+
328
+ Would create:
329
+ ├── [EPIC] User Authentication (pri: 2)
330
+ │ ├── [feature] Create login form (pri: 2, est: S) #frontend
331
+ │ └── [feature] Implement JWT tokens (pri: 2, est: M) #backend
332
+ │ └── depends on: Create login form
333
+ ├── [EPIC] Dashboard (pri: 2)
334
+ │ └── [feature] Dashboard layout (pri: 2, est: M) #frontend
335
+ └── ...
336
+
337
+ Total: 2 epics, 3 issues, 1 dependency
338
+
339
+ Run without --dry-run to create beads.
340
+ ```
341
+
342
+ ---
343
+
170
344
  ## Example Plan Format
171
345
 
172
346
  The command accepts plans in this format:
@@ -178,15 +352,16 @@ The command accepts plans in this format:
178
352
 
179
353
  Implement secure user authentication system.
180
354
 
181
- ### Issue: Create login form
355
+ ### Issue: Create login form [S] #frontend
182
356
 
183
357
  - Build login form component
184
358
  - Add validation
185
359
  - Connect to auth API
186
360
 
187
- ### Issue: Implement JWT tokens
361
+ ### Issue: Implement JWT tokens [M] #backend
188
362
 
189
363
  After: Create login form
364
+ Priority: high
190
365
 
191
366
  - Generate tokens on login
192
367
  - Validate tokens on requests
@@ -194,8 +369,29 @@ After: Create login form
194
369
 
195
370
  ## Epic: Dashboard
196
371
 
197
- ### Issue: Dashboard layout
372
+ ### Issue: Dashboard layout [M] #frontend
198
373
 
199
374
  - Create responsive grid
200
375
  - Add navigation sidebar
201
376
  ```
377
+
378
+ ---
379
+
380
+ ## Supported Plan Formats
381
+
382
+ | Format | Detection | Notes |
383
+ | ------------------- | --------------- | ----------------------- |
384
+ | Markdown (## / ###) | `.md` extension | Primary format |
385
+ | Task lists (- [ ]) | Checkbox syntax | Converted to issues |
386
+ | Numbered lists | 1. 2. 3. | Sequential dependencies |
387
+
388
+ ---
389
+
390
+ ## Related Commands
391
+
392
+ | Need | Command |
393
+ | ------------------------ | ---------------------- |
394
+ | Create plan from scratch | `/plan` |
395
+ | Execute imported plan | `/implement <bead-id>` |
396
+ | View plan status | `/status` |
397
+ | Create single bead | `bd_add()` |