jettypod 4.4.94 β†’ 4.4.96

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.
@@ -30,12 +30,72 @@ When this skill is activated, you are helping implement a production mode chore
30
30
 
31
31
  ---
32
32
 
33
+ ## πŸ›‘ PRE-FLIGHT VALIDATION (REQUIRED)
34
+
35
+ **Before proceeding with ANY implementation, you MUST validate the worktree exists.**
36
+
37
+ Run this query FIRST:
38
+
39
+ ```bash
40
+ 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'"
41
+ ```
42
+
43
+ **Check the result:**
44
+
45
+ | worktree_path | What it means | Action |
46
+ |---------------|---------------|--------|
47
+ | **Has a path** (e.g., `/path/to/.jettypod-work/...`) | βœ… Worktree exists, ready to proceed | Continue to Step 0 |
48
+ | **NULL or empty** | ❌ `work start` was not called | **STOP - run `jettypod work start [chore-id]` first** |
49
+ | **No rows returned** | ❌ No chore is in progress | **STOP - verify the chore exists and run `work start`** |
50
+
51
+ **πŸ›‘ STOP GATE:** If `worktree_path` is NULL or no rows returned, you MUST run `jettypod work start [chore-id]` before continuing. DO NOT proceed without a valid worktree.
52
+
53
+ **🚫 FORBIDDEN: Manual Git Worktree Commands**
54
+ ```
55
+ ❌ git worktree add ...
56
+ ❌ git checkout -b feature/...
57
+ ❌ git branch feature/...
58
+ ```
59
+ **ALWAYS use `jettypod work start`** - it handles branch naming, path conventions, database tracking, and cleanup. Manual git commands will create orphaned worktrees that break the merge workflow.
60
+
61
+ ---
62
+
63
+ ## πŸ”’ WORKTREE PATH LOCK
64
+
65
+ **After pre-flight validation passes, capture and lock the worktree path:**
66
+
67
+ From the pre-flight query output, extract and store:
68
+ - `WORKTREE_PATH` - the absolute path to the worktree
69
+
70
+ **Display:**
71
+
72
+ ```
73
+ πŸ”’ WORKTREE LOCK ACTIVE
74
+ Path: ${WORKTREE_PATH}
75
+
76
+ All file writes will use this path.
77
+ ```
78
+
79
+ **From this point forward, ALL file operations MUST use paths starting with `${WORKTREE_PATH}/`**
80
+
81
+ This lock prevents accidental writes to the main repository.
82
+
83
+ ---
84
+
33
85
  ## Implementation Steps
34
86
 
35
87
  ### Step 0: Detect Production Context (CRITICAL FIRST STEP)
36
88
 
37
89
  **MUST RUN FIRST:** Detect which scenario applies to this feature.
38
90
 
91
+ **🚫 FORBIDDEN: Writing Files at This Step**
92
+ ```
93
+ ❌ Write tool to any path
94
+ ❌ Edit tool to any path
95
+ ❌ Any file creation or modification
96
+ ```
97
+ **This is a DETECTION step.** File writes happen in Step 3.
98
+
39
99
  **To detect context, check these conditions:**
40
100
 
41
101
  ```bash
@@ -89,6 +149,14 @@ This validates that `stable_mode_complete` gate is passed and creates an executi
89
149
 
90
150
  **For all scenarios:** Read production standards file.
91
151
 
152
+ **🚫 FORBIDDEN: Writing Files at This Step**
153
+ ```
154
+ ❌ Write tool to any path
155
+ ❌ Edit tool to any path
156
+ ❌ Any file creation or modification
157
+ ```
158
+ **This is a READ step.** File writes happen in Step 3.
159
+
92
160
  ```bash
93
161
  # Check if production standards file exists
94
162
  ls .jettypod/production-standards.json
@@ -111,6 +179,14 @@ jettypod workflow checkpoint <feature-id> --step=1
111
179
 
112
180
  **For Scenario A only:** Quick validation of existing scenarios.
113
181
 
