jettypod 4.4.45 → 4.4.47
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/jettypod.js +485 -117
- package/lib/database.js +33 -0
- package/lib/work-commands/index.js +73 -1
- package/lib/worktree-manager.js +6 -2
- package/package.json +1 -1
- package/skills-templates/chore-mode/SKILL.md +8 -0
- package/skills-templates/feature-planning/SKILL.md +242 -144
- package/skills-templates/speed-mode/SKILL.md +39 -13
- package/skills-templates/stable-mode/SKILL.md +8 -0
|
@@ -627,22 +627,42 @@ After merge, you are on main branch. Ready to generate stable mode scenarios.
|
|
|
627
627
|
|
|
628
628
|
**⚡ ASYNC BOUNDARY - Must wait for user confirmation**
|
|
629
629
|
|
|
630
|
-
**1.
|
|
630
|
+
**1. Create a test worktree for writing stable mode scenarios:**
|
|
631
|
+
|
|
632
|
+
**🚫 FORBIDDEN: Manual Git Worktree Commands**
|
|
633
|
+
```
|
|
634
|
+
❌ git worktree add ...
|
|
635
|
+
❌ git checkout -b tests/...
|
|
636
|
+
❌ git branch tests/...
|
|
637
|
+
```
|
|
638
|
+
**ALWAYS use jettypod commands** - they handle branch naming, path conventions, database tracking, and cleanup. Manual git commands will create orphaned worktrees that break the merge workflow.
|
|
639
|
+
|
|
640
|
+
```bash
|
|
641
|
+
jettypod work tests <feature-id>
|
|
642
|
+
```
|
|
643
|
+
|
|
644
|
+
This creates an isolated worktree at `.jettypod-work/tests-<id>-<slug>` with branch `tests/feature-<id>-<slug>`.
|
|
645
|
+
|
|
646
|
+
**🛑 CRITICAL:** All BDD file operations MUST use absolute paths in the test worktree:
|
|
647
|
+
- ✅ `/path/to/.jettypod-work/tests-42-login/features/login.feature`
|
|
648
|
+
- ❌ `features/login.feature` (this would write to main repo!)
|
|
649
|
+
|
|
650
|
+
**2. Read the feature's scenario file and analyze for stable mode needs:**
|
|
631
651
|
|
|
632
652
|
```bash
|
|
633
653
|
sqlite3 .jettypod/work.db "SELECT id, title, scenario_file FROM work_items WHERE id = <feature-id>"
|
|
634
654
|
```
|
|
635
655
|
|
|
636
|
-
**
|
|
656
|
+
**3. Generate stable mode BDD scenarios** covering:
|
|
637
657
|
- **Error scenarios** - Invalid input, missing params, system errors, permission failures
|
|
638
658
|
- **Edge cases** - Empty inputs, boundary values, special characters
|
|
639
659
|
- **State consistency** - Concurrent ops, partial failures, invalid state transitions
|
|
640
660
|
|
|
641
|
-
**
|
|
661
|
+
**4. Append scenarios to the feature file IN THE TEST WORKTREE:**
|
|
642
662
|
|
|
643
|
-
|
|
644
|
-
cat >> <scenario-file-path> << 'EOF'
|
|
663
|
+
Use the Edit tool to append to `<worktree-path>/features/<feature-file>`:
|
|
645
664
|
|
|
665
|
+
```gherkin
|
|
646
666
|
# Stable Mode Scenarios - Error Handling and Edge Cases
|
|
647
667
|
|
|
648
668
|
Scenario: [Error scenario title]
|
|
@@ -654,14 +674,15 @@ Scenario: [Edge case title]
|
|
|
654
674
|
Given [context]
|
|
655
675
|
When [edge case input]
|
|
656
676
|
Then [expected behavior]
|
|
657
|
-
EOF
|
|
658
677
|
```
|
|
659
678
|
|
|
660
|
-
**
|
|
679
|
+
**5. Create step definitions IN THE TEST WORKTREE** at `<worktree-path>/features/step_definitions/<feature-slug>-stable.steps.js`
|
|
661
680
|
|
|
662
|
-
**
|
|
681
|
+
**6. Commit and merge the test worktree:**
|
|
663
682
|
|
|
664
683
|
```bash
|
|
684
|
+
# Commit in the test worktree
|
|
685
|
+
cd <worktree-path>
|
|
665
686
|
git add features/
|
|
666
687
|
git commit -m "test: Add stable mode BDD scenarios and step definitions
|
|
667
688
|
|
|
@@ -669,13 +690,12 @@ Added error handling and edge case scenarios for stable mode.
|
|
|
669
690
|
- [N] new stable mode scenarios
|
|
670
691
|
- Step definitions for validation and error handling"
|
|
671
692
|
|
|
672
|
-
|
|
693
|
+
# Return to main repo and merge
|
|
694
|
+
cd <main-repo-path>
|
|
695
|
+
jettypod work merge <feature-id>
|
|
673
696
|
```
|
|
674
697
|
|
|
675
|
-
|
|
676
|
-
Other assistants may be working in parallel - uncommitted files will block their merges.
|
|
677
|
-
|
|
678
|
-
**6. Present proposal to user:**
|
|
698
|
+
**7. Present proposal to user:**
|
|
679
699
|
|
|
680
700
|
```
|
|
681
701
|
📋 Stable Mode Transition
|
|
@@ -826,6 +846,12 @@ jettypod work merge --release-lock # Release held lock
|
|
|
826
846
|
jettypod work start <chore-id> # Create worktree and start chore
|
|
827
847
|
```
|
|
828
848
|
|
|
849
|
+
**Create test worktree (for writing BDD scenarios):**
|
|
850
|
+
```bash
|
|
851
|
+
jettypod work tests <feature-id> # Create worktree for writing tests
|
|
852
|
+
jettypod work merge <feature-id> # Merge tests back to main
|
|
853
|
+
```
|
|
854
|
+
|
|
829
855
|
**Set feature mode (BEFORE creating chores):**
|
|
830
856
|
```bash
|
|
831
857
|
jettypod work set-mode <feature-id> stable
|
|
@@ -72,6 +72,14 @@ sqlite3 .jettypod/work.db "SELECT wi.id, wi.title, wi.status, wt.worktree_path,
|
|
|
72
72
|
|
|
73
73
|
**🛑 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.
|
|
74
74
|
|
|
75
|
+
**🚫 FORBIDDEN: Manual Git Worktree Commands**
|
|
76
|
+
```
|
|
77
|
+
❌ git worktree add ...
|
|
78
|
+
❌ git checkout -b feature/...
|
|
79
|
+
❌ git branch feature/...
|
|
80
|
+
```
|
|
81
|
+
**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.
|
|
82
|
+
|
|
75
83
|
**Example of valid output:**
|
|
76
84
|
```
|
|
77
85
|
4|Add error handling|in_progress|/Users/erik/project/.jettypod-work/4-add-error-handling|feature/work-4-add-error-handling
|