jettypod 4.4.79 โ†’ 4.4.80

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bug-mode
3
- description: Guide implementation of standalone chores with type-appropriate guidance, verification steps, and test handling. Receives enriched context from chore-planning and executes with iteration until verification passes.
3
+ description: Guide implementation of bug fixes with comprehensive fix, regression test creation, and verification. Receives enriched context from bug-planning and executes with iteration until verification passes.
4
4
  ---
5
5
 
6
6
  # Bug Mode Skill
@@ -33,22 +33,21 @@ Why? A bug fix should:
33
33
 
34
34
  ---
35
35
 
36
- Guides Claude Code through comprehensive bug fix implementation. Receives context from bug-planning skill (root cause, breadcrumbs, regression test).
36
+ Guides Claude Code through comprehensive bug fix implementation. Receives context from bug-planning skill (root cause, breadcrumbs).
37
37
 
38
38
  ## Instructions
39
39
 
40
- When this skill is activated, you are implementing a bug fix chore. The bug-planning skill has already:
40
+ When this skill is activated, you are implementing a bug fix directly on the bug work item. The bug-planning skill has already:
41
41
  - Identified root cause
42
- - Created the bug work item and fix chore
43
- - Written a regression test (currently failing)
42
+ - Created the bug work item with breadcrumbs
44
43
  - Started the worktree with `work start`
45
44
 
46
- Your job: Make the regression test pass with a comprehensive fix.
45
+ Your job: Implement the fix, write a regression test, and verify everything passes.
47
46
 
48
47
  ## ๐Ÿ”‘ Critical Context
49
48
 
50
49
  **You are working in an isolated git worktree:**
51
- - `work start [chore-id]` already created a dedicated worktree
50
+ - `work start [bug-id]` already created a dedicated worktree
52
51
  - All file operations must use **absolute paths** from the worktree
53
52
  - The worktree has its own branch - changes are isolated from main
54
53
 
@@ -75,7 +74,7 @@ Your shell's working directory was likely inside a worktree that was deleted. Th
75
74
  **Before proceeding, validate the worktree exists.**
76
75
 
77
76
  ```bash
78
- sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path, wt.branch_name FROM work_items wi LEFT JOIN worktrees wt ON wi.id = wt.work_item_id WHERE wi.status = 'in_progress' AND wi.type = 'chore'"
77
+ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path, wt.branch_name FROM work_items wi LEFT JOIN worktrees wt ON wi.id = wt.work_item_id WHERE wi.status = 'in_progress' AND wi.type = 'bug'"
79
78
  ```
80
79
 
81
80
  **Check the result:**
@@ -83,8 +82,8 @@ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path,
83
82
  | worktree_path | What it means | Action |
84
83
  |---------------|---------------|--------|
85
84
  | **Has a path** | โœ… Worktree exists, ready to proceed | Continue to Step 0 |
86
- | **NULL or empty** | โŒ `work start` was not called | **STOP - run `jettypod work start [chore-id]` first** |
87
- | **No rows returned** | โŒ No chore is in progress | **STOP - verify the chore exists and run `work start`** |
85
+ | **NULL or empty** | โŒ `work start` was not called | **STOP - run `jettypod work start [bug-id]` first** |
86
+ | **No rows returned** | โŒ No bug is in progress | **STOP - verify the bug exists and run `work start`** |
88
87
 
89
88
  ---
90
89
 
@@ -95,14 +94,10 @@ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path,
95
94
  **Get the current work context:**
96
95
 
97
96
  ```bash
98
- sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.description, wi.parent_id, parent.title as parent_title, parent.type as parent_type, wt.worktree_path, wt.branch_name FROM work_items wi LEFT JOIN work_items parent ON wi.parent_id = parent.id LEFT JOIN worktrees wt ON wi.id = wt.work_item_id WHERE wi.status = 'in_progress' AND wi.type = 'chore'"
97
+ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.description, wt.worktree_path, wt.branch_name FROM work_items wi LEFT JOIN worktrees wt ON wi.id = wt.work_item_id WHERE wi.status = 'in_progress' AND wi.type = 'bug'"
99
98
  ```
100
99
 
