opencodekit 0.12.4 → 0.12.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -2
- package/dist/template/.opencode/command/accessibility-check.md +7 -10
- package/dist/template/.opencode/command/analyze-mockup.md +3 -16
- package/dist/template/.opencode/command/analyze-project.md +57 -69
- package/dist/template/.opencode/command/brainstorm.md +3 -11
- package/dist/template/.opencode/command/commit.md +10 -18
- package/dist/template/.opencode/command/create.md +4 -8
- package/dist/template/.opencode/command/design-audit.md +24 -51
- package/dist/template/.opencode/command/design.md +10 -17
- package/dist/template/.opencode/command/finish.md +9 -9
- package/dist/template/.opencode/command/fix-ci.md +7 -28
- package/dist/template/.opencode/command/fix-types.md +3 -7
- package/dist/template/.opencode/command/fix-ui.md +5 -11
- package/dist/template/.opencode/command/fix.md +4 -10
- package/dist/template/.opencode/command/handoff.md +8 -14
- package/dist/template/.opencode/command/implement.md +13 -16
- package/dist/template/.opencode/command/import-plan.md +20 -38
- package/dist/template/.opencode/command/init.md +9 -13
- package/dist/template/.opencode/command/integration-test.md +11 -13
- package/dist/template/.opencode/command/issue.md +4 -8
- package/dist/template/.opencode/command/new-feature.md +20 -40
- package/dist/template/.opencode/command/plan.md +8 -12
- package/dist/template/.opencode/command/pr.md +29 -38
- package/dist/template/.opencode/command/quick-build.md +3 -7
- package/dist/template/.opencode/command/research-and-implement.md +4 -6
- package/dist/template/.opencode/command/research.md +10 -7
- package/dist/template/.opencode/command/resume.md +12 -24
- package/dist/template/.opencode/command/revert-feature.md +21 -56
- package/dist/template/.opencode/command/review-codebase.md +21 -23
- package/dist/template/.opencode/command/skill-create.md +1 -5
- package/dist/template/.opencode/command/skill-optimize.md +3 -10
- package/dist/template/.opencode/command/status.md +28 -25
- package/dist/template/.opencode/command/triage.md +19 -31
- package/dist/template/.opencode/command/ui-review.md +6 -13
- package/dist/template/.opencode/command.backup/analyze-project.md +465 -0
- package/dist/template/.opencode/command.backup/finish.md +167 -0
- package/dist/template/.opencode/command.backup/implement.md +143 -0
- package/dist/template/.opencode/command.backup/pr.md +252 -0
- package/dist/template/.opencode/command.backup/status.md +376 -0
- package/dist/template/.opencode/memory/project/SHELL_OUTPUT_MIGRATION_PLAN.md +551 -0
- package/dist/template/.opencode/memory/project/gotchas.md +33 -28
- package/dist/template/.opencode/opencode.json +14 -28
- package/dist/template/.opencode/package.json +1 -3
- package/dist/template/.opencode/plugin/compaction.ts +51 -129
- package/dist/template/.opencode/plugin/handoff.ts +18 -163
- package/dist/template/.opencode/plugin/notification.ts +1 -1
- package/dist/template/.opencode/plugin/package.json +7 -0
- package/dist/template/.opencode/plugin/sessions.ts +185 -651
- package/dist/template/.opencode/plugin/skill-mcp.ts +2 -1
- package/dist/template/.opencode/plugin/truncator.ts +19 -41
- package/dist/template/.opencode/plugin/tsconfig.json +14 -13
- package/dist/template/.opencode/tool/bd-inbox.ts +109 -0
- package/dist/template/.opencode/tool/bd-msg.ts +62 -0
- package/dist/template/.opencode/tool/bd-release.ts +71 -0
- package/dist/template/.opencode/tool/bd-reserve.ts +120 -0
- package/package.json +2 -2
- package/dist/template/.opencode/plugin/beads.ts +0 -1419
- package/dist/template/.opencode/plugin/compactor.ts +0 -107
- package/dist/template/.opencode/plugin/enforcer.ts +0 -190
- package/dist/template/.opencode/plugin/injector.ts +0 -150
|
@@ -22,18 +22,18 @@ skill({ name: "verification-before-completion" });
|
|
|
22
22
|
|
|
23
23
|
Before creating PR, run verification gates:
|
|
24
24
|
|
|
25
|
-
```
|
|
26
|
-
git status --porcelain # Check for uncommitted changes
|
|
25
|
+
```
|
|
26
|
+
!`git status --porcelain` # Check for uncommitted changes
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
If uncommitted changes exist, ask: "Commit these changes first?"
|
|
30
30
|
|
|
31
31
|
Run project gates:
|
|
32
32
|
|
|
33
|
-
```
|
|
34
|
-
npm run build 2>&1 | tail -5
|
|
35
|
-
npm test 2>&1 | tail -10
|
|
36
|
-
npm run lint 2>&1 | tail -5
|
|
33
|
+
```
|
|
34
|
+
!`npm run build 2>&1 | tail -5`
|
|
35
|
+
!`npm test 2>&1 | tail -10`
|
|
36
|
+
!`npm run lint 2>&1 | tail -5`
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
```
|
|
@@ -55,16 +55,16 @@ Fix errors first, then run /pr again.
|
|
|
55
55
|
|
|
56
56
|
## Phase 2: Check for Conflicts
|
|
57
57
|
|
|
58
|
-
```
|
|
59
|
-
git fetch origin main
|
|
60
|
-
git merge-base --is-ancestor origin/main HEAD || git diff origin/main...HEAD --name-only
|
|
58
|
+
```
|
|
59
|
+
!`git fetch origin main`
|
|
60
|
+
!`git merge-base --is-ancestor origin/main HEAD || git diff origin/main...HEAD --name-only`
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
Check for merge conflicts:
|
|
64
64
|
|
|
65
|
-
```
|
|
66
|
-
git merge --no-commit --no-ff origin/main 2>&1 || true
|
|
67
|
-
git merge --abort 2>/dev/null || true
|
|
65
|
+
```
|
|
66
|
+
!`git merge --no-commit --no-ff origin/main 2>&1 || true`
|
|
67
|
+
!`git merge --abort 2>/dev/null || true`
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
If conflicts detected:
|
|
@@ -84,24 +84,24 @@ Resolve conflicts before creating PR:
|
|
|
84
84
|
|
|
85
85
|
**Current state:**
|
|
86
86
|
|
|
87
|
-
```
|
|
88
|
-
git branch --show-current
|
|
89
|
-
git diff main...HEAD --stat
|
|
90
|
-
git log main...HEAD --oneline
|
|
87
|
+
```
|
|
88
|
+
!`git branch --show-current`
|
|
89
|
+
!`git diff main...HEAD --stat`
|
|
90
|
+
!`git log main...HEAD --oneline`
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
**Load bead context (if provided):**
|
|
94
94
|
|
|
95
|
-
```
|
|
96
|
-
|
|
95
|
+
```
|
|
96
|
+
!`bd show $ARGUMENTS`
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
**Load artifacts:**
|
|
100
100
|
|
|
101
|
-
```
|
|
102
|
-
ls .beads/artifacts/<bead-id>/ 2>/dev/null
|
|
103
|
-
cat .beads/artifacts/<bead-id>/spec.md 2>/dev/null | head -30
|
|
104
|
-
cat .beads/artifacts/<bead-id>/review.md 2>/dev/null | head -30
|
|
101
|
+
```
|
|
102
|
+
!`ls .beads/artifacts/<bead-id>/ 2>/dev/null`
|
|
103
|
+
!`cat .beads/artifacts/<bead-id>/spec.md 2>/dev/null | head -30`
|
|
104
|
+
!`cat .beads/artifacts/<bead-id>/review.md 2>/dev/null | head -30`
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
Extract from artifacts:
|
|
@@ -122,7 +122,7 @@ git push -u origin $(git branch --show-current)
|
|
|
122
122
|
Generate PR content from context:
|
|
123
123
|
|
|
124
124
|
```bash
|
|
125
|
-
gh pr create --title "<title>" --body "$(cat <<'EOF'
|
|
125
|
+
gh pr create --title "<title>" --body "$(cat <<'EOF' # Keep as instructional (multi-line)
|
|
126
126
|
## Summary
|
|
127
127
|
|
|
128
128
|
[1-2 sentence description of what this PR does and why]
|
|
@@ -179,13 +179,13 @@ EOF
|
|
|
179
179
|
**For draft PRs (--draft):**
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
gh pr create --draft --title "<title>" --body "..."
|
|
182
|
+
gh pr create --draft --title "<title>" --body "..." # Keep as-is (instructional)
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
## Phase 6: Wait for CI (if --wait)
|
|
186
186
|
|
|
187
|
-
```
|
|
188
|
-
gh pr checks --watch
|
|
187
|
+
```
|
|
188
|
+
!`gh pr checks --watch`
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
Report CI status:
|
|
@@ -204,18 +204,9 @@ CI Status:
|
|
|
204
204
|
|
|
205
205
|
## Phase 7: Update Bead & Sync
|
|
206
206
|
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
body: "PR: <pr-url>\nStatus: [ready/draft]\nCI: [passing/pending]",
|
|
211
|
-
to: "all",
|
|
212
|
-
importance: "normal",
|
|
213
|
-
global: true,
|
|
214
|
-
});
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
```typescript
|
|
218
|
-
bd_sync({ reason: "Sync PR creation" });
|
|
207
|
+
```bash
|
|
208
|
+
bd-msg --subj "PR created" --body "PR: <pr-url>\nStatus: [ready/draft]\nCI: [passing/pending]" --to "all" --importance normal
|
|
209
|
+
bd sync
|
|
219
210
|
```
|
|
220
211
|
|
|
221
212
|
## Output
|
|
@@ -56,10 +56,7 @@ Fast path for trivial tasks. Skip ceremony, keep safety.
|
|
|
56
56
|
|
|
57
57
|
### Step 1: Verify Scope (30 seconds)
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
# Check what files might be involved
|
|
61
|
-
grep -r "[search-term]" src/ --include="*.{ts,tsx}" -l | head -5
|
|
62
|
-
```
|
|
59
|
+
!`grep -r "[search-term]" src/ --include="*.{ts,tsx}" -l | head -5`
|
|
63
60
|
|
|
64
61
|
If more than 1 file: **STOP** → Use `/create $ARGUMENTS` instead.
|
|
65
62
|
|
|
@@ -68,11 +65,10 @@ If more than 1 file: **STOP** → Use `/create $ARGUMENTS` instead.
|
|
|
68
65
|
```bash
|
|
69
66
|
# Stash any existing changes
|
|
70
67
|
git stash push -m "pre-quickbuild-$(date +%s)" 2>/dev/null || true
|
|
71
|
-
|
|
72
|
-
# Note current commit
|
|
73
|
-
git rev-parse HEAD
|
|
74
68
|
```
|
|
75
69
|
|
|
70
|
+
!`git rev-parse HEAD`
|
|
71
|
+
|
|
76
72
|
### Step 3: Make the Change
|
|
77
73
|
|
|
78
74
|
```bash
|
|
@@ -12,10 +12,8 @@ Use this for features with unknowns. For simple changes, use `/fix` or `/impleme
|
|
|
12
12
|
|
|
13
13
|
## Phase 1: Context
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
cat .beads/artifacts/$ARGUMENTS/spec.md
|
|
18
|
-
```
|
|
15
|
+
!`bd show $ARGUMENTS`
|
|
16
|
+
!`cat .beads/artifacts/$ARGUMENTS/spec.md`
|
|
19
17
|
|
|
20
18
|
If no spec exists: "Run `/create $ARGUMENTS` first."
|
|
21
19
|
|
|
@@ -123,8 +121,8 @@ git add -A
|
|
|
123
121
|
git commit -m "$ARGUMENTS: [summary]"
|
|
124
122
|
```
|
|
125
123
|
|
|
126
|
-
```
|
|
127
|
-
|
|
124
|
+
```bash
|
|
125
|
+
bd sync
|
|
128
126
|
```
|
|
129
127
|
|
|
130
128
|
```
|
|
@@ -16,10 +16,15 @@ You're gathering information before implementation. Find answers, document findi
|
|
|
16
16
|
|
|
17
17
|
## Load Context
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
!`bd show $ARGUMENTS`
|
|
20
|
+
!`cat .beads/artifacts/$ARGUMENTS/spec.md`
|
|
21
|
+
|
|
22
|
+
Extract questions that need answering from spec.
|
|
23
|
+
|
|
24
|
+
## Check For Previous Research
|
|
25
|
+
|
|
26
|
+
!`search_session({ query: "[topic keywords]" })`
|
|
27
|
+
!`list_sessions({ project: "current", since: "this week", limit: 5 })`
|
|
23
28
|
|
|
24
29
|
Extract the questions that need answering from the spec.
|
|
25
30
|
|
|
@@ -138,9 +143,7 @@ Write `.beads/artifacts/$ARGUMENTS/research.md`:
|
|
|
138
143
|
|
|
139
144
|
## Sync
|
|
140
145
|
|
|
141
|
-
|
|
142
|
-
bd_sync({ reason: "Sync research findings" });
|
|
143
|
-
```
|
|
146
|
+
!`bd sync`
|
|
144
147
|
|
|
145
148
|
## Output
|
|
146
149
|
|
|
@@ -16,19 +16,15 @@ skill({ name: "beads" });
|
|
|
16
16
|
|
|
17
17
|
## Verify The Task Exists
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
bd show $ARGUMENTS
|
|
21
|
-
```
|
|
19
|
+
!`bd show $ARGUMENTS`
|
|
22
20
|
|
|
23
21
|
If not found, check `bd list --status=all`. Maybe it was closed, or you have the wrong ID.
|
|
24
22
|
|
|
25
23
|
## Check Git State
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
git
|
|
29
|
-
git
|
|
30
|
-
git status --porcelain
|
|
31
|
-
```
|
|
25
|
+
!`git branch --show-current`
|
|
26
|
+
!`git rev-parse --short HEAD`
|
|
27
|
+
!`git status --porcelain`
|
|
32
28
|
|
|
33
29
|
If you're not on the right branch:
|
|
34
30
|
|
|
@@ -40,15 +36,11 @@ If there are uncommitted changes, decide: stash, commit, or discard.
|
|
|
40
36
|
|
|
41
37
|
## Find The Handoff
|
|
42
38
|
|
|
43
|
-
|
|
44
|
-
ls -t .beads/artifacts/$ARGUMENTS/handoffs/ 2>/dev/null | head -1
|
|
45
|
-
```
|
|
39
|
+
!`ls -t .beads/artifacts/$ARGUMENTS/handoffs/ 2>/dev/null | head -1`
|
|
46
40
|
|
|
47
41
|
If a handoff exists, read it:
|
|
48
42
|
|
|
49
|
-
|
|
50
|
-
cat .beads/artifacts/$ARGUMENTS/handoffs/[latest].md
|
|
51
|
-
```
|
|
43
|
+
!`cat .beads/artifacts/$ARGUMENTS/handoffs/[latest].md`
|
|
52
44
|
|
|
53
45
|
The handoff tells you:
|
|
54
46
|
|
|
@@ -83,20 +75,16 @@ Extract from session:
|
|
|
83
75
|
|
|
84
76
|
Read all available context:
|
|
85
77
|
|
|
86
|
-
|
|
87
|
-
cat .beads/artifacts/$ARGUMENTS/
|
|
88
|
-
cat .beads/artifacts/$ARGUMENTS/
|
|
89
|
-
cat .beads/artifacts/$ARGUMENTS/research.md 2>/dev/null
|
|
90
|
-
```
|
|
78
|
+
!`cat .beads/artifacts/$ARGUMENTS/spec.md 2>/dev/null`
|
|
79
|
+
!`cat .beads/artifacts/$ARGUMENTS/plan.md 2>/dev/null`
|
|
80
|
+
!`cat .beads/artifacts/$ARGUMENTS/research.md 2>/dev/null`
|
|
91
81
|
|
|
92
82
|
## Check For Stale Context
|
|
93
83
|
|
|
94
|
-
If
|
|
84
|
+
If handoff is more than 3 days old, things may have changed:
|
|
95
85
|
|
|
96
|
-
|
|
97
|
-
git
|
|
98
|
-
git diff [handoff-commit]..HEAD --stat # What files changed?
|
|
99
|
-
```
|
|
86
|
+
!`git log --oneline -10` # What happened since?
|
|
87
|
+
!`git diff [handoff-commit]..HEAD --stat` # What files changed?
|
|
100
88
|
|
|
101
89
|
If significant changes occurred on main, consider rebasing:
|
|
102
90
|
|
|
@@ -34,16 +34,9 @@ Intelligently revert changes for a bead with comprehensive safety checks.
|
|
|
34
34
|
|
|
35
35
|
Before any action, verify:
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
git
|
|
40
|
-
|
|
41
|
-
# Check CI status
|
|
42
|
-
gh run list --limit 1
|
|
43
|
-
|
|
44
|
-
# Check if on correct branch
|
|
45
|
-
git branch --show-current
|
|
46
|
-
```
|
|
37
|
+
!`git status --short`
|
|
38
|
+
!`gh run list --limit 1`
|
|
39
|
+
!`git branch --show-current`
|
|
47
40
|
|
|
48
41
|
### Safety Gates
|
|
49
42
|
|
|
@@ -52,26 +45,17 @@ git branch --show-current
|
|
|
52
45
|
| Clean working tree | No uncommitted changes | Stash or commit first |
|
|
53
46
|
| CI passing | Latest run succeeded | Warn, confirm continue |
|
|
54
47
|
| Not on main/master | On feature branch | Require `--force` for main |
|
|
55
|
-
| Bead exists | `
|
|
48
|
+
| Bead exists | `bd show` returns data | Abort with error |
|
|
56
49
|
|
|
57
50
|
---
|
|
58
51
|
|
|
59
52
|
## Phase 2: Analyze Bead History
|
|
60
53
|
|
|
61
|
-
|
|
62
|
-
bd_show({ id: "[bead-id]" });
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
# Find all commits for this bead
|
|
67
|
-
git log --oneline --all --grep="[bead-id]"
|
|
68
|
-
|
|
69
|
-
# Show affected files
|
|
70
|
-
git log --name-only --grep="[bead-id]" --pretty=format:""
|
|
54
|
+
!`bd show [bead-id]`
|
|
71
55
|
|
|
72
|
-
|
|
73
|
-
git log --
|
|
74
|
-
|
|
56
|
+
!`git log --oneline --all --grep="[bead-id]"`
|
|
57
|
+
!`git log --name-only --grep="[bead-id]" --pretty=format:""`
|
|
58
|
+
!`git log --shortstat --grep="[bead-id]"`
|
|
75
59
|
|
|
76
60
|
### Impact Report
|
|
77
61
|
|
|
@@ -106,19 +90,12 @@ Lines: +456 / -23
|
|
|
106
90
|
|
|
107
91
|
Before reverting, check what depends on this:
|
|
108
92
|
|
|
109
|
-
|
|
110
|
-
// Check for dependent beads
|
|
111
|
-
bd_ls({ status: "all", limit: 50, offset: 0 });
|
|
112
|
-
// Filter for beads that depend on this one
|
|
113
|
-
```
|
|
93
|
+
!`bd list --status all --limit 50`
|
|
114
94
|
|
|
115
|
-
|
|
116
|
-
# Check for imports of new files
|
|
117
|
-
grep -r "from './auth/" src/ --include="*.ts"
|
|
95
|
+
# Filter for beads that depend on this one
|
|
118
96
|
|
|
119
|
-
|
|
120
|
-
git log --oneline --all -- src/auth/ | grep -v "[bead-id]"
|
|
121
|
-
```
|
|
97
|
+
!`grep -r "from './auth/" src/ --include="*.ts"`
|
|
98
|
+
!`git log --oneline --all -- src/auth/ | grep -v "[bead-id]"`
|
|
122
99
|
|
|
123
100
|
### Downstream Report
|
|
124
101
|
|
|
@@ -204,10 +181,7 @@ To undo this revert later:
|
|
|
204
181
|
|
|
205
182
|
If `--include-migrations` or migrations detected:
|
|
206
183
|
|
|
207
|
-
|
|
208
|
-
# Check for migration files in commits
|
|
209
|
-
git log --name-only --grep="[bead-id]" -- "**/migrations/**"
|
|
210
|
-
```
|
|
184
|
+
!`git log --name-only --grep="[bead-id]" -- "**/migrations/**"`
|
|
211
185
|
|
|
212
186
|
### Migration Revert Strategy
|
|
213
187
|
|
|
@@ -338,17 +312,8 @@ git checkout --ours [file] # Use reverted
|
|
|
338
312
|
|
|
339
313
|
## Phase 10: Update Bead Status
|
|
340
314
|
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
subj: "Reverted: [bead-id]",
|
|
344
|
-
body: "Feature reverted at [timestamp]\nReason: [reason]\nBackup: backup/[bead-id]-pre-revert",
|
|
345
|
-
to: "all",
|
|
346
|
-
importance: "normal",
|
|
347
|
-
global: false,
|
|
348
|
-
});
|
|
349
|
-
|
|
350
|
-
// Optionally close or re-open bead
|
|
351
|
-
bd_reopen({ id: "[bead-id]" });
|
|
315
|
+
```bash
|
|
316
|
+
bd-msg --subj "Reverted: [bead-id]" --body "Feature reverted at [timestamp]\nReason: [reason]\nBackup: backup/[bead-id]-pre-revert" --to "all" --importance normal
|
|
352
317
|
```
|
|
353
318
|
|
|
354
319
|
---
|
|
@@ -401,9 +366,9 @@ git commit -m "restore: [bead-id] from backup"
|
|
|
401
366
|
|
|
402
367
|
## Related Commands
|
|
403
368
|
|
|
404
|
-
| Need | Command
|
|
405
|
-
| -------------------- |
|
|
406
|
-
| View bead history | `
|
|
407
|
-
| Re-implement feature | `/implement [bead-id]`
|
|
408
|
-
| Check status | `/status [bead-id]`
|
|
409
|
-
| Create new feature | `/new-feature`
|
|
369
|
+
| Need | Command |
|
|
370
|
+
| -------------------- | ---------------------- |
|
|
371
|
+
| View bead history | `bd show [bead-id]` |
|
|
372
|
+
| Re-implement feature | `/implement [bead-id]` |
|
|
373
|
+
| Check status | `/status [bead-id]` |
|
|
374
|
+
| Create new feature | `/new-feature` |
|
|
@@ -19,7 +19,7 @@ Parse `$ARGUMENTS` to determine what to review:
|
|
|
19
19
|
| Input | Scope | How to Get Code |
|
|
20
20
|
| ------------------------ | ---------------------- | ------------------------------------------- |
|
|
21
21
|
| File/directory path | That path only | `read` or `glob` + `read` |
|
|
22
|
-
| Bead ID (e.g., `bd-123`) | Implementation vs spec | `
|
|
22
|
+
| Bead ID (e.g., `bd-123`) | Implementation vs spec | `bd show` then `git diff` from spec |
|
|
23
23
|
| PR number (e.g., `#45`) | PR changes | `gh pr diff 45` |
|
|
24
24
|
| `all` or empty | Recent changes | `git diff main...HEAD` or `git diff HEAD~5` |
|
|
25
25
|
|
|
@@ -29,27 +29,31 @@ If bead exists, load spec from `.beads/artifacts/$ID/spec.md` and review against
|
|
|
29
29
|
|
|
30
30
|
Run these checks first (batch for speed):
|
|
31
31
|
|
|
32
|
+
```typescript
|
|
33
|
+
// Type/lint errors
|
|
34
|
+
lsp_lsp_diagnostics(); // for each changed file
|
|
32
35
|
```
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
npm run
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
ast-grep pattern
|
|
40
|
-
ast-grep pattern
|
|
41
|
-
|
|
42
|
-
ast-grep pattern
|
|
43
|
-
|
|
44
|
-
# Test status
|
|
45
|
-
npm test || pytest || cargo test
|
|
36
|
+
|
|
37
|
+
!`npm run type-check || tsc --noEmit`
|
|
38
|
+
!`npm run lint || true`
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// Anti-pattern detection with ast-grep
|
|
42
|
+
ast - grep({ pattern: "console.log($$$)" }); // Debug statements
|
|
43
|
+
ast - grep({ pattern: "any" }); // TypeScript any
|
|
44
|
+
grep({ pattern: "TODO|FIXME|HACK|XXX" });
|
|
45
|
+
ast - grep({ pattern: 'password = "$$$"' }); // Hardcoded secrets
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
!`npm test || pytest || cargo test`
|
|
49
|
+
|
|
48
50
|
Collect all automated findings before manual review.
|
|
49
51
|
|
|
50
52
|
## Phase 3: Manual Review Categories
|
|
51
53
|
|
|
52
|
-
|
|
54
|
+
```typescript
|
|
55
|
+
skill({ name: "requesting-code-review" });
|
|
56
|
+
```
|
|
53
57
|
|
|
54
58
|
Review each category with specific focus:
|
|
55
59
|
|
|
@@ -102,14 +106,8 @@ Review each category with specific focus:
|
|
|
102
106
|
|
|
103
107
|
For each Critical or Important finding:
|
|
104
108
|
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
title: "[Review] <brief issue description>",
|
|
108
|
-
desc: "File: <path>:<line>\nIssue: <what's wrong>\nFix: <how to fix>",
|
|
109
|
-
type: "bug",
|
|
110
|
-
pri: 1, # Critical=0, Important=1, Minor=2
|
|
111
|
-
tags: ["review", "security|perf|maintainability"]
|
|
112
|
-
})
|
|
109
|
+
```bash
|
|
110
|
+
bd create "[Review] <brief issue description>" -t bug -p 1
|
|
113
111
|
```
|
|
114
112
|
|
|
115
113
|
Skip creating beads for Minor issues (just report them).
|
|
@@ -405,9 +405,7 @@ Run test scenarios again until skill guides behavior correctly.
|
|
|
405
405
|
|
|
406
406
|
### File Structure Check
|
|
407
407
|
|
|
408
|
-
|
|
409
|
-
ls -la .opencode/skill/$ARGUMENTS/
|
|
410
|
-
```
|
|
408
|
+
!`ls -la .opencode/skill/$ARGUMENTS/`
|
|
411
409
|
|
|
412
410
|
Expected:
|
|
413
411
|
|
|
@@ -474,8 +472,6 @@ If creating from an existing observation:
|
|
|
474
472
|
/skill-create my-skill --from-observation
|
|
475
473
|
```
|
|
476
474
|
|
|
477
|
-
This will:
|
|
478
|
-
|
|
479
475
|
1. Search observations for patterns
|
|
480
476
|
2. Extract relevant learnings
|
|
481
477
|
3. Pre-populate skill with discovered knowledge
|
|
@@ -20,16 +20,9 @@ skill({ name: "writing-skills" });
|
|
|
20
20
|
|
|
21
21
|
### Find Skill Location
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
ls -la
|
|
26
|
-
|
|
27
|
-
# Check superpowers (shared skills)
|
|
28
|
-
ls -la .opencode/superpowers/skills/$ARGUMENTS/ 2>/dev/null
|
|
29
|
-
|
|
30
|
-
# Check installed skills
|
|
31
|
-
ls -la ~/.opencode/skills/$ARGUMENTS/ 2>/dev/null
|
|
32
|
-
```
|
|
23
|
+
!`ls -la .opencode/skill/$ARGUMENTS/ 2>/dev/null`
|
|
24
|
+
!`ls -la .opencode/superpowers/skills/$ARGUMENTS/ 2>/dev/null`
|
|
25
|
+
!`ls -la ~/.opencode/skills/$ARGUMENTS/ 2>/dev/null`
|
|
33
26
|
|
|
34
27
|
### Load Current Content
|
|
35
28
|
|
|
@@ -18,27 +18,29 @@ Generate a comprehensive project status report covering tasks, sessions, git sta
|
|
|
18
18
|
|
|
19
19
|
Run all status checks simultaneously:
|
|
20
20
|
|
|
21
|
+
```
|
|
22
|
+
# Beads CLI commands
|
|
23
|
+
!`bd status`
|
|
24
|
+
!`bd list --status in_progress --limit 10`
|
|
25
|
+
!`bd list --status ready --limit 10`
|
|
26
|
+
|
|
27
|
+
# Git state
|
|
28
|
+
!`git status --porcelain`
|
|
29
|
+
!`git branch --show-current`
|
|
30
|
+
!`git log --oneline -5`
|
|
31
|
+
```
|
|
32
|
+
|
|
21
33
|
```typescript
|
|
22
|
-
//
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
bd_reservations();
|
|
29
|
-
|
|
30
|
-
// Sessions
|
|
31
|
-
list_sessions({ project: "current", since: "today", limit: 5, _: true });
|
|
32
|
-
|
|
33
|
-
// Search for recent activity on current work (if bead in progress)
|
|
34
|
-
search_session({ query: "<current-bead-id>", limit: 5 });
|
|
35
|
-
|
|
36
|
-
// Git state
|
|
37
|
-
bash("git status --porcelain");
|
|
38
|
-
bash("git branch --show-current");
|
|
39
|
-
bash("git log --oneline -5");
|
|
34
|
+
// Custom tools (message inbox, locks)
|
|
35
|
+
bd-inbox({ n: 5, unread: true, to: "all" });
|
|
36
|
+
bd-release(); // Lists active locks when called with no args
|
|
37
|
+
|
|
38
|
+
// Built-in tools
|
|
39
|
+
list_sessions({ project: "current", since: "today", limit: 5 });
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
+
````
|
|
43
|
+
|
|
42
44
|
## Phase 2: Health Score Calculation
|
|
43
45
|
|
|
44
46
|
Calculate overall project health (0-100):
|
|
@@ -215,7 +217,7 @@ REQUIRED ACTIONS
|
|
|
215
217
|
━━━━━━━━━━━━━━━━
|
|
216
218
|
Priority │ Action │ Command
|
|
217
219
|
─────────┼─────────────────────────────────────┼────────────────────
|
|
218
|
-
HIGH │ Reply to build-1 question │
|
|
220
|
+
HIGH │ Reply to build-1 question │ bd-msg --to "build-1" --subj "Re:" --body "..."
|
|
219
221
|
HIGH │ Add plan for bd-ghi56 │ /plan bd-ghi56
|
|
220
222
|
MEDIUM │ Review 2 stale tasks │ /triage --stale
|
|
221
223
|
LOW │ Push 2 local commits │ git push
|
|
@@ -286,13 +288,13 @@ if (incompleteSessions.length > 0) {
|
|
|
286
288
|
|
|
287
289
|
## Phase 6: CI/CD Status (if available)
|
|
288
290
|
|
|
289
|
-
```
|
|
291
|
+
```
|
|
290
292
|
# GitHub Actions
|
|
291
|
-
gh run list --limit 3 --json status,conclusion,name,createdAt
|
|
293
|
+
!`gh run list --limit 3 --json status,conclusion,name,createdAt`
|
|
292
294
|
|
|
293
295
|
# Or check for common CI files
|
|
294
|
-
ls .github/workflows/ 2>/dev/null
|
|
295
|
-
cat .github/workflows/*.yml | grep -A5 "name:"
|
|
296
|
+
!`ls .github/workflows/ 2>/dev/null`
|
|
297
|
+
!`cat .github/workflows/*.yml | grep -A5 "name:"`
|
|
296
298
|
```
|
|
297
299
|
|
|
298
300
|
**Output:**
|
|
@@ -332,7 +334,7 @@ RECOMMENDED NEXT STEPS
|
|
|
332
334
|
Based on current status:
|
|
333
335
|
|
|
334
336
|
1. High Priority Messages:
|
|
335
|
-
→ Reply to build-1:
|
|
337
|
+
→ Reply to build-1: bd-msg --to "build-1" --subj "Re: API spec" --body "..."
|
|
336
338
|
|
|
337
339
|
2. Continue In-Progress Work:
|
|
338
340
|
→ /implement bd-abc12 (P0, 2h old)
|
|
@@ -364,7 +366,7 @@ Handle gracefully:
|
|
|
364
366
|
```
|
|
365
367
|
[If beads unavailable:]
|
|
366
368
|
⚠️ Beads database not initialized
|
|
367
|
-
Run:
|
|
369
|
+
Run: bd status to check connection
|
|
368
370
|
|
|
369
371
|
[If git not available:]
|
|
370
372
|
⚠️ Not a git repository
|
|
@@ -374,3 +376,4 @@ Handle gracefully:
|
|
|
374
376
|
⚠️ CI status unavailable
|
|
375
377
|
Check: GitHub Actions permissions
|
|
376
378
|
```
|
|
379
|
+
````
|