get-shit-done-cc 1.3.11 → 1.3.12

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.
@@ -1,127 +1,397 @@
1
1
  <overview>
2
- Claude-executable plans have a specific format. This reference defines what makes a plan executable vs. vague.
2
+ Claude-executable plans have a specific format that enables Claude to implement without interpretation. This reference defines what makes a plan executable vs. vague.
3
3
 
4
- **Core principle:** A plan is Claude-executable when Claude can read PLAN.md and immediately start implementing without clarifying questions. If Claude has to guess or interpret - the task is too vague.
4
+ **Key insight:** PLAN.md IS the executable prompt. It contains everything Claude needs to execute the phase, including objective, context references, tasks, verification, success criteria, and output specification.
5
5
  </overview>
6
6
 
7
- <task_anatomy>
7
+ <core_principle>
8
+ A plan is Claude-executable when Claude can read the PLAN.md and immediately start implementing without asking clarifying questions.
9
+
10
+ If Claude has to guess, interpret, or make assumptions - the task is too vague.
11
+ </core_principle>
12
+
13
+ <prompt_structure>
14
+ Every PLAN.md follows this XML structure:
15
+
16
+ ```markdown
17
+ ---
18
+ phase: XX-name
19
+ type: execute
20
+ domain: [optional]
21
+ ---
22
+
23
+ <objective>
24
+ [What and why]
25
+ Purpose: [...]
26
+ Output: [...]
27
+ </objective>
28
+
29
+ <context>
30
+ @.planning/PROJECT.md
31
+ @.planning/ROADMAP.md
32
+ @relevant/source/files.ts
33
+ </context>
34
+
35
+ <tasks>
36
+ <task type="auto">
37
+ <name>Task N: [Name]</name>
38
+ <files>[paths]</files>
39
+ <action>[what to do, what to avoid and WHY]</action>
40
+ <verify>[command/check]</verify>
41
+ <done>[criteria]</done>
42
+ </task>
43
+
44
+ <task type="checkpoint:human-verify" gate="blocking">
45
+ <what-built>[what Claude automated]</what-built>
46
+ <how-to-verify>[numbered verification steps]</how-to-verify>
47
+ <resume-signal>[how to continue - "approved" or describe issues]</resume-signal>
48
+ </task>
8
49
 
50
+ <task type="checkpoint:decision" gate="blocking">
51
+ <decision>[what needs deciding]</decision>
52
+ <context>[why this matters]</context>
53
+ <options>
54
+ <option id="option-a"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
55
+ <option id="option-b"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
56
+ </options>
57
+ <resume-signal>[how to indicate choice]</resume-signal>
58
+ </task>
59
+ </tasks>
60
+
61
+ <verification>
62
+ [Overall phase checks]
63
+ </verification>
64
+
65
+ <success_criteria>
66
+ [Measurable completion]
67
+ </success_criteria>
68
+
69
+ <output>
70
+ [SUMMARY.md specification]
71
+ </output>
72
+ ```
73
+
74
+ </prompt_structure>
75
+
76
+ <task_anatomy>
9
77
  Every task has four required fields:
10
78
 
11
- **files** - Exact paths created/modified
12
- - Good: `src/app/api/auth/login/route.ts`
13
- - Bad: "the auth files"
79
+ <field name="files">
80
+ **What it is**: Exact file paths that will be created or modified.
14
81
 
15
- **action** - Specific implementation with pitfalls to avoid
16
- - Good: "POST endpoint accepting {email, password}. Query User by email, compare with bcrypt. Return JWT in httpOnly cookie (15-min expiry). Use jose (not jsonwebtoken - CommonJS issues with Edge)."
17
- - Bad: "Add authentication"
82
+ **Good**: `src/app/api/auth/login/route.ts`, `prisma/schema.prisma`
83
+ **Bad**: "the auth files", "relevant components"
18
84
 
19
- **verify** - Executable proof of completion
20
- - Good: `curl -X POST /api/auth/login` returns 200 with Set-Cookie header
21
- - Bad: "It works"
85
+ Be specific. If you don't know the file path, figure it out first.
86
+ </field>
22
87
 