101
- **Verify parent is a bug:**
102
- - `parent_type` should be `bug`
103
- - If not, this skill may not be appropriate
104
-
105
- **Extract breadcrumbs from chore description:**
100
+ **Extract breadcrumbs from bug description:**
106
101
  The bug-planning skill embedded implementation guidance:
107
102
  - Root cause location (file:line)
108
103
  - Fix approach (steps)
@@ -116,8 +111,7 @@ The bug-planning skill embedded implementation guidance:
116
111
  ๐Ÿ› BUG MODE: Fixing #[bug-id]
117
112
  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
118
113
 
119
- Chore: [title]
120
- Bug: #[parent-id] [parent-title]
114
+ Bug: #[id] [title]
121
115
  Worktree: [worktree_path]
122
116
  Branch: [branch_name]
123
117
 
@@ -127,53 +121,14 @@ Root Cause:
127
121
  Fix Approach:
128
122
  [From breadcrumbs - steps to fix]
129
123
 
130
- Establishing RED baseline...
124
+ Starting implementation...
131
125
  ```
132
126
 
133
127
  **Proceed to Step 1.**
134
128
 
135
129
  ---
136
130
 
137
- ### Step 1: Establish RED Baseline
138
-
139
- **Run the regression test to confirm it fails:**
140
-
141
- ```bash
142
- # Find the regression test file
143
- sqlite3 .jettypod/work.db "SELECT id FROM work_items WHERE id = <bug-id>"
144
- # Look for features/*<bug-id>*.feature or features/*<bug-slug>*.feature
145
- ```
146
-
147
- ```bash
148
- # Run the regression test
149
- npx cucumber-js features/<bug-slug>.feature --format progress
150
- ```
151
-
152
- **Confirm RED state:**
153
- - The regression test should FAIL
154
- - This proves the bug exists and the test catches it
155
-
156
- **Display RED baseline:**
157
-
158
- ```
159
- ๐Ÿ”ด RED Baseline Confirmed
160
-
161
- Regression test: features/<bug-slug>.feature
162
- Status: FAILING (as expected)
163
-
164
- Error:
165
- [Error message from test]
166
-
167
- ๐ŸŽฏ Goal: Make the regression test pass with a comprehensive fix
168
-
169
- Now implementing fix...
170
- ```
171
-
172
- **Proceed to Step 2.**
173
-
174
- ---
175
-
176
- ### Step 2: Implement Comprehensive Fix
131
+ ### Step 1: Implement Comprehensive Fix
177
132
 
178
133
  **CRITICAL:** Bug fixes must be comprehensive from the start.
179
134
 
@@ -213,32 +168,71 @@ sqlite3 .jettypod/work.db "SELECT project_state FROM project_config WHERE id = 1
213
168
  ๐Ÿ”ง Change: [what you're fixing]
214
169
  ```
215
170
 
216
- **After each change, run the regression test:**
171
+ **After implementation:**
217
172
 
218
- ```bash
219
- npx cucumber-js features/<bug-slug>.feature --format progress
220
173
  ```
174
+ ๐ŸŽ‰ Fix Implemented
221
175
 
222
- **Track progress:**
176
+ Changes made:
177
+ - [Change 1]
178
+ - [Change 2]
179
+ - [Error handling added]
223
180
 