182
+ **🚫 FORBIDDEN: Writing Files at This Step**
183
+ ```
184
+ ❌ Write tool to any path
185
+ ❌ Edit tool to any path
186
+ ❌ Any file creation or modification
187
+ ```
188
+ **This is a VALIDATION step.** File writes happen in Step 3.
189
+
114
190
  ```javascript
115
191
  const { validateScenarios } = require('../../lib/production-scenario-validator');
116
192
  const { getDb } = require('../../lib/database');
@@ -168,6 +244,14 @@ try {
168
244
 
169
245
  **For Scenario B only:** Re-validate with current standards.
170
246
 
247
+ **🚫 FORBIDDEN: Writing Files at This Step**
248
+ ```
249
+ ❌ Write tool to any path
250
+ ❌ Edit tool to any path
251
+ ❌ Any file creation or modification
252
+ ```
253
+ **This is a VALIDATION step.** File writes happen in Step 3.
254
+
171
255
  ```javascript
172
256
  const { validateScenarios } = require('../../lib/production-scenario-validator');
173
257
  const config = require('../../lib/config');
@@ -223,6 +307,14 @@ try {
223
307
 
224
308
  **For Scenario C only:** Generate production scenarios from standards.
225
309
 
310
+ **🚫 FORBIDDEN: Writing Files at This Step**
311
+ ```
312
+ ❌ Write tool to any path
313
+ ❌ Edit tool to any path
314
+ ❌ Any file creation or modification
315
+ ```
316
+ **This is a GENERATION step (via jettypod commands, not direct file writes).** File writes happen in Step 3.
317
+
226
318
  ```bash
227
319
  # Get feature details
228
320
  sqlite3 .jettypod/work.db "SELECT id, title, scenario_file FROM work_items WHERE id = <feature-id>"
@@ -247,6 +339,10 @@ jettypod workflow checkpoint <feature-id> --step=2
247
339
 
248
340
  ### Step 3: Implement Production Chore
249
341
 
342
+ **πŸ”’ WORKTREE PATH REQUIRED:** All file writes MUST use the `WORKTREE_PATH` captured after pre-flight validation.
343
+
344
+ **βœ… NOW you may write files** - worktree is locked, context is detected.
345
+
250
346
  **For all scenarios:** Implement the current production chore with test-driven iteration.
251
347
 
252
348
  **Get current work and identify target scenario:**
@@ -102,6 +102,28 @@ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path,
102
102
 
103
103
  ---
104
104
 
105
+ ## πŸ”’ WORKTREE PATH LOCK
106
+
107
+ **After pre-flight validation passes, capture and lock the worktree path:**
108
+
109
+ From the pre-flight query output, extract and store:
110
+ - `WORKTREE_PATH` - the absolute path to the worktree (e.g., `/path/to/.jettypod-work/4-add-nav-link`)
111
+
112
+ **Display:**
113
+ ```
114
+ πŸ”’ WORKTREE LOCK ACTIVE
115
+ Path: ${WORKTREE_PATH}
116
+
117
+ All file writes will use this path.
118
+ ```
119
+
120
+ **From this point forward, ALL file operations MUST use paths starting with:**
121
+ ```
122
+ ${WORKTREE_PATH}/
123
+ ```
124
+
125
+ ---
126
+
105
127
  ### Overview
106
128
 
107
129
  **Speed Mode Goal:** Make it work - implement ALL functionality (integration + required + optional features) to make success scenarios pass, assuming everything works correctly.
@@ -269,6 +291,14 @@ Analyzing BDD scenarios to determine implementation approach...
269
291
 
270
292
  ### Step 1: Check for Breadcrumbs and Analyze Scenario
271
293
 
294
+ **🚫 FORBIDDEN: Writing Files at This Step**
295
+ ```
296
+ ❌ Write tool to any path
297
+ ❌ Edit tool to any path
298
+ ❌ Any file creation or modification
299
+ ```
300
+ **This is an ANALYSIS step.** File writes happen in Step 5.
301
+
272
302
  **CRITICAL:** Claude Code executes this autonomously - no user permission needed.
273
303
 
274
304
  **Your task:**
@@ -340,6 +370,14 @@ Now analyzing codebase to propose implementation...
340
370
 
341
371
  ### Step 2: Autonomous Codebase Analysis
342
372
 
373
+ **🚫 FORBIDDEN: Writing Files at This Step**
374
+ ```
375
+ ❌ Write tool to any path
376
+ ❌ Edit tool to any path
377
+ ❌ Any file creation or modification
378
+ ```
379
+ **This is an ANALYSIS step.** File writes happen in Step 5.
380
+
343
381
  **CRITICAL:** Claude Code executes this autonomously - no user permission needed.
344
382
 
345
383
  **Your task:**
@@ -416,6 +454,14 @@ jettypod workflow checkpoint <feature-id> --step=2
416
454
 
417
455
  ### Step 3: Decide if Confirmation Needed
418
456
 
457
+ **🚫 FORBIDDEN: Writing Files at This Step**
458
+ ```
459
+ ❌ Write tool to any path
460
+ ❌ Edit tool to any path
461
+ ❌ Any file creation or modification
462
+ ```
463
+ **This is a DECISION step.** File writes happen in Step 5.
464
+
419
465
  **Evaluate if you need user confirmation before implementing:**
420
466
 
421
467
  **Skip confirmation (proceed directly to Step 4) if:**
@@ -432,6 +478,14 @@ jettypod workflow checkpoint <feature-id> --step=2
432
478
 
433
479
  ### Step 3A: Propose Implementation Approach (Conditional)
434
480
 
481
+ **🚫 FORBIDDEN: Writing Files at This Step**
482
+ ```
483
+ ❌ Write tool to any path
484
+ ❌ Edit tool to any path
485
+ ❌ Any file creation or modification
486
+ ```
487
+ **This is a PROPOSAL step.** File writes happen in Step 5.
488
+
435
489
  **⚑ ASYNC BOUNDARY - Only execute this if confirmation needed**
436
490
 
437
491
  **Present your analysis and proposal to the user:**
@@ -514,6 +568,10 @@ jettypod workflow checkpoint <feature-id> --step=4
514
568
 
515
569
  ### Step 5: REDβ†’GREENβ†’REFACTOR Loop
516
570
 
571
+ **πŸ”’ WORKTREE PATH REQUIRED:** All file writes MUST use the `WORKTREE_PATH` captured after pre-flight validation.
572
+
573
+ **βœ… NOW you may write files** - worktree is locked, approach is confirmed.
574
+
517
575
  **Execute autonomously** - iterate until tests pass (max 10 iterations).
518
576
 
519
577
  **Each iteration (True TDD):**
@@ -862,7 +920,7 @@ cd <main-repo> # Bash call 1
862
920
  ```
863
921
 
864
922
  ```bash
865
- jettypod work merge --release-lock # Bash call 2
923
+ jettypod work merge <last-chore-id> --release-lock # Bash call 2
866
924
  ```
867
925
 
868
926
  **πŸ”„ WORKFLOW COMPLETE: Speed mode finished**
@@ -967,11 +1025,10 @@ Before ending speed-mode skill, ensure:
967
1025
  cd <main-repo>
968
1026
  ```
969
1027
  ```bash
970
- # Bash call 2: Merge (pick one)
971
- jettypod work merge <id> # Merge chore by ID (recommended)
972
- jettypod work merge # Merge current chore
973
- jettypod work merge --with-transition # Hold lock for transition
974
- jettypod work merge --release-lock # Release held lock
1028
+ # Bash call 2: Merge (ALWAYS include chore ID)
1029
+ jettypod work merge <chore-id> # Merge chore by ID
1030
+ jettypod work merge <chore-id> --with-transition # Hold lock for transition
1031
+ jettypod work merge <chore-id> --release-lock # Release held lock
975
1032
  ```
976
1033
 
977
1034
  **Start chores:**
@@ -109,6 +109,28 @@ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path,
109
109
 
110
110
  ---
111
111
 
112
+ ## πŸ”’ WORKTREE PATH LOCK
113
+
114
+ **After pre-flight validation passes, capture and lock the worktree path:**
115
+
116
+ From the pre-flight query output, extract and store:
117
+ - `WORKTREE_PATH` - the absolute path to the worktree
118
+
119
+ **Display:**
120
+
121
+ ```
122
+ πŸ”’ WORKTREE LOCK ACTIVE
123
+ Path: ${WORKTREE_PATH}
124
+
125
+ All file writes will use this path.
126
+ ```
127
+
128
+ **From this point forward, ALL file operations MUST use paths starting with `${WORKTREE_PATH}/`**
129
+
130
+ This lock prevents accidental writes to the main repository.
131
+
132
+ ---
133
+
112
134
  ### Overview
113
135
 
114
136
  **Stable Mode Goal:** Transform speed mode's "make it work" implementation into robust, reliable code with comprehensive error handling and validation.
@@ -271,6 +293,14 @@ Analyzing stable mode BDD scenarios to determine what error handling and validat
271
293
 
272
294
  **CRITICAL:** Claude Code executes this autonomously - no user permission needed.
273
295
 
296
+ **🚫 FORBIDDEN: Writing Files at This Step**
297
+ ```
298
+ ❌ Write tool to any path
299
+ ❌ Edit tool to any path
300
+ ❌ Any file creation or modification
301
+ ```
302
+ **This is an ANALYSIS step.** File writes happen in Step 5.
303
+
274
304
  **Your task:**
275
305
  1. Get current work item and parent feature's scenario file
276
306
  2. Read the full scenario file (should have success scenarios + stable mode error/edge case scenarios)
@@ -328,6 +358,14 @@ Now reviewing speed mode implementation...
328
358
 
329
359
  **CRITICAL:** Claude Code executes this autonomously - no user permission needed.
330
360
 
361
+ **🚫 FORBIDDEN: Writing Files at This Step**
362
+ ```
363
+ ❌ Write tool to any path
364
+ ❌ Edit tool to any path
365
+ ❌ Any file creation or modification
366
+ ```
367
+ **This is an ANALYSIS step.** File writes happen in Step 5.
368
+
331
369
  **Your task:**
332
370
  1. Find files created/modified in speed mode
333
371
  2. Read the existing implementation
@@ -380,6 +418,14 @@ jettypod workflow checkpoint <feature-id> --step=2
380
418
 
381
419
  ### Step 3: Decide if Confirmation Needed
382
420
 
421
+ **🚫 FORBIDDEN: Writing Files at This Step**
422
+ ```
423
+ ❌ Write tool to any path
424
+ ❌ Edit tool to any path
425
+ ❌ Any file creation or modification
426
+ ```
427
+ **This is a DECISION step.** File writes happen in Step 5.
428
+
383
429
  **Evaluate if you need user confirmation before implementing:**
384
430
 
385
431
  **Skip confirmation (proceed directly to Step 4) if:**
@@ -398,6 +444,14 @@ jettypod workflow checkpoint <feature-id> --step=2
398
444
 
399
445
  **⚑ ASYNC BOUNDARY - Only execute this if confirmation needed**
400
446
 
447
+ **🚫 FORBIDDEN: Writing Files at This Step**
448
+ ```
449
+ ❌ Write tool to any path
450
+ ❌ Edit tool to any path
451
+ ❌ Any file creation or modification
452
+ ```
453
+ **This is a PROPOSAL step.** File writes happen in Step 5.
454
+
401
455
  **Present your analysis and proposal to the user:**
402
456
 
403
457
  ```
@@ -496,6 +550,10 @@ jettypod workflow checkpoint <feature-id> --step=4
496
550
 
497
551
  ### Step 5: REDβ†’GREENβ†’REFACTOR Loop
498
552
 
553
+ **πŸ”’ WORKTREE PATH REQUIRED:** All file writes MUST use the `WORKTREE_PATH` captured after pre-flight validation.
554
+
555
+ **βœ… NOW you may write files** - worktree is locked, approach is confirmed.
556
+
499
557
  **Execute autonomously** - iterate until tests pass (max 10 iterations).
500
558
 
501
559
  **Each iteration (True TDD):**
@@ -779,9 +837,8 @@ Before ending stable-mode skill, ensure:
779
837
  cd <main-repo>
780
838
  ```
781
839
  ```bash
782
- # Bash call 2: Merge (pick one)
783
- jettypod work merge <id> # Merge chore by ID (recommended)
784
- jettypod work merge # Merge current chore
840
+ # Bash call 2: Merge (ALWAYS include chore ID)
841
+ jettypod work merge <chore-id> # Merge chore by ID
785
842
  ```
786
843
 
787
844
  **Start chores:**
@@ -811,7 +868,7 @@ jettypod work set-mode <feature-id> production # Set feature to production mode
811
868
  - Parallel worktrees branch from main independently
812
869
 
813
870
  **Process:**
814
- 1. Complete chore β†’ run `cd <main-repo>` then `jettypod work merge` as SEPARATE Bash calls
871
+ 1. Complete chore β†’ run `cd <main-repo>` then `jettypod work merge <chore-id>` as SEPARATE Bash calls
815
872
  2. Start next chore β†’ `jettypod work start <next-id>`
816
873
  3. Repeat
817
874