jettypod 4.4.52 → 4.4.54

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jettypod",
3
- "version": "4.4.52",
3
+ "version": "4.4.54",
4
4
  "description": "AI-powered development workflow manager with TDD, BDD, and automatic test generation",
5
5
  "main": "jettypod.js",
6
6
  "bin": {
@@ -45,6 +45,22 @@ When this skill is activated, you are executing a standalone chore. The chore-pl
45
45
 
46
46
  ---
47
47
 
48
+ ## 🚨 SHELL CWD RECOVERY
49
+
50
+ **If ALL bash commands start failing with "Error: Exit code 1" and no output:**
51
+
52
+ Your shell's working directory was likely inside a worktree that was deleted. The CWD no longer exists.
53
+
54
+ **Recovery steps:**
55
+ 1. Get the main repo path from your session context (look for the project path in earlier messages)
56
+ 2. Run: `cd <main-repo-path>`
57
+ 3. Verify: `pwd && ls .jettypod`
58
+ 4. Resume your work
59
+
60
+ **Why this happens:** When a worktree is merged, it gets deleted. If your shell was inside that worktree directory, all subsequent commands fail because the CWD doesn't exist.
61
+
62
+ ---
63
+
48
64
  ## Implementation Steps
49
65
 
50
66
  ### Step 1: Receive and Display Context
@@ -355,12 +371,20 @@ Go back to Step 5 to fix issues.
355
371
  git add .
356
372
  git commit -m "chore: [brief description]"
357
373
  git push
374
+ ```
375
+
376
+ **🚨 CRITICAL: Shell CWD Corruption Prevention**
377
+
378
+ The merge will delete the worktree. Chain commands to ensure shell is in main repo BEFORE deletion.
358
379
 
359
- # Switch to main repo before merging (merge cannot run from inside worktree)
360
- cd $(git rev-parse --show-toplevel)/..
380
+ ```bash
381
+ # CRITICAL: cd to main repo AND merge in SAME command
382
+ cd $(git rev-parse --show-toplevel)/.. && jettypod work merge [chore-id]
383
+ ```
361
384
 
362
- # Merge to main (auto-marks chore done)
363
- jettypod work merge [chore-id]
385
+ ```bash
386
+ # MANDATORY: Verify shell is in main repo
387
+ pwd && ls .jettypod
364
388
  ```
365
389
 
366
390
  **Display:**
@@ -19,7 +19,7 @@ When this skill is activated, you are helping discover the best approach for a f
19
19
  |---------|----------|------|-------|
20
20
  | `work implement <feature-id>` | Transition feature to implementation phase | After chores created (Step 8C) | Feature Planning |
21
21
  | `work tests start <feature-id>` | Create worktree for test authoring | After transition (Step 8D) | Feature Planning |
22
- | `work tests merge <feature-id>` | Merge tests to main, cleanup worktree | After tests validated (Step 8D) | Feature Planning |
22
+ | `cd <main-repo> && work tests merge <feature-id>` | Merge tests to main, cleanup worktree | After tests validated (Step 8D) | Feature Planning |
23
23
  | `work start <chore-id>` | Start implementing a specific chore | After tests merged (Step 8E) | Speed Mode |
24
24
 
25
25
  **CRITICAL:** All commands are run by **Claude**, not the user. The distinction is:
@@ -653,7 +653,8 @@ Write your BDD files to:
653
653
  <worktree>/features/email-login.feature
654
654
  <worktree>/features/step_definitions/email-login.steps.js
655
655
 
656
- When done, run: jettypod work tests merge 42
656
+ When done, cd to main repo and merge:
657
+ cd /path/to/main/repo && jettypod work tests merge 42
657
658
  ```
658
659
 
659
660
  **🛑 STOP AND CHECK:** Verify worktree was created successfully. If you see an error, investigate before continuing.
@@ -735,10 +736,16 @@ sqlite3 .jettypod/work.db "UPDATE work_items SET scenario_file = 'features/${FEA
735
736
 
736
737
  **Sub-step 5: Merge tests to main**
737
738
 
739
+ **⚠️ CRITICAL: The merge will delete the worktree.** Your shell is currently inside it. Chain commands to ensure shell is in main repo BEFORE deletion:
740
+
738
741
  ```bash
739
- jettypod work tests merge ${FEATURE_ID}
742
+ # CRITICAL: cd to main repo AND merge in SAME command
743
+ # This ensures shell is in main repo BEFORE worktree deletion
744
+ cd <main-repo-path> && jettypod work tests merge ${FEATURE_ID}
740
745
  ```
741
746
 
747
+ If you run the merge while your shell is in the worktree, subsequent commands will fail with "No such file or directory".
748
+
742
749
  This will:
743
750
  - Commit changes in the worktree
744
751
  - Merge to main
@@ -913,6 +920,6 @@ Before completing feature planning, ensure:
913
920
  - [ ] **Test worktree created** with `work tests start` (Step 8D)
914
921
  - [ ] **BDD files written** in worktree (Step 8D)
915
922
  - [ ] **BDD infrastructure validated** with dry-run (Step 8D)
916
- - [ ] **Tests merged to main** with `work tests merge` (Step 8D)
923
+ - [ ] **Tests merged to main** with `cd <main-repo> && work tests merge` (Step 8D)
917
924
  - [ ] First chore started with `work start [chore-id]` (Step 8E)
918
925
  - [ ] **Speed-mode skill invoked using Skill tool** (Step 8E)
@@ -48,6 +48,27 @@ When this skill is activated, you are helping implement a speed mode chore to ma
48
48
 
49
49
  ---
50
50
 
51
+ ## 🚨 SHELL CWD RECOVERY
52
+
53
+ **If ALL bash commands start failing with "Error: Exit code 1" and no output:**
54
+
55
+ Your shell's working directory was likely inside a worktree that was deleted. The CWD no longer exists.
56
+
57
+ **Recovery steps:**
58
+ 1. Get the main repo path from your session context (look for the project path in earlier messages)
59
+ 2. Run: `cd <main-repo-path>`
60
+ 3. Verify: `pwd && ls .jettypod`
61
+ 4. Resume your work
62
+
63
+ **Example:**
64
+ ```bash
65
+ cd /Users/erikspangenberg/personal-assistant && pwd
66
+ ```
67
+
68
+ **Why this happens:** When a worktree is merged, it gets deleted. If your shell was inside that worktree directory, all subsequent commands fail because the CWD doesn't exist.
69
+
70
+ ---
71
+
51
72
  ## 🛑 PRE-FLIGHT VALIDATION (REQUIRED)
52
73
 
53
74
  **Before proceeding with ANY implementation, you MUST validate the worktree exists.**
@@ -592,16 +613,23 @@ More speed mode chores remain. Starting next chore:
592
613
 
593
614
  **Merge and start next:**
594
615
 
616
+ **🚨 CRITICAL: Shell CWD Corruption Prevention**
617
+
618
+ The merge will delete the worktree. Chain commands to ensure shell is in main repo BEFORE deletion.
619
+
595
620
  ```bash
596
621
  # Commit changes in the worktree
597
622
  git add . && git commit -m "feat: [brief description of what was implemented]"
623
+ ```
598
624
 
599
- # Return to main repo and merge (cannot merge from inside worktree)
600
- cd $(git rev-parse --show-toplevel)/.. # Exit worktree to main repo
601
- jettypod work merge [current-chore-id]
625
+ ```bash
626
+ # CRITICAL: cd to main repo AND merge in SAME command
627
+ cd $(git rev-parse --show-toplevel)/.. && jettypod work merge [current-chore-id]
628
+ ```
602
629
 
603
- # Start next speed chore
604
- jettypod work start [next-chore-id]
630
+ ```bash
631
+ # Verify shell is valid, then start next chore
632
+ pwd && jettypod work start [next-chore-id]
605
633
  ```
606
634
 
607
635
  The speed-mode skill will automatically re-invoke for the next chore.
@@ -640,15 +668,28 @@ npx cucumber-js <scenario-file-path> --name "User can reach" --format progress
640
668
 
641
669
  #### Step 7B: Merge Final Speed Chore
642
670
 
671
+ **🚨 CRITICAL: Shell CWD Corruption Prevention**
672
+
673
+ The merge will delete the worktree. Chain commands to ensure shell is in main repo BEFORE deletion.
674
+
643
675
  ```bash
644
676
  # Commit changes in the worktree
645
677
  git add . && git commit -m "feat: [brief description of what was implemented]"
678
+ ```
646
679
 
647
- # Return to main repo and merge (cannot merge from inside worktree)
648
- cd $(git rev-parse --show-toplevel)/.. # Exit worktree to main repo
649
- jettypod work merge [current-chore-id] --with-transition
680
+ ```bash
681
+ # CRITICAL: cd to main repo AND merge in SAME command
682
+ # Using $(git rev-parse --show-toplevel)/.. exits worktree to main repo
683
+ cd $(git rev-parse --show-toplevel)/.. && jettypod work merge [current-chore-id] --with-transition
650
684
  ```
651
685
 
686
+ ```bash
687
+ # MANDATORY: Verify shell is in main repo (run immediately after merge)
688
+ pwd && ls .jettypod
689
+ ```
690
+
691
+ **If you see "No such file or directory" errors:** Your shell CWD was corrupted. Get the main repo path from your session context and run `cd <main-repo-path>`.
692
+
652
693
  After merge, you are on main branch. Ready to generate stable mode scenarios.
653
694
 
654
695
  #### Step 7C: Generate and Propose Stable Mode Chores
@@ -708,19 +749,35 @@ Scenario: [Edge case title]
708
749
 
709
750
  **6. Commit and merge the test worktree:**
710
751
 
752
+ **🚨 CRITICAL: Shell CWD Corruption Prevention**
753
+
754
+ The merge will delete the test worktree. If your shell is inside that worktree, ALL subsequent commands will fail. You MUST:
755
+ 1. Chain the cd and merge in a SINGLE bash command
756
+ 2. Verify your shell is in main repo AFTER merge
757
+
711
758
  ```bash
712
- # Commit in the test worktree
713
- cd <worktree-path>
714
- git add features/
715
- git commit -m "test: Add stable mode BDD scenarios and step definitions
759
+ # First: Commit in the test worktree (separate command is OK here)
760
+ cd <worktree-path> && git add features/ && git commit -m "test: Add stable mode BDD scenarios and step definitions
716
761
 
717
762
  Added error handling and edge case scenarios for stable mode.
718
763
  - [N] new stable mode scenarios
719
764
  - Step definitions for validation and error handling"
765
+ ```
766
+
767
+ ```bash
768
+ # CRITICAL: cd to main repo AND merge in SAME command
769
+ # This ensures shell is in main repo BEFORE worktree deletion
770
+ cd <main-repo-path> && jettypod work tests merge <feature-id>
771
+ ```
720
772
 
721
- # Return to main repo and merge
773
+ ```bash
774
+ # MANDATORY: Verify shell is in main repo (run this immediately after merge)
775
+ pwd && ls .jettypod
776
+ ```
777
+
778
+ **If you see "No such file or directory" errors:** Your shell CWD was corrupted. Run:
779
+ ```bash
722
780
  cd <main-repo-path>
723
- jettypod work tests merge <feature-id>
724
781
  ```
725
782
 
726
783
  **7. Present proposal to user:**
@@ -770,7 +827,7 @@ Repeat for each confirmed chore. **Do NOT use `--mode` flag** - chores inherit m
770
827
  **3. Release merge lock:**
771
828
 
772
829
  ```bash
773
- jettypod work merge --release-lock
830
+ cd <main-repo> && jettypod work merge --release-lock
774
831
  ```
775
832
 
776
833
  **🔄 WORKFLOW COMPLETE: Speed mode finished**
@@ -869,12 +926,12 @@ Before ending speed-mode skill, ensure:
869
926
 
870
927
  ## Command Reference
871
928
 
872
- **Complete chores (run from main repo, not worktree):**
929
+ **Complete chores (CRITICAL: cd to main repo BEFORE merge - worktree will be deleted):**
873
930
  ```bash
874
- jettypod work merge <id> # Merge chore by ID (recommended)
875
- jettypod work merge # Merge current chore (requires being on feature branch)
876
- jettypod work merge --with-transition # Hold lock for transition phase
877
- jettypod work merge --release-lock # Release held lock
931
+ cd <main-repo> && jettypod work merge <id> # Merge chore by ID (recommended)
932
+ cd <main-repo> && jettypod work merge # Merge current chore
933
+ cd <main-repo> && jettypod work merge --with-transition # Hold lock for transition
934
+ cd <main-repo> && jettypod work merge --release-lock # Release held lock
878
935
  ```
879
936
 
880
937
  **Start chores:**
@@ -885,7 +942,8 @@ jettypod work start <chore-id> # Create worktree and start chore
885
942
  **Create test worktree (for writing BDD scenarios):**
886
943
  ```bash
887
944
  jettypod work tests <feature-id> # Create worktree for writing tests
888
- jettypod work tests merge <feature-id> # Merge tests back to main
945
+ # CRITICAL: cd to main repo BEFORE merge (worktree will be deleted)
946
+ cd <main-repo> && jettypod work tests merge <feature-id>
889
947
  ```
890
948
 
891
949
  **Set feature mode (BEFORE creating chores):**
@@ -52,6 +52,22 @@ When this skill is activated, you are helping implement a stable mode chore to a
52
52
 
53
53
  ---
54
54
 
55
+ ## 🚨 SHELL CWD RECOVERY
56
+
57
+ **If ALL bash commands start failing with "Error: Exit code 1" and no output:**
58
+
59
+ Your shell's working directory was likely inside a worktree that was deleted. The CWD no longer exists.
60
+
61
+ **Recovery steps:**
62
+ 1. Get the main repo path from your session context (look for the project path in earlier messages)
63
+ 2. Run: `cd <main-repo-path>`
64
+ 3. Verify: `pwd && ls .jettypod`
65
+ 4. Resume your work
66
+
67
+ **Why this happens:** When a worktree is merged, it gets deleted. If your shell was inside that worktree directory, all subsequent commands fail because the CWD doesn't exist.
68
+
69
+ ---
70
+
55
71
  ## 🛑 PRE-FLIGHT VALIDATION (REQUIRED)
56
72
 
57
73
  **Before proceeding with ANY implementation, you MUST validate the worktree exists.**
@@ -556,16 +572,23 @@ More stable mode chores remain. Starting next chore:
556
572
 
557
573
  **Merge and start next:**
558
574
 
575
+ **🚨 CRITICAL: Shell CWD Corruption Prevention**
576
+
577
+ The merge will delete the worktree. Chain commands to ensure shell is in main repo BEFORE deletion.
578
+
559
579
  ```bash
560
580
  # Commit changes in the worktree
561
581
  git add . && git commit -m "feat: [brief description of error handling added]"
582
+ ```
562
583
 
563
- # Return to main repo and merge (cannot merge from inside worktree)
564
- cd $(git rev-parse --show-toplevel)/.. # Exit worktree to main repo
565
- jettypod work merge [current-chore-id]
584
+ ```bash
585
+ # CRITICAL: cd to main repo AND merge in SAME command
586
+ cd $(git rev-parse --show-toplevel)/.. && jettypod work merge [current-chore-id]
587
+ ```
566
588
 
567
- # Start next stable chore
568
- jettypod work start [next-chore-id]
589
+ ```bash
590
+ # Verify shell is valid, then start next chore
591
+ pwd && jettypod work start [next-chore-id]
569
592
  ```
570
593
 
571
594
  The stable-mode skill will automatically re-invoke for the next chore.
@@ -584,10 +607,20 @@ If the query returns no remaining chores, proceed to Step 7.
584
607
 
585
608
  **First, merge the final stable chore:**
586
609
 
610
+ **🚨 CRITICAL: Shell CWD Corruption Prevention**
611
+
587
612
  ```bash
588
613
  git add . && git commit -m "feat: [brief description of error handling added]"
589
- cd $(git rev-parse --show-toplevel)/.. # Exit worktree to main repo
590
- jettypod work merge [current-chore-id]
614
+ ```
615
+
616
+ ```bash
617
+ # CRITICAL: cd to main repo AND merge in SAME command
618
+ cd $(git rev-parse --show-toplevel)/.. && jettypod work merge [current-chore-id]
619
+ ```
620
+
621
+ ```bash
622
+ # MANDATORY: Verify shell is in main repo
623
+ pwd && ls .jettypod
591
624
  ```
592
625
 
593
626
  **Then check project state:**
@@ -710,10 +743,10 @@ Before ending stable-mode skill, ensure:
710
743
 
711
744
  ## Command Reference
712
745
 
713
- **Complete chores (run from main repo, not worktree):**
746
+ **Complete chores (CRITICAL: cd to main repo BEFORE merge - worktree will be deleted):**
714
747
  ```bash
715
- jettypod work merge <id> # Merge chore by ID (recommended)
716
- jettypod work merge # Merge current chore (requires being on feature branch)
748
+ cd <main-repo> && jettypod work merge <id> # Merge chore by ID (recommended)
749
+ cd <main-repo> && jettypod work merge # Merge current chore
717
750
  ```
718
751
 
719
752
  **Start chores:**
@@ -743,7 +776,7 @@ jettypod work set-mode <feature-id> production # Set feature to production mode
743
776
  - Parallel worktrees branch from main independently
744
777
 
745
778
  **Process:**
746
- 1. Complete chore → `jettypod work merge`
779
+ 1. Complete chore → `cd <main-repo> && jettypod work merge` (CRITICAL: cd first!)
747
780
  2. Start next chore → `jettypod work start <next-id>`
748
781
  3. Repeat
749
782