jettypod 4.4.0 → 4.4.2

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.
@@ -0,0 +1,229 @@
1
+ ---
2
+ name: chore-planning
3
+ description: Guide standalone chore planning with automatic type classification, taxonomy guidance loading, and routing to chore-mode for execution. Use when user starts a standalone chore (chore with no parent feature), mentions planning a chore, or says "help me with this chore".
4
+ ---
5
+
6
+ # Chore Planning Skill
7
+
8
+ Guides Claude through standalone chore planning including automatic type classification, loading type-specific guidance from the taxonomy, building enriched context, and routing to chore-mode for execution.
9
+
10
+ ## Instructions
11
+
12
+ When this skill is activated, you are helping plan a standalone chore (one without a parent feature). Follow this structured approach:
13
+
14
+ ### Step 1: Understand the Chore Context
15
+
16
+ You'll receive context about:
17
+ - Chore title and description
18
+ - Project context
19
+ - No parent feature (standalone chores don't have features)
20
+
21
+ Display:
22
+
23
+ ```
24
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
25
+ 🔧 Planning Standalone Chore
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+
28
+ **Chore:** [Title]
29
+ **Description:** [Description if provided]
30
+
31
+ Analyzing chore type...
32
+ ```
33
+
34
+ ### Step 2: Classify Chore Type
35
+
36
+ **CRITICAL:** Use the chore-classifier to determine the chore type automatically.
37
+
38
+ **Execute this code:**
39
+
40
+ ```javascript
41
+ const { classifyChoreType, classifyWithConfidence } = require('./lib/chore-classifier');
42
+
43
+ const choreTitle = '[chore title]';
44
+ const choreDescription = '[chore description or empty string]';
45
+
46
+ const classification = classifyWithConfidence(choreTitle, choreDescription);
47
+ console.log('Classification:', JSON.stringify(classification, null, 2));
48
+ ```
49
+
50
+ Display the classification result:
51
+
52
+ ```
53
+ **Type Classification:** [type] (confidence: [high/medium/low])
54
+ ```
55
+
56
+ **If confidence is low:**
57
+ ```
58
+ ⚠️ Low confidence classification. The chore might be:
59
+ - [type] - because [reason based on keywords found]
60
+ - [alternative type] - if [alternative interpretation]
61
+
62
+ Proceeding with [type]. Let me know if this should be different.
63
+ ```
64
+
65
+ ### Step 3: Load Taxonomy Guidance
66
+
67
+ **Execute this code to load type-specific guidance:**
68
+
69
+ ```javascript
70
+ const { getGuidance } = require('./lib/chore-taxonomy');
71
+
72
+ const guidance = getGuidance('[classified-type]');
73
+ console.log('Guidance:', JSON.stringify(guidance, null, 2));
74
+ ```
75
+
76
+ Display the guidance:
77
+
78
+ ```
79
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
80
+ 📋 [Type] Chore Guidance
81
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
82
+
83
+ **Scope Considerations:**
84
+ [List each scope item from guidance]
85
+
86
+ **Verification Criteria:**
87
+ [List each verification item from guidance]
88
+
89
+ **Test Handling:**
90
+ - Tests required: [yes/no]
91
+ - Approach: [testHandling.approach]
92
+ ```
93
+
94
+ ### Step 4: Build Enriched Context
95
+
96
+ Combine all information into a structured context object:
97
+
98
+ ```javascript
99
+ const choreContext = {
100
+ chore: {
101
+ id: [chore-id],
102
+ title: '[title]',
103
+ description: '[description]',
104
+ type: 'chore',
105
+ parent_id: null // standalone
106
+ },
107
+ classification: {
108
+ type: '[classified-type]',
109
+ confidence: '[high/medium/low]'
110
+ },
111
+ guidance: {
112
+ scope: [...],
113
+ verification: [...],
114
+ testHandling: {
115
+ required: true/false,
116
+ approach: '...'
117
+ }
118
+ }
119
+ };
120
+ ```
121
+
122
+ ### Step 5: Analyze Codebase Impact
123
+
124
+ Based on the chore type and guidance, analyze what needs to be done:
125
+
126
+ **For REFACTOR chores:**
127
+ - Identify the code being restructured
128
+ - Find all callers/dependents
129
+ - List affected test files
130
+
131
+ **For DEPENDENCY chores:**
132
+ - Check current version
133
+ - Review changelog for breaking changes
134
+ - Identify affected code
135
+
136
+ **For CLEANUP chores:**
137
+ - Find all references to code being removed
138
+ - Verify nothing depends on it
139
+ - List files to modify
140
+
141
+ **For TOOLING chores:**
142
+ - Check current tool configuration
143
+ - Identify affected workflows
144
+ - Review CI/CD impacts
145
+
146
+ Display analysis:
147
+
148
+ ```
149
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
150
+ 🔍 Impact Analysis
151
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
152
+
153
+ **Files to modify:**
154
+ [List of files]
155
+
156
+ **Tests to run:**
157
+ [List of test files/patterns]
158
+
159
+ **Verification steps:**
160
+ [Specific steps based on guidance]
161
+ ```
162
+
163
+ ### Step 6: Create Implementation Plan
164
+
165
+ Based on the analysis, create a focused plan:
166
+
167
+ ```
168
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
169
+ 📝 Implementation Plan
170
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
+
172
+ **Step 1:** [First action]
173
+ **Step 2:** [Second action]
174
+ ...
175
+
176
+ **Verification:**
177
+ 1. [First check from guidance]
178
+ 2. [Second check from guidance]
179
+ ...
180
+
181
+ Ready to proceed?
182
+ ```
183
+
184
+ ### Step 7: Route to Chore Mode
185
+
186
+ **WAIT for user confirmation.**
187
+
188
+ When user confirms (responds with "yes", "proceed", "let's go", etc.):
189
+
190
+ **Invoke the chore-mode skill using the Skill tool:**
191
+
192
+ ```
193
+ Use the Skill tool with skill: "chore-mode"
194
+ ```
195
+
196
+ The chore-mode skill will:
197
+ 1. Create a worktree for the chore
198
+ 2. Execute the implementation plan
199
+ 3. Run verification steps
200
+ 4. Merge when complete
201
+
202
+ **End chore-planning skill after invoking chore-mode.**
203
+
204
+ ## Key Principles
205
+
206
+ 1. **Automatic classification** - AI determines chore type from title/description
207
+ 2. **Taxonomy-driven guidance** - Load specific guidance for each chore type
208
+ 3. **Context enrichment** - Build complete context before execution
209
+ 4. **Impact analysis** - Understand what the chore affects
210
+ 5. **Verification-focused** - Use type-specific verification criteria
211
+ 6. **Seamless handoff** - Route to chore-mode with full context
212
+
213
+ ## Chore Type Quick Reference
214
+
215
+ | Type | Keywords | Test Handling |
216
+ |------|----------|---------------|
217
+ | refactor | refactor, restructure, extract, rename | Run all tests, don't modify assertions |
218
+ | dependency | update, upgrade, bump, migrate | Run full suite, check for deprecations |
219
+ | cleanup | remove, delete, unused, legacy | Verify no references, run affected tests |
220
+ | tooling | ci, build, lint, config | Run affected pipelines |
221
+
222
+ ## Validation
223
+
224
+ Before routing to chore-mode, ensure:
225
+ - [ ] Chore type classified
226
+ - [ ] Taxonomy guidance loaded
227
+ - [ ] Impact analysis complete
228
+ - [ ] Implementation plan created
229
+ - [ ] User confirmed ready to proceed
@@ -159,13 +159,21 @@ Once features are defined and architectural decision is made (if needed):
159
159
 
160
160
  #### Step 6A: Create Features
161
161
 
162
- Use the Bash tool to create each feature:
162
+ **CRITICAL:** You MUST pass the `--parent=<epic-id>` flag with the actual numeric epic ID. Without this, features won't appear under the epic in the backlog tree.
163
+
164
+ Use the Bash tool to create each feature. Replace `<EPIC_ID>` with the actual epic ID number:
163
165
 
164
166
  ```javascript
165
- // For each feature, use Bash tool to execute:
166
- node jettypod.js work create feature "[Feature 1]" "[Description]" --parent=[epic-id]
167
- node jettypod.js work create feature "[Feature 2]" "[Description]" --parent=[epic-id]
168
- // etc.
167
+ // CORRECT - uses actual numeric epic ID:
168
+ node jettypod.js work create feature "Live cursor tracking" "Track cursor positions in real-time" --parent=5
169
+
170
+ // WRONG - missing parent flag (feature won't be under epic):
171
+ node jettypod.js work create feature "Live cursor tracking" "Track cursor positions in real-time"
172
+ ```
173
+
174
+ For each feature, execute:
175
+ ```bash
176
+ node jettypod.js work create feature "<Title>" "<Description>" --parent=<EPIC_ID>
169
177
  ```
170
178
 
171
179
  Display to user as you create each one:
@@ -203,23 +211,114 @@ node jettypod.js work epic-implement [epic-id] \
203
211
 
204
212
  **DO NOT display this as example text. EXECUTE IT using the Bash tool.**
205
213
 
206
- After execution succeeds, verify the decision was recorded and display:
214
+ After execution succeeds, display:
207
215
 
208
216
  ```
209
217
  ✅ Architectural decision recorded
218
+ ```
219
+
220
+ Then proceed to Step 7.
221
+
222
+ ### Step 7: Route to Next Planning Skill
223
+
224
+ After features/chores are created (and architectural decision recorded if applicable), route to the appropriate planning skill.
225
+
226
+ #### Step 7A: Query Created Items
227
+
228
+ Query the database to find what was just created under this epic:
229
+
230
+ ```bash
231
+ sqlite3 .jettypod/work.db "SELECT id, title, type FROM work_items WHERE parent_id = <EPIC_ID> ORDER BY id"
232
+ ```
233
+
234
+ #### Step 7B: Display and Recommend
210
235
 
236
+ Display what was created and recommend which item to plan first:
237
+
238
+ ```
211
239
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
212
240
  🎯 Epic Planning Complete!
213
241
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
214
242
 
215
- Features created: [count]
216
- Architectural decision: Recorded
243
+ Created under this epic:
244
+ Feature #[id]: [title]
245
+ ✨ Feature #[id]: [title]
246
+ 🔧 Chore #[id]: [title] (if any chores were created)
247
+
248
+ 💡 Recommendation: Start with [Feature/Chore] #[id] ([title])
249
+ [Reason - e.g., "It's foundational - other items may depend on it."]
217
250
 
218
- **Next step:** Plan your first feature
219
- Run: jettypod work discover [feature-id]
220
- Or talk to Claude Code: "Let's do feature discovery for #[feature-id]"
251
+ Plan this one now? [yes / pick different / done for now]
221
252
  ```
222
253
 
254
+ **Recommendation logic:**
255
+ - If features exist, recommend the first feature (features are typically foundational)
256
+ - If only chores exist, recommend the first chore
257
+ - Provide brief reasoning for the recommendation
258
+
259
+ **WAIT for user response.**
260
+
261
+ #### Step 7C: Route on Confirmation
262
+
263
+ Based on user response:
264
+
265
+ **If user confirms (says "yes", "let's go", "proceed", etc.):**
266
+
267
+ Determine the skill to invoke based on item type:
268
+ - **Feature** → invoke `feature-planning`
269
+ - **Chore** → invoke `chore-planning`
270
+
271
+ **IMMEDIATELY invoke the appropriate skill using the Skill tool:**
272
+
273
+ ```
274
+ Use the Skill tool with skill: "feature-planning"
275
+ ```
276
+ or
277
+ ```
278
+ Use the Skill tool with skill: "chore-planning"
279
+ ```
280
+
281
+ **If user picks different item (says "pick different", "different one", "let me choose", etc.):**
282
+
283
+ Display a numbered list of all created items:
284
+
285
+ ```
286
+ Which item would you like to plan?
287
+
288
+ 1. ✨ Feature #[id]: [title]
289
+ 2. ✨ Feature #[id]: [title]
290
+ 3. 🔧 Chore #[id]: [title]
291
+
292
+ Enter the number of your choice:
293
+ ```
294
+
295
+ **WAIT for user to enter a number.**
296
+
297
+ After user selects (e.g., "2" or "number 2"):
298
+ 1. Look up the item from the list
299
+ 2. Determine the skill based on item type:
300
+ - **Feature** → invoke `feature-planning`
301
+ - **Chore** → invoke `chore-planning`
302
+ 3. **IMMEDIATELY invoke the appropriate skill using the Skill tool**
303
+
304
+ **If user says "done for now" (or "later", "not now", "skip", "no thanks", etc.):**
305
+
306
+ Display with actual IDs from the created items:
307
+ ```
308
+ No problem! When you're ready to continue, you can plan any of these:
309
+
310
+ Features:
311
+ • "Let's do feature discovery for #10" (User registration)
312
+ • "Let's do feature discovery for #11" (Password reset)
313
+
314
+ Chores:
315
+ • "Help me plan chore #12" (Update CI config)
316
+
317
+ Or run: jettypod backlog to see all items.
318
+ ```
319
+
320
+ **Do NOT invoke any skill. End epic-planning skill.**
321
+
223
322
  ## Key Principles
224
323
 
225
324
  1. **Feature brainstorming is always required** - Don't skip this even if architectural decision is clear
@@ -227,8 +326,9 @@ Or talk to Claude Code: "Let's do feature discovery for #[feature-id]"
227
326
  3. **Always suggest exactly 3 options** when architectural decision needed - Simple/Conservative, Balanced, Advanced
228
327
  4. **Be specific about features** - Each feature should be user-facing capability
229
328
  5. **Use the Approach Suggestion template** - Pros, Cons, Technical Impact format
230
- 6. **Suggest next step** - Always end with clear guidance on what to do next
329
+ 6. **Route to next skill** - After creating items, recommend one and invoke the appropriate planning skill
231
330
  7. **Use jettypod commands** - Create features using jettypod CLI, record decisions with epic-implement
331
+ 8. **Skill handoff** - Invoke `feature-planning` for features, `chore-planning` for chores
232
332
 
233
333
  ## Example: Epic with Architectural Decision
234
334
 
@@ -289,9 +389,11 @@ Epic: "User Management"
289
389
 
290
390
  ## Validation
291
391
 
292
- Before completing epic discovery, ensure:
293
- - [ ] At least 2-3 features identified
392
+ Before completing epic planning, ensure:
393
+ - [ ] At least 2-3 features/chores identified
294
394
  - [ ] Features are user-facing capabilities (not technical tasks)
395
+ - [ ] Chores (if any) are standalone work items for this epic
295
396
  - [ ] Architectural decision documented if needed
296
- - [ ] Features created in database
297
- - [ ] User knows next step .jettypod work discover [feature-id])
397
+ - [ ] All items created in database with correct parent_id
398
+ - [ ] Recommended next item to plan
399
+ - [ ] Routed to feature-planning or chore-planning (or user declined)