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.
- package/.claude/PROTECT_SKILLS.md +28 -0
- package/.claude/settings.json +24 -0
- package/.claude/settings.local.json +16 -0
- package/.claude/skills/epic-discover/SKILL.md +262 -0
- package/.claude/skills/feature-discover/SKILL.md +393 -0
- package/.claude/skills/speed-mode/SKILL.md +364 -0
- package/.claude/skills/stable-mode/SKILL.md +591 -0
- package/.github/workflows/test-safety.yml +85 -0
- package/README.md +25 -0
- package/SPEED-STABLE-AUDIT.md +853 -0
- package/SYSTEM-BEHAVIOR.md +1241 -0
- package/TEST_SAFETY_AUDIT.md +314 -0
- package/TEST_SAFETY_IMPLEMENTATION.md +97 -0
- package/cucumber.js +8 -0
- package/docs/COMMAND_REFERENCE.md +903 -0
- package/docs/DECISIONS.md +68 -0
- package/docs/README.md +48 -0
- package/docs/STANDARDS-SYSTEM-DOCUMENTATION.md +374 -0
- package/docs/TEST-REWRITE-PLAN.md +261 -0
- package/docs/ai-test-writing-requirements.md +219 -0
- package/docs/claude-code-skills.md +607 -0
- package/docs/core-jettypod-methodology/comprehensive-jettypod-methodology.md +582 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-comprehensive-standards.md +1222 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-operating-guide.md +3399 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-technical-checklist.md +1325 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-vibe-coding-framework.md +1544 -0
- package/docs/core-jettypod-methodology/deprecated/prompt-engineering-guide.md +320 -0
- package/docs/core-jettypod-methodology/deprecated/vibe-coding-cheatsheet (1).md +516 -0
- package/docs/core-jettypod-methodology/deprecated/vibe-coding-framework.md +1544 -0
- package/docs/features/jettypod-standards-explained.md +543 -0
- package/docs/features/standards-inventory.md +257 -0
- package/docs/gap-analysis-current-vs-comprehensive-methodology.md +939 -0
- package/docs/jettypod-system-overview.md +409 -0
- package/features/auto-generate-production-chores.feature +14 -0
- package/features/claude-md-protection/steps.js +487 -0
- package/features/decisions/index.js +490 -0
- package/features/decisions/index.test.js +208 -0
- package/features/git-hooks/git-hooks.feature +30 -0
- package/features/git-hooks/index.js +93 -0
- package/features/git-hooks/index.test.js +137 -0
- package/features/git-hooks/post-commit +56 -0
- package/features/git-hooks/post-merge +47 -0
- package/features/git-hooks/pre-commit +28 -0
- package/features/git-hooks/simple-steps.js +53 -0
- package/features/git-hooks/simple-test.feature +10 -0
- package/features/git-hooks/steps.js +196 -0
- package/features/jettypod-update-command.feature +46 -0
- package/features/mode-prompts/index.js +95 -0
- package/features/mode-prompts/simple-steps.js +44 -0
- package/features/mode-prompts/simple-test.feature +9 -0
- package/features/mode-prompts/validation.test.js +120 -0
- package/features/refactor-mode/steps.js +217 -0
- package/features/refactor-mode.feature +49 -0
- package/features/skills-update/index.test.js +216 -0
- package/features/step_definitions/auto-generate-production-chores.steps.js +162 -0
- package/features/step_definitions/terminal-logo.steps.js +145 -0
- package/features/step_definitions/update-command.steps.js +183 -0
- package/features/terminal-logo/index.js +39 -0
- package/features/terminal-logo/terminal-logo.feature +30 -0
- package/features/update-command/index.js +181 -0
- package/features/update-command/index.test.js +225 -0
- package/features/work-commands/bug-workflow-display.feature +22 -0
- package/features/work-commands/index.js +311 -0
- package/features/work-commands/simple-steps.js +69 -0
- package/features/work-commands/stable-tests.feature +57 -0
- package/features/work-commands/steps.js +1120 -0
- package/features/work-commands/validation.test.js +88 -0
- package/features/work-commands/work-commands.feature +13 -0
- package/features/work-tracking/discovery-validation.test.js +228 -0
- package/features/work-tracking/index.js +1511 -0
- package/features/work-tracking/mode-required.feature +112 -0
- package/features/work-tracking/phase-tracking.test.js +482 -0
- package/features/work-tracking/prototype-tracking.test.js +485 -0
- package/features/work-tracking/tree-view.test.js +310 -0
- package/features/work-tracking/work-set-mode.feature +71 -0
- package/features/work-tracking/work-start-mode.feature +88 -0
- package/full-test.txt +0 -0
- package/install.sh +89 -0
- package/jettypod.js +1640 -0
- package/lib/bug-workflow.js +94 -0
- package/lib/bug-workflow.test.js +177 -0
- package/lib/claudemd.js +130 -0
- package/lib/claudemd.test.js +195 -0
- package/lib/comprehensive-standards-full.json +1778 -0
- package/lib/config.js +181 -0
- package/lib/config.test.js +511 -0
- package/lib/constants.js +107 -0
- package/lib/constants.test.js +164 -0
- package/lib/current-work.js +130 -0
- package/lib/current-work.test.js +146 -0
- package/lib/database-project-config.test.js +107 -0
- package/lib/database.js +256 -0
- package/lib/database.test.js +106 -0
- package/lib/decisions-generator.js +102 -0
- package/lib/decisions-generator.test.js +457 -0
- package/lib/decisions-helpers.js +119 -0
- package/lib/decisions-helpers.test.js +310 -0
- package/lib/discovery-checkpoint.js +83 -0
- package/lib/docs-generator.js +280 -0
- package/lib/external-checklist.js +177 -0
- package/lib/git.js +142 -0
- package/lib/git.test.js +145 -0
- package/lib/logo.js +3 -0
- package/lib/migrations/001-epic-to-parent.js +24 -0
- package/lib/migrations/002-default-work-item-modes.js +37 -0
- package/lib/migrations/002-default-work-item-modes.test.js +351 -0
- package/lib/migrations/003-epic-discovery-fields.js +52 -0
- package/lib/migrations/004-discovery-decisions-table.js +32 -0
- package/lib/migrations/005-migrate-decision-data.js +62 -0
- package/lib/migrations/006-feature-phase-field.js +61 -0
- package/lib/migrations/007-prototype-tracking.js +38 -0
- package/lib/migrations/008-scenario-file-field.js +24 -0
- package/lib/migrations/index.js +74 -0
- package/lib/production-helpers.js +69 -0
- package/lib/project-state.test.js +92 -0
- package/lib/test-helpers.js +184 -0
- package/lib/test-helpers.test.js +255 -0
- package/package.json +36 -0
- package/prototypes/test/index.html +1 -0
- package/setup-dist-repo.sh +68 -0
- package/test-safety-check.sh +80 -0
- package/work-item-tracking-plan.md +199 -0
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
# JettyPod Standards System - How It Works
|
|
2
|
+
|
|
3
|
+
## What Is This?
|
|
4
|
+
|
|
5
|
+
JettyPod Standards is like a recipe book for writing code. Just like how a restaurant has standards for how to prepare dishes (always salt the pasta water, never overcook the steak), software projects need standards for how to write code (always name files this way, always handle errors that way).
|
|
6
|
+
|
|
7
|
+
When you're working with Claude (the AI assistant), JettyPod Standards makes sure Claude follows YOUR project's rules, not generic ones.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## The Big Picture
|
|
12
|
+
|
|
13
|
+
Imagine you're building a house with a team. You need everyone to agree on:
|
|
14
|
+
- Which way doors should open
|
|
15
|
+
- What color the walls should be
|
|
16
|
+
- How high the ceilings should be
|
|
17
|
+
|
|
18
|
+
JettyPod Standards does this for code. It tells Claude:
|
|
19
|
+
- How to name your files
|
|
20
|
+
- How to structure your code
|
|
21
|
+
- What patterns to follow
|
|
22
|
+
- What to avoid
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## How to Get Started
|
|
27
|
+
|
|
28
|
+
### First Time Setup
|
|
29
|
+
|
|
30
|
+
1. **Go to your project folder** (where your code lives)
|
|
31
|
+
|
|
32
|
+
2. **Type this command:**
|
|
33
|
+
```
|
|
34
|
+
jettypod standards init
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
3. **What happens:**
|
|
38
|
+
- JettyPod looks at your project and figures out what kind it is (like a website, an app, or a server)
|
|
39
|
+
- **How it figures this out:**
|
|
40
|
+
- First, it looks for a `package.json` file (the file that lists what tools your project uses)
|
|
41
|
+
- It checks what frameworks you have installed:
|
|
42
|
+
- If it sees "next" → It's a Next.js website
|
|
43
|
+
- If it sees "react" → It's a React app
|
|
44
|
+
- If it sees "express" → It's a server/API
|
|
45
|
+
- If it sees "vue" → It's a Vue.js app
|
|
46
|
+
- If there's no package.json, it looks for other clues:
|
|
47
|
+
- `next.config.js` file → Next.js project
|
|
48
|
+
- `vite.config.js` file → Vite project
|
|
49
|
+
- `index.html` file → Basic website
|
|
50
|
+
- If it can't figure it out → It just adds basic universal standards
|
|
51
|
+
- It automatically adds a starter set of rules based on what it found
|
|
52
|
+
- It creates a special file (CLAUDE.md) that Claude reads
|
|
53
|
+
- You see a message like "8 standards now active"
|
|
54
|
+
|
|
55
|
+
That's it! Claude now knows your project's rules.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## When Are Bundles Added to Your Toolbox?
|
|
60
|
+
|
|
61
|
+
Bundles get added to your project in different ways depending on what you're doing:
|
|
62
|
+
|
|
63
|
+
### Automatic Addition (JettyPod Decides for You)
|
|
64
|
+
|
|
65
|
+
**When you first initialize (`jettypod standards init`):**
|
|
66
|
+
JettyPod looks at your project and automatically adds appropriate bundles:
|
|
67
|
+
|
|
68
|
+
- **Next.js project detected** → Adds: core + nextjs + ui bundles
|
|
69
|
+
- **React app detected** → Adds: core + ui + forms bundles
|
|
70
|
+
- **Node API detected** → Adds: core + node_api + api bundles
|
|
71
|
+
- **Vue app detected** → Adds: core + ui + forms bundles
|
|
72
|
+
- **Express server detected** → Adds: core + api + database bundles
|
|
73
|
+
- **Can't detect type** → Adds: core bundle only (the basics)
|
|
74
|
+
|
|
75
|
+
This happens automatically - you don't have to choose anything!
|
|
76
|
+
|
|
77
|
+
### Manual Addition (You Choose)
|
|
78
|
+
|
|
79
|
+
**When you want specific features:**
|
|
80
|
+
```
|
|
81
|
+
jettypod standards add auth
|
|
82
|
+
```
|
|
83
|
+
This adds authentication standards when YOU decide you need them.
|
|
84
|
+
|
|
85
|
+
**Common manual additions:**
|
|
86
|
+
- `add shadcn` - When using shadcn/ui component library
|
|
87
|
+
- `add auth` - When you're building login features
|
|
88
|
+
- `add api` - When you're creating server endpoints
|
|
89
|
+
- `add database` - When you're working with data storage
|
|
90
|
+
- `add forms` - When you're building user input features
|
|
91
|
+
- `add testing` - When you want to write tests
|
|
92
|
+
|
|
93
|
+
### Mode-Related Bundles
|
|
94
|
+
|
|
95
|
+
When you switch modes, JettyPod doesn't add new bundles - it just changes how Claude sees your existing bundles:
|
|
96
|
+
- **Speed mode** → Shows only critical standards from your bundles
|
|
97
|
+
- **Discovery mode** → Shows all standards with examples
|
|
98
|
+
- **Production mode** → Shows everything in full detail
|
|
99
|
+
|
|
100
|
+
**Important:** Switching modes doesn't add or remove bundles - it just changes the presentation!
|
|
101
|
+
|
|
102
|
+
### Smart Context Detection (Coming Soon)
|
|
103
|
+
|
|
104
|
+
In the future, JettyPod will automatically suggest bundles based on what you're working on:
|
|
105
|
+
|
|
106
|
+
**How it will work:**
|
|
107
|
+
- You start writing login code → JettyPod suggests: "Add auth bundle?"
|
|
108
|
+
- You create a database schema → JettyPod suggests: "Add database bundle?"
|
|
109
|
+
- You build an API endpoint → JettyPod suggests: "Add api bundle?"
|
|
110
|
+
- You write your first test → JettyPod suggests: "Add testing bundle?"
|
|
111
|
+
|
|
112
|
+
**Why this doesn't exist yet:**
|
|
113
|
+
JettyPod can't currently watch what files you're editing or what code you're writing. Once integrated deeper with your editor, it could detect patterns like:
|
|
114
|
+
- Files named `login.js` or `auth.tsx` → Suggest auth bundle
|
|
115
|
+
- Files with SQL queries → Suggest database bundle
|
|
116
|
+
- Files with `test` in the name → Suggest testing bundle
|
|
117
|
+
- API route files → Suggest api bundle
|
|
118
|
+
|
|
119
|
+
For now, you need to manually add bundles when you know you'll need them.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## What Are "Bundles"?
|
|
124
|
+
|
|
125
|
+
Think of bundles like themed packages of rules. Instead of choosing 50 individual rules, you pick a few bundles that make sense together.
|
|
126
|
+
|
|
127
|
+
### Examples of Bundles:
|
|
128
|
+
|
|
129
|
+
**Core Bundle** (The Basics)
|
|
130
|
+
- How to name files (UserProfile.tsx not user-profile.tsx)
|
|
131
|
+
- How to name variables (isLoading not loading)
|
|
132
|
+
- How to write commit messages (feat: added login not "fixed stuff")
|
|
133
|
+
|
|
134
|
+
**Auth Bundle** (For User Login Systems)
|
|
135
|
+
- How to handle passwords (never store them as plain text)
|
|
136
|
+
- How long login sessions should last (15 minutes of inactivity)
|
|
137
|
+
- Password requirements (minimum 8 characters)
|
|
138
|
+
|
|
139
|
+
**API Bundle** (For Server Communication)
|
|
140
|
+
- How to format responses (always include success: true/false)
|
|
141
|
+
- How to handle errors (always include a trace ID)
|
|
142
|
+
- How to name endpoints (/api/v1/users not /getUsers)
|
|
143
|
+
|
|
144
|
+
### To See All Available Bundles:
|
|
145
|
+
```
|
|
146
|
+
jettypod standards bundles
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### To Add a Bundle:
|
|
150
|
+
```
|
|
151
|
+
jettypod standards add auth
|
|
152
|
+
```
|
|
153
|
+
(This adds all authentication-related rules)
|
|
154
|
+
|
|
155
|
+
**Popular bundles:**
|
|
156
|
+
- `shadcn` - Standards for using shadcn/ui component library
|
|
157
|
+
- `auth` - Authentication and security standards
|
|
158
|
+
- `api` - API design and error handling
|
|
159
|
+
- `database` - Database naming and query safety
|
|
160
|
+
- `ui` - User interface consistency and styling
|
|
161
|
+
|
|
162
|
+
**What happens when you add a bundle:**
|
|
163
|
+
- JettyPod checks if you already have conflicting bundles
|
|
164
|
+
- It adds all the standards from that bundle to your active list
|
|
165
|
+
- It suggests other bundles that work well with it
|
|
166
|
+
- Example: Adding "auth" might suggest adding "api" too
|
|
167
|
+
- Your CLAUDE.md file automatically updates
|
|
168
|
+
|
|
169
|
+
### To See What's Currently Active:
|
|
170
|
+
```
|
|
171
|
+
jettypod standards list
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**What this shows you:**
|
|
175
|
+
- All your active standards grouped by category (Core, API, UI, etc.)
|
|
176
|
+
- The priority of each standard (critical, high, medium, low)
|
|
177
|
+
- Total count of active standards
|
|
178
|
+
- Which bundles you've added
|
|
179
|
+
- What stage your project is at (empty, growing, production)
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## The Different Modes
|
|
184
|
+
|
|
185
|
+
JettyPod has different "modes" that change how strict Claude is:
|
|
186
|
+
|
|
187
|
+
### Speed Mode 🚀
|
|
188
|
+
**When to use:** You need something working in the next hour
|
|
189
|
+
**What Claude does:**
|
|
190
|
+
- Writes the simplest code that works
|
|
191
|
+
- Skips tests
|
|
192
|
+
- Uses shortcuts
|
|
193
|
+
- Doesn't worry about perfect structure
|
|
194
|
+
|
|
195
|
+
### Discovery Mode 🔍
|
|
196
|
+
**When to use:** You're exploring different options
|
|
197
|
+
**What Claude does:**
|
|
198
|
+
- Shows you 3 different ways to do things
|
|
199
|
+
- Explains trade-offs
|
|
200
|
+
- Helps you decide what's best
|
|
201
|
+
|
|
202
|
+
### Production Mode 🛡️
|
|
203
|
+
**When to use:** This code is going to real users
|
|
204
|
+
**What Claude does:**
|
|
205
|
+
- Adds error handling everywhere
|
|
206
|
+
- Writes tests
|
|
207
|
+
- Includes security checks
|
|
208
|
+
- Documents everything
|
|
209
|
+
|
|
210
|
+
### To Switch Modes:
|
|
211
|
+
```
|
|
212
|
+
jettypod speed # Quick and dirty
|
|
213
|
+
jettypod discovery # Show me options
|
|
214
|
+
jettypod production # Do it right
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**What happens when you switch modes:**
|
|
218
|
+
1. JettyPod updates your configuration to remember the new mode
|
|
219
|
+
2. Your CLAUDE.md file is completely regenerated
|
|
220
|
+
3. The same standards stay active, but they're presented differently:
|
|
221
|
+
- **Speed mode**: Claude sees condensed, minimal rules
|
|
222
|
+
- **Discovery mode**: Claude sees balanced detail with examples
|
|
223
|
+
- **Production mode**: Claude sees full documentation with all edge cases
|
|
224
|
+
4. Claude's behavior immediately changes:
|
|
225
|
+
- Speed → Claude writes faster, simpler code
|
|
226
|
+
- Production → Claude adds error handling, tests, and documentation
|
|
227
|
+
5. The mode stays active until you switch again
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Real-World Scenarios
|
|
232
|
+
|
|
233
|
+
### Scenario 1: Starting a New Project
|
|
234
|
+
|
|
235
|
+
You're building a new website from scratch.
|
|
236
|
+
|
|
237
|
+
1. Create your project folder
|
|
238
|
+
2. Run `jettypod standards init`
|
|
239
|
+
3. JettyPod detects it's a website and adds appropriate rules
|
|
240
|
+
4. Claude now knows to use React components, how to name them, where to put them
|
|
241
|
+
|
|
242
|
+
### Scenario 2: Joining an Existing Team
|
|
243
|
+
|
|
244
|
+
You just joined a team with their own coding standards.
|
|
245
|
+
|
|
246
|
+
1. Your team lead exports their standards: `jettypod standards export team-rules.json`
|
|
247
|
+
- **What gets exported:**
|
|
248
|
+
- All active standards and their settings
|
|
249
|
+
- Which bundles are being used
|
|
250
|
+
- Any custom modifications
|
|
251
|
+
- The project stage (empty/growing/production)
|
|
252
|
+
- The current mode preference
|
|
253
|
+
- **What doesn't get exported:**
|
|
254
|
+
- Personal preferences
|
|
255
|
+
- History of changes
|
|
256
|
+
- Local file paths
|
|
257
|
+
|
|
258
|
+
2. They share this file with you (via Git, Slack, email, etc.)
|
|
259
|
+
|
|
260
|
+
3. You import it: `jettypod standards import team-rules.json`
|
|
261
|
+
- **What happens:**
|
|
262
|
+
- Your local standards are replaced with the team's
|
|
263
|
+
- Your CLAUDE.md regenerates to match
|
|
264
|
+
- You get the exact same setup as your team
|
|
265
|
+
- Your mode might change to match theirs
|
|
266
|
+
|
|
267
|
+
4. Now Claude follows the same rules as everyone else
|
|
268
|
+
- Everyone's code looks consistent
|
|
269
|
+
- No more "why did you name it that way?" discussions
|
|
270
|
+
- New team members get up to speed instantly
|
|
271
|
+
|
|
272
|
+
### Scenario 3: Switching Between Projects
|
|
273
|
+
|
|
274
|
+
You work on Project A in the morning (startup, move fast) and Project B in the afternoon (bank, very careful).
|
|
275
|
+
|
|
276
|
+
**Project A:**
|
|
277
|
+
```
|
|
278
|
+
cd project-a
|
|
279
|
+
jettypod speed
|
|
280
|
+
```
|
|
281
|
+
Claude writes quick code with shortcuts
|
|
282
|
+
|
|
283
|
+
**Project B:**
|
|
284
|
+
```
|
|
285
|
+
cd project-b
|
|
286
|
+
jettypod production
|
|
287
|
+
```
|
|
288
|
+
Claude writes careful code with full testing
|
|
289
|
+
|
|
290
|
+
### Scenario 4: Growing Project
|
|
291
|
+
|
|
292
|
+
Your project starts small but grows over time.
|
|
293
|
+
|
|
294
|
+
**Month 1:** Just you coding
|
|
295
|
+
```
|
|
296
|
+
jettypod standards stage empty
|
|
297
|
+
```
|
|
298
|
+
Only basic rules active
|
|
299
|
+
|
|
300
|
+
**Month 3:** Small team
|
|
301
|
+
```
|
|
302
|
+
jettypod standards stage growing
|
|
303
|
+
```
|
|
304
|
+
More rules activate automatically
|
|
305
|
+
|
|
306
|
+
**Month 12:** Large team, real users
|
|
307
|
+
```
|
|
308
|
+
jettypod standards stage production
|
|
309
|
+
```
|
|
310
|
+
All rules active, full standards
|
|
311
|
+
|
|
312
|
+
### Scenario 5: Refreshing Claude's Knowledge
|
|
313
|
+
|
|
314
|
+
Sometimes you need to refresh what Claude knows about your standards.
|
|
315
|
+
|
|
316
|
+
**When to refresh CLAUDE.md:**
|
|
317
|
+
- After adding or removing bundles
|
|
318
|
+
- After changing project stage
|
|
319
|
+
- If Claude seems confused about standards
|
|
320
|
+
- After importing team standards
|
|
321
|
+
|
|
322
|
+
**How to refresh:**
|
|
323
|
+
```
|
|
324
|
+
jettypod standards update
|
|
325
|
+
```
|
|
326
|
+
This regenerates the CLAUDE.md file with your current standards
|
|
327
|
+
|
|
328
|
+
**Note:** Mode switches (speed/production/discovery) automatically refresh CLAUDE.md, so you don't need to run update after switching modes.
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## How JettyPod Decides What Goes in CLAUDE.md
|
|
333
|
+
|
|
334
|
+
This is the logic for what standards Claude actually sees:
|
|
335
|
+
|
|
336
|
+
### Step 1: Bundle Addition
|
|
337
|
+
When you add a bundle (like `jettypod standards add auth`), ALL standards from that bundle are added to your active list. No picking and choosing - you get the whole package.
|
|
338
|
+
|
|
339
|
+
**Example**: The "auth" bundle includes:
|
|
340
|
+
- Password handling rules
|
|
341
|
+
- Session management rules
|
|
342
|
+
- OAuth integration rules
|
|
343
|
+
- Two-factor authentication rules
|
|
344
|
+
- Security error handling rules
|
|
345
|
+
- Form validation rules
|
|
346
|
+
|
|
347
|
+
### Step 2: Stage Filtering
|
|
348
|
+
Your project stage acts like a filter. Standards have stages too:
|
|
349
|
+
- **Empty stage** (just starting) → Only see "beginner" standards
|
|
350
|
+
- **Growing stage** (active development) → See beginner + intermediate standards
|
|
351
|
+
- **Production stage** (live users) → See ALL standards
|
|
352
|
+
|
|
353
|
+
**Think of it like a video game:**
|
|
354
|
+
- Level 1 player: Gets basic instructions
|
|
355
|
+
- Level 50 player: Gets advanced strategies
|
|
356
|
+
- The information exists, but you only see what's relevant to your level
|
|
357
|
+
|
|
358
|
+
### Step 3: Mode Presentation
|
|
359
|
+
The mode doesn't change WHAT standards exist, but HOW Claude sees them:
|
|
360
|
+
|
|
361
|
+
**Speed Mode** (Time crunch):
|
|
362
|
+
- Shows only "critical" and "high" priority standards
|
|
363
|
+
- One-line descriptions
|
|
364
|
+
- No examples
|
|
365
|
+
- Result: 6-8 standards visible to Claude
|
|
366
|
+
|
|
367
|
+
**Discovery Mode** (Exploring):
|
|
368
|
+
- Shows all your active standards
|
|
369
|
+
- Balanced descriptions
|
|
370
|
+
- Some examples
|
|
371
|
+
- Result: 11-15 standards visible to Claude
|
|
372
|
+
|
|
373
|
+
**Production Mode** (Being careful):
|
|
374
|
+
- Shows all your active standards
|
|
375
|
+
- Full documentation
|
|
376
|
+
- Detailed examples
|
|
377
|
+
- Edge cases explained
|
|
378
|
+
- Result: 30+ standards visible to Claude
|
|
379
|
+
|
|
380
|
+
### The Complete Formula:
|
|
381
|
+
```
|
|
382
|
+
What Claude Sees = (Bundles You Added)
|
|
383
|
+
→ Filtered by (Project Stage)
|
|
384
|
+
→ Formatted by (Current Mode)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Example Scenario:**
|
|
388
|
+
- You add: core + auth + api bundles (24 total standards)
|
|
389
|
+
- Your stage: growing (filters out 6 advanced standards)
|
|
390
|
+
- Your mode: speed (shows only 8 critical ones in condensed format)
|
|
391
|
+
- Claude sees: 8 standards formatted as quick rules
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## What Happens Behind the Scenes
|
|
396
|
+
|
|
397
|
+
1. **When you add standards**, JettyPod creates a hidden folder (.jettypod) in your project
|
|
398
|
+
- **The folder structure:**
|
|
399
|
+
```
|
|
400
|
+
.jettypod/
|
|
401
|
+
├── standards/
|
|
402
|
+
│ ├── active.json (your current rules)
|
|
403
|
+
│ ├── custom.json (your modifications)
|
|
404
|
+
│ └── history.json (track of changes)
|
|
405
|
+
└── bundles.json (which bundles you've added)
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
2. **This folder contains:**
|
|
409
|
+
- **Your active rules** - A list of all standards currently turned on
|
|
410
|
+
- **Your custom modifications** - Any rules you've changed from the defaults
|
|
411
|
+
- **History of changes** - Last 20 changes you've made (in case you need to undo)
|
|
412
|
+
|
|
413
|
+
3. **CLAUDE.md file** is created/updated - this is what Claude actually reads
|
|
414
|
+
- **How this works:**
|
|
415
|
+
- JettyPod takes all your active standards
|
|
416
|
+
- Combines them with your current mode (speed/production)
|
|
417
|
+
- Formats them in a way Claude understands
|
|
418
|
+
- Writes it all to CLAUDE.md in your project root
|
|
419
|
+
- Claude reads this file every time you start a conversation
|
|
420
|
+
|
|
421
|
+
4. **When you switch modes**, the CLAUDE.md file regenerates with different formatting:
|
|
422
|
+
- **Speed mode:** Shows only critical rules (about 6-8 standards)
|
|
423
|
+
- **Discovery mode:** Shows moderate detail (about 11-15 standards)
|
|
424
|
+
- **Production mode:** Shows everything in detail (30+ standards)
|
|
425
|
+
- **Why different amounts?**
|
|
426
|
+
- In speed mode, you don't want Claude overthinking
|
|
427
|
+
- In production mode, you want Claude to be thorough
|
|
428
|
+
- The same standards exist, but Claude only sees what's relevant
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## Common Questions
|
|
433
|
+
|
|
434
|
+
### "Why do I need this?"
|
|
435
|
+
|
|
436
|
+
Without standards, every time you start a new conversation with Claude, you get different coding styles. One day variables are named `userId`, the next day `user_id`, the third day `userID`. This creates messy, inconsistent code.
|
|
437
|
+
|
|
438
|
+
### "Can I customize the rules?"
|
|
439
|
+
|
|
440
|
+
Yes! While we don't have a nice interface yet, you can:
|
|
441
|
+
- Add or remove bundles
|
|
442
|
+
- Create custom standards (coming soon in an easier way)
|
|
443
|
+
- Export and share your customizations
|
|
444
|
+
|
|
445
|
+
### "What if I don't like a rule?"
|
|
446
|
+
|
|
447
|
+
For now, you add bundles as packages. In the future, you'll be able to:
|
|
448
|
+
- Turn individual rules on/off
|
|
449
|
+
- Modify specific rules
|
|
450
|
+
- Create your own bundles
|
|
451
|
+
|
|
452
|
+
### "Does this work with other AI assistants?"
|
|
453
|
+
|
|
454
|
+
Currently, it's designed specifically for Claude. The CLAUDE.md file is formatted for Claude's understanding.
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## What It Can't Do (Yet)
|
|
459
|
+
|
|
460
|
+
### Current Limitations:
|
|
461
|
+
|
|
462
|
+
1. **No Fine-Grained Control**
|
|
463
|
+
- You can't easily turn off just one rule from a bundle
|
|
464
|
+
- You take the whole bundle or nothing
|
|
465
|
+
|
|
466
|
+
2. **No UI Interface**
|
|
467
|
+
- Everything is command-line based
|
|
468
|
+
- No visual way to browse or edit standards
|
|
469
|
+
|
|
470
|
+
3. **No Validation**
|
|
471
|
+
- JettyPod doesn't check if your code follows the standards
|
|
472
|
+
- It only tells Claude what the standards are
|
|
473
|
+
|
|
474
|
+
4. **No Team Sync**
|
|
475
|
+
- Changes don't automatically sync across team members
|
|
476
|
+
- You have to manually export/import
|
|
477
|
+
|
|
478
|
+
5. **No Conflict Resolution**
|
|
479
|
+
- If two bundles have conflicting rules, it doesn't warn you clearly
|
|
480
|
+
- Both rules might be active, causing confusion
|
|
481
|
+
|
|
482
|
+
6. **Limited Project Detection**
|
|
483
|
+
- Might not recognize all project types
|
|
484
|
+
- Defaults to basic standards if unsure
|
|
485
|
+
|
|
486
|
+
7. **No Standard Suggestions**
|
|
487
|
+
- Doesn't analyze your existing code to suggest standards
|
|
488
|
+
- Doesn't learn from your preferences
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
## Future Vision
|
|
493
|
+
|
|
494
|
+
### Coming Soon:
|
|
495
|
+
- Visual interface for managing standards
|
|
496
|
+
- Individual rule toggles
|
|
497
|
+
- Team synchronization
|
|
498
|
+
- Standard validation in your code
|
|
499
|
+
- AI-powered standard suggestions
|
|
500
|
+
|
|
501
|
+
### Later:
|
|
502
|
+
- Industry-specific bundles (finance, healthcare, gaming)
|
|
503
|
+
- Company-wide standard libraries
|
|
504
|
+
- Integration with code review tools
|
|
505
|
+
- Automatic code fixing to match standards
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
## Quick Reference
|
|
510
|
+
|
|
511
|
+
### Essential Commands:
|
|
512
|
+
|
|
513
|
+
| What You Want | Command |
|
|
514
|
+
|--------------|---------|
|
|
515
|
+
| Start using standards | `jettypod standards init` |
|
|
516
|
+
| See available bundles | `jettypod standards bundles` |
|
|
517
|
+
| Add more rules | `jettypod standards add [bundle]` |
|
|
518
|
+
| See active rules | `jettypod standards list` |
|
|
519
|
+
| Refresh CLAUDE.md file | `jettypod standards update` |
|
|
520
|
+
| Work fast | `jettypod speed` |
|
|
521
|
+
| Be careful | `jettypod production` |
|
|
522
|
+
| Explore options | `jettypod discovery` |
|
|
523
|
+
| Ask about JettyPod philosophy | `jettypod context "question"` |
|
|
524
|
+
|
|
525
|
+
### Problem Solving:
|
|
526
|
+
|
|
527
|
+
| Problem | Solution |
|
|
528
|
+
|---------|----------|
|
|
529
|
+
| "No standards showing" | Run `jettypod standards init` |
|
|
530
|
+
| "Wrong mode active" | Run `jettypod [mode]` to switch |
|
|
531
|
+
| "Need team standards" | Ask for their export file |
|
|
532
|
+
| "Too many standards" | Switch to speed mode |
|
|
533
|
+
| "Not enough standards" | Switch to production mode |
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## The Bottom Line
|
|
538
|
+
|
|
539
|
+
JettyPod Standards is like having a style guide that Claude actually reads and follows. Instead of telling Claude the same preferences over and over, you set them once and Claude remembers them for your entire project.
|
|
540
|
+
|
|
541
|
+
It's not perfect yet - you can't customize everything, and some features are still being built. But it solves the biggest problem: keeping your code consistent when working with AI.
|
|
542
|
+
|
|
543
|
+
The goal is simple: **Set your standards once, and Claude follows them every time.**
|