jettypod 3.0.1

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.
Files changed (122) hide show
  1. package/.claude/PROTECT_SKILLS.md +28 -0
  2. package/.claude/settings.json +24 -0
  3. package/.claude/settings.local.json +16 -0
  4. package/.claude/skills/epic-discover/SKILL.md +262 -0
  5. package/.claude/skills/feature-discover/SKILL.md +393 -0
  6. package/.claude/skills/speed-mode/SKILL.md +364 -0
  7. package/.claude/skills/stable-mode/SKILL.md +591 -0
  8. package/.github/workflows/test-safety.yml +85 -0
  9. package/README.md +25 -0
  10. package/SPEED-STABLE-AUDIT.md +853 -0
  11. package/SYSTEM-BEHAVIOR.md +1241 -0
  12. package/TEST_SAFETY_AUDIT.md +314 -0
  13. package/TEST_SAFETY_IMPLEMENTATION.md +97 -0
  14. package/cucumber.js +8 -0
  15. package/docs/COMMAND_REFERENCE.md +903 -0
  16. package/docs/DECISIONS.md +68 -0
  17. package/docs/README.md +48 -0
  18. package/docs/STANDARDS-SYSTEM-DOCUMENTATION.md +374 -0
  19. package/docs/TEST-REWRITE-PLAN.md +261 -0
  20. package/docs/ai-test-writing-requirements.md +219 -0
  21. package/docs/claude-code-skills.md +607 -0
  22. package/docs/core-jettypod-methodology/comprehensive-jettypod-methodology.md +582 -0
  23. package/docs/core-jettypod-methodology/deprecated/jettypod-comprehensive-standards.md +1222 -0
  24. package/docs/core-jettypod-methodology/deprecated/jettypod-operating-guide.md +3399 -0
  25. package/docs/core-jettypod-methodology/deprecated/jettypod-technical-checklist.md +1325 -0
  26. package/docs/core-jettypod-methodology/deprecated/jettypod-vibe-coding-framework.md +1544 -0
  27. package/docs/core-jettypod-methodology/deprecated/prompt-engineering-guide.md +320 -0
  28. package/docs/core-jettypod-methodology/deprecated/vibe-coding-cheatsheet (1).md +516 -0
  29. package/docs/core-jettypod-methodology/deprecated/vibe-coding-framework.md +1544 -0
  30. package/docs/features/jettypod-standards-explained.md +543 -0
  31. package/docs/features/standards-inventory.md +257 -0
  32. package/docs/gap-analysis-current-vs-comprehensive-methodology.md +939 -0
  33. package/docs/jettypod-system-overview.md +409 -0
  34. package/features/auto-generate-production-chores.feature +14 -0
  35. package/features/claude-md-protection/steps.js +487 -0
  36. package/features/decisions/index.js +490 -0
  37. package/features/decisions/index.test.js +208 -0
  38. package/features/git-hooks/git-hooks.feature +30 -0
  39. package/features/git-hooks/index.js +93 -0
  40. package/features/git-hooks/index.test.js +137 -0
  41. package/features/git-hooks/post-commit +56 -0
  42. package/features/git-hooks/post-merge +47 -0
  43. package/features/git-hooks/pre-commit +28 -0
  44. package/features/git-hooks/simple-steps.js +53 -0
  45. package/features/git-hooks/simple-test.feature +10 -0
  46. package/features/git-hooks/steps.js +196 -0
  47. package/features/jettypod-update-command.feature +46 -0
  48. package/features/mode-prompts/index.js +95 -0
  49. package/features/mode-prompts/simple-steps.js +44 -0
  50. package/features/mode-prompts/simple-test.feature +9 -0
  51. package/features/mode-prompts/validation.test.js +120 -0
  52. package/features/refactor-mode/steps.js +217 -0
  53. package/features/refactor-mode.feature +49 -0
  54. package/features/skills-update/index.test.js +216 -0
  55. package/features/step_definitions/auto-generate-production-chores.steps.js +162 -0
  56. package/features/step_definitions/terminal-logo.steps.js +145 -0
  57. package/features/step_definitions/update-command.steps.js +183 -0
  58. package/features/terminal-logo/index.js +39 -0
  59. package/features/terminal-logo/terminal-logo.feature +30 -0
  60. package/features/update-command/index.js +181 -0
  61. package/features/update-command/index.test.js +225 -0
  62. package/features/work-commands/bug-workflow-display.feature +22 -0
  63. package/features/work-commands/index.js +311 -0
  64. package/features/work-commands/simple-steps.js +69 -0
  65. package/features/work-commands/stable-tests.feature +57 -0
  66. package/features/work-commands/steps.js +1120 -0
  67. package/features/work-commands/validation.test.js +88 -0
  68. package/features/work-commands/work-commands.feature +13 -0
  69. package/features/work-tracking/discovery-validation.test.js +228 -0
  70. package/features/work-tracking/index.js +1511 -0
  71. package/features/work-tracking/mode-required.feature +112 -0
  72. package/features/work-tracking/phase-tracking.test.js +482 -0
  73. package/features/work-tracking/prototype-tracking.test.js +485 -0
  74. package/features/work-tracking/tree-view.test.js +310 -0
  75. package/features/work-tracking/work-set-mode.feature +71 -0
  76. package/features/work-tracking/work-start-mode.feature +88 -0
  77. package/full-test.txt +0 -0
  78. package/install.sh +89 -0
  79. package/jettypod.js +1640 -0
  80. package/lib/bug-workflow.js +94 -0
  81. package/lib/bug-workflow.test.js +177 -0
  82. package/lib/claudemd.js +130 -0
  83. package/lib/claudemd.test.js +195 -0
  84. package/lib/comprehensive-standards-full.json +1778 -0
  85. package/lib/config.js +181 -0
  86. package/lib/config.test.js +511 -0
  87. package/lib/constants.js +107 -0
  88. package/lib/constants.test.js +164 -0
  89. package/lib/current-work.js +130 -0
  90. package/lib/current-work.test.js +146 -0
  91. package/lib/database-project-config.test.js +107 -0
  92. package/lib/database.js +256 -0
  93. package/lib/database.test.js +106 -0
  94. package/lib/decisions-generator.js +102 -0
  95. package/lib/decisions-generator.test.js +457 -0
  96. package/lib/decisions-helpers.js +119 -0
  97. package/lib/decisions-helpers.test.js +310 -0
  98. package/lib/discovery-checkpoint.js +83 -0
  99. package/lib/docs-generator.js +280 -0
  100. package/lib/external-checklist.js +177 -0
  101. package/lib/git.js +142 -0
  102. package/lib/git.test.js +145 -0
  103. package/lib/logo.js +3 -0
  104. package/lib/migrations/001-epic-to-parent.js +24 -0
  105. package/lib/migrations/002-default-work-item-modes.js +37 -0
  106. package/lib/migrations/002-default-work-item-modes.test.js +351 -0
  107. package/lib/migrations/003-epic-discovery-fields.js +52 -0
  108. package/lib/migrations/004-discovery-decisions-table.js +32 -0
  109. package/lib/migrations/005-migrate-decision-data.js +62 -0
  110. package/lib/migrations/006-feature-phase-field.js +61 -0
  111. package/lib/migrations/007-prototype-tracking.js +38 -0
  112. package/lib/migrations/008-scenario-file-field.js +24 -0
  113. package/lib/migrations/index.js +74 -0
  114. package/lib/production-helpers.js +69 -0
  115. package/lib/project-state.test.js +92 -0
  116. package/lib/test-helpers.js +184 -0
  117. package/lib/test-helpers.test.js +255 -0
  118. package/package.json +36 -0
  119. package/prototypes/test/index.html +1 -0
  120. package/setup-dist-repo.sh +68 -0
  121. package/test-safety-check.sh +80 -0
  122. package/work-item-tracking-plan.md +199 -0