23
- **done** - Measurable acceptance criteria
24
- - Good: "Valid credentials 200 + cookie. Invalid 401."
25
- - Bad: "Authentication complete"
88
+ <field name="action">
89
+ **What it is**: Specific implementation instructions, including what to avoid and WHY.
26
90
 
91
+ **Good**: "Create POST endpoint that accepts {email, password}, validates using bcrypt against User table, returns JWT in httpOnly cookie with 15-min expiry. Use jose library (not jsonwebtoken - CommonJS issues with Next.js Edge runtime)."
92
+
93
+ **Bad**: "Add authentication", "Make login work"
94
+
95
+ Include: technology choices, data structures, behavior details, pitfalls to avoid.
96
+ </field>
97
+
98
+ <field name="verify">
99
+ **What it is**: How to prove the task is complete.
100
+
101
+ **Good**:
102
+
103
+ - `npm test` passes
104
+ - `curl -X POST /api/auth/login` returns 200 with Set-Cookie header
105
+ - Build completes without errors
106
+
107
+ **Bad**: "It works", "Looks good", "User can log in"
108
+
109
+ Must be executable - a command, a test, an observable behavior.
110
+ </field>
111
+
112
+ <field name="done">
113
+ **What it is**: Acceptance criteria - the measurable state of completion.
114
+
115
+ **Good**: "Valid credentials return 200 + JWT cookie, invalid credentials return 401"
116
+
117
+ **Bad**: "Authentication is complete"
118
+
119
+ Should be testable without subjective judgment.
120
+ </field>
27
121
  </task_anatomy>
28
122
 
29
123
  <task_types>
124
+ Tasks have a `type` attribute that determines how they execute:
125
+
126
+ <type name="auto">
127
+ **Default task type** - Claude executes autonomously.
128
+
129
+ **Structure:**
30
130
 
31
- **type="auto"** (default) - Claude executes autonomously
32
131
  ```xml
33
132
  <task type="auto">
34
- <name>Task 1: Create login endpoint</name>
133
+ <name>Task 3: Create login endpoint with JWT</name>
35
134
  <files>src/app/api/auth/login/route.ts</files>
36
- <action>POST accepting {email, password}. bcrypt compare, JWT via jose, httpOnly cookie.</action>
37
- <verify>curl returns 200 with Set-Cookie</verify>
38
- <done>Valid → 200 + cookie. Invalid → 401.</done>
135
+ <action>POST endpoint accepting {email, password}. Query User by email, compare password with bcrypt. On match, create JWT with jose library, set as httpOnly cookie (15-min expiry). Return 200. On mismatch, return 401.</action>
136
+ <verify>curl -X POST localhost:3000/api/auth/login returns 200 with Set-Cookie header</verify>
137
+ <done>Valid credentials → 200 + cookie. Invalid → 401.</done>
39
138
  </task>
40
139
  ```
41
140
 