181
+ Now writing regression test...
224
182
  ```
225
- โ”โ”โ” Iteration 2 โ”โ”โ”
226
- ๐Ÿงช Running regression test...
227
- ๐Ÿ“Š Status: Still failing
228
- ๐Ÿ”ง Next: [what else needs to change]
183
+
184
+ **Proceed to Step 2.**
185
+
186
+ ---
187
+
188
+ ### Step 2: Write Regression Test
189
+
190
+ **Goal:** Create a test that verifies the bug is fixed and prevents regression.
191
+
192
+ **Derive feature slug** from bug title (lowercase, hyphens, no special chars).
193
+
194
+ **Write regression test in worktree:**
195
+
196
+ Feature file at `<worktree>/features/<bug-slug>.feature`:
197
+
198
+ ```gherkin
199
+ Feature: [Bug title] - Regression Test
200
+ Prevents regression of bug #<bug-id>
201
+
202
+ Root cause: [Brief description]
203
+
204
+ Scenario: [Description of correct behavior]
205
+ Given [setup that triggers the bug condition]
206
+ When [action that previously caused the bug]
207
+ Then [expected correct behavior]
208
+ And [additional verifications]
229
209
  ```
230
210
 
231
- **Continue until GREEN:**
211
+ Step definitions at `<worktree>/features/step_definitions/<bug-slug>.steps.js`
212
+
213
+ **Validate with dry-run:**
232
214
 
215
+ ```bash
216
+ cd <worktree> && npx cucumber-js --dry-run features/<bug-slug>.feature
233
217
  ```
234
- ๐ŸŽ‰ GREEN: Regression test passing!
235
218
 
236
- Fix implemented:
237
- - [Change 1]
238
- - [Change 2]
239
- - [Error handling added]
219
+ Fix any undefined steps or syntax errors.
220
+
221
+ **Run the regression test:**
240
222
 
241
- Now verifying no regressions...
223
+ ```bash
224
+ npx cucumber-js features/<bug-slug>.feature --format progress
225
+ ```
226
+
227
+ **Confirm test passes:**
228
+
229
+ ```
230
+ โœ… Regression Test Passing
231
+
232
+ Test: features/<bug-slug>.feature
233
+ Status: PASSING
234
+
235
+ The fix is verified by the regression test.
242
236
  ```
243
237
 
244
238
  **Proceed to Step 3.**
@@ -318,7 +312,7 @@ pwd && ls .jettypod # verify
318
312
 
319
313
  ```bash
320
314
  # Step 3: Clean up the worktree
321
- jettypod work cleanup <chore-id>
315
+ jettypod work cleanup <bug-id>
322
316
  ```
323
317
 
324
318
  **Proceed to Step 5.**
@@ -327,7 +321,7 @@ jettypod work cleanup <chore-id>
327
321
 
328
322
  ### Step 5: Mark Bug as Done
329
323
 
330
- **After the fix chore is merged, mark the parent bug as done:**
324
+ **After the fix is merged, mark the bug as done:**
331
325
 
332
326
  ```bash
333
327
  jettypod work status <bug-id> done
@@ -341,8 +335,7 @@ jettypod work status <bug-id> done
341
335
  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
342
336
 
343
337
  ๐Ÿ› Bug: #[bug-id] [title]
344
- ๐Ÿ”ง Fix: #[chore-id] [title]
345
- ๐Ÿงช Regression test: โœ… Passing
338
+ ๐Ÿงช Regression test: โœ… features/<bug-slug>.feature
346
339
 
347
340
  What was fixed:
348
341
  - Root cause: [brief description]
@@ -359,12 +352,11 @@ The bug is now fixed and protected by a regression test.
359
352
  ## Validation Checklist
360
353
 
361
354
  Before ending bug-mode skill, ensure:
362
- - [ ] Regression test was failing (RED baseline confirmed)
363
355
  - [ ] Fix implemented comprehensively (not just happy path)
364
- - [ ] Regression test now passes (GREEN)
356
+ - [ ] Regression test written and passing
365
357
  - [ ] No other tests broken (no regressions)
366
358
  - [ ] Fix committed with descriptive message
367
- - [ ] Chore merged to main
359
+ - [ ] Bug merged to main
368
360
  - [ ] Worktree cleaned up
369
361
  - [ ] Bug marked as done
370
362
 
@@ -374,19 +366,15 @@ Before ending bug-mode skill, ensure:
374
366
 
375
367
  **Merge fix (CRITICAL: cd to main repo separately):**
376
368
  ```bash
377
- jettypod work merge # Merge current chore
369
+ jettypod work merge # Merge current bug
378
370
  ```
379
371
 
380
372
  ```bash
381
373
  cd <main-repo> # Change to main repo
382
- jettypod work cleanup <id> # Clean up worktree
374
+ jettypod work cleanup <bug-id> # Clean up worktree
383
375
  ```
384
376
 
385
377
  **Mark bug complete:**
386
378
  ```bash
387
379
  jettypod work status <bug-id> done
388
380
  ```
389
-
390
- **โŒ DO NOT use these to complete chores:**
391
- - `jettypod work status <chore-id> done`
392
- - `jettypod work complete <id>`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: bug-planning
3
- description: Guide structured bug investigation with symptom capture, hypothesis testing, and root cause identification. Creates bug work item with fix chore and regression tests. Use when user reports a bug, mentions unexpected behavior, or says "investigate bug".
3
+ description: Guide structured bug investigation with symptom capture, hypothesis testing, and root cause identification. Creates bug work item for direct implementation. Use when user reports a bug, mentions unexpected behavior, or says "investigate bug".
4
4
  ---
