get-shit-done-cc 1.3.10 → 1.3.11
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/commands/gsd/plan-phase.md +0 -1
- package/get-shit-done/references/checkpoints.md +139 -446
- package/get-shit-done/references/plan-format.md +56 -326
- package/get-shit-done/references/scope-estimation.md +53 -389
- package/get-shit-done/workflows/plan-phase.md +133 -707
- package/package.json +1 -1
- package/get-shit-done/references/cli-automation.md +0 -527
package/package.json
CHANGED
|
@@ -1,527 +0,0 @@
|
|
|
1
|
-
<overview>
|
|
2
|
-
**Core principle:** If it has a CLI or API, Claude does it. Never ask the human to perform manual steps that Claude can automate.
|
|
3
|
-
|
|
4
|
-
This reference documents what Claude CAN and SHOULD automate during plan execution.
|
|
5
|
-
</overview>
|
|
6
|
-
|
|
7
|
-
<deployment_platforms>
|
|
8
|
-
|
|
9
|
-
<platform name="vercel">
|
|
10
|
-
**CLI:** `vercel`
|
|
11
|
-
|
|
12
|
-
**What Claude automates:**
|
|
13
|
-
- Create and deploy projects: `vercel --yes`
|
|
14
|
-
- Set environment variables: `vercel env add KEY production`
|
|
15
|
-
- Link to git repo: `vercel link`
|
|
16
|
-
- Trigger deployments: `vercel --prod`
|
|
17
|
-
- Get deployment URLs: `vercel ls`
|
|
18
|
-
- Manage domains: `vercel domains add example.com`
|
|
19
|
-
|
|
20
|
-
**Never ask human to:**
|
|
21
|
-
- Visit vercel.com/new to create project
|
|
22
|
-
- Click through dashboard to add env vars
|
|
23
|
-
- Manually link repository
|
|
24
|
-
|
|
25
|
-
**Checkpoint pattern:**
|
|
26
|
-
```xml
|
|
27
|
-
<task type="auto">
|
|
28
|
-
<name>Deploy to Vercel</name>
|
|
29
|
-
<action>Run `vercel --yes` to deploy. Capture deployment URL.</action>
|
|
30
|
-
<verify>vercel ls shows deployment, curl {url} returns 200</verify>
|
|
31
|
-
</task>
|
|
32
|
-
|
|
33
|
-
<task type="checkpoint:human-verify">
|
|
34
|
-
<what-built>Deployed to {url}</what-built>
|
|
35
|
-
<how-to-verify>Visit {url} - check homepage loads</how-to-verify>
|
|
36
|
-
<resume-signal>Type "yes" if correct</resume-signal>
|
|
37
|
-
</task>
|
|
38
|
-
```
|
|
39
|
-
</platform>
|
|
40
|
-
|
|
41
|
-
<platform name="railway">
|
|
42
|
-
**CLI:** `railway`
|
|
43
|
-
|
|
44
|
-
**What Claude automates:**
|
|
45
|
-
- Initialize project: `railway init`
|
|
46
|
-
- Link to repo: `railway link`
|
|
47
|
-
- Deploy: `railway up`
|
|
48
|
-
- Set variables: `railway variables set KEY=value`
|
|
49
|
-
- Get deployment URL: `railway domain`
|
|
50
|
-
</platform>
|
|
51
|
-
|
|
52
|
-
<platform name="fly">
|
|
53
|
-
**CLI:** `fly`
|
|
54
|
-
|
|
55
|
-
**What Claude automates:**
|
|
56
|
-
- Launch app: `fly launch --no-deploy`
|
|
57
|
-
- Deploy: `fly deploy`
|
|
58
|
-
- Set secrets: `fly secrets set KEY=value`
|
|
59
|
-
- Scale: `fly scale count 2`
|
|
60
|
-
</platform>
|
|
61
|
-
</deployment_platforms>
|
|
62
|
-
|
|
63
|
-
<payment_billing>
|
|
64
|
-
|
|
65
|
-
<service name="stripe">
|
|
66
|
-
**CLI:** `stripe`
|
|
67
|
-
|
|
68
|
-
**What Claude automates:**
|
|
69
|
-
- Create webhook endpoints: `stripe listen --forward-to localhost:3000/api/webhooks`
|
|
70
|
-
- Trigger test events: `stripe trigger payment_intent.succeeded`
|
|
71
|
-
- Create products/prices: Stripe API via curl/fetch
|
|
72
|
-
- Manage customers: Stripe API via curl/fetch
|
|
73
|
-
- Check webhook logs: `stripe webhooks list`
|
|
74
|
-
|
|
75
|
-
**Never ask human to:**
|
|
76
|
-
- Visit dashboard.stripe.com to create webhook
|
|
77
|
-
- Click through UI to create products
|
|
78
|
-
- Manually copy webhook signing secret
|
|
79
|
-
|
|
80
|
-
**Checkpoint pattern:**
|
|
81
|
-
```xml
|
|
82
|
-
<task type="auto">
|
|
83
|
-
<name>Configure Stripe webhooks</name>
|
|
84
|
-
<action>Use Stripe API to create webhook endpoint at /api/webhooks. Save signing secret to .env.</action>
|
|
85
|
-
<verify>stripe webhooks list shows endpoint, .env contains STRIPE_WEBHOOK_SECRET</verify>
|
|
86
|
-
</task>
|
|
87
|
-
|
|
88
|
-
<task type="checkpoint:human-verify">
|
|
89
|
-
<what-built>Stripe webhook configured</what-built>
|
|
90
|
-
<how-to-verify>Check Stripe dashboard > Developers > Webhooks shows endpoint with correct URL</how-to-verify>
|
|
91
|
-
<resume-signal>Type "yes" if correct</resume-signal>
|
|
92
|
-
</task>
|
|
93
|
-
```
|
|
94
|
-
</service>
|
|
95
|
-
</payment_billing>
|
|
96
|
-
|
|
97
|
-
<databases_backend>
|
|
98
|
-
|
|
99
|
-
<service name="supabase">
|
|
100
|
-
**CLI:** `supabase`
|
|
101
|
-
|
|
102
|
-
**What Claude automates:**
|
|
103
|
-
- Initialize project: `supabase init`
|
|
104
|
-
- Link to remote: `supabase link --project-ref {ref}`
|
|
105
|
-
- Create migrations: `supabase migration new {name}`
|
|
106
|
-
- Push migrations: `supabase db push`
|
|
107
|
-
- Generate types: `supabase gen types typescript`
|
|
108
|
-
- Deploy functions: `supabase functions deploy {name}`
|
|
109
|
-
|
|
110
|
-
**Never ask human to:**
|
|
111
|
-
- Visit supabase.com to create project manually
|
|
112
|
-
- Click through dashboard to run migrations
|
|
113
|
-
- Copy/paste connection strings
|
|
114
|
-
|
|
115
|
-
**Note:** Project creation may require web dashboard initially (no CLI for initial project creation), but all subsequent work (migrations, functions, etc.) is CLI-automated.
|
|
116
|
-
</service>
|
|
117
|
-
|
|
118
|
-
<service name="upstash">
|
|
119
|
-
**CLI:** `upstash`
|
|
120
|
-
|
|
121
|
-
**What Claude automates:**
|
|
122
|
-
- Create Redis database: `upstash redis create {name} --region {region}`
|
|
123
|
-
- Get connection details: `upstash redis get {id}`
|
|
124
|
-
- Create Kafka cluster: `upstash kafka create {name} --region {region}`
|
|
125
|
-
|
|
126
|
-
**Never ask human to:**
|
|
127
|
-
- Visit console.upstash.com
|
|
128
|
-
- Click through UI to create database
|
|
129
|
-
- Copy/paste connection URLs manually
|
|
130
|
-
|
|
131
|
-
**Checkpoint pattern:**
|
|
132
|
-
```xml
|
|
133
|
-
<task type="auto">
|
|
134
|
-
<name>Create Upstash Redis database</name>
|
|
135
|
-
<action>Run `upstash redis create myapp-cache --region us-east-1`. Save URL to .env.</action>
|
|
136
|
-
<verify>.env contains UPSTASH_REDIS_URL, upstash redis list shows database</verify>
|
|
137
|
-
</task>
|
|
138
|
-
```
|
|
139
|
-
</service>
|
|
140
|
-
|
|
141
|
-
<service name="planetscale">
|
|
142
|
-
**CLI:** `pscale`
|
|
143
|
-
|
|
144
|
-
**What Claude automates:**
|
|
145
|
-
- Create database: `pscale database create {name} --region {region}`
|
|
146
|
-
- Create branch: `pscale branch create {db} {branch}`
|
|
147
|
-
- Deploy request: `pscale deploy-request create {db} {branch}`
|
|
148
|
-
- Connection string: `pscale connect {db} {branch}`
|
|
149
|
-
</service>
|
|
150
|
-
</databases_backend>
|
|
151
|
-
|
|
152
|
-
<version_control>
|
|
153
|
-
|
|
154
|
-
<service name="github">
|
|
155
|
-
**CLI:** `gh`
|
|
156
|
-
|
|
157
|
-
**What Claude automates:**
|
|
158
|
-
- Create repo: `gh repo create {name} --public/--private`
|
|
159
|
-
- Create issues: `gh issue create --title "{title}" --body "{body}"`
|
|
160
|
-
- Create PR: `gh pr create --title "{title}" --body "{body}"`
|
|
161
|
-
- Manage secrets: `gh secret set {KEY}`
|
|
162
|
-
- Trigger workflows: `gh workflow run {name}`
|
|
163
|
-
- Check status: `gh run list`
|
|
164
|
-
|
|
165
|
-
**Never ask human to:**
|
|
166
|
-
- Visit github.com to create repo
|
|
167
|
-
- Click through UI to add secrets
|
|
168
|
-
- Manually create issues/PRs
|
|
169
|
-
</service>
|
|
170
|
-
</version_control>
|
|
171
|
-
|
|
172
|
-
<build_tools>
|
|
173
|
-
|
|
174
|
-
<tools name="node">
|
|
175
|
-
**What Claude automates:**
|
|
176
|
-
- Install dependencies: `npm install`, `pnpm install`, `bun install`
|
|
177
|
-
- Run builds: `npm run build`
|
|
178
|
-
- Run tests: `npm test`, `npm run test:e2e`
|
|
179
|
-
- Type checking: `tsc --noEmit`
|
|
180
|
-
|
|
181
|
-
**Never ask human to:** Run these commands manually
|
|
182
|
-
</tools>
|
|
183
|
-
|
|
184
|
-
<tools name="xcode">
|
|
185
|
-
**CLI:** `xcodebuild`
|
|
186
|
-
|
|
187
|
-
**What Claude automates:**
|
|
188
|
-
- Build project: `xcodebuild -project App.xcodeproj -scheme App build`
|
|
189
|
-
- Run tests: `xcodebuild test -project App.xcodeproj -scheme App`
|
|
190
|
-
- Archive: `xcodebuild archive -project App.xcodeproj -scheme App`
|
|
191
|
-
- Check compilation: Parse xcodebuild output for errors
|
|
192
|
-
|
|
193
|
-
**Never ask human to:**
|
|
194
|
-
- Open Xcode and click Product > Build
|
|
195
|
-
- Click Product > Test manually
|
|
196
|
-
- Check for errors by looking at Xcode UI
|
|
197
|
-
|
|
198
|
-
**Checkpoint pattern:**
|
|
199
|
-
```xml
|
|
200
|
-
<task type="auto">
|
|
201
|
-
<name>Build macOS app</name>
|
|
202
|
-
<action>Run `xcodebuild -project App.xcodeproj -scheme App build`. Check output for errors.</action>
|
|
203
|
-
<verify>Build succeeds with "BUILD SUCCEEDED" in output</verify>
|
|
204
|
-
</task>
|
|
205
|
-
|
|
206
|
-
<task type="checkpoint:human-verify">
|
|
207
|
-
<what-built>Built macOS app at DerivedData/Build/Products/Debug/App.app</what-built>
|
|
208
|
-
<how-to-verify>Open App.app and check: login flow works, no visual glitches</how-to-verify>
|
|
209
|
-
<resume-signal>Type "approved" or describe issues</resume-signal>
|
|
210
|
-
</task>
|
|
211
|
-
```
|
|
212
|
-
</tools>
|
|
213
|
-
</build_tools>
|
|
214
|
-
|
|
215
|
-
<environment_config>
|
|
216
|
-
|
|
217
|
-
<config name="env-files">
|
|
218
|
-
**Tool:** Write tool
|
|
219
|
-
|
|
220
|
-
**What Claude automates:**
|
|
221
|
-
- Create .env files: Use Write tool
|
|
222
|
-
- Append variables: Use Edit tool
|
|
223
|
-
- Read current values: Use Read tool
|
|
224
|
-
|
|
225
|
-
**Never ask human to:**
|
|
226
|
-
- Manually create .env file
|
|
227
|
-
- Copy/paste values into .env
|
|
228
|
-
- Edit .env in text editor
|
|
229
|
-
|
|
230
|
-
**Pattern:**
|
|
231
|
-
```xml
|
|
232
|
-
<task type="auto">
|
|
233
|
-
<name>Configure environment variables</name>
|
|
234
|
-
<action>Write .env file with: DATABASE_URL, STRIPE_KEY, JWT_SECRET (generated).</action>
|
|
235
|
-
<verify>Read .env confirms all variables present</verify>
|
|
236
|
-
</task>
|
|
237
|
-
```
|
|
238
|
-
</config>
|
|
239
|
-
</environment_config>
|
|
240
|
-
|
|
241
|
-
<email_communication>
|
|
242
|
-
|
|
243
|
-
<service name="resend">
|
|
244
|
-
**API:** Resend API via HTTP
|
|
245
|
-
|
|
246
|
-
**What Claude automates:**
|
|
247
|
-
- Create API keys via dashboard API (if available) or instructions for one-time setup
|
|
248
|
-
- Send emails: Resend API
|
|
249
|
-
- Configure domains: Resend API
|
|
250
|
-
</service>
|
|
251
|
-
|
|
252
|
-
<service name="sendgrid">
|
|
253
|
-
**API:** SendGrid API via HTTP
|
|
254
|
-
|
|
255
|
-
**What Claude automates:**
|
|
256
|
-
- Create API keys via API
|
|
257
|
-
- Send emails: SendGrid API
|
|
258
|
-
- Configure webhooks: SendGrid API
|
|
259
|
-
|
|
260
|
-
**Note:** Initial account setup may require email verification (checkpoint:human-action), but all subsequent work is API-automated.
|
|
261
|
-
</service>
|
|
262
|
-
</email_communication>
|
|
263
|
-
|
|
264
|
-
<authentication_gates>
|
|
265
|
-
|
|
266
|
-
**Critical distinction:** When Claude tries to use a CLI/API and gets an authentication error, this is NOT a failure - it's a gate that requires human input to unblock automation.
|
|
267
|
-
|
|
268
|
-
**Pattern: Claude encounters auth error → creates checkpoint → you authenticate → Claude continues**
|
|
269
|
-
|
|
270
|
-
<example name="vercel-auth">
|
|
271
|
-
|
|
272
|
-
```xml
|
|
273
|
-
<task type="auto">
|
|
274
|
-
<name>Deploy to Vercel</name>
|
|
275
|
-
<files>.vercel/, vercel.json</files>
|
|
276
|
-
<action>Run `vercel --yes` to deploy</action>
|
|
277
|
-
<verify>vercel ls shows deployment</verify>
|
|
278
|
-
</task>
|
|
279
|
-
|
|
280
|
-
<!-- If vercel returns "Error: Not authenticated" -->
|
|
281
|
-
|
|
282
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
283
|
-
<action>Authenticate Vercel CLI so I can continue deployment</action>
|
|
284
|
-
<instructions>
|
|
285
|
-
I tried to deploy but got authentication error.
|
|
286
|
-
Run: vercel login
|
|
287
|
-
This will open your browser - complete the authentication flow.
|
|
288
|
-
</instructions>
|
|
289
|
-
<verification>vercel whoami returns your account email</verification>
|
|
290
|
-
<resume-signal>Type "done" when authenticated</resume-signal>
|
|
291
|
-
</task>
|
|
292
|
-
|
|
293
|
-
<!-- After authentication, Claude retries automatically -->
|
|
294
|
-
|
|
295
|
-
<task type="auto">
|
|
296
|
-
<name>Retry Vercel deployment</name>
|
|
297
|
-
<action>Run `vercel --yes` (now authenticated)</action>
|
|
298
|
-
<verify>vercel ls shows deployment, curl returns 200</verify>
|
|
299
|
-
</task>
|
|
300
|
-
```
|
|
301
|
-
</example>
|
|
302
|
-
|
|
303
|
-
<example name="stripe-auth">
|
|
304
|
-
|
|
305
|
-
```xml
|
|
306
|
-
<task type="auto">
|
|
307
|
-
<name>Create Stripe webhook endpoint</name>
|
|
308
|
-
<action>Use Stripe API to create webhook at /api/webhooks</action>
|
|
309
|
-
</task>
|
|
310
|
-
|
|
311
|
-
<!-- If API returns 401 Unauthorized -->
|
|
312
|
-
|
|
313
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
314
|
-
<action>Provide Stripe API key so I can continue webhook configuration</action>
|
|
315
|
-
<instructions>
|
|
316
|
-
I need your Stripe API key to create webhooks.
|
|
317
|
-
1. Visit dashboard.stripe.com/apikeys
|
|
318
|
-
2. Copy your "Secret key" (starts with sk_test_ or sk_live_)
|
|
319
|
-
3. Paste it here or run: export STRIPE_SECRET_KEY=sk_...
|
|
320
|
-
</instructions>
|
|
321
|
-
<verification>Stripe API key works: curl test succeeds</verification>
|
|
322
|
-
<resume-signal>Type "done" or paste the key</resume-signal>
|
|
323
|
-
</task>
|
|
324
|
-
|
|
325
|
-
<!-- After key provided, Claude writes to .env and continues -->
|
|
326
|
-
|
|
327
|
-
<task type="auto">
|
|
328
|
-
<name>Save Stripe key and create webhook</name>
|
|
329
|
-
<action>
|
|
330
|
-
1. Write STRIPE_SECRET_KEY to .env
|
|
331
|
-
2. Create webhook endpoint via Stripe API
|
|
332
|
-
3. Save webhook secret to .env
|
|
333
|
-
</action>
|
|
334
|
-
<verify>.env contains both keys, webhook endpoint exists</verify>
|
|
335
|
-
</task>
|
|
336
|
-
```
|
|
337
|
-
</example>
|
|
338
|
-
|
|
339
|
-
<example name="github-auth">
|
|
340
|
-
|
|
341
|
-
```xml
|
|
342
|
-
<task type="auto">
|
|
343
|
-
<name>Create GitHub repository</name>
|
|
344
|
-
<action>Run `gh repo create myapp --public`</action>
|
|
345
|
-
</task>
|
|
346
|
-
|
|
347
|
-
<!-- If gh returns "Not logged in" -->
|
|
348
|
-
|
|
349
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
350
|
-
<action>Authenticate GitHub CLI so I can create repository</action>
|
|
351
|
-
<instructions>
|
|
352
|
-
I need GitHub authentication to create the repo.
|
|
353
|
-
Run: gh auth login
|
|
354
|
-
Follow the prompts to authenticate (browser or token).
|
|
355
|
-
</instructions>
|
|
356
|
-
<verification>gh auth status shows "Logged in"</verification>
|
|
357
|
-
<resume-signal>Type "done" when authenticated</resume-signal>
|
|
358
|
-
</task>
|
|
359
|
-
|
|
360
|
-
<task type="auto">
|
|
361
|
-
<name>Create repository (authenticated)</name>
|
|
362
|
-
<action>Run `gh repo create myapp --public`</action>
|
|
363
|
-
<verify>gh repo view shows repository exists</verify>
|
|
364
|
-
</task>
|
|
365
|
-
```
|
|
366
|
-
</example>
|
|
367
|
-
|
|
368
|
-
<example name="upstash-auth">
|
|
369
|
-
|
|
370
|
-
```xml
|
|
371
|
-
<task type="auto">
|
|
372
|
-
<name>Create Upstash Redis database</name>
|
|
373
|
-
<action>Run `upstash redis create myapp-cache --region us-east-1`</action>
|
|
374
|
-
</task>
|
|
375
|
-
|
|
376
|
-
<!-- If upstash returns auth error -->
|
|
377
|
-
|
|
378
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
379
|
-
<action>Configure Upstash CLI credentials so I can create database</action>
|
|
380
|
-
<instructions>
|
|
381
|
-
I need Upstash authentication to create Redis database.
|
|
382
|
-
1. Visit console.upstash.com/account/api
|
|
383
|
-
2. Copy your API key
|
|
384
|
-
3. Run: upstash auth login
|
|
385
|
-
4. Paste your API key when prompted
|
|
386
|
-
</instructions>
|
|
387
|
-
<verification>upstash auth status shows authenticated</verification>
|
|
388
|
-
<resume-signal>Type "done" when authenticated</resume-signal>
|
|
389
|
-
</task>
|
|
390
|
-
|
|
391
|
-
<task type="auto">
|
|
392
|
-
<name>Create Redis database (authenticated)</name>
|
|
393
|
-
<action>
|
|
394
|
-
1. Run `upstash redis create myapp-cache --region us-east-1`
|
|
395
|
-
2. Capture connection URL
|
|
396
|
-
3. Write to .env: UPSTASH_REDIS_URL={url}
|
|
397
|
-
</action>
|
|
398
|
-
<verify>upstash redis list shows database, .env contains URL</verify>
|
|
399
|
-
</task>
|
|
400
|
-
```
|
|
401
|
-
</example>
|
|
402
|
-
|
|
403
|
-
<gate_protocol>
|
|
404
|
-
|
|
405
|
-
**When Claude encounters authentication error during execution:**
|
|
406
|
-
|
|
407
|
-
1. **Recognize it's not a failure** - Missing auth is expected, not a bug
|
|
408
|
-
2. **Stop current task** - Don't retry repeatedly
|
|
409
|
-
3. **Create checkpoint:human-action on the fly** - Dynamic checkpoint, not pre-planned
|
|
410
|
-
4. **Provide exact authentication steps** - CLI commands, where to get keys
|
|
411
|
-
5. **Verify authentication** - Test that auth works before continuing
|
|
412
|
-
6. **Retry the original task** - Resume automation where it left off
|
|
413
|
-
7. **Continue normally** - One auth gate doesn't break the flow
|
|
414
|
-
|
|
415
|
-
**Key difference from pre-planned checkpoints:**
|
|
416
|
-
- Pre-planned: "I need you to do X" (wrong - Claude should automate)
|
|
417
|
-
- Auth gate: "I tried to automate X but need credentials to continue" (correct - unblocks automation)
|
|
418
|
-
|
|
419
|
-
**This preserves agentic flow:**
|
|
420
|
-
- Claude tries automation first
|
|
421
|
-
- Only asks for help when blocked by credentials
|
|
422
|
-
- Continues automating after unblocked
|
|
423
|
-
- You never manually deploy/create resources - just provide keys
|
|
424
|
-
</gate_protocol>
|
|
425
|
-
</authentication_gates>
|
|
426
|
-
|
|
427
|
-
<required_cases>
|
|
428
|
-
|
|
429
|
-
**Truly rare cases where no CLI/API exists:**
|
|
430
|
-
|
|
431
|
-
1. **Email verification links** - Account signup requires clicking verification email
|
|
432
|
-
2. **SMS verification codes** - 2FA requiring phone
|
|
433
|
-
3. **Manual account approvals** - Platform requires human review before API access
|
|
434
|
-
4. **Domain DNS records at registrar** - Some registrars have no API
|
|
435
|
-
5. **Credit card input** - Payment methods requiring 3D Secure web flow
|
|
436
|
-
6. **OAuth app approval** - Some platforms require web-based app approval flow
|
|
437
|
-
|
|
438
|
-
**For these rare cases:**
|
|
439
|
-
```xml
|
|
440
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
441
|
-
<action>Complete email verification for SendGrid account</action>
|
|
442
|
-
<instructions>
|
|
443
|
-
I created the account and requested verification email.
|
|
444
|
-
Check your inbox for verification link and click it.
|
|
445
|
-
</instructions>
|
|
446
|
-
<verification>SendGrid API key works: curl test succeeds</verification>
|
|
447
|
-
<resume-signal>Type "done" when verified</resume-signal>
|
|
448
|
-
</task>
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
**Key difference:** Claude does EVERYTHING possible first (account creation, API requests), only asks human for the one thing with no automation path.
|
|
452
|
-
</required_cases>
|
|
453
|
-
|
|
454
|
-
<quick_reference>
|
|
455
|
-
|
|
456
|
-
| Action | CLI/API? | Claude does it? |
|
|
457
|
-
|--------|----------|-----------------|
|
|
458
|
-
| Deploy to Vercel | ✅ `vercel` | YES |
|
|
459
|
-
| Create Stripe webhook | ✅ Stripe API | YES |
|
|
460
|
-
| Run xcodebuild | ✅ `xcodebuild` | YES |
|
|
461
|
-
| Write .env file | ✅ Write tool | YES |
|
|
462
|
-
| Create Upstash DB | ✅ `upstash` CLI | YES |
|
|
463
|
-
| Install npm packages | ✅ `npm` | YES |
|
|
464
|
-
| Create GitHub repo | ✅ `gh` | YES |
|
|
465
|
-
| Run tests | ✅ `npm test` | YES |
|
|
466
|
-
| Create Supabase project | ⚠️ Web dashboard | NO (then CLI for everything else) |
|
|
467
|
-
| Click email verification link | ❌ No API | NO |
|
|
468
|
-
| Enter credit card with 3DS | ❌ No API | NO |
|
|
469
|
-
|
|
470
|
-
**Default answer: YES.** Unless explicitly in the "NO" category, Claude automates it.
|
|
471
|
-
</quick_reference>
|
|
472
|
-
|
|
473
|
-
<decision_tree>
|
|
474
|
-
|
|
475
|
-
```
|
|
476
|
-
┌─────────────────────────────────────┐
|
|
477
|
-
│ Task requires external resource? │
|
|
478
|
-
└──────────────┬──────────────────────┘
|
|
479
|
-
│
|
|
480
|
-
▼
|
|
481
|
-
┌─────────────────────────────────────┐
|
|
482
|
-
│ Does it have CLI/API/tool access? │
|
|
483
|
-
└──────────────┬──────────────────────┘
|
|
484
|
-
│
|
|
485
|
-
┌─────┴─────┐
|
|
486
|
-
│ │
|
|
487
|
-
▼ ▼
|
|
488
|
-
YES NO
|
|
489
|
-
│ │
|
|
490
|
-
│ ▼
|
|
491
|
-
│ ┌──────────────────────────────┐
|
|
492
|
-
│ │ checkpoint:human-action │
|
|
493
|
-
│ │ (email links, 2FA, etc.) │
|
|
494
|
-
│ └──────────────────────────────┘
|
|
495
|
-
│
|
|
496
|
-
▼
|
|
497
|
-
┌────────────────────────────────────────┐
|
|
498
|
-
│ task type="auto" │
|
|
499
|
-
│ Claude automates via CLI/API │
|
|
500
|
-
└────────────┬───────────────────────────┘
|
|
501
|
-
│
|
|
502
|
-
▼
|
|
503
|
-
┌────────────────────────────────────────┐
|
|
504
|
-
│ checkpoint:human-verify │
|
|
505
|
-
│ Human confirms visual/functional │
|
|
506
|
-
└────────────────────────────────────────┘
|
|
507
|
-
```
|
|
508
|
-
</decision_tree>
|
|
509
|
-
|
|
510
|
-
<summary>
|
|
511
|
-
|
|
512
|
-
**The rule:** If Claude CAN do it, Claude MUST do it.
|
|
513
|
-
|
|
514
|
-
Checkpoints are for:
|
|
515
|
-
- **Verification** - Confirming Claude's automated work looks/behaves correctly
|
|
516
|
-
- **Decisions** - Choosing between valid approaches
|
|
517
|
-
- **True blockers** - Rare actions with literally no API/CLI (email links, 2FA)
|
|
518
|
-
|
|
519
|
-
Checkpoints are NOT for:
|
|
520
|
-
- Deploying (use CLI)
|
|
521
|
-
- Creating resources (use CLI/API)
|
|
522
|
-
- Running builds (use Bash)
|
|
523
|
-
- Writing files (use Write tool)
|
|
524
|
-
- Anything with automation available
|
|
525
|
-
|
|
526
|
-
**This keeps the agentic coding workflow intact - Claude does the work, you verify results.**
|
|
527
|
-
</summary>
|