42
- **type="checkpoint:human-verify"** - Human confirms Claude's work
141
+ Use for: Everything Claude can do independently (code, tests, builds, file operations).
142
+ </type>
143
+
144
+ <type name="checkpoint:human-action">
145
+ **RARELY USED** - Only for actions with NO CLI/API. Claude automates everything possible first.
146
+
147
+ **Structure:**
148
+
149
+ ```xml
150
+ <task type="checkpoint:human-action" gate="blocking">
151
+ <action>[Unavoidable manual step - email link, 2FA code]</action>
152
+ <instructions>
153
+ [What Claude already automated]
154
+ [The ONE thing requiring human action]
155
+ </instructions>
156
+ <verification>[What Claude can check afterward]</verification>
157
+ <resume-signal>[How to continue]</resume-signal>
158
+ </task>
159
+ ```
160
+
161
+ Use ONLY for: Email verification links, SMS 2FA codes, manual approvals with no API, 3D Secure payment flows.
162
+
163
+ Do NOT use for: Anything with a CLI (Vercel, Stripe, Upstash, Railway, GitHub), builds, tests, file creation, deployments.
164
+
165
+ **Execution:** Claude automates everything with CLI/API, stops only for truly unavoidable manual steps.
166
+ </type>
167
+
168
+ <type name="checkpoint:human-verify">
169
+ **Human must verify Claude's work** - Visual checks, UX testing.
170
+
171
+ **Structure:**
172
+
43
173
  ```xml
44
174
  <task type="checkpoint:human-verify" gate="blocking">
45
- <what-built>Responsive dashboard at /dashboard</what-built>
46
- <how-to-verify>1. npm run dev 2. Visit localhost:3000/dashboard 3. Test mobile/tablet/desktop</how-to-verify>
175
+ <what-built>Responsive dashboard layout</what-built>
176
+ <how-to-verify>
177
+ 1. Run: npm run dev
178
+ 2. Visit: http://localhost:3000/dashboard
179
+ 3. Desktop (>1024px): Verify sidebar left, content right
180
+ 4. Tablet (768px): Verify sidebar collapses to hamburger
181
+ 5. Mobile (375px): Verify single column, bottom nav
182
+ 6. Check: No layout shift, no horizontal scroll
183
+ </how-to-verify>
47
184
  <resume-signal>Type "approved" or describe issues</resume-signal>
48
185
  </task>
49
186
  ```
50
187
 
51
- **type="checkpoint:decision"** - Human makes implementation choice
188
+ Use for: UI/UX verification, visual design checks, animation smoothness, accessibility testing.
189
+
190
+ **Execution:** Claude builds the feature, stops, provides testing instructions, waits for approval/feedback.
191
+ </type>
192
+
193
+ <type name="checkpoint:decision">
194
+ **Human must make implementation choice** - Direction-setting decisions.
195
+
196
+ **Structure:**
197
+
52
198
  ```xml
53
199
  <task type="checkpoint:decision" gate="blocking">
54
- <decision>Select auth provider</decision>
55
- <context>Need user auth with different tradeoffs.</context>
200
+ <decision>Select authentication provider</decision>
201
+ <context>We need user authentication. Three approaches with different tradeoffs:</context>
56
202
  <options>
57
- <option id="supabase"><name>Supabase</name><pros>Built-in, free</pros><cons>Ecosystem lock-in</cons></option>
58
- <option id="clerk"><name>Clerk</name><pros>Best DX</pros><cons>Paid after 10k</cons></option>
203
+ <option id="supabase">
204
+ <name>Supabase Auth</name>
205
+ <pros>Built-in with Supabase, generous free tier</pros>
206
+ <cons>Less customizable UI, tied to ecosystem</cons>
207
+ </option>
208
+ <option id="clerk">
209
+ <name>Clerk</name>
210
+ <pros>Beautiful pre-built UI, best DX</pros>
211
+ <cons>Paid after 10k MAU</cons>
212
+ </option>
213
+ <option id="nextauth">
214
+ <name>NextAuth.js</name>
215
+ <pros>Free, self-hosted, maximum control</pros>
216
+ <cons>More setup, you manage security</cons>
217
+ </option>
59
218
  </options>
60
- <resume-signal>Select: supabase or clerk</resume-signal>
219
+ <resume-signal>Select: supabase, clerk, or nextauth</resume-signal>
61
220
  </task>
62
221
  ```
63
222
 
64
- **type="checkpoint:human-action"** - Rare, only for NO API/CLI actions (email links, 2FA)
223
+ Use for: Technology selection, architecture decisions, design choices, feature prioritization.
224
+
225
+ **Execution:** Claude presents options with balanced pros/cons, waits for decision, proceeds with chosen direction.
226
+ </type>
227
+
228
+ **When to use checkpoints:**
229
+
230
+ - Visual/UX verification (after Claude builds) → `checkpoint:human-verify`
231
+ - Implementation direction choice → `checkpoint:decision`
232
+ - Truly unavoidable manual actions (email links, 2FA) → `checkpoint:human-action` (rare)
233
+
234
+ **When NOT to use checkpoints:**
235
+
236
+ - Anything with CLI/API (Claude automates it) → `type="auto"`
237
+ - Deployments (Vercel, Railway, Fly) → `type="auto"` with CLI
238
+ - Creating resources (Upstash, Stripe, GitHub) → `type="auto"` with CLI/API
239
+ - File operations, tests, builds → `type="auto"`
65
240
 