5
5
 
6
6
  # Bug Planning Skill
@@ -9,13 +9,13 @@ description: Guide structured bug investigation with symptom capture, hypothesis
9
9
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
10
10
  โ”‚ Bug Planning Flow โ”‚
11
11
  โ”‚ โ”‚
12
- โ”‚ Symptom โ†’ Hypothesis โ†’ Evidence โ†’ Root Cause โ†’ Chore โ†’ Tests โ”‚
12
+ โ”‚ Symptom โ†’ Hypothesis โ†’ Evidence โ†’ Root Cause โ†’ Bug Work Item โ”‚
13
13
  โ”‚ โ”‚
14
- โ”‚ Output: Bug work item, fix chore with breadcrumbs, regression test โ”‚
14
+ โ”‚ Output: Bug work item with root cause breadcrumbs โ”‚
15
15
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
16
16
  ```
17
17
 
18
- Guides Claude through systematic bug investigation. Produces actionable fix chores with clear breadcrumbs.
18
+ Guides Claude through systematic bug investigation. Produces a bug work item with clear breadcrumbs for implementation.
19
19
 
20
20
  ## Instructions
21
21
 
@@ -180,7 +180,7 @@ Loop back to Phase 2 with new information.
180
180
 
181
181
  ## Phase 4: Root Cause Confirmation
182
182
 
183
- **Goal:** Confirm root cause with user before creating work items.
183
+ **Goal:** Confirm root cause with user before creating work item.
184
184
 
185
185
  **โšก ASYNC BOUNDARY - Wait for user confirmation**
186
186
 
@@ -197,7 +197,7 @@ Loop back to Phase 2 with new information.
197
197
  **Proposed fix:**
198
198
  [Brief description of how to fix it]
199
199
 
200
- Does this match your understanding? Ready to create the fix chore?
200
+ Does this match your understanding? Ready to create the bug work item?
201
201
  ```
202
202
 
203
203
  **WAIT for user confirmation.**
@@ -208,39 +208,14 @@ If user disagrees or adds context, revise understanding and confirm again.
208
208
 
209
209
  ---
210
210
 
211
- ## Phase 5: Create Bug Work Item and Chore
211
+ ## Phase 5: Create Bug Work Item
212
212
 
213
- **Goal:** Create tracked work items for the fix.
213
+ **Goal:** Create tracked bug work item with breadcrumbs for implementation.
214
214
 
215
- **Check for parent context:**
215
+ **Create bug work item with description:**
216
216
 
217
217
  ```bash
218
- # If bug is related to a feature/epic, user may specify parent
219
- # Otherwise create standalone bug
220
- ```
221
-
222
- **Create bug work item:**
223
-
224
- ```bash
225
- # Standalone bug
226
- jettypod work create bug "[Bug title - brief description]"
227
-
228
- # OR with parent
229
- jettypod work create bug "[Bug title]" --parent=<feature-or-epic-id>
230
- ```
231
-
232
- **Capture the bug ID from output.**
233
-
234
- **Create fix chore with breadcrumbs:**
235
-
236
- ```bash
237
- jettypod work create chore "Fix: [brief description]" "[Full description with breadcrumbs]" --parent=<bug-id>
238
- ```
239
-
240
- **Chore description must include:**
241
-
242
- ```
243
- Root cause: [What's broken and why]
218
+ jettypod work create bug "[Bug title - brief description]" "Root cause: [What's broken and why]
244
219
  Location: [file:line]
245
220
 
246
221
  Fix approach:
@@ -254,87 +229,18 @@ Files to modify:
254
229
  Verification:
255
230
  - Regression test passes
256
231
  - Original bug no longer reproduces
257
- - [Any other checks]
232
+ - [Any other checks]"
258
233
  ```
259
234
 
235
+ **Capture the bug ID from output.**
236
+
260
237
  **Proceed to Phase 6.**
261
238
 
262
239
  ---
263
240
 
