opencodekit 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/template/.opencode/agent/planner.md +3 -2
- package/dist/template/.opencode/command/accessibility-check.md +293 -30
- package/dist/template/.opencode/command/analyze-mockup.md +406 -20
- package/dist/template/.opencode/command/analyze-project.md +439 -30
- package/dist/template/.opencode/command/brainstorm.md +288 -5
- package/dist/template/.opencode/command/commit.md +226 -17
- package/dist/template/.opencode/command/create.md +138 -35
- package/dist/template/.opencode/command/design-audit.md +477 -29
- package/dist/template/.opencode/command/design.md +609 -6
- package/dist/template/.opencode/command/edit-image.md +223 -20
- package/dist/template/.opencode/command/finish.md +162 -71
- package/dist/template/.opencode/command/fix-ci.md +296 -24
- package/dist/template/.opencode/command/fix-types.md +345 -13
- package/dist/template/.opencode/command/fix-ui.md +293 -13
- package/dist/template/.opencode/command/fix.md +256 -9
- package/dist/template/.opencode/command/generate-diagram.md +327 -26
- package/dist/template/.opencode/command/generate-icon.md +266 -22
- package/dist/template/.opencode/command/generate-image.md +232 -12
- package/dist/template/.opencode/command/generate-pattern.md +234 -20
- package/dist/template/.opencode/command/generate-storyboard.md +231 -21
- package/dist/template/.opencode/command/handoff.md +202 -30
- package/dist/template/.opencode/command/implement.md +162 -50
- package/dist/template/.opencode/command/import-plan.md +247 -51
- package/dist/template/.opencode/command/init.md +154 -35
- package/dist/template/.opencode/command/integration-test.md +405 -24
- package/dist/template/.opencode/command/issue.md +171 -21
- package/dist/template/.opencode/command/new-feature.md +382 -54
- package/dist/template/.opencode/command/plan.md +144 -118
- package/dist/template/.opencode/command/pr.md +229 -28
- package/dist/template/.opencode/command/quick-build.md +234 -5
- package/dist/template/.opencode/command/research-and-implement.md +436 -12
- package/dist/template/.opencode/command/research-ui.md +444 -34
- package/dist/template/.opencode/command/research.md +173 -45
- package/dist/template/.opencode/command/restore-image.md +416 -22
- package/dist/template/.opencode/command/resume.md +439 -63
- package/dist/template/.opencode/command/revert-feature.md +341 -64
- package/dist/template/.opencode/command/review-codebase.md +193 -4
- package/dist/template/.opencode/command/skill-create.md +506 -14
- package/dist/template/.opencode/command/skill-optimize.md +487 -16
- package/dist/template/.opencode/command/status.md +320 -60
- package/dist/template/.opencode/command/summarize.md +374 -33
- package/dist/template/.opencode/command/triage.md +355 -0
- package/dist/template/.opencode/command/ui-review.md +292 -25
- package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
- package/package.json +1 -1
|
@@ -1,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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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: "
|
|
77
|
-
pri:
|
|
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
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
163
|
+
### Estimation Inference
|
|
91
164
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
175
|
+
### Tag Inference
|
|
98
176
|
|
|
99
|
-
|
|
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
|
-
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
220
|
+
Created so far:
|
|
221
|
+
- bd-abc123: Epic: User Auth
|
|
222
|
+
- bd-def456: Issue: Login form
|
|
118
223
|
|
|
119
|
-
|
|
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
|
-
|
|
137
|
-
|
|
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
|
-
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Phase 9: Polish (Optional)
|
|
274
|
+
|
|
275
|
+
If user approves suggestions, update the beads:
|
|
143
276
|
|
|
144
|
-
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
├──
|
|
160
|
-
│ ├──
|
|
161
|
-
│ └──
|
|
162
|
-
├──
|
|
163
|
-
│ └──
|
|
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
|
-
|
|
167
|
-
|
|
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()` |
|