66
241
  **Golden rule:** If Claude CAN automate it, Claude MUST automate it.
67
242
 
68
243
  See `./checkpoints.md` for comprehensive checkpoint guidance.
69
-
70
244
  </task_types>
71
245
 
246
+ <context_references>
247
+ Use @file references to load context for the prompt:
248
+
249
+ ```markdown
250
+ <context>
251
+ @.planning/PROJECT.md # Project vision
252
+ @.planning/ROADMAP.md # Phase structure
253
+ @.planning/phases/02-auth/DISCOVERY.md # Discovery results
254
+ @src/lib/db.ts # Existing database setup
255
+ @src/types/user.ts # Existing type definitions
256
+ </context>
257
+ ```
258
+
259
+ Reference files that Claude needs to understand before implementing.
260
+ </context_references>
261
+
262
+ <verification_section>
263
+ Overall phase verification (beyond individual task verification):
264
+
265
+ ```markdown
266
+ <verification>
267
+ Before declaring phase complete:
268
+ - [ ] `npm run build` succeeds without errors
269
+ - [ ] `npm test` passes all tests
270
+ - [ ] No TypeScript errors
271
+ - [ ] Feature works end-to-end manually
272
+ </verification>
273
+ ```
274
+
275
+ </verification_section>
276
+
277
+ <success_criteria_section>
278
+ Measurable criteria for phase completion:
279
+
280
+ ```markdown
281
+ <success_criteria>
282
+
283
+ - All tasks completed
284
+ - All verification checks pass
285
+ - No errors or warnings introduced
286
+ - JWT auth flow works end-to-end
287
+ - Protected routes redirect unauthenticated users
288
+ </success_criteria>
289
+ ```
290
+
291
+ </success_criteria_section>
292
+
293
+ <output_section>
294
+ Specify the SUMMARY.md structure:
295
+
296
+ ```markdown
297
+ <output>
298
+ After completion, create `.planning/phases/XX-name/SUMMARY.md`:
299
+
300
+ # Phase X: Name Summary
301
+
302
+ **[Substantive one-liner]**
303
+
304
+ ## Accomplishments
305
+
306
+ ## Files Created/Modified
307
+
308
+ ## Decisions Made
309
+
310
+ ## Issues Encountered
311
+
312
+ ## Next Phase Readiness
313
+
314
+ </output>
315
+ ```
316
+
317
+ </output_section>
318
+
72
319
  <specificity_levels>
320
+ <too_vague>
73
321
 
74
- **Too vague:**
75
322
  ```xml
76
323
  <task type="auto">
77
- <name>Add authentication</name>
324
+ <name>Task 1: Add authentication</name>
78
325
  <files>???</files>
79
326
  <action>Implement auth</action>
80
327
  <verify>???</verify>
81
328
  <done>Users can authenticate</done>
82
329
  </task>
83
330
  ```
331
+
84
332
  Claude: "How? What type? What library? Where?"
333
+ </too_vague>
334
+
335
+ <just_right>
85
336
 