264
- ## Phase 6: Write Regression Test
265
-
266
- **Goal:** Create BDD scenario that fails now, passes after fix.
267
-
268
- **๐Ÿšซ FORBIDDEN: Writing directly to main**
269
- ```
270
- โŒ Write to features/*.feature on main
271
- โŒ Manual git commands for worktrees
272
- ```
273
-
274
- **Create test worktree:**
275
-
276
- ```bash
277
- jettypod work tests start <bug-id>
278
- ```
279
-
280
- **Capture worktree path from output.**
281
-
282
- **Derive feature slug** from bug title (lowercase, hyphens, no special chars).
283
-
284
- **Write regression test in worktree:**
285
-
286
- Feature file at `<worktree>/features/<bug-slug>.feature`:
287
-
288
- ```gherkin
289
- Feature: [Bug title] - Regression Test
290
- Prevents regression of bug #<bug-id>
291
-
292
- Root cause: [Brief description]
293
-
294
- Scenario: [Description of correct behavior]
295
- Given [setup that triggers the bug condition]
296
- When [action that previously caused the bug]
297
- Then [expected correct behavior]
298
- And [additional verifications]
299
- ```
300
-
301
- Step definitions at `<worktree>/features/step_definitions/<bug-slug>.steps.js`
302
-
303
- **Validate with dry-run:**
304
-
305
- ```bash
306
- cd <worktree> && npx cucumber-js --dry-run features/<bug-slug>.feature
307
- ```
308
-
309
- Fix any undefined steps or syntax errors.
310
-
311
- **Merge tests:**
312
-
313
- ```bash
314
- # Commit
315
- cd <worktree> && git add features/ && git commit -m "test: Add regression test for bug #<bug-id>"
316
- ```
317
-
318
- ```bash
319
- # Merge (from worktree is OK)
320
- jettypod work tests merge <bug-id>
321
- ```
322
-
323
- ```bash
324
- # cd to main repo
325
- cd <main-repo-path>
326
- ```
327
-
328
- ```bash
329
- # Cleanup worktree
330
- jettypod work cleanup <bug-id>
331
- ```
332
-
333
- **Proceed to Phase 7.**
334
-
335
- ---
241
+ ## Phase 6: Hand Off to Bug Mode
336
242
 
337
- ## Phase 7: Hand Off to Bug Mode
243
+ **Goal:** Start the bug worktree and hand off to implementation.
338
244
 
339
245
  **Display completion:**
340
246
 
@@ -344,8 +250,8 @@ jettypod work cleanup <bug-id>
344
250
  โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
345
251
 
346
252
  ๐Ÿ“‹ Bug: #<bug-id> [title]
347
- ๐Ÿ”ง Fix chore: #<chore-id> [title]
348
- ๐Ÿงช Regression test: features/<bug-slug>.feature
253
+ ๐Ÿ“ Root cause: [file:line]
254
+ ๐Ÿ”ง Fix approach: [brief summary]
349
255
 
350
256
  Ready to implement the fix?
351
257
  ```
@@ -355,13 +261,13 @@ Ready to implement the fix?
355
261
  **If user confirms:**
356
262
 
357
263
  ```bash
358
- jettypod work start <chore-id>
264
+ jettypod work start <bug-id>
359
265
  ```
360
266
 
361
267
  **Verify worktree created:**
362
268
 
363
269
  ```bash
364
- sqlite3 .jettypod/work.db "SELECT worktree_path FROM worktrees WHERE work_item_id = <chore-id> AND status = 'active'"
270
+ sqlite3 .jettypod/work.db "SELECT worktree_path FROM worktrees WHERE work_item_id = <bug-id> AND status = 'active'"
365
271
  ```
366
272
 
367
273
  **Then invoke bug-mode:**
@@ -380,8 +286,6 @@ Before completing bug-planning:
380
286
  - [ ] Symptoms clearly documented
381
287
  - [ ] Root cause confirmed with evidence
382
288
  - [ ] User confirmed root cause
383
- - [ ] Bug work item created
384
- - [ ] Fix chore created with breadcrumbs
385
- - [ ] Regression test written and merged
386
- - [ ] Fix chore started with `work start`
289
+ - [ ] Bug work item created with breadcrumbs
290
+ - [ ] Bug worktree started with `work start`
387
291
  - [ ] bug-mode skill invoked