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.
- package/docs/DECISIONS.md +4 -52
- package/jettypod.js +89 -0
- package/lib/chore-classifier.js +232 -0
- package/lib/chore-taxonomy.js +172 -0
- package/package.json +1 -1
- package/skills-templates/chore-mode/SKILL.md +396 -0
- package/skills-templates/chore-mode/verification.js +255 -0
- package/skills-templates/chore-planning/SKILL.md +229 -0
- package/skills-templates/epic-planning/SKILL.md +118 -16
- package/skills-templates/feature-planning/SKILL.md +155 -105
- package/skills-templates/production-mode/SKILL.md +4 -7
- package/skills-templates/speed-mode/SKILL.md +471 -463
- package/skills-templates/stable-mode/SKILL.md +319 -371
|
@@ -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
|
-
|
|
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
|
-
//
|
|
166
|
-
node jettypod.js work create feature "
|
|
167
|
-
|
|
168
|
-
//
|
|
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,
|
|
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
|
-
|
|
216
|
-
|
|
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
|
-
|
|
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. **
|
|
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
|
|
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
|
-
- [ ]
|
|
297
|
-
- [ ]
|
|
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)
|