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,903 @@
|
|
|
1
|
+
# JettyPod Command Reference
|
|
2
|
+
|
|
3
|
+
Complete reference for all JettyPod commands as of 2025-10-31.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Table of Contents
|
|
8
|
+
|
|
9
|
+
1. [Initialization & Setup](#initialization--setup)
|
|
10
|
+
2. [Project Discovery](#project-discovery)
|
|
11
|
+
3. [Work Item Management](#work-item-management)
|
|
12
|
+
4. [Epic Discovery](#epic-discovery)
|
|
13
|
+
5. [Feature Discovery](#feature-discovery)
|
|
14
|
+
6. [Work Status & Navigation](#work-status--navigation)
|
|
15
|
+
7. [Mode Management](#mode-management)
|
|
16
|
+
8. [Decisions](#decisions)
|
|
17
|
+
9. [Project State](#project-state)
|
|
18
|
+
10. [Git Integration](#git-integration)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Initialization & Setup
|
|
23
|
+
|
|
24
|
+
### `jettypod init <project-name>`
|
|
25
|
+
|
|
26
|
+
Initialize JettyPod in the current directory.
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
jettypod init "My Project"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**What it does:**
|
|
33
|
+
- Creates `.jettypod/` directory
|
|
34
|
+
- Generates `CLAUDE.md` with project context
|
|
35
|
+
- Sets up database (work.db)
|
|
36
|
+
- Installs git hooks (if git repository exists)
|
|
37
|
+
- Installs discovery skills for Claude Code
|
|
38
|
+
|
|
39
|
+
**Output:**
|
|
40
|
+
```
|
|
41
|
+
📝 CLAUDE.md generated
|
|
42
|
+
✓ Git hooks installed
|
|
43
|
+
🔒 Claude Code hook installed
|
|
44
|
+
✅ JettyPod initialized
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Project Discovery
|
|
50
|
+
|
|
51
|
+
### `jettypod project discover start`
|
|
52
|
+
|
|
53
|
+
Begin project-level discovery process.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
jettypod project discover start
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**What it does:**
|
|
60
|
+
- Marks project as "in discovery" phase
|
|
61
|
+
- Activates Claude Code discovery protocol
|
|
62
|
+
- Prepares for UX approach exploration
|
|
63
|
+
|
|
64
|
+
**Typical workflow:**
|
|
65
|
+
1. User describes what users DO in the product
|
|
66
|
+
2. Claude presents 3 UX approaches
|
|
67
|
+
3. Optionally build prototypes
|
|
68
|
+
4. User selects winning approach
|
|
69
|
+
5. Complete discovery with decision
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### `jettypod project discover complete`
|
|
74
|
+
|
|
75
|
+
Complete project discovery with decision.
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
jettypod project discover complete \
|
|
79
|
+
--winner="prototypes/web-react" \
|
|
80
|
+
--rationale="Web-first for fastest time to market" \
|
|
81
|
+
--prototypes="prototypes/web-react.js,prototypes/mobile-pwa.js"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Required flags:**
|
|
85
|
+
- `--winner=<path>` - Path to winning prototype or approach name
|
|
86
|
+
- `--rationale="<text>"` - Why this approach was chosen
|
|
87
|
+
|
|
88
|
+
**Optional flags:**
|
|
89
|
+
- `--prototypes="<file1>,<file2>"` - Comma-separated list of prototype files
|
|
90
|
+
|
|
91
|
+
**What it does:**
|
|
92
|
+
- Records project-level decision
|
|
93
|
+
- Stores prototype tracking info
|
|
94
|
+
- Updates DECISIONS.md
|
|
95
|
+
- Marks discovery as completed
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Work Item Management
|
|
100
|
+
|
|
101
|
+
### `jettypod work create epic <title> [description] [flags]`
|
|
102
|
+
|
|
103
|
+
Create a new epic.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Simple epic
|
|
107
|
+
jettypod work create epic "User Authentication"
|
|
108
|
+
|
|
109
|
+
# Epic with description
|
|
110
|
+
jettypod work create epic "User Authentication" "Secure login system"
|
|
111
|
+
|
|
112
|
+
# Epic requiring architectural discovery
|
|
113
|
+
jettypod work create epic "Real-time Updates" "Live data sync" --needs-discovery
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Optional flags:**
|
|
117
|
+
- `--needs-discovery` - Epic requires architectural decisions
|
|
118
|
+
- `--mode=<mode>` - Set initial mode (discovery/speed/stable/production)
|
|
119
|
+
|
|
120
|
+
**What it creates:**
|
|
121
|
+
- Epic work item in database
|
|
122
|
+
- Entry in work tree
|
|
123
|
+
- Triggers epic discovery prompt if `--needs-discovery` flag set
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### `jettypod work create feature <title> [description] [flags]`
|
|
128
|
+
|
|
129
|
+
Create a new feature.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Feature without parent
|
|
133
|
+
jettypod work create feature "Login Form"
|
|
134
|
+
|
|
135
|
+
# Feature with description
|
|
136
|
+
jettypod work create feature "Login Form" "User login UI component"
|
|
137
|
+
|
|
138
|
+
# Feature under an epic
|
|
139
|
+
jettypod work create feature "Password Reset" "Forgot password flow" --parent=5
|
|
140
|
+
|
|
141
|
+
# Feature with initial mode
|
|
142
|
+
jettypod work create feature "Dashboard" "User dashboard" --mode=stable
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Optional flags:**
|
|
146
|
+
- `--parent=<id>` - Parent epic ID
|
|
147
|
+
- `--mode=<mode>` - Initial mode (defaults to discovery for features)
|
|
148
|
+
|
|
149
|
+
**What it creates:**
|
|
150
|
+
- Feature in "discovery" phase by default
|
|
151
|
+
- Database entry with phase tracking
|
|
152
|
+
- Prompts for feature discovery
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### `jettypod work create chore <title> [description] [flags]`
|
|
157
|
+
|
|
158
|
+
Create a chore (non-feature work).
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
jettypod work create chore "Update dependencies"
|
|
162
|
+
jettypod work create chore "Refactor auth module" --parent=5
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Optional flags:**
|
|
166
|
+
- `--parent=<id>` - Parent work item ID
|
|
167
|
+
- `--mode=<mode>` - Initial mode
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### `jettypod work create bug <title> [description] [flags]`
|
|
172
|
+
|
|
173
|
+
Create a bug.
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
jettypod work create bug "Login fails on Safari"
|
|
177
|
+
jettypod work create bug "Memory leak in dashboard" --parent=10
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Optional flags:**
|
|
181
|
+
- `--parent=<id>` - Parent work item ID
|
|
182
|
+
- `--mode=<mode>` - Initial mode (defaults to stable)
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Epic Discovery
|
|
187
|
+
|
|
188
|
+
### `jettypod work epic-discover <epic-id>`
|
|
189
|
+
|
|
190
|
+
Start architectural discovery for an epic.
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
jettypod work epic-discover 5
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**Prerequisites:**
|
|
197
|
+
- Epic must have `needs_discovery=1` flag
|
|
198
|
+
- Epic must be in backlog/todo status
|
|
199
|
+
|
|
200
|
+
**What it does:**
|
|
201
|
+
- Activates epic-discover skill in Claude Code
|
|
202
|
+
- Guides through architectural decision process
|
|
203
|
+
- Helps identify key technical decisions needed
|
|
204
|
+
|
|
205
|
+
**Typical flow:**
|
|
206
|
+
1. Brainstorm features for the epic
|
|
207
|
+
2. Identify architectural decisions needed
|
|
208
|
+
3. Explore technical approaches (optional prototypes)
|
|
209
|
+
4. Make decisions with `epic-implement`
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### `jettypod work epic-implement <epic-id> [flags]`
|
|
214
|
+
|
|
215
|
+
Record architectural decision for an epic.
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
jettypod work epic-implement 5 \
|
|
219
|
+
--aspect="Authentication" \
|
|
220
|
+
--decision="JWT with refresh tokens" \
|
|
221
|
+
--rationale="Stateless, scalable, mobile-friendly" \
|
|
222
|
+
--prototypes="prototypes/jwt.js,prototypes/session.js,prototypes/oauth.js"
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Required flags:**
|
|
226
|
+
- `--aspect="<category>"` - Type of decision (Architecture/Database/API/etc)
|
|
227
|
+
- `--decision="<approach>"` - The chosen approach
|
|
228
|
+
- `--rationale="<reason>"` - Why this was chosen
|
|
229
|
+
|
|
230
|
+
**Optional flags:**
|
|
231
|
+
- `--prototypes="<files>"` - Comma-separated prototype file paths
|
|
232
|
+
|
|
233
|
+
**What it does:**
|
|
234
|
+
- Records decision in `discovery_decisions` table
|
|
235
|
+
- Updates DECISIONS.md with architectural choice
|
|
236
|
+
- Stores prototype tracking (files + winner)
|
|
237
|
+
- Links decision to epic
|
|
238
|
+
|
|
239
|
+
**Can be called multiple times** for different aspects:
|
|
240
|
+
```bash
|
|
241
|
+
# Authentication decision
|
|
242
|
+
jettypod work epic-implement 5 \
|
|
243
|
+
--aspect="Authentication" \
|
|
244
|
+
--decision="JWT" \
|
|
245
|
+
--rationale="Stateless"
|
|
246
|
+
|
|
247
|
+
# Database decision
|
|
248
|
+
jettypod work epic-implement 5 \
|
|
249
|
+
--aspect="Database" \
|
|
250
|
+
--decision="PostgreSQL" \
|
|
251
|
+
--rationale="ACID guarantees needed"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Feature Discovery
|
|
257
|
+
|
|
258
|
+
### `jettypod work discover <feature-id>`
|
|
259
|
+
|
|
260
|
+
Start UX discovery for a feature.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
jettypod work discover 12
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Prerequisites:**
|
|
267
|
+
- Must be a feature (not epic/chore/bug)
|
|
268
|
+
- Feature must be in "discovery" phase
|
|
269
|
+
|
|
270
|
+
**What it does:**
|
|
271
|
+
- Activates feature-discover skill
|
|
272
|
+
- Guides through UX approach exploration
|
|
273
|
+
- Generates BDD scenarios
|
|
274
|
+
- Helps create discovery checkpoints
|
|
275
|
+
|
|
276
|
+
**Typical flow:**
|
|
277
|
+
1. Explore 3 UX approaches
|
|
278
|
+
2. (Optional) Build throwaway prototypes
|
|
279
|
+
3. Select winning approach
|
|
280
|
+
4. Generate BDD scenarios
|
|
281
|
+
5. Transition to implementation
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### `jettypod work implement <feature-id> [flags]`
|
|
286
|
+
|
|
287
|
+
Transition feature from discovery to implementation.
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# Simple transition
|
|
291
|
+
jettypod work implement 12
|
|
292
|
+
|
|
293
|
+
# With prototype tracking
|
|
294
|
+
jettypod work implement 12 \
|
|
295
|
+
--prototypes="prototypes/modal.html,prototypes/page.html" \
|
|
296
|
+
--winner="prototypes/modal.html"
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Optional flags:**
|
|
300
|
+
- `--prototypes="<files>"` - Comma-separated prototype paths
|
|
301
|
+
- `--winner="<path>"` - Winning prototype path
|
|
302
|
+
|
|
303
|
+
**What it does:**
|
|
304
|
+
- Changes phase from "discovery" to "implementation"
|
|
305
|
+
- Sets mode to "speed" by default
|
|
306
|
+
- Stores prototype tracking info
|
|
307
|
+
- Displays speed mode guidance
|
|
308
|
+
|
|
309
|
+
**Output:**
|
|
310
|
+
```
|
|
311
|
+
✅ Feature #12 transitioned to Implementation Phase
|
|
312
|
+
|
|
313
|
+
Title: Login Form
|
|
314
|
+
Phase: Implementation
|
|
315
|
+
Mode: Speed
|
|
316
|
+
Prototypes: prototypes/modal.html, prototypes/page.html
|
|
317
|
+
Winner: prototypes/modal.html
|
|
318
|
+
|
|
319
|
+
🚀 Speed Mode: Prove It Works
|
|
320
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
321
|
+
Build code that passes happy path scenarios.
|
|
322
|
+
Focus: Happy path only, single file when possible
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Work Status & Navigation
|
|
328
|
+
|
|
329
|
+
### `jettypod work tree [flags]`
|
|
330
|
+
|
|
331
|
+
Display hierarchical tree of all work items.
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# Collapsed view (default)
|
|
335
|
+
jettypod work tree
|
|
336
|
+
|
|
337
|
+
# Expand specific items
|
|
338
|
+
jettypod work tree --expand=1
|
|
339
|
+
jettypod work tree --expand=1,5,10
|
|
340
|
+
|
|
341
|
+
# Expand all items
|
|
342
|
+
jettypod work tree --expand-all
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**Flags:**
|
|
346
|
+
- `--expand=<ids>` - Comma-separated IDs to expand
|
|
347
|
+
- `--expand-all` - Show all details
|
|
348
|
+
|
|
349
|
+
**Output shows:**
|
|
350
|
+
- Recently completed items at top
|
|
351
|
+
- Hierarchical structure (epics → features → chores/bugs)
|
|
352
|
+
- Status, mode, and phase indicators
|
|
353
|
+
- Progress indicators for epics
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
### `jettypod work show <id>`
|
|
358
|
+
|
|
359
|
+
Show detailed information for a work item.
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
jettypod work show 12
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Output includes:**
|
|
366
|
+
- ID and title
|
|
367
|
+
- Type and status
|
|
368
|
+
- Mode (if set)
|
|
369
|
+
- Phase (for features: discovery/implementation)
|
|
370
|
+
- Parent and epic relationships
|
|
371
|
+
- Prototype tracking (if present)
|
|
372
|
+
- Discovery decisions (for epics)
|
|
373
|
+
- Description
|
|
374
|
+
|
|
375
|
+
**Example output:**
|
|
376
|
+
```
|
|
377
|
+
#12 Login Form
|
|
378
|
+
Type: feature
|
|
379
|
+
Status: backlog
|
|
380
|
+
Mode: speed
|
|
381
|
+
Phase: implementation
|
|
382
|
+
Parent: #5 User Authentication
|
|
383
|
+
Epic: #5 User Authentication
|
|
384
|
+
|
|
385
|
+
🔬 Prototypes: prototypes/modal.html, prototypes/page.html
|
|
386
|
+
✅ Winner: prototypes/modal.html
|
|
387
|
+
|
|
388
|
+
Description: User login UI component
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
### `jettypod work status <id> <status>`
|
|
394
|
+
|
|
395
|
+
Update work item status.
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
jettypod work status 12 in_progress
|
|
399
|
+
jettypod work status 12 done
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**Valid statuses:**
|
|
403
|
+
- `backlog` - Not started
|
|
404
|
+
- `todo` - Ready to work
|
|
405
|
+
- `in_progress` - Currently working
|
|
406
|
+
- `done` - Completed
|
|
407
|
+
|
|
408
|
+
**Special behaviors:**
|
|
409
|
+
- Marking parent as done also completes all children
|
|
410
|
+
- Marking last child as done auto-completes parent
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
### `jettypod work describe <id> <description>`
|
|
415
|
+
|
|
416
|
+
Add or update work item description.
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
jettypod work describe 12 "User login form with email and password"
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
### `jettypod work start [id]`
|
|
425
|
+
|
|
426
|
+
Start work on an item (sets as current work).
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
# Start specific item
|
|
430
|
+
jettypod work start 12
|
|
431
|
+
|
|
432
|
+
# Start current work item (if one exists)
|
|
433
|
+
jettypod work start
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
**What it does:**
|
|
437
|
+
- Sets item as current work
|
|
438
|
+
- Updates status to `in_progress` if `todo`
|
|
439
|
+
- Updates CLAUDE.md with current context
|
|
440
|
+
- Creates `.jettypod/current-work.json`
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
### `jettypod work stop`
|
|
445
|
+
|
|
446
|
+
Stop current work.
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
jettypod work stop
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
**What it does:**
|
|
453
|
+
- Clears current work
|
|
454
|
+
- Removes work context from CLAUDE.md
|
|
455
|
+
- Deletes `.jettypod/current-work.json`
|
|
456
|
+
|
|
457
|
+
---
|
|
458
|
+
|
|
459
|
+
### `jettypod work current`
|
|
460
|
+
|
|
461
|
+
Show current work item.
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
jettypod work current
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**Output:**
|
|
468
|
+
```
|
|
469
|
+
Currently working on: #12 Login Form
|
|
470
|
+
Type: feature
|
|
471
|
+
Status: in_progress
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## Mode Management
|
|
477
|
+
|
|
478
|
+
### `jettypod work set-mode <id> <mode>`
|
|
479
|
+
|
|
480
|
+
Change work item mode.
|
|
481
|
+
|
|
482
|
+
```bash
|
|
483
|
+
jettypod work set-mode 12 stable
|
|
484
|
+
jettypod work set-mode 12 production
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
**Valid modes:**
|
|
488
|
+
- `discovery` - Explore options, prototype
|
|
489
|
+
- `speed` - Ship in 2h max, minimal testing
|
|
490
|
+
- `stable` - Make it dependable, comprehensive tests
|
|
491
|
+
- `production` - Build robust systems, full quality
|
|
492
|
+
|
|
493
|
+
**What it does:**
|
|
494
|
+
- Updates mode in database
|
|
495
|
+
- Updates CLAUDE.md if this is current work
|
|
496
|
+
- Displays mode-specific guidance
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
### `jettypod work elevate <id> <mode>`
|
|
501
|
+
|
|
502
|
+
Elevate work item to higher quality mode.
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
# Elevate from speed to stable
|
|
506
|
+
jettypod work elevate 12 stable
|
|
507
|
+
|
|
508
|
+
# Elevate from stable to production
|
|
509
|
+
jettypod work elevate 12 production
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
**Mode progression:**
|
|
513
|
+
- discovery → speed → stable → production
|
|
514
|
+
|
|
515
|
+
**What it does:**
|
|
516
|
+
- Changes mode to specified level
|
|
517
|
+
- Displays elevation guidance
|
|
518
|
+
- Updates current work context
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## Decisions
|
|
523
|
+
|
|
524
|
+
### `jettypod decisions show`
|
|
525
|
+
|
|
526
|
+
Show all decisions chronologically.
|
|
527
|
+
|
|
528
|
+
```bash
|
|
529
|
+
jettypod decisions show
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
**Displays:**
|
|
533
|
+
- Project-level decisions (UX/tech stack)
|
|
534
|
+
- Epic-level decisions (architectural)
|
|
535
|
+
- Feature-level decisions
|
|
536
|
+
- Chronological ordering
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
### `jettypod decisions show project`
|
|
541
|
+
|
|
542
|
+
Show only project-level decisions.
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
jettypod decisions show project
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
**Output:**
|
|
549
|
+
```
|
|
550
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
551
|
+
📋 PROJECT-LEVEL DECISIONS
|
|
552
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
553
|
+
|
|
554
|
+
Winner: prototypes/web-react
|
|
555
|
+
Rationale: Web-first for fastest time to market
|
|
556
|
+
Decided: 10/29/2025
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
---
|
|
560
|
+
|
|
561
|
+
### `jettypod decisions show epic <id>`
|
|
562
|
+
|
|
563
|
+
Show architectural decisions for an epic.
|
|
564
|
+
|
|
565
|
+
```bash
|
|
566
|
+
jettypod decisions show epic 5
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
**Output:**
|
|
570
|
+
```
|
|
571
|
+
🏛 Discovery Decisions for Epic #5:
|
|
572
|
+
|
|
573
|
+
Authentication:
|
|
574
|
+
Decision: JWT with refresh tokens
|
|
575
|
+
Rationale: Stateless, scalable, mobile-friendly
|
|
576
|
+
|
|
577
|
+
Database:
|
|
578
|
+
Decision: PostgreSQL
|
|
579
|
+
Rationale: ACID guarantees needed
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
---
|
|
583
|
+
|
|
584
|
+
### `jettypod decisions view`
|
|
585
|
+
|
|
586
|
+
Open DECISIONS.md file.
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
jettypod decisions view
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
**What it does:**
|
|
593
|
+
- Displays contents of `docs/DECISIONS.md`
|
|
594
|
+
- Shows formatted decision history
|
|
595
|
+
- Auto-generated from database
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
## Project State
|
|
600
|
+
|
|
601
|
+
### `jettypod project state <state>`
|
|
602
|
+
|
|
603
|
+
Set project state/environment.
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
jettypod project state internal
|
|
607
|
+
jettypod project state external
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
**Valid states:**
|
|
611
|
+
- `internal` - Team only, staging/preview, no external users
|
|
612
|
+
- `external` - Public-facing, has external users
|
|
613
|
+
|
|
614
|
+
**What it does:**
|
|
615
|
+
- Updates project_state in config
|
|
616
|
+
- Affects quality expectations
|
|
617
|
+
- Influences mode guidance
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
### `jettypod project ready`
|
|
622
|
+
|
|
623
|
+
Check external readiness status.
|
|
624
|
+
|
|
625
|
+
```bash
|
|
626
|
+
jettypod project ready
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
**Shows checklist of:**
|
|
630
|
+
- External user preparation items
|
|
631
|
+
- Security hardening
|
|
632
|
+
- Compliance requirements
|
|
633
|
+
- Production readiness
|
|
634
|
+
|
|
635
|
+
---
|
|
636
|
+
|
|
637
|
+
### `jettypod project ready check <category> <item-key>`
|
|
638
|
+
|
|
639
|
+
Mark readiness item as complete.
|
|
640
|
+
|
|
641
|
+
```bash
|
|
642
|
+
jettypod project ready check security auth_hardening
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
## Git Integration
|
|
648
|
+
|
|
649
|
+
JettyPod automatically integrates with git through hooks:
|
|
650
|
+
|
|
651
|
+
### Pre-commit Hook
|
|
652
|
+
- Runs tests before allowing commit
|
|
653
|
+
- Can be bypassed with `--no-verify`
|
|
654
|
+
|
|
655
|
+
### Post-commit Hook
|
|
656
|
+
- Updates DECISIONS.md from database
|
|
657
|
+
- Auto-generates documentation
|
|
658
|
+
|
|
659
|
+
### Post-merge Hook
|
|
660
|
+
- Resets database connection
|
|
661
|
+
- Ensures schema is current
|
|
662
|
+
|
|
663
|
+
---
|
|
664
|
+
|
|
665
|
+
## Command Patterns & Tips
|
|
666
|
+
|
|
667
|
+
### Working with Epics
|
|
668
|
+
```bash
|
|
669
|
+
# 1. Create epic needing discovery
|
|
670
|
+
jettypod work create epic "User Auth" "Secure login" --needs-discovery
|
|
671
|
+
|
|
672
|
+
# 2. Discover architectural decisions
|
|
673
|
+
jettypod work epic-discover 1
|
|
674
|
+
|
|
675
|
+
# 3. Record decisions
|
|
676
|
+
jettypod work epic-implement 1 \
|
|
677
|
+
--aspect="Authentication" \
|
|
678
|
+
--decision="JWT" \
|
|
679
|
+
--rationale="Stateless scaling"
|
|
680
|
+
|
|
681
|
+
# 4. Create features under epic
|
|
682
|
+
jettypod work create feature "Login UI" --parent=1
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
### Working with Features
|
|
686
|
+
```bash
|
|
687
|
+
# 1. Create feature (starts in discovery)
|
|
688
|
+
jettypod work create feature "Login Form" --parent=1
|
|
689
|
+
|
|
690
|
+
# 2. Explore UX approaches
|
|
691
|
+
jettypod work discover 2
|
|
692
|
+
|
|
693
|
+
# 3. Transition to implementation
|
|
694
|
+
jettypod work implement 2 --winner="prototypes/modal.html"
|
|
695
|
+
|
|
696
|
+
# 4. Build in speed mode
|
|
697
|
+
jettypod work start 2
|
|
698
|
+
# ... build minimal working version ...
|
|
699
|
+
|
|
700
|
+
# 5. Elevate to stable
|
|
701
|
+
jettypod work set-mode 2 stable
|
|
702
|
+
# ... add comprehensive tests ...
|
|
703
|
+
|
|
704
|
+
# 6. Mark complete
|
|
705
|
+
jettypod work status 2 done
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
### Prototype Tracking Pattern
|
|
709
|
+
```bash
|
|
710
|
+
# Project level
|
|
711
|
+
jettypod project discover complete \
|
|
712
|
+
--winner="web-app" \
|
|
713
|
+
--rationale="Mobile web for widest reach" \
|
|
714
|
+
--prototypes="proto-1.html,proto-2.html,proto-3.html"
|
|
715
|
+
|
|
716
|
+
# Epic level
|
|
717
|
+
jettypod work epic-implement 5 \
|
|
718
|
+
--aspect="API" \
|
|
719
|
+
--decision="GraphQL" \
|
|
720
|
+
--rationale="Flexible data fetching" \
|
|
721
|
+
--prototypes="rest-api.js,graphql-api.js,grpc.js"
|
|
722
|
+
|
|
723
|
+
# Feature level
|
|
724
|
+
jettypod work implement 12 \
|
|
725
|
+
--prototypes="modal.html,page.html,drawer.html" \
|
|
726
|
+
--winner="modal.html"
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
### Current Work Pattern
|
|
730
|
+
```bash
|
|
731
|
+
# Start work
|
|
732
|
+
jettypod work start 12
|
|
733
|
+
|
|
734
|
+
# Check what you're working on
|
|
735
|
+
jettypod work current
|
|
736
|
+
|
|
737
|
+
# Stop work
|
|
738
|
+
jettypod work stop
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
---
|
|
742
|
+
|
|
743
|
+
## Database Schema
|
|
744
|
+
|
|
745
|
+
JettyPod uses SQLite with the following main tables:
|
|
746
|
+
|
|
747
|
+
### `work_items`
|
|
748
|
+
- Core work item storage
|
|
749
|
+
- Tracks type, status, mode, phase
|
|
750
|
+
- Hierarchical relationships (parent_id, epic_id)
|
|
751
|
+
- Prototype tracking (prototype_files, discovery_winner)
|
|
752
|
+
|
|
753
|
+
### `discovery_decisions`
|
|
754
|
+
- Architectural decisions for epics
|
|
755
|
+
- Links to work_items
|
|
756
|
+
- Stores aspect, decision, rationale
|
|
757
|
+
|
|
758
|
+
### `project_config`
|
|
759
|
+
- Project-level settings
|
|
760
|
+
- Singleton table (id=1)
|
|
761
|
+
- project_state field
|
|
762
|
+
|
|
763
|
+
### `external_readiness_checklist`
|
|
764
|
+
- External user readiness tracking
|
|
765
|
+
- Category-based organization
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
## File Structure
|
|
770
|
+
|
|
771
|
+
```
|
|
772
|
+
.jettypod/
|
|
773
|
+
├── work.db # SQLite database
|
|
774
|
+
├── current-work.json # Active work item
|
|
775
|
+
├── config.json # Project configuration
|
|
776
|
+
└── skills/ # Discovery skills for Claude Code
|
|
777
|
+
├── epic-discover/
|
|
778
|
+
└── feature-discover/
|
|
779
|
+
|
|
780
|
+
docs/
|
|
781
|
+
└── DECISIONS.md # Auto-generated decision log
|
|
782
|
+
|
|
783
|
+
CLAUDE.md # Project context for Claude Code
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
---
|
|
787
|
+
|
|
788
|
+
## Mode Behavior Reference
|
|
789
|
+
|
|
790
|
+
| Mode | Max Time | Testing | Error Handling | Code Quality | Use Case |
|
|
791
|
+
|------|----------|---------|----------------|--------------|----------|
|
|
792
|
+
| **discovery** | No limit | None | None | Throwaway | Explore approaches |
|
|
793
|
+
| **speed** | 2 hours | Happy path | Basic try/catch | Single file | Prove it works |
|
|
794
|
+
| **stable** | No limit | Comprehensive | Full coverage | Maintainable | Dependable feature |
|
|
795
|
+
| **production** | No limit | Full suite | Bulletproof | Enterprise | External users |
|
|
796
|
+
|
|
797
|
+
---
|
|
798
|
+
|
|
799
|
+
## Phase Behavior (Features Only)
|
|
800
|
+
|
|
801
|
+
Features have two phases:
|
|
802
|
+
|
|
803
|
+
### Discovery Phase
|
|
804
|
+
- Explore UX approaches
|
|
805
|
+
- Build throwaway prototypes
|
|
806
|
+
- Generate BDD scenarios
|
|
807
|
+
- Default mode: `discovery`
|
|
808
|
+
- Display: `[🔍 discovery]`
|
|
809
|
+
|
|
810
|
+
### Implementation Phase
|
|
811
|
+
- Build production code
|
|
812
|
+
- Follow chosen approach
|
|
813
|
+
- Default mode: `speed`
|
|
814
|
+
- Display: `[speed]`, `[stable]`, or `[production]`
|
|
815
|
+
|
|
816
|
+
Transition with: `jettypod work implement <id>`
|
|
817
|
+
|
|
818
|
+
---
|
|
819
|
+
|
|
820
|
+
## Integration with Claude Code
|
|
821
|
+
|
|
822
|
+
JettyPod is designed to work seamlessly with Claude Code:
|
|
823
|
+
|
|
824
|
+
### CLAUDE.md Integration
|
|
825
|
+
- Auto-updates with current work context
|
|
826
|
+
- Includes mode-specific guidance
|
|
827
|
+
- Shows project state and decisions
|
|
828
|
+
|
|
829
|
+
### Discovery Skills
|
|
830
|
+
- `epic-discover` - Guides architectural decisions
|
|
831
|
+
- `feature-discover` - Guides UX exploration
|
|
832
|
+
|
|
833
|
+
### Automatic Triggers
|
|
834
|
+
- Creating epic with `--needs-discovery` → prompts epic-discover
|
|
835
|
+
- Creating feature → prompts feature-discover
|
|
836
|
+
- Starting work → updates Claude context
|
|
837
|
+
|
|
838
|
+
---
|
|
839
|
+
|
|
840
|
+
## Best Practices
|
|
841
|
+
|
|
842
|
+
1. **Start with Project Discovery**
|
|
843
|
+
- Understand user journey first
|
|
844
|
+
- Explore 3 UX approaches
|
|
845
|
+
- Build prototypes to validate
|
|
846
|
+
|
|
847
|
+
2. **Epic Discovery for Architecture**
|
|
848
|
+
- Use `--needs-discovery` flag
|
|
849
|
+
- Make decisions before creating features
|
|
850
|
+
- Track prototypes for future reference
|
|
851
|
+
|
|
852
|
+
3. **Feature Discovery for UX**
|
|
853
|
+
- Every feature starts in discovery phase
|
|
854
|
+
- Explore approaches before building
|
|
855
|
+
- Transition consciously to implementation
|
|
856
|
+
|
|
857
|
+
4. **Mode Progression**
|
|
858
|
+
- Start in speed mode (2h max)
|
|
859
|
+
- Elevate to stable (comprehensive tests)
|
|
860
|
+
- Only use production for external users
|
|
861
|
+
|
|
862
|
+
5. **Track Prototypes**
|
|
863
|
+
- Use `--prototypes` flags consistently
|
|
864
|
+
- Mark winners with `--winner`
|
|
865
|
+
- Reference in future decisions
|
|
866
|
+
|
|
867
|
+
6. **Use Work Tree**
|
|
868
|
+
- `jettypod work tree` for overview
|
|
869
|
+
- `--expand` to see details
|
|
870
|
+
- Track progress visually
|
|
871
|
+
|
|
872
|
+
---
|
|
873
|
+
|
|
874
|
+
## Troubleshooting
|
|
875
|
+
|
|
876
|
+
### "Work item #NaN not found"
|
|
877
|
+
Use: `jettypod work show <id>` (ID is required)
|
|
878
|
+
|
|
879
|
+
### "Epic does not need discovery"
|
|
880
|
+
Add flag when creating: `--needs-discovery`
|
|
881
|
+
|
|
882
|
+
### "Feature not in discovery phase"
|
|
883
|
+
Check phase with `jettypod work show <id>`
|
|
884
|
+
|
|
885
|
+
### Database locked
|
|
886
|
+
Close other JettyPod instances or wait for background operations
|
|
887
|
+
|
|
888
|
+
### Git hooks failing tests
|
|
889
|
+
Use `--no-verify` flag: `git commit --no-verify -m "message"`
|
|
890
|
+
|
|
891
|
+
---
|
|
892
|
+
|
|
893
|
+
## Version
|
|
894
|
+
|
|
895
|
+
This reference is current as of JettyPod v3.0.0 (2025-10-31)
|
|
896
|
+
|
|
897
|
+
Features included:
|
|
898
|
+
- Multi-level prototype tracking
|
|
899
|
+
- Feature phase tracking (discovery/implementation)
|
|
900
|
+
- Decision tracking and DECISIONS.md generation
|
|
901
|
+
- Epic and feature discovery skills
|
|
902
|
+
- Mode management system
|
|
903
|
+
- Project state management
|