86
- **Just right:**
87
337
  ```xml
88
338
  <task type="auto">
89
- <name>Create login endpoint with JWT</name>
339
+ <name>Task 1: Create login endpoint with JWT</name>
90
340
  <files>src/app/api/auth/login/route.ts</files>
91
- <action>POST accepting {email, password}. Query User by email, bcrypt compare. On match: JWT via jose, httpOnly cookie (15-min). Return 200. Mismatch: 401. Use jose not jsonwebtoken (Edge compatibility).</action>
92
- <verify>curl -X POST localhost:3000/api/auth/login -d '{"email":"test@test.com","password":"test123"}' returns 200 with Set-Cookie</verify>
93
- <done>Valid → 200 + cookie. Invalid → 401. Missing fields → 400.</done>
341
+ <action>POST endpoint accepting {email, password}. Query User by email, compare password with bcrypt. On match, create JWT with jose library, set as httpOnly cookie (15-min expiry). Return 200. On mismatch, return 401. Use jose instead of jsonwebtoken (CommonJS issues with Edge).</action>
342
+ <verify>curl -X POST localhost:3000/api/auth/login -H "Content-Type: application/json" -d '{"email":"test@test.com","password":"test123"}' returns 200 with Set-Cookie header containing JWT</verify>
343
+ <done>Valid credentials → 200 + cookie. Invalid → 401. Missing fields → 400.</done>
94
344
  </task>
95
345
  ```
96
346
 
347
+ Claude can implement this immediately.
348
+ </just_right>
349
+
350
+ <too_detailed>
351
+ Writing the actual code in the plan. Trust Claude to implement from clear instructions.
352
+ </too_detailed>
97
353
  </specificity_levels>
98
354
 
99
355
  <anti_patterns>
356
+ <vague_actions>
100
357
 
101
- **Vague actions:**
102
- - "Set up infrastructure" - what infrastructure?
103
- - "Handle edge cases" - which ones?
104
- - "Add proper error handling" - what's proper?
358
+ - "Set up the infrastructure"
359
+ - "Handle edge cases"
360
+ - "Make it production-ready"
361
+ - "Add proper error handling"
105
362
 
106
- **Unverifiable completion:**
107
- - "It works correctly" - how to test?
108
- - "Code is clean" - subjective
109
- - "Tests pass" - which tests? do they exist?
363
+ These require Claude to decide WHAT to do. Specify it.
364
+ </vague_actions>
110
365
 
111
- **Missing context:**
112
- - "Use standard approach" - which standard?
113
- - "Like the other endpoints" - Claude doesn't know your patterns
366
+ <unverifiable_completion>
114
367
 
115
- </anti_patterns>
368
+ - "It works correctly"
369
+ - "User experience is good"
370
+ - "Code is clean"
371
+ - "Tests pass" (which tests? do they exist?)
372
+
373
+ These require subjective judgment. Make it objective.
374
+ </unverifiable_completion>
375
+
376
+ <missing_context>
116
377
 
117
- <sizing>
378
+ - "Use the standard approach"
379
+ - "Follow best practices"
380
+ - "Like the other endpoints"
381
+
382
+ Claude doesn't know your standards. Be explicit.
383
+ </missing_context>
384
+ </anti_patterns>
118
385
 
386
+ <sizing_tasks>
119
387
  Good task size: 15-60 minutes of Claude work.
120
388
 
121
- - Too small: "Add import for bcrypt" combine with related task
122
- - Just right: "Create login endpoint with JWT" focused, specific
123
- - Too big: "Implement full auth system" split into multiple plans
389
+ **Too small**: "Add import statement for bcrypt" (combine with related task)
390
+ **Just right**: "Create login endpoint with JWT validation" (focused, specific)
391
+ **Too big**: "Implement full authentication system" (split into multiple plans)
124
392
 
125
- If phase has >3 tasks or spans multiple subsystems, split into multiple plans: `{phase}-{plan}-PLAN.md`
393
+ If a task takes multiple sessions, break it down.
394
+ If a task is trivial, combine with related tasks.
126
395
 
127
- </sizing>
396
+ **Note on scope:** If a phase has >3 tasks or spans multiple subsystems, split into multiple plans using the naming convention `{phase}-{plan}-PLAN.md`. See `./scope-estimation.md` for guidance.
397
+ </sizing_tasks>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-shit-done-cc",
3
- "version": "1.3.11",
3
+ "version": "1.3.12",
4
4
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.",
5
5
  "bin": {
6
6
  "get-shit-done-cc": "bin/install.js"