@@ -0,0 +1,68 @@
1
+ # Architectural and Technical Decisions
2
+
3
+ This document records key decisions made during project discovery and epic planning.
4
+
5
+ ---
6
+
7
+ ## Project-Level Decisions
8
+
9
+ ### UX Approach & Tech Stack
10
+
11
+ **Decision:** prototypes/test
12
+
13
+ **Rationale:** Testing
14
+
15
+ **Date:** 10/30/2025
16
+
17
+ ---
18
+
19
+ ## Epic-Level Decisions
20
+
21
+ ### Epic #237: Real-time Collaboration
22
+
23
+ **Architecture:** WebSockets with Socket.io
24
+
25
+ *Rationale:* Bidirectional communication needed, Socket.io provides automatic fallbacks and reconnection
26
+
27
+ *Date:* 10/29/2025
28
+
29
+ **State Management:** Redux Toolkit
30
+
31
+ *Rationale:* Need centralized state for connection status across multiple components
32
+
33
+ *Date:* 10/29/2025
34
+
35
+ **Error Handling:** Exponential backoff with jitter for reconnection
36
+
37
+ *Rationale:* Prevents thundering herd when server recovers, jitter distributes reconnection attempts evenly
38
+
39
+ *Date:* 10/31/2025
40
+
41
+ **Testing Strategy:** Integration tests with mock Socket.io server
42
+
43
+ *Rationale:* Allows testing reconnection logic and state synchronization without real server dependency
44
+
45
+ *Date:* 10/31/2025
46
+
47
+ ---
48
+
49
+ ### Epic #238: Real-time System
50
+
51
+ **Architecture:** WebSockets
52
+
53
+ *Rationale:* Real-time bidirectional communication required
54
+
55
+ *Date:* 10/29/2025
56
+
57
+ ---
58
+
59
+ ### Epic #242: Epic Needs Discovery
60
+
61
+ **Architecture:** GraphQL API
62
+
63
+ *Rationale:* Flexible querying and strong typing needed for complex data requirements
64
+
65
+ *Date:* 10/29/2025
66
+
67
+ ---
68
+
package/docs/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # JettyPod Documentation
2
+
3
+ ## 📁 Documentation Structure
4
+
5
+ ### Core Documentation
6
+ - **[Project Plan](plans/jettypod-project-plan.md)** - Full project roadmap with epics and stories
7
+ - **[Epic 2 Implementation Summary](epic2-implementation-summary.md)** - Latest completed features
8
+ - **[User QA Checklist](epic2-qa-user-checklist.md)** - User-oriented testing guide
9
+
10
+ ### Methodology & Standards
11
+ - **[core-jettypod-methodology/](core-jettypod-methodology/)** - JettyPod operating guides and standards
12
+ - `jettypod-operating-guide.md` - Core methodology
13
+ - `jettypod-comprehensive-standards.md` - Coding standards
14
+ - `jettypod-technical-checklist.md` - Technical requirements
15
+
16
+ ### Technical Documentation
17
+ - **[Claude Interceptor Setup](claude-interceptor-setup.md)** - Natural language detection setup
18
+ - **[QA Checklist](epic2-qa-checklist.md)** - Technical QA for Epic 2
19
+
20
+ ### Research & Explorations
21
+ - **[explorations/](explorations/)** - Research and experiments
22
+ - `claude-interception-analysis.md` - Different interception approaches
23
+ - `use-case-detection-methods.md` - Detection method research
24
+ - `context-management-requirements.md` - Context system design
25
+
26
+ ### Implementation Plans
27
+ - **[plans/implementation-plans/](plans/implementation-plans/)** - Detailed story implementations
28
+ - **[qa/](qa/)** - QA checklists and test plans
29
+
30
+ ## 📊 Current Status
31
+
32
+ ### ✅ Completed
33
+ - Epic 1: Basic CLAUDE.md management
34
+ - Epic 2: Use case detection & smart mode selection
35
+
36
+ ### 🚀 In Progress
37
+ - Epic 3: Pattern detection & learning
38
+
39
+ ### 📅 Planned
40
+ - Epic 4: Natural language intelligence
41
+ - Epic 5: VS Code extension
42
+ - Epic 6: PM experience optimization
43
+
44
+ ## 🔗 Quick Links
45
+
46
+ - [Back to Main README](../README.md)
47
+ - [Quick Start Guide](../QUICK_START.md)
48
+ - [Installation Guide](../INSTALLATION.md)
@@ -0,0 +1,374 @@
1
+ # JettyPod Standards System - Complete Technical Documentation
2
+
3
+ ## System Overview
4
+
5
+ The JettyPod standards system is an adaptive, violation-based code standards enforcement mechanism that progressively reveals standards to Claude AI based on actual violations detected during development. It starts minimal and grows based on real mistakes, avoiding overwhelming developers with unnecessary rules.
6
+
7
+ ---
8
+
9
+ ## User Journeys & Use Cases
10
+
11
+ ### Journey 1: Fresh Project Initialization
12
+
13
+ **Starting state:** New project directory, no JettyPod configuration
14
+
15
+ **Step-by-step process:**
16
+
17
+ 1. **User runs:** `jettypod init`
18
+
19
+ 2. **System creates `.jettypod/config.json`:**
20
+ ```json
21
+ {
22
+ "name": "project-name",
23
+ "mode": "discovery", // default
24
+ "stage": "starting", // or detected based on file count
25
+ "useCase": "exploring", // default
26
+ "bundles": ["core"] // default
27
+ }
28
+ ```
29
+
30
+ 3. **System generates CLAUDE.md with:**
31
+
32
+ - NO violations file exists yet (`.jettypod/violations.json` not created)
33
+ - StandardsEngine loads `lib/comprehensive-standards-full.json` (114 standards)
34
+ - Prescribes ONLY critical standards from "core" bundle that match stage
35
+ - For "starting" stage with "core" bundle, this typically includes 7 critical standards:
36
+ - project.structure.directory
37
+ - file.naming.component
38
+ - file.naming.utility
39
+ - data.immutability.ids
40
+ - data.immutability.dates
41
+ - data.money.storage
42
+ - error.handling.user_feedback
43
+
44
+ 5. **What appears in CLAUDE.md:**
45
+ ```xml
46
+ <standards>
47
+ CRITICAL RULES - ALWAYS FOLLOW:
48
+ • Feature-based structure (❌ Flat structure with all files in src/)
49
+ • PascalCase.tsx for components (❌ user-profile.tsx)
50
+ • camelCase for utils (❌ format-date.ts)
51
+ • UUID strings for IDs (❌ 123 (number ID))
52
+ • ISO 8601 date strings (❌ Date objects in state)
53
+ • Money as cents (❌ 19.99 as float)
54
+ • Toast + Sentry for errors (❌ Silent failures)
55
+ </standards>
56
+
57
+ ```
58
+
59
+ ---
60
+
61
+ ### Journey 2: First Standards Violation
62
+
63
+ **Starting state:** Project initialized, working in speed mode, no violations yet
64
+
65
+ **Step-by-step process:**
66
+
67
+ 1. **User codes:** Creates file named `user-profile.tsx` (wrong naming)
68
+
69
+ 2. **User runs:** `jettypod violation file.naming.component`
70
+
71
+ 3. **System executes:**
72
+ - Creates `.jettypod/violations.json` (first time only)
73
+ - Adds entry:
74
+ ```json
75
+ {
76
+ "file.naming.component": {
77
+ "count": 1,
78
+ "lastSeen": "2025-09-05T16:27:31.928Z"
79
+ }
80
+ }
81
+ ```
82
+ - Outputs: `📝 Recorded violation for file.naming.component (total: 1)`
83
+ - Does NOT regenerate CLAUDE.md (threshold not met)
84
+
85
+ 4. **What changes in CLAUDE.md:** NOTHING - threshold is 3, only at 1
86
+
87
+ 5. **User violates same standard 2 more times:**
88
+ - Run: `jettypod violation file.naming.component`
89
+ - Count goes to 2, no CLAUDE.md change
90
+ - Run: `jettypod violation file.naming.component`
91
+ - Count goes to 3, threshold reached!
92
+
93
+ 6. **On 3rd violation:**
94
+ - System outputs: `⚠️ This standard will now appear in CLAUDE.md`
95
+ - Automatically runs `jettypod generate`
96
+ - CLAUDE.md now shows... NOTHING NEW (it was already critical!)
97
+
98
+ ---
99
+
100
+ ### Journey 3: Non-Critical Standard Violation
101
+
102
+ **Starting state:** Speed mode, starting stage, some violations recorded
103
+
104
+ **Step-by-step process:**
105
+
106
+ 1. **User violates a HIGH priority standard:** `SCREAMING_SNAKE` for constants
107
+ - Run: `jettypod violation file.naming.constants` (count: 1)
108
+ - Run: `jettypod violation file.naming.constants` (count: 2)
109
+ - Nothing appears yet
110
+
111
+ 2. **Third violation:** `jettypod violation file.naming.constants`
112
+ - Count reaches 3 (threshold met)
113
+ - System outputs: `⚠️ This standard will now appear in CLAUDE.md`
114
+ - Regenerates CLAUDE.md
115
+
116
+ 3. **What appears in CLAUDE.md (Speed Mode):**
117
+ ```xml
118
+ <standards>
119
+ CRITICAL RULES - ALWAYS FOLLOW:
120
+ • Feature-based structure (❌ Flat structure with all files in src/)
121
+ • PascalCase.tsx for components (❌ user-profile.tsx)
122
+ [... other critical rules ...]
123
+
124
+ WATCH: You've violated these before:
125
+ • SCREAMING_SNAKE for constants (3 violations)
126
+ </standards>
127
+ ```
128
+
129
+ 4. **Important:** In speed mode, this ONLY works for HIGH priority
130
+ - If you violate a MEDIUM priority standard 100 times, it will NEVER appear
131
+ - Speed mode filter: critical (always) + high (if violated)
132
+
133
+ ---
134
+
135
+ ### Journey 4: Switching Modes
136
+
137
+ **Starting state:** Speed mode with some violations recorded
138
+
139
+ **Step-by-step process:**
140
+
141
+ 1. **Current state in speed mode:**
142
+ - 7 critical standards showing
143
+ - 1 high priority standard with 3 violations showing
144
+ - 2 medium priority standards with 5 violations each (NOT showing)
145
+
146
+ 2. **User runs:** `jettypod discovery`
147
+ - Changes mode in `.jettypod/config.json`
148
+
149
+ 3. **User runs:** `jettypod generate`
150
+
151
+ 4. **What changes in CLAUDE.md:**
152
+ - Same 7 critical standards (still showing)
153
+ - Same 1 high priority with violations (still showing)
154
+ - NOW ALSO: 2 medium priority standards appear in WATCH section!
155
+ - Discovery mode shows ALL priorities that meet threshold
156
+
157
+ 5. **Format stays the same:**
158
+ - Still uses shortRule + antipattern format
159
+ - The `mode` parameter doesn't affect formatting
160
+ - Only affects which standards are prescribed
161
+
162
+ ---
163
+
164
+ ### Journey 5: Adding a Bundle
165
+
166
+ **Starting state:** Core bundle only, React project
167
+
168
+ **Step-by-step process:**
169
+
170
+ 1. **User runs:** `jettypod standards add auth`
171
+
172
+ 2. **System updates `.jettypod/config.json`:**
173
+ ```json
174
+ "bundles": ["core", "auth"]
175
+ ```
176
+
177
+ 3. **User runs:** `jettypod generate` (or it auto-runs)
178
+
179
+ 4. **New critical standards from auth bundle appear:**
180
+ ```xml
181
+ <standards>
182
+ CRITICAL RULES - ALWAYS FOLLOW:
183
+ • Feature-based structure (❌ Flat structure with all files in src/)
184
+ [... other core critical ...]
185
+ • bcrypt with 10+ rounds (❌ Plain text passwords)
186
+ • JWT with refresh tokens (❌ Session cookies only)
187
+ </standards>
188
+ ```
189
+
190
+ 5. **React Detection (automatic):**
191
+ - System checks package.json for "react" in dependencies/devDependencies
192
+ - If found, automatically includes critical React standards
193
+ - User doesn't need to add "react" bundle manually for critical standards
194
+
195
+ ---
196
+
197
+ ### Journey 6: Stage Progression
198
+
199
+ **Starting state:** "starting" stage with violations
200
+
201
+ **Step-by-step process:**
202
+
203
+ 1. **Current stage: "starting"**
204
+ - Shows standards with stages: ["empty"] or ["starting"] or ["empty", "starting"]
205
+ - Has 20 eligible standards based on stage
206
+
207
+ 2. **User runs:** `jettypod stage growing`
208
+
209
+ 3. **System updates stage in config.json**
210
+
211
+ 4. **User runs:** `jettypod generate`
212
+
213
+ 5. **What changes:**
214
+ - Now shows standards with stages including "growing"
215
+ - Cumulative: still shows all "empty" and "starting" standards
216
+ - Plus new ones marked for "growing" stage
217
+ - Might jump from 20 to 35 eligible standards
218
+
219
+ 6. **Stage Order (cumulative):**
220
+ - empty → shows only "empty" standards
221
+ - starting → shows "empty" + "starting"
222
+ - growing → shows "empty" + "starting" + "growing"
223
+ - mature → shows "empty" + "starting" + "growing" + "mature"
224
+ - production → shows ALL standards
225
+
226
+ ---
227
+
228
+ ### Journey 7: Invalid Standard Violation
229
+
230
+ **Starting state:** Any state
231
+
232
+ **Step-by-step process:**
233
+
234
+ 1. **User runs:** `jettypod violation some.fake.standard`
235
+
236
+ 2. **System behavior:**
237
+ - Does NOT validate the ID exists
238
+ - Creates/updates violation record anyway
239
+ - Saves to `.jettypod/violations.json`:
240
+ ```json
241
+ {
242
+ "some.fake.standard": {
243
+ "count": 1,
244
+ "lastSeen": "2025-09-05T16:30:00.000Z"
245
+ }
246
+ }
247
+ ```
248
+
249
+ 3. **On reaching threshold (3 violations):**
250
+ - Shows warning message as usual
251
+ - Regenerates CLAUDE.md
252
+ - But standard never appears (doesn't exist in library)
253
+ - Violation remains in file forever
254
+
255
+ ---
256
+
257
+ ### Journey 8: Development Workflow Over Time
258
+
259
+ **Day 1: Project Start**
260
+ - Init in "starting" stage
261
+ - See 7 critical core standards
262
+
263
+ **Day 3: First mistakes**
264
+ - Violate `file.naming.constants` 3 times
265
+ - New section appears: "WATCH: You've violated these before"
266
+ - Now seeing 8 standards total
267
+
268
+ **Day 7: Adding authentication**
269
+ - Run: `jettypod standards add auth`
270
+ - 2 new critical auth standards appear
271
+ - Now seeing 10 standards total
272
+
273
+ **Day 14: Growing pains**
274
+ - Run: `jettypod stage growing`
275
+ - 5 more critical standards become eligible
276
+ - Previous violations still showing
277
+ - Now seeing 15 standards total
278
+
279
+ **Day 30: Cleanup attempt**
280
+ - Want to reset violations
281
+ - Must manually delete `.jettypod/violations.json`
282
+ - After regeneration, back to only critical standards
283
+ - Lost history of what was problematic
284
+
285
+ ---
286
+
287
+ ## System Limitations & Gotchas
288
+
289
+ ### Things That Don't Work As Expected:
290
+
291
+ 1. **Violations Never Expire**
292
+ - Once recorded, violations persist forever
293
+ - No decay or time-based reduction
294
+ - Only way to reset: delete `.jettypod/violations.json`
295
+
296
+ 2. **No Validation**
297
+ - Can record violations for non-existent standards
298
+ - These take up space but never appear in CLAUDE.md
299
+ - No warning that standard ID is invalid
300
+
301
+ 3. **No Validation**
302
+ - Can record violations for non-existent standards
303
+ - These take up space but never appear in CLAUDE.md
304
+ - No warning that standard ID is invalid
305
+
306
+ 3. **Mode Parameter Ignored in Formatting**
307
+ - `formatForClaude(prescribed, mode)` receives mode but doesn't use it
308
+ - Format is always: shortRule + antipattern
309
+ - Mode only affects which standards are prescribed, not how they look
310
+
311
+ 4. **React Detection Is Shallow**
312
+ - Only checks dependencies and devDependencies
313
+ - Doesn't check peerDependencies
314
+ - Doesn't detect React-based frameworks (Next.js, etc.)
315
+
316
+ 5. **Threshold Is Hardcoded**
317
+ - Always 3 for every standard
318
+ - Can't have different thresholds for different severities
319
+ - Can't adjust based on team preferences
320
+
321
+ ---
322
+
323
+ ## File System State at Each Stage
324
+
325
+ ### After Init:
326
+ ```
327
+ .jettypod/
328
+ config.json # Configuration
329
+ CLAUDE.md # Generated with critical standards only
330
+ ```
331
+
332
+ ### After First Violation:
333
+ ```
334
+ .jettypod/
335
+ config.json
336
+ violations.json # NEW: Created with first violation
337
+ CLAUDE.md # Unchanged if under threshold
338
+ ```
339
+
340
+ ### After Threshold Reached:
341
+ ```
342
+ .jettypod/
343
+ config.json
344
+ violations.json # Updated count
345
+ CLAUDE.md # REGENERATED: Now includes violated standard
346
+ ```
347
+
348
+ ### After Mode/Stage Change:
349
+ ```
350
+ .jettypod/
351
+ config.json # Updated mode/stage
352
+ violations.json # Unchanged
353
+ CLAUDE.md # Must manually regenerate
354
+ ```
355
+
356
+ ---
357
+
358
+ ## Quick Reference: What Triggers CLAUDE.md Changes
359
+
360
+ ### Automatic Regeneration:
361
+ - When violation threshold (3) is reached for any standard
362
+ - During `jettypod init`
363
+
364
+ ### Manual Regeneration Required:
365
+ - After changing mode: `jettypod speed/discovery/production/recovery`
366
+ - After changing stage: `jettypod stage <stage>`
367
+ - After adding bundles: `jettypod standards add <bundle>`
368
+ - After changing use case: `jettypod use-case <case>`
369
+
370
+ ### What Never Triggers Changes:
371
+ - Violations below threshold
372
+ - Editing violations.json manually
373
+ - Changing comprehensive-standards-full.json
374
+ - Installing React (must regenerate after)