jettypod 4.4.12 → 4.4.13

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.12",
3
+ "version": "4.4.13",
4
4
  "description": "AI-powered development workflow manager with TDD, BDD, and automatic test generation",
5
5
  "main": "jettypod.js",
6
6
  "bin": {
@@ -183,7 +183,48 @@ User picks winner. Note their choice - you'll record it formally in Step 8 when
183
183
 
184
184
  **Proceed to Step 6.**
185
185
 
186
- ### Step 6: Generate BDD Scenarios AND Step Definitions
186
+ ### Step 6: Define Integration Contract AND Generate BDD Scenarios
187
+
188
+ **CRITICAL:** Before writing scenarios, you MUST define how users reach this feature. Features that pass tests but aren't integrated into the product are useless.
189
+
190
+ #### Step 6A: Define Integration Contract
191
+
192
+ **Ask yourself and document:**
193
+
194
+ 1. **Entry Point** - How does a user reach this feature?
195
+ - Web: URL/route (e.g., `/login`, `/dashboard/settings`)
196
+ - CLI: Command (e.g., `jettypod backlog`)
197
+ - UI: Button, link, menu item (e.g., "Login button in header")
198
+ - API: Endpoint that exposes this (e.g., `POST /api/auth/login`)
199
+
200
+ 2. **Caller Code** - What existing code must invoke/import the new feature?
201
+ - Which file imports it (e.g., `src/app/layout.tsx`)
202
+ - Which component/function renders or calls it
203
+ - Where it's registered/mounted (e.g., router config, command registry)
204
+
205
+ 3. **Integration Scenario** - A BDD scenario proving the feature is reachable
206
+ - Must start from an existing entry point users can access
207
+ - Must navigate/invoke to reach the new feature
208
+ - Proves the feature isn't an "island"
209
+
210
+ **Display to user:**
211
+
212
+ ```
213
+ 📍 Integration Contract
214
+
215
+ **Entry Point:** [How users reach this feature]
216
+ **Caller Code:** [What existing code invokes this]
217
+ **Integration Test:** [Scenario proving reachability]
218
+
219
+ Example:
220
+ - Entry Point: `/login` route
221
+ - Caller Code: `src/app/layout.tsx` renders `<LoginButton>` in header, which links to `/login`
222
+ - Integration Test: "Given I'm on the home page, When I click 'Sign In', Then I see the login form"
223
+ ```
224
+
225
+ **WAIT for user to confirm or adjust the integration contract.**
226
+
227
+ #### Step 6B: Generate BDD Scenarios AND Step Definitions
187
228
 
188
229
  **CRITICAL:** BDD scenarios and step definitions must ALWAYS be created together. Never create scenarios without step definitions.
189
230
 
@@ -198,7 +239,8 @@ Based on chosen approach, generate:
198
239
  **A. Scenario file** at `features/[feature-slug].feature` using Write tool:
199
240
 
200
241
  1. **Create file** at `features/[feature-slug].feature` using Write tool
201
- 2. **Include all "make it work" scenarios**:
242
+ 2. **FIRST scenario MUST be the Integration Scenario** from Step 6A (proves reachability)
243
+ 3. **Include all "make it work" scenarios**:
202
244
  - All success paths - required functionality AND optional features
203
245
  - Multiple valid workflows if the feature supports them
204
246
  - Success variations (different outcomes that are all correct)
@@ -239,6 +281,17 @@ Feature: [Feature Name]
239
281
  Epic: [Epic name if applicable]
240
282
  Approach: [Chosen approach name]
241
283
 
284
+ # Integration Contract:
285
+ # Entry Point: [from Step 6A]
286
+ # Caller Code: [from Step 6A]
287
+
288
+ # INTEGRATION SCENARIO (REQUIRED - proves feature is reachable)
289
+ Scenario: User can reach [feature] from [entry point]
290
+ Given I am on [existing entry point users can access]
291
+ When I [navigate/click/invoke to reach the feature]
292
+ Then I [see/access the feature]
293
+
294
+ # FEATURE SCENARIOS (required + optional functionality)
242
295
  Scenario: [Core functionality - required workflow]
243
296
  Given [initial state]
244
297
  When [user takes main action]
@@ -250,7 +303,7 @@ Scenario: [Optional feature 1 - if applicable]
250
303
  When [user uses optional feature]
251
304
  Then [feature works correctly]
252
305
 
253
- # SPEED MODE: All success scenarios above (required + optional functionality)
306
+ # SPEED MODE: All success scenarios above (integration + required + optional)
254
307
  # STABLE MODE: Will add error handling, validation failures, edge cases
255
308
  # These failure scenarios are added by stable-mode skill, NOT during feature discovery
256
309
  ```
@@ -263,6 +316,18 @@ Feature: Email/Password Login
263
316
  Epic: User Authentication
264
317
  Approach: Simple inline form
265
318
 
319
+ # Integration Contract:
320
+ # Entry Point: /login route
321
+ # Caller Code: src/app/layout.tsx renders LoginButton in header
322
+
323
+ # INTEGRATION SCENARIO
324
+ Scenario: User can reach login form from home page
325
+ Given I am on the home page
326
+ When I click the "Sign In" button in the header
327
+ Then I am on the login page
328
+ And I see the email and password fields
329
+
330
+ # FEATURE SCENARIOS
266
331
  Scenario: User successfully logs in with valid credentials
267
332
  Given I am on the login page
268
333
  When I enter valid email and password
@@ -393,13 +458,19 @@ Display: "✅ BDD infrastructure validated - all steps have definitions"
393
458
  **CRITICAL:** After BDD validation passes, analyze the codebase and propose technical implementation chores. **DO NOT CREATE CHORES YET** - the feature must transition to implementation mode first (Step 8).
394
459
 
395
460
  **Your analysis should consider:**
396
- - The BDD scenarios (all success paths - required + optional features)
461
+ - The BDD scenarios (integration + all success paths)
462
+ - The Integration Contract from Step 6A
397
463
  - Existing codebase structure and patterns
398
464
  - Epic's architectural decisions (if any)
399
465
  - Tech stack and framework conventions
400
466
  - Which scenario steps each chore addresses
401
467
  - Similar code patterns to follow
402
468
 
469
+ **REQUIRED: At least one chore MUST be an Integration Chore** that:
470
+ - Wires the feature into the existing app
471
+ - Makes the Integration Scenario pass
472
+ - Modifies the caller code identified in Step 6A
473
+
403
474
  **Say to the user:**
404
475
 
405
476
  ```
@@ -409,7 +480,20 @@ Now let me analyze the codebase and propose implementation chores for speed mode
409
480
 
410
481
  Based on the scenario and my understanding of the codebase, here are the chores I recommend for speed mode:
411
482
 
412
- **Chore 1: [Technical task title]**
483
+ **Chore 1: [Integration chore - wire feature into app]** ⚡ INTEGRATION
484
+ - Why: Makes the feature reachable from [entry point]
485
+ - Integration Contract:
486
+ • Entry point: [from Step 6A]
487
+ • Caller code to modify: [specific file/function]
488
+ - Scenario steps addressed:
489
+ • [Integration scenario Given/When/Then steps]
490
+ - Implementation guidance:
491
+ • Files to modify: [caller code files]
492
+ • What to add: [route, link, import, menu item, etc.]
493
+ - Verification:
494
+ • Integration scenario passes (feature is reachable)
495
+
496
+ **Chore 2: [Core functionality chore]**
413
497
  - Why: [What this accomplishes toward the scenario]
414
498
  - Scenario steps addressed:
415
499
  • [Which Given/When/Then steps this chore makes work]
@@ -420,20 +504,9 @@ Based on the scenario and my understanding of the codebase, here are the chores
420
504
  - Verification:
421
505
  • [Which step definitions should pass]
422
506
 
423
- **Chore 2: [Technical task title]**
424
- - Why: [What this accomplishes]
425
- - Scenario steps addressed:
426
- • [Which steps]
427
- - Implementation guidance:
428
- • Files to create/modify: [paths]
429
- • Patterns to follow: [references]
430
- • Key functions/components needed: [list]
431
- - Verification:
432
- • [Which steps should pass]
433
-
434
507
  [etc.]
435
508
 
436
- These chores will make all success scenarios pass (required + optional features).
509
+ These chores will make all scenarios pass (integration + required + optional features).
437
510
 
438
511
  Sound good? Any adjustments?
439
512
  ```
@@ -633,12 +706,15 @@ Before completing feature planning, ensure:
633
706
  - [ ] Epic's architectural decision is shown (if exists)
634
707
  - [ ] Exactly 3 approaches suggested
635
708
  - [ ] Winner chosen (with prototypes or without)
636
- - [ ] BDD scenarios written (all success paths)
709
+ - [ ] **Integration Contract defined** (entry point, caller code, integration scenario)
710
+ - [ ] **Integration Scenario is FIRST scenario** in feature file
711
+ - [ ] BDD scenarios written (integration + all success paths)
637
712
  - [ ] Step definitions written for ALL scenario steps
638
713
  - [ ] Scenarios file exists at `features/[feature-slug].feature`
639
714
  - [ ] Step definitions file exists at `features/step_definitions/[feature-slug].steps.js`
640
715
  - [ ] BDD infrastructure validated with dry-run (Step 6.5)
641
716
  - [ ] Feature transitioned to implementation with `work implement`
717
+ - [ ] **At least one Integration Chore created** (wires feature into app)
642
718
  - [ ] Speed mode chores created
643
719
  - [ ] First chore started with `work start [chore-id]` (Step 8D)
644
720
  - [ ] **Speed-mode skill invoked using Skill tool** (Step 8D)
@@ -50,9 +50,10 @@ When this skill is activated, you are helping implement a speed mode chore to ma
50
50
 
51
51
  ### Overview
52
52
 
53
- **Speed Mode Goal:** Make it work - implement ALL functionality (required + optional features) to make success scenarios pass, assuming everything works correctly.
53
+ **Speed Mode Goal:** Make it work - implement ALL functionality (integration + required + optional features) to make success scenarios pass, assuming everything works correctly.
54
54
 
55
55
  **Key Principles:**
56
+ - **Integration first** - ensure the feature is wired into the app and reachable (Integration Scenario must pass)
56
57
  - **Implement ALL features/functions** defined in scenarios - both required and optional functionality
57
58
  - **All success paths** - every workflow that should work when inputs are valid
58
59
  - **Assume success** - assume inputs are valid, files upload successfully, types are correct
@@ -67,6 +68,7 @@ When this skill is activated, you are helping implement a speed mode chore to ma
67
68
  <summary><strong>📋 Speed Mode Constraints (click to expand)</strong></summary>
68
69
 
69
70
  **What to implement:**
71
+ - **Integration** - wire feature into the app so it's reachable (Integration Scenario)
70
72
  - ALL scoped functionality - required features AND optional features from all success scenarios
71
73
  - Multiple valid workflows if the feature supports them
72
74
  - Success variations (different outcomes that are all correct)
@@ -556,7 +558,25 @@ If the query returns no remaining chores, proceed to Step 7.
556
558
 
557
559
  This is the transition from speed mode to stable mode. Follow these phases in order.
558
560
 
559
- #### Step 7A: Merge Final Speed Chore
561
+ #### Step 7A: Verify Integration Scenario Passes
562
+
563
+ **CRITICAL: Before transitioning, verify the feature is actually integrated into the app.**
564
+
565
+ ```bash
566
+ # Run ONLY the integration scenario (first scenario in the feature file)
567
+ npx cucumber-js <scenario-file-path> --name "User can reach" --format progress
568
+ ```
569
+
570
+ **If integration scenario FAILS:**
571
+ - The feature exists but isn't wired into the app
572
+ - Stop and fix integration before proceeding
573
+ - Check: Is the route registered? Is the link/button added? Is the import in place?
574
+
575
+ **If integration scenario PASSES:**
576
+ - Feature is reachable by users
577
+ - Proceed to Step 7B
578
+
579
+ #### Step 7B: Merge Final Speed Chore
560
580
 
561
581
  ```bash
562
582
  # Commit changes in the worktree
@@ -568,7 +588,7 @@ jettypod work merge --with-transition
568
588
 
569
589
  After merge, you are on main branch. Ready to generate stable mode scenarios.
570
590
 
571
- #### Step 7B: Generate and Propose Stable Mode Chores
591
+ #### Step 7C: Generate and Propose Stable Mode Chores
572
592
 
573
593
  **⚡ ASYNC BOUNDARY - Must wait for user confirmation**
574
594
 
@@ -628,7 +648,7 @@ Sound good? I'll create these chores once you confirm.
628
648
 
629
649
  **⚡ WAIT for user confirmation or adjustments.**
630
650
 
631
- #### Step 7C: Create Chores and Complete Transition
651
+ #### Step 7D: Create Chores and Complete Transition
632
652
 
633
653
  **After user confirms, execute autonomously:**
634
654
 
@@ -665,7 +685,7 @@ jettypod work merge --release-lock
665
685
  jettypod work set-mode <feature-id> stable
666
686
  ```
667
687
 
668
- #### Step 7D: Invoke Stable Mode Skill
688
+ #### Step 7E: Invoke Stable Mode Skill
669
689
 
670
690
  **🛑 CRITICAL HANDOFF - You MUST invoke stable-mode using the Skill tool.**
671
691
 
@@ -708,6 +728,7 @@ The stable-mode skill will:
708
728
 
709
729
  Before ending speed-mode skill, ensure:
710
730
  - [ ] All speed mode chores complete (GREEN on all success scenarios)
731
+ - [ ] **Integration scenario passes** (feature is reachable, not an "island")
711
732
  - [ ] Stable mode BDD scenarios generated and committed
712
733
  - [ ] Step definitions created for stable scenarios
713
734
  - [ ] Stable mode chores created
@@ -57,7 +57,8 @@ When this skill is activated, you are helping implement a stable mode chore to a
57
57
  **Stable Mode Goal:** Transform speed mode's "make it work" implementation into robust, reliable code with comprehensive error handling and validation.
58
58
 
59
59
  **CRITICAL DISTINCTION:**
60
- - **Speed mode implemented ALL functionality** - every feature/function is already working (all success scenarios)
60
+ - **Speed mode implemented ALL functionality** - every feature/function is already working (integration + all success scenarios)
61
+ - **Speed mode verified integration** - the feature is reachable by users (Integration Scenario passed)
61
62
  - **Stable mode adds COMPLETE robustness** - error handling, validation, and edge cases
62
63
 
63
64
  **Key Principles:**
@@ -612,6 +613,7 @@ The production-mode skill will:
612
613
 
613
614
  Before ending stable-mode skill, ensure:
614
615
  - [ ] All stable mode chores complete (GREEN on all error/edge case scenarios)
616
+ - [ ] Integration scenario still passes (feature remains reachable after error handling added)
615
617
  - [ ] Final chore merged to main
616
618
  - [ ] Project state checked (internal vs external)
617
619
  - [ ] **INTERNAL:** Feature marked as done