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
|
@@ -26,11 +26,24 @@ If spec.md missing: "Run `/create <bead-id>` first."
|
|
|
26
26
|
If research.md missing: "Run `/research <bead-id>` first."
|
|
27
27
|
If design.md exists: Resume from saved design options.
|
|
28
28
|
|
|
29
|
+
Reserve files while planning:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
bd_reserve({
|
|
33
|
+
paths: [
|
|
34
|
+
".beads/artifacts/<bead-id>/design.md",
|
|
35
|
+
".beads/artifacts/<bead-id>/plan.md",
|
|
36
|
+
],
|
|
37
|
+
reason: "Planning $ARGUMENTS",
|
|
38
|
+
ttl: 1200,
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
29
42
|
## Phase 2: Generate Design Options
|
|
30
43
|
|
|
31
|
-
Present 2-3 approaches:
|
|
44
|
+
Present 2-3 approaches with this format:
|
|
32
45
|
|
|
33
|
-
```
|
|
46
|
+
```markdown
|
|
34
47
|
## Design Options
|
|
35
48
|
|
|
36
49
|
### Option A: [Name]
|
|
@@ -38,191 +51,200 @@ Present 2-3 approaches:
|
|
|
38
51
|
**Approach:** [1-2 sentence description]
|
|
39
52
|
|
|
40
53
|
**Changes:**
|
|
54
|
+
|
|
41
55
|
- `src/foo.ts` - [what changes]
|
|
42
56
|
- `src/bar.ts` - [what changes]
|
|
43
57
|
|
|
44
|
-
**Pros:**
|
|
45
|
-
|
|
46
|
-
- [pro 2]
|
|
58
|
+
**Pros:** [bullet list]
|
|
59
|
+
**Cons:** [bullet list]
|
|
47
60
|
|
|
48
|
-
**
|
|
49
|
-
- [con 1]
|
|
61
|
+
**Estimation:**
|
|
50
62
|
|
|
51
|
-
|
|
63
|
+
- Tool calls: ~[N] (S=5-20, M=20-50, L=50-100, XL=needs decomposition)
|
|
64
|
+
- Files touched: [N]
|
|
65
|
+
- Risk: [low/medium/high]
|
|
52
66
|
|
|
53
67
|
---
|
|
54
68
|
|
|
55
69
|
### Option B: [Name]
|
|
56
70
|
|
|
57
|
-
|
|
71
|
+
[Same format]
|
|
58
72
|
|
|
59
|
-
|
|
60
|
-
- `src/baz.ts` - [what changes]
|
|
73
|
+
---
|
|
61
74
|
|
|
62
|
-
**
|
|
63
|
-
|
|
75
|
+
**Recommendation:** Option [A/B] because [reason].
|
|
76
|
+
```
|
|
64
77
|
|
|
65
|
-
|
|
66
|
-
- [con 1]
|
|
67
|
-
- [con 2]
|
|
78
|
+
Save to `.beads/artifacts/<bead-id>/design.md` with status `Pending Approval`.
|
|
68
79
|
|
|
69
|
-
|
|
80
|
+
## Phase 3: Get Approval
|
|
70
81
|
|
|
71
|
-
|
|
82
|
+
**STOP and wait for human response.**
|
|
72
83
|
|
|
73
|
-
|
|
84
|
+
```
|
|
85
|
+
Pick an option (A/B/C), modify, or "none" to propose alternatives.
|
|
74
86
|
```
|
|
75
87
|
|
|
76
|
-
|
|
88
|
+
Do not proceed until user confirms.
|
|
77
89
|
|
|
78
|
-
|
|
90
|
+
## Phase 4: Create Plan with Task Contracts
|
|
91
|
+
|
|
92
|
+
After approval, write `.beads/artifacts/<bead-id>/plan.md`:
|
|
79
93
|
|
|
80
94
|
```markdown
|
|
81
|
-
#
|
|
95
|
+
# Implementation Plan: [Title]
|
|
82
96
|
|
|
83
97
|
**Bead:** <bead-id>
|
|
84
98
|
**Date:** <date>
|
|
85
|
-
**
|
|
86
|
-
|
|
87
|
-
## Problem Statement
|
|
88
|
-
|
|
89
|
-
[What we're solving - from spec.md]
|
|
90
|
-
|
|
91
|
-
## Options Considered
|
|
99
|
+
**Approach:** [selected option name]
|
|
100
|
+
**Estimation:** ~[N] tool calls, [N] files
|
|
92
101
|
|
|
93
|
-
|
|
102
|
+
## Dependency Graph
|
|
103
|
+
```
|
|
94
104
|
|
|
95
|
-
|
|
105
|
+
[Step 1] ──┬──> [Step 2a] ──┬──> [Step 4]
|
|
106
|
+
│ │
|
|
107
|
+
└──> [Step 2b] ──┘
|
|
108
|
+
│
|
|
109
|
+
└──> [Step 3] (can run parallel)
|
|
96
110
|
|
|
97
|
-
|
|
111
|
+
````
|
|
98
112
|
|
|
99
|
-
|
|
100
|
-
-
|
|
113
|
+
**Parallel Tracks:**
|
|
114
|
+
- Track A: Steps 1 → 2a → 4
|
|
115
|
+
- Track B: Steps 1 → 2b → 3 (independent after Step 1)
|
|
101
116
|
|
|
102
|
-
|
|
117
|
+
## Tasks
|
|
103
118
|
|
|
104
|
-
|
|
105
|
-
- [pro 2]
|
|
119
|
+
### Task 1: [Title]
|
|
106
120
|
|
|
107
|
-
|
|
121
|
+
| Field | Value |
|
|
122
|
+
| ------------- | ---------------------------------- |
|
|
123
|
+
| **Files** | `src/foo.ts` |
|
|
124
|
+
| **Input** | [What this task receives/needs] |
|
|
125
|
+
| **Output** | [What this task produces] |
|
|
126
|
+
| **Success** | [Concrete verification criteria] |
|
|
127
|
+
| **Rollback** | [How to undo if this fails] |
|
|
128
|
+
| **Depends** | None |
|
|
129
|
+
| **Effort** | S (~10 tool calls) |
|
|
108
130
|
|
|
109
|
-
|
|
131
|
+
**Changes:**
|
|
132
|
+
- [ ] [Specific change 1]
|
|
133
|
+
- [ ] [Specific change 2]
|
|
110
134
|
|
|
111
|
-
**
|
|
135
|
+
**Verification:**
|
|
136
|
+
```bash
|
|
137
|
+
[Actual command to verify success]
|
|
138
|
+
````
|
|
112
139
|
|
|
113
140
|
---
|
|
114
141
|
|
|
115
|
-
###
|
|
142
|
+
### Task 2a: [Title]
|
|
116
143
|
|
|
117
|
-
|
|
144
|
+
| Field | Value |
|
|
145
|
+
| ------------ | -------------------------------- |
|
|
146
|
+
| **Files** | `src/bar.ts` |
|
|
147
|
+
| **Input** | Output from Task 1 |
|
|
148
|
+
| **Output** | [What this produces] |
|
|
149
|
+
| **Success** | [Test passes, type checks, etc.] |
|
|
150
|
+
| **Rollback** | `git checkout src/bar.ts` |
|
|
151
|
+
| **Depends** | Task 1 |
|
|
152
|
+
| **Effort** | M (~30 tool calls) |
|
|
118
153
|
|
|
119
154
|
**Changes:**
|
|
120
155
|
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
**Pros:**
|
|
124
|
-
|
|
125
|
-
- [pro 1]
|
|
126
|
-
|
|
127
|
-
**Cons:**
|
|
156
|
+
- [ ] [Specific change]
|
|
128
157
|
|
|
129
|
-
|
|
130
|
-
- [con 2]
|
|
158
|
+
**Verification:**
|
|
131
159
|
|
|
132
|
-
|
|
160
|
+
```bash
|
|
161
|
+
npm run test -- src/bar.test.ts
|
|
162
|
+
```
|
|
133
163
|
|
|
134
164
|
---
|
|
135
165
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
Option [A/B] because [reason].
|
|
139
|
-
|
|
140
|
-
## Decision
|
|
166
|
+
[Continue for all tasks...]
|
|
141
167
|
|
|
142
|
-
|
|
143
|
-
**Rationale:** [To be filled after approval]
|
|
144
|
-
```
|
|
168
|
+
## Escape Hatches
|
|
145
169
|
|
|
146
|
-
|
|
170
|
+
- **Max iterations per task:** 3 attempts before human intervention
|
|
171
|
+
- **Checkpoint after:** Tasks 2a, 3 (high-risk points)
|
|
172
|
+
- **Abort if:** [Condition that means we should stop]
|
|
147
173
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
Pick an option (A/B/C), modify, or "none" to propose alternatives.
|
|
152
|
-
```
|
|
174
|
+
## Final Verification
|
|
153
175
|
|
|
154
|
-
|
|
176
|
+
- [ ] All task verifications pass
|
|
177
|
+
- [ ] `npm run type-check` passes
|
|
178
|
+
- [ ] `npm run test` passes
|
|
179
|
+
- [ ] Manual smoke test: [specific action]
|
|
155
180
|
|
|
156
|
-
##
|
|
181
|
+
## Risks
|
|
157
182
|
|
|
158
|
-
|
|
183
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
184
|
+
| -------- | ---------- | ------ | --------------- |
|
|
185
|
+
| [Risk 1] | Medium | High | [How to handle] |
|
|
186
|
+
| [Risk 2] | Low | Medium | [How to handle] |
|
|
159
187
|
|
|
160
|
-
|
|
161
|
-
- Fill in **Chosen:** with selected option
|
|
162
|
-
- Fill in **Rationale:** with user's reasoning
|
|
188
|
+
````
|
|
163
189
|
|
|
164
|
-
## Phase
|
|
190
|
+
## Phase 5: Generate ADR & Sync
|
|
165
191
|
|
|
166
|
-
|
|
192
|
+
Create `.beads/artifacts/<bead-id>/adr.md`:
|
|
167
193
|
|
|
168
194
|
```markdown
|
|
169
|
-
#
|
|
195
|
+
# ADR: [Decision Title]
|
|
170
196
|
|
|
171
|
-
**
|
|
197
|
+
**Status:** Accepted
|
|
172
198
|
**Date:** <date>
|
|
173
|
-
**
|
|
174
|
-
|
|
175
|
-
## Overview
|
|
176
|
-
|
|
177
|
-
[1-2 paragraph description of approach]
|
|
178
|
-
|
|
179
|
-
## Steps
|
|
180
|
-
|
|
181
|
-
### Step 1: [Title]
|
|
182
|
-
|
|
183
|
-
**Files:** `src/foo.ts`
|
|
184
|
-
|
|
185
|
-
**Changes:**
|
|
186
|
-
|
|
187
|
-
- [ ] [Specific change 1]
|
|
188
|
-
- [ ] [Specific change 2]
|
|
189
|
-
|
|
190
|
-
**Tests:** [What to verify]
|
|
199
|
+
**Bead:** <bead-id>
|
|
191
200
|
|
|
192
|
-
|
|
201
|
+
## Context
|
|
193
202
|
|
|
194
|
-
|
|
203
|
+
[Problem statement from spec.md - why we needed to decide]
|
|
195
204
|
|
|
196
|
-
|
|
205
|
+
## Decision
|
|
197
206
|
|
|
198
|
-
**
|
|
207
|
+
We chose **[Option Name]** because:
|
|
208
|
+
- [Reason 1]
|
|
209
|
+
- [Reason 2]
|
|
199
210
|
|
|
200
|
-
|
|
211
|
+
## Alternatives Considered
|
|
201
212
|
|
|
202
|
-
**
|
|
213
|
+
- **[Option B]:** Rejected because [reason]
|
|
214
|
+
- **[Option C]:** Rejected because [reason]
|
|
203
215
|
|
|
204
|
-
|
|
216
|
+
## Consequences
|
|
205
217
|
|
|
206
|
-
|
|
218
|
+
**Positive:**
|
|
219
|
+
- [Benefit 1]
|
|
220
|
+
- [Benefit 2]
|
|
207
221
|
|
|
208
|
-
|
|
222
|
+
**Negative:**
|
|
223
|
+
- [Tradeoff 1]
|
|
224
|
+
- [Tradeoff 2]
|
|
209
225
|
|
|
210
|
-
##
|
|
226
|
+
## Confirmation
|
|
211
227
|
|
|
212
|
-
|
|
213
|
-
- [ ]
|
|
214
|
-
- [ ]
|
|
215
|
-
|
|
228
|
+
This decision is confirmed when:
|
|
229
|
+
- [ ] Implementation complete per plan.md
|
|
230
|
+
- [ ] All verification steps pass
|
|
231
|
+
````
|
|
216
232
|
|
|
217
|
-
|
|
233
|
+
Update bead and sync:
|
|
218
234
|
|
|
219
|
-
|
|
235
|
+
```typescript
|
|
236
|
+
bd_msg({
|
|
237
|
+
subj: "Plan approved",
|
|
238
|
+
body: "Approach: [selected option]\nTasks: [count]\nEstimate: ~[N] tool calls",
|
|
239
|
+
to: "all",
|
|
240
|
+
importance: "normal",
|
|
241
|
+
global: true,
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
bd_release({ _: true });
|
|
245
|
+
bd_sync({ reason: "Plan approved for $ARGUMENTS" });
|
|
220
246
|
```
|
|
221
247
|
|
|
222
|
-
## Phase 7: Update Bead
|
|
223
|
-
|
|
224
|
-
Add a note about plan approval via `bd_msg` or update the spec with the approved approach.
|
|
225
|
-
|
|
226
248
|
## Output
|
|
227
249
|
|
|
228
250
|
```
|
|
@@ -230,10 +252,14 @@ Plan Approved: <bead-id>
|
|
|
230
252
|
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
231
253
|
|
|
232
254
|
Approach: [selected option]
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
255
|
+
Tasks: [count]
|
|
256
|
+
Parallel tracks: [count]
|
|
257
|
+
Estimate: ~[N] tool calls
|
|
258
|
+
|
|
259
|
+
Artifacts:
|
|
260
|
+
- .beads/artifacts/<bead-id>/design.md (approved)
|
|
261
|
+
- .beads/artifacts/<bead-id>/plan.md
|
|
262
|
+
- .beads/artifacts/<bead-id>/adr.md
|
|
237
263
|
|
|
238
264
|
Next: /implement <bead-id>
|
|
239
265
|
```
|
|
@@ -1,53 +1,254 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Create and submit pull request with bead traceability
|
|
3
|
-
argument-hint: "
|
|
3
|
+
argument-hint: "<bead-id> [--draft] [--wait]"
|
|
4
|
+
agent: build
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
# Pull Request
|
|
8
|
+
|
|
6
9
|
**Load skill:** `skill({ name: "verification-before-completion" })`
|
|
7
10
|
|
|
8
|
-
##
|
|
11
|
+
## Options
|
|
12
|
+
|
|
13
|
+
- `--draft`: Create as draft PR (for WIP or early feedback)
|
|
14
|
+
- `--wait`: Wait for CI checks to pass after creation
|
|
15
|
+
|
|
16
|
+
## Phase 1: Pre-PR Verification
|
|
17
|
+
|
|
18
|
+
Before creating PR, run verification gates:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
git status --porcelain # Check for uncommitted changes
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If uncommitted changes exist, ask: "Commit these changes first?"
|
|
25
|
+
|
|
26
|
+
Run project gates:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run build 2>&1 | tail -5
|
|
30
|
+
npm test 2>&1 | tail -10
|
|
31
|
+
npm run lint 2>&1 | tail -5
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Pre-PR Gates:
|
|
36
|
+
━━━━━━━━━━━━━
|
|
37
|
+
|
|
38
|
+
Build: [✓/✗]
|
|
39
|
+
Tests: [✓/✗]
|
|
40
|
+
Lint: [✓/✗]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**If any gate fails: STOP.**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Cannot create PR: [gate] failed.
|
|
47
|
+
|
|
48
|
+
Fix errors first, then run /pr again.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Phase 2: Check for Conflicts
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git fetch origin main
|
|
55
|
+
git merge-base --is-ancestor origin/main HEAD || git diff origin/main...HEAD --name-only
|
|
56
|
+
```
|
|
9
57
|
|
|
10
|
-
|
|
11
|
-
**Changes Summary:** `!git diff main...HEAD --stat`
|
|
12
|
-
**Commits:** `!git log main...HEAD --oneline`
|
|
58
|
+
Check for merge conflicts:
|
|
13
59
|
|
|
14
|
-
|
|
60
|
+
```bash
|
|
61
|
+
git merge --no-commit --no-ff origin/main 2>&1 || true
|
|
62
|
+
git merge --abort 2>/dev/null || true
|
|
63
|
+
```
|
|
15
64
|
|
|
16
|
-
|
|
65
|
+
If conflicts detected:
|
|
17
66
|
|
|
18
|
-
|
|
67
|
+
```
|
|
68
|
+
⚠️ Merge conflicts detected with main:
|
|
69
|
+
- [file1]
|
|
70
|
+
- [file2]
|
|
71
|
+
|
|
72
|
+
Resolve conflicts before creating PR:
|
|
73
|
+
git fetch origin main
|
|
74
|
+
git rebase origin/main
|
|
75
|
+
# Fix conflicts, then /pr again
|
|
76
|
+
```
|
|
19
77
|
|
|
20
|
-
|
|
21
|
-
- If `$ARGUMENTS` contains a bead ID, fetch bead details: `bd_show({ id: "$ARGUMENTS" })`
|
|
22
|
-
- Use bead title and spec to inform PR content
|
|
23
|
-
- Reference the bead in the PR body for traceability
|
|
78
|
+
## Phase 3: Gather Context
|
|
24
79
|
|
|
25
|
-
|
|
26
|
-
- Title: Clear, descriptive (under 60 chars)
|
|
27
|
-
- Summary: What and why this change matters
|
|
28
|
-
- Testing: How to verify the changes
|
|
29
|
-
- Breaking changes: Note any API/behavior changes
|
|
80
|
+
**Current state:**
|
|
30
81
|
|
|
31
|
-
|
|
82
|
+
```bash
|
|
83
|
+
git branch --show-current
|
|
84
|
+
git diff main...HEAD --stat
|
|
85
|
+
git log main...HEAD --oneline
|
|
86
|
+
```
|
|
32
87
|
|
|
33
|
-
**
|
|
88
|
+
**Load bead context (if provided):**
|
|
34
89
|
|
|
90
|
+
```typescript
|
|
91
|
+
bd_show({ id: "$ARGUMENTS" });
|
|
35
92
|
```
|
|
93
|
+
|
|
94
|
+
**Load artifacts:**
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
ls .beads/artifacts/<bead-id>/ 2>/dev/null
|
|
98
|
+
cat .beads/artifacts/<bead-id>/spec.md 2>/dev/null | head -30
|
|
99
|
+
cat .beads/artifacts/<bead-id>/review.md 2>/dev/null | head -30
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Extract from artifacts:
|
|
103
|
+
|
|
104
|
+
- **Goal** from spec.md
|
|
105
|
+
- **Changes Made** from review.md
|
|
106
|
+
- **Estimation Accuracy** from review.md
|
|
107
|
+
- **Success Criteria** verification
|
|
108
|
+
|
|
109
|
+
## Phase 4: Push Branch
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
git push -u origin $(git branch --show-current)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Phase 5: Create PR
|
|
116
|
+
|
|
117
|
+
Generate PR content from context:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
gh pr create --title "<title>" --body "$(cat <<'EOF'
|
|
36
121
|
## Summary
|
|
37
|
-
- Brief description of changes
|
|
38
122
|
|
|
39
|
-
|
|
40
|
-
|
|
123
|
+
[1-2 sentence description of what this PR does and why]
|
|
124
|
+
|
|
125
|
+
## Changes
|
|
126
|
+
|
|
127
|
+
| File | Change |
|
|
128
|
+
| ---- | ------ |
|
|
129
|
+
| `src/foo.ts` | [description] |
|
|
130
|
+
| `src/bar.ts` | [description] |
|
|
41
131
|
|
|
42
132
|
## Testing
|
|
43
|
-
- How to test these changes
|
|
44
133
|
|
|
45
|
-
|
|
46
|
-
-
|
|
134
|
+
**Automated:**
|
|
135
|
+
- All tests pass ✓
|
|
136
|
+
- Lint passes ✓
|
|
137
|
+
- Type check passes ✓
|
|
138
|
+
|
|
139
|
+
**Manual verification:**
|
|
140
|
+
- [ ] [How to test manually]
|
|
141
|
+
|
|
142
|
+
## Screenshots
|
|
143
|
+
|
|
144
|
+
[If UI changes, include before/after screenshots]
|
|
145
|
+
|
|
146
|
+
## Estimation
|
|
147
|
+
|
|
148
|
+
| Metric | Value |
|
|
149
|
+
| ------ | ----- |
|
|
150
|
+
| Estimated | [S/M/L] (~N calls) |
|
|
151
|
+
| Actual | N calls |
|
|
152
|
+
| Accuracy | [+/-N%] |
|
|
153
|
+
|
|
154
|
+
## Checklist
|
|
155
|
+
|
|
156
|
+
- [x] Tests added/updated
|
|
157
|
+
- [x] All gates pass
|
|
158
|
+
- [ ] Docs updated (if applicable)
|
|
159
|
+
- [ ] Breaking changes documented (if any)
|
|
160
|
+
|
|
161
|
+
## Artifacts
|
|
162
|
+
|
|
163
|
+
- [spec.md](.beads/artifacts/<bead-id>/spec.md)
|
|
164
|
+
- [review.md](.beads/artifacts/<bead-id>/review.md)
|
|
165
|
+
[- research.md, plan.md, adr.md if they exist]
|
|
166
|
+
|
|
167
|
+
## Bead Reference
|
|
168
|
+
|
|
169
|
+
Closes: <bead-id>
|
|
170
|
+
EOF
|
|
171
|
+
)"
|
|
47
172
|
```
|
|
48
173
|
|
|
49
|
-
|
|
174
|
+
**For draft PRs (--draft):**
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
gh pr create --draft --title "<title>" --body "..."
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Phase 6: Wait for CI (if --wait)
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
gh pr checks --watch
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Report CI status:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
CI Status:
|
|
190
|
+
━━━━━━━━━━
|
|
191
|
+
|
|
192
|
+
- build: [✓/✗/pending]
|
|
193
|
+
- test: [✓/✗/pending]
|
|
194
|
+
- lint: [✓/✗/pending]
|
|
195
|
+
|
|
196
|
+
[If all pass] CI passed ✓
|
|
197
|
+
[If any fail] CI failed: [which check]
|
|
198
|
+
```
|
|
50
199
|
|
|
51
|
-
|
|
200
|
+
## Phase 7: Update Bead & Sync
|
|
52
201
|
|
|
53
|
-
|
|
202
|
+
```typescript
|
|
203
|
+
bd_msg({
|
|
204
|
+
subj: "PR created",
|
|
205
|
+
body: "PR: <pr-url>\nStatus: [ready/draft]\nCI: [passing/pending]",
|
|
206
|
+
to: "all",
|
|
207
|
+
importance: "normal",
|
|
208
|
+
global: true,
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
bd_sync({ reason: "PR created for $ARGUMENTS" });
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Output
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
PR Created: <bead-id>
|
|
218
|
+
━━━━━━━━━━━━━━━━━━━━
|
|
219
|
+
|
|
220
|
+
URL: <pr-url>
|
|
221
|
+
Status: [Ready for Review / Draft]
|
|
222
|
+
Branch: <branch> → main
|
|
223
|
+
|
|
224
|
+
Pre-PR Gates: All passed ✓
|
|
225
|
+
Conflicts: None ✓
|
|
226
|
+
[CI: Passed ✓ (if --wait)]
|
|
227
|
+
|
|
228
|
+
Artifacts linked:
|
|
229
|
+
- spec.md ✓
|
|
230
|
+
- review.md ✓
|
|
231
|
+
[- research.md, plan.md, adr.md]
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Next steps:**
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
━━━━━━━━━━━━━━━━━━━━
|
|
238
|
+
|
|
239
|
+
Request review:
|
|
240
|
+
gh pr edit <pr-number> --add-reviewer <username>
|
|
241
|
+
|
|
242
|
+
Check CI:
|
|
243
|
+
gh pr checks
|
|
244
|
+
|
|
245
|
+
Merge when approved:
|
|
246
|
+
gh pr merge --squash
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**If draft PR:**
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
Draft PR created. When ready:
|
|
253
|
+
gh pr ready
|
|
254
|
+
```
|