get-shit-done-cc 1.9.11 → 1.10.0-experimental.0
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/README.md +10 -9
- package/agents/design-specialist.md +222 -0
- package/agents/gsd-executor.md +37 -375
- package/agents/gsd-planner.md +15 -108
- package/bin/install.js +92 -5
- package/commands/gsd/autopilot.md +518 -0
- package/commands/gsd/checkpoints.md +229 -0
- package/commands/gsd/design-system.md +70 -0
- package/commands/gsd/discuss-design.md +77 -0
- package/commands/gsd/extend.md +80 -0
- package/commands/gsd/help.md +46 -17
- package/commands/gsd/new-project.md +94 -8
- package/commands/gsd/plan-phase.md +35 -5
- package/get-shit-done/references/ccr-integration.md +468 -0
- package/get-shit-done/references/checkpoint-execution.md +369 -0
- package/get-shit-done/references/checkpoint-types.md +728 -0
- package/get-shit-done/references/deviation-rules.md +215 -0
- package/get-shit-done/references/framework-patterns.md +543 -0
- package/get-shit-done/references/ui-principles.md +258 -0
- package/get-shit-done/references/verification-patterns.md +1 -1
- package/get-shit-done/skills/gsd-extend/SKILL.md +154 -0
- package/get-shit-done/skills/gsd-extend/references/agent-structure.md +305 -0
- package/get-shit-done/skills/gsd-extend/references/extension-anatomy.md +123 -0
- package/get-shit-done/skills/gsd-extend/references/reference-structure.md +408 -0
- package/get-shit-done/skills/gsd-extend/references/template-structure.md +370 -0
- package/get-shit-done/skills/gsd-extend/references/validation-rules.md +140 -0
- package/get-shit-done/skills/gsd-extend/references/workflow-structure.md +253 -0
- package/get-shit-done/skills/gsd-extend/templates/agent-template.md +234 -0
- package/get-shit-done/skills/gsd-extend/templates/reference-template.md +239 -0
- package/get-shit-done/skills/gsd-extend/templates/workflow-template.md +169 -0
- package/get-shit-done/skills/gsd-extend/workflows/create-approach.md +332 -0
- package/get-shit-done/skills/gsd-extend/workflows/list-extensions.md +133 -0
- package/get-shit-done/skills/gsd-extend/workflows/remove-extension.md +93 -0
- package/get-shit-done/skills/gsd-extend/workflows/validate-extension.md +184 -0
- package/get-shit-done/templates/autopilot-script-simple.sh +181 -0
- package/get-shit-done/templates/autopilot-script.sh +1142 -0
- package/get-shit-done/templates/autopilot-script.sh.backup +1142 -0
- package/get-shit-done/templates/design-system.md +238 -0
- package/get-shit-done/templates/phase-design.md +205 -0
- package/get-shit-done/templates/phase-models-template.json +71 -0
- package/get-shit-done/templates/phase-prompt.md +4 -4
- package/get-shit-done/templates/state.md +37 -0
- package/get-shit-done/tui/App.tsx +169 -0
- package/get-shit-done/tui/README.md +107 -0
- package/get-shit-done/tui/build.js +37 -0
- package/get-shit-done/tui/components/ActivityFeed.tsx +126 -0
- package/get-shit-done/tui/components/PhaseCard.tsx +86 -0
- package/get-shit-done/tui/components/StatsBar.tsx +147 -0
- package/get-shit-done/tui/dist/index.js +387 -0
- package/get-shit-done/tui/index.tsx +12 -0
- package/get-shit-done/tui/package-lock.json +1074 -0
- package/get-shit-done/tui/package.json +22 -0
- package/get-shit-done/tui/utils/pipeReader.ts +129 -0
- package/get-shit-done/workflows/design-system.md +245 -0
- package/get-shit-done/workflows/discuss-design.md +330 -0
- package/get-shit-done/workflows/execute-phase.md +44 -1
- package/get-shit-done/workflows/execute-plan-auth.md +122 -0
- package/get-shit-done/workflows/execute-plan-checkpoints.md +541 -0
- package/get-shit-done/workflows/execute-plan.md +34 -856
- package/package.json +8 -3
- package/commands/gsd/whats-new.md +0 -124
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
# Checkpoint Execution Reference
|
|
2
|
+
|
|
3
|
+
Reference for executing checkpoints during plan execution. Covers display protocol, authentication gates, and automation commands.
|
|
4
|
+
|
|
5
|
+
<overview>
|
|
6
|
+
Plans execute autonomously. Checkpoints formalize the interaction points where human verification or decisions are needed.
|
|
7
|
+
|
|
8
|
+
**Core principle:** Claude automates everything with CLI/API. Checkpoints are for verification and decisions, not manual work.
|
|
9
|
+
|
|
10
|
+
**Golden rules:**
|
|
11
|
+
1. **If Claude can run it, Claude runs it** - Never ask user to execute CLI commands, start servers, or run builds
|
|
12
|
+
2. **Claude sets up the verification environment** - Start dev servers, seed databases, configure env vars
|
|
13
|
+
3. **User only does what requires human judgment** - Visual checks, UX evaluation, "does this feel right?"
|
|
14
|
+
4. **Secrets come from user, automation comes from Claude** - Ask for API keys, then Claude uses them via CLI
|
|
15
|
+
</overview>
|
|
16
|
+
|
|
17
|
+
<execution_protocol>
|
|
18
|
+
|
|
19
|
+
When Claude encounters `type="checkpoint:*"`:
|
|
20
|
+
|
|
21
|
+
1. **Stop immediately** - do not proceed to next task
|
|
22
|
+
2. **Display checkpoint clearly** using the format below
|
|
23
|
+
3. **Wait for user response** - do not hallucinate completion
|
|
24
|
+
4. **Verify if possible** - check files, run tests, whatever is specified
|
|
25
|
+
5. **Resume execution** - continue to next task only after confirmation
|
|
26
|
+
|
|
27
|
+
**For checkpoint:human-verify:**
|
|
28
|
+
```
|
|
29
|
+
╔═══════════════════════════════════════════════════════╗
|
|
30
|
+
║ CHECKPOINT: Verification Required ║
|
|
31
|
+
╚═══════════════════════════════════════════════════════╝
|
|
32
|
+
|
|
33
|
+
Progress: 5/8 tasks complete
|
|
34
|
+
Task: Responsive dashboard layout
|
|
35
|
+
|
|
36
|
+
Built: Responsive dashboard at /dashboard
|
|
37
|
+
|
|
38
|
+
How to verify:
|
|
39
|
+
1. Run: npm run dev
|
|
40
|
+
2. Visit: http://localhost:3000/dashboard
|
|
41
|
+
3. Desktop (>1024px): Sidebar visible, content fills remaining space
|
|
42
|
+
4. Tablet (768px): Sidebar collapses to icons
|
|
43
|
+
5. Mobile (375px): Sidebar hidden, hamburger menu appears
|
|
44
|
+
|
|
45
|
+
────────────────────────────────────────────────────────
|
|
46
|
+
→ YOUR ACTION: Type "approved" or describe issues
|
|
47
|
+
────────────────────────────────────────────────────────
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**For checkpoint:decision:**
|
|
51
|
+
```
|
|
52
|
+
╔═══════════════════════════════════════════════════════╗
|
|
53
|
+
║ CHECKPOINT: Decision Required ║
|
|
54
|
+
╚═══════════════════════════════════════════════════════╝
|
|
55
|
+
|
|
56
|
+
Progress: 2/6 tasks complete
|
|
57
|
+
Task: Select authentication provider
|
|
58
|
+
|
|
59
|
+
Decision: Which auth provider should we use?
|
|
60
|
+
|
|
61
|
+
Context: Need user authentication. Three options with different tradeoffs.
|
|
62
|
+
|
|
63
|
+
Options:
|
|
64
|
+
1. supabase - Built-in with our DB, free tier
|
|
65
|
+
Pros: Row-level security integration, generous free tier
|
|
66
|
+
Cons: Less customizable UI, ecosystem lock-in
|
|
67
|
+
|
|
68
|
+
2. clerk - Best DX, paid after 10k users
|
|
69
|
+
Pros: Beautiful pre-built UI, excellent documentation
|
|
70
|
+
Cons: Vendor lock-in, pricing at scale
|
|
71
|
+
|
|
72
|
+
3. nextauth - Self-hosted, maximum control
|
|
73
|
+
Pros: Free, no vendor lock-in, widely adopted
|
|
74
|
+
Cons: More setup work, DIY security updates
|
|
75
|
+
|
|
76
|
+
────────────────────────────────────────────────────────
|
|
77
|
+
→ YOUR ACTION: Select supabase, clerk, or nextauth
|
|
78
|
+
────────────────────────────────────────────────────────
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**For checkpoint:human-action:**
|
|
82
|
+
```
|
|
83
|
+
╔═══════════════════════════════════════════════════════╗
|
|
84
|
+
║ CHECKPOINT: Action Required ║
|
|
85
|
+
╚═══════════════════════════════════════════════════════╝
|
|
86
|
+
|
|
87
|
+
Progress: 3/8 tasks complete
|
|
88
|
+
Task: Deploy to Vercel
|
|
89
|
+
|
|
90
|
+
Attempted: vercel --yes
|
|
91
|
+
Error: Not authenticated. Please run 'vercel login'
|
|
92
|
+
|
|
93
|
+
What you need to do:
|
|
94
|
+
1. Run: vercel login
|
|
95
|
+
2. Complete browser authentication when it opens
|
|
96
|
+
3. Return here when done
|
|
97
|
+
|
|
98
|
+
I'll verify: vercel whoami returns your account
|
|
99
|
+
|
|
100
|
+
────────────────────────────────────────────────────────
|
|
101
|
+
→ YOUR ACTION: Type "done" when authenticated
|
|
102
|
+
────────────────────────────────────────────────────────
|
|
103
|
+
```
|
|
104
|
+
</execution_protocol>
|
|
105
|
+
|
|
106
|
+
<authentication_gates>
|
|
107
|
+
|
|
108
|
+
**Critical:** When Claude tries CLI/API and gets auth error, this is NOT a failure - it's a gate requiring human input to unblock automation.
|
|
109
|
+
|
|
110
|
+
**Pattern:** Claude tries automation → auth error → creates checkpoint → you authenticate → Claude retries → continues
|
|
111
|
+
|
|
112
|
+
**Gate protocol:**
|
|
113
|
+
1. Recognize it's not a failure - missing auth is expected
|
|
114
|
+
2. Stop current task - don't retry repeatedly
|
|
115
|
+
3. Create checkpoint:human-action dynamically
|
|
116
|
+
4. Provide exact authentication steps
|
|
117
|
+
5. Verify authentication works
|
|
118
|
+
6. Retry the original task
|
|
119
|
+
7. Continue normally
|
|
120
|
+
|
|
121
|
+
**Example execution flow (Vercel auth gate):**
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
Claude: Running `vercel --yes` to deploy...
|
|
125
|
+
|
|
126
|
+
Error: Not authenticated. Please run 'vercel login'
|
|
127
|
+
|
|
128
|
+
╔═══════════════════════════════════════════════════════╗
|
|
129
|
+
║ CHECKPOINT: Action Required ║
|
|
130
|
+
╚═══════════════════════════════════════════════════════╝
|
|
131
|
+
|
|
132
|
+
Progress: 2/8 tasks complete
|
|
133
|
+
Task: Deploy to Vercel
|
|
134
|
+
|
|
135
|
+
Attempted: vercel --yes
|
|
136
|
+
Error: Not authenticated
|
|
137
|
+
|
|
138
|
+
What you need to do:
|
|
139
|
+
1. Run: vercel login
|
|
140
|
+
2. Complete browser authentication
|
|
141
|
+
|
|
142
|
+
I'll verify: vercel whoami returns your account
|
|
143
|
+
|
|
144
|
+
────────────────────────────────────────────────────────
|
|
145
|
+
→ YOUR ACTION: Type "done" when authenticated
|
|
146
|
+
────────────────────────────────────────────────────────
|
|
147
|
+
|
|
148
|
+
User: done
|
|
149
|
+
|
|
150
|
+
Claude: Verifying authentication...
|
|
151
|
+
Running: vercel whoami
|
|
152
|
+
✓ Authenticated as: user@example.com
|
|
153
|
+
|
|
154
|
+
Retrying deployment...
|
|
155
|
+
Running: vercel --yes
|
|
156
|
+
✓ Deployed to: https://myapp-abc123.vercel.app
|
|
157
|
+
|
|
158
|
+
Task 3 complete. Continuing to task 4...
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Key distinction:**
|
|
162
|
+
- Pre-planned checkpoint: "I need you to do X" (wrong - Claude should automate)
|
|
163
|
+
- Auth gate: "I tried to automate X but need credentials" (correct - unblocks automation)
|
|
164
|
+
|
|
165
|
+
</authentication_gates>
|
|
166
|
+
|
|
167
|
+
<automation_reference>
|
|
168
|
+
|
|
169
|
+
**The rule:** If it has CLI/API, Claude does it. Never ask human to perform automatable work.
|
|
170
|
+
|
|
171
|
+
## Service CLI Reference
|
|
172
|
+
|
|
173
|
+
| Service | CLI/API | Key Commands | Auth Gate |
|
|
174
|
+
|---------|---------|--------------|-----------|
|
|
175
|
+
| Vercel | `vercel` | `--yes`, `env add`, `--prod`, `ls` | `vercel login` |
|
|
176
|
+
| Railway | `railway` | `init`, `up`, `variables set` | `railway login` |
|
|
177
|
+
| Fly | `fly` | `launch`, `deploy`, `secrets set` | `fly auth login` |
|
|
178
|
+
| Stripe | `stripe` + API | `listen`, `trigger`, API calls | API key in .env |
|
|
179
|
+
| Supabase | `supabase` | `init`, `link`, `db push`, `gen types` | `supabase login` |
|
|
180
|
+
| Upstash | `upstash` | `redis create`, `redis get` | `upstash auth login` |
|
|
181
|
+
| PlanetScale | `pscale` | `database create`, `branch create` | `pscale auth login` |
|
|
182
|
+
| GitHub | `gh` | `repo create`, `pr create`, `secret set` | `gh auth login` |
|
|
183
|
+
| Node | `npm`/`pnpm` | `install`, `run build`, `test`, `run dev` | N/A |
|
|
184
|
+
| Xcode | `xcodebuild` | `-project`, `-scheme`, `build`, `test` | N/A |
|
|
185
|
+
| Convex | `npx convex` | `dev`, `deploy`, `env set`, `env get` | `npx convex login` |
|
|
186
|
+
|
|
187
|
+
## Environment Variable Automation
|
|
188
|
+
|
|
189
|
+
**Env files:** Use Write/Edit tools. Never ask human to create .env manually.
|
|
190
|
+
|
|
191
|
+
**Dashboard env vars via CLI:**
|
|
192
|
+
|
|
193
|
+
| Platform | CLI Command | Example |
|
|
194
|
+
|----------|-------------|---------|
|
|
195
|
+
| Convex | `npx convex env set` | `npx convex env set OPENAI_API_KEY sk-...` |
|
|
196
|
+
| Vercel | `vercel env add` | `vercel env add STRIPE_KEY production` |
|
|
197
|
+
| Railway | `railway variables set` | `railway variables set API_KEY=value` |
|
|
198
|
+
| Fly | `fly secrets set` | `fly secrets set DATABASE_URL=...` |
|
|
199
|
+
| Supabase | `supabase secrets set` | `supabase secrets set MY_SECRET=value` |
|
|
200
|
+
|
|
201
|
+
**Pattern for secret collection:**
|
|
202
|
+
```xml
|
|
203
|
+
<!-- WRONG: Asking user to add env vars in dashboard -->
|
|
204
|
+
<task type="checkpoint:human-action">
|
|
205
|
+
<action>Add OPENAI_API_KEY to Convex dashboard</action>
|
|
206
|
+
<instructions>Go to dashboard.convex.dev → Settings → Environment Variables → Add</instructions>
|
|
207
|
+
</task>
|
|
208
|
+
|
|
209
|
+
<!-- RIGHT: Claude asks for value, then adds via CLI -->
|
|
210
|
+
<task type="checkpoint:human-action">
|
|
211
|
+
<action>Provide your OpenAI API key</action>
|
|
212
|
+
<instructions>
|
|
213
|
+
I need your OpenAI API key to configure the Convex backend.
|
|
214
|
+
Get it from: https://platform.openai.com/api-keys
|
|
215
|
+
Paste the key (starts with sk-)
|
|
216
|
+
</instructions>
|
|
217
|
+
<verification>I'll add it via `npx convex env set` and verify it's configured</verification>
|
|
218
|
+
<resume-signal>Paste your API key</resume-signal>
|
|
219
|
+
</task>
|
|
220
|
+
|
|
221
|
+
<task type="auto">
|
|
222
|
+
<name>Configure OpenAI key in Convex</name>
|
|
223
|
+
<action>Run `npx convex env set OPENAI_API_KEY {user-provided-key}`</action>
|
|
224
|
+
<verify>`npx convex env get OPENAI_API_KEY` returns the key (masked)</verify>
|
|
225
|
+
</task>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Dev Server Automation
|
|
229
|
+
|
|
230
|
+
**Claude starts servers, user visits URLs:**
|
|
231
|
+
|
|
232
|
+
| Framework | Start Command | Ready Signal | Default URL |
|
|
233
|
+
|-----------|---------------|--------------|-------------|
|
|
234
|
+
| Next.js | `npm run dev` | "Ready in" or "started server" | http://localhost:3000 |
|
|
235
|
+
| Vite | `npm run dev` | "ready in" | http://localhost:5173 |
|
|
236
|
+
| Convex | `npx convex dev` | "Convex functions ready" | N/A (backend only) |
|
|
237
|
+
| Express | `npm start` | "listening on port" | http://localhost:3000 |
|
|
238
|
+
| Django | `python manage.py runserver` | "Starting development server" | http://localhost:8000 |
|
|
239
|
+
|
|
240
|
+
### Server Lifecycle Protocol
|
|
241
|
+
|
|
242
|
+
**Starting servers:**
|
|
243
|
+
```bash
|
|
244
|
+
# Run in background, capture PID for cleanup
|
|
245
|
+
npm run dev &
|
|
246
|
+
DEV_SERVER_PID=$!
|
|
247
|
+
|
|
248
|
+
# Wait for ready signal (max 30s)
|
|
249
|
+
timeout 30 bash -c 'until curl -s localhost:3000 > /dev/null 2>&1; do sleep 1; done'
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
**Port conflicts:**
|
|
253
|
+
If default port is in use, check what's running and either:
|
|
254
|
+
1. Kill the existing process if it's stale: `lsof -ti:3000 | xargs kill`
|
|
255
|
+
2. Use alternate port: `npm run dev -- --port 3001`
|
|
256
|
+
|
|
257
|
+
**Server stays running** for the duration of the checkpoint. After user approves, server continues running for subsequent tasks. Only kill explicitly if:
|
|
258
|
+
- Plan is complete and no more verification needed
|
|
259
|
+
- Switching to production deployment
|
|
260
|
+
- Port needed for different service
|
|
261
|
+
|
|
262
|
+
**Pattern:**
|
|
263
|
+
```xml
|
|
264
|
+
<!-- Claude starts server before checkpoint -->
|
|
265
|
+
<task type="auto">
|
|
266
|
+
<name>Start dev server</name>
|
|
267
|
+
<action>Run `npm run dev` in background, wait for ready signal</action>
|
|
268
|
+
<verify>curl http://localhost:3000 returns 200</verify>
|
|
269
|
+
<done>Dev server running</done>
|
|
270
|
+
</task>
|
|
271
|
+
|
|
272
|
+
<!-- User only visits URL -->
|
|
273
|
+
<task type="checkpoint:human-verify">
|
|
274
|
+
<what-built>Feature X - dev server running at http://localhost:3000</what-built>
|
|
275
|
+
<how-to-verify>
|
|
276
|
+
Visit http://localhost:3000/feature and verify:
|
|
277
|
+
1. [Visual check 1]
|
|
278
|
+
2. [Visual check 2]
|
|
279
|
+
</how-to-verify>
|
|
280
|
+
</task>
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## CLI Installation Handling
|
|
284
|
+
|
|
285
|
+
**When a required CLI is not installed:**
|
|
286
|
+
|
|
287
|
+
| CLI | Auto-install? | Command |
|
|
288
|
+
|-----|---------------|---------|
|
|
289
|
+
| npm/pnpm/yarn | No - ask user | User chooses package manager |
|
|
290
|
+
| vercel | Yes | `npm i -g vercel` |
|
|
291
|
+
| gh (GitHub) | Yes | `brew install gh` (macOS) or `apt install gh` (Linux) |
|
|
292
|
+
| stripe | Yes | `npm i -g stripe` |
|
|
293
|
+
| supabase | Yes | `npm i -g supabase` |
|
|
294
|
+
| convex | No - use npx | `npx convex` (no install needed) |
|
|
295
|
+
| fly | Yes | `brew install flyctl` or curl installer |
|
|
296
|
+
| railway | Yes | `npm i -g @railway/cli` |
|
|
297
|
+
|
|
298
|
+
**Protocol:**
|
|
299
|
+
1. Try the command
|
|
300
|
+
2. If "command not found", check if auto-installable
|
|
301
|
+
3. If yes: install silently, retry command
|
|
302
|
+
4. If no: create checkpoint asking user to install
|
|
303
|
+
|
|
304
|
+
```xml
|
|
305
|
+
<!-- Example: vercel not found -->
|
|
306
|
+
<task type="auto">
|
|
307
|
+
<name>Install Vercel CLI</name>
|
|
308
|
+
<action>Run `npm i -g vercel`</action>
|
|
309
|
+
<verify>`vercel --version` succeeds</verify>
|
|
310
|
+
<done>Vercel CLI installed</done>
|
|
311
|
+
</task>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Pre-Checkpoint Automation Failures
|
|
315
|
+
|
|
316
|
+
**When setup fails before checkpoint:**
|
|
317
|
+
|
|
318
|
+
| Failure | Response |
|
|
319
|
+
|---------|----------|
|
|
320
|
+
| Server won't start | Check error output, fix issue, retry (don't proceed to checkpoint) |
|
|
321
|
+
| Port in use | Kill stale process or use alternate port |
|
|
322
|
+
| Missing dependency | Run `npm install`, retry |
|
|
323
|
+
| Build error | Fix the error first (this is a bug, not a checkpoint issue) |
|
|
324
|
+
| Auth error | Create auth gate checkpoint |
|
|
325
|
+
| Network timeout | Retry with backoff, then checkpoint if persistent |
|
|
326
|
+
|
|
327
|
+
**Key principle:** Never present a checkpoint with broken verification environment. If `curl localhost:3000` fails, don't ask user to "visit localhost:3000".
|
|
328
|
+
|
|
329
|
+
```xml
|
|
330
|
+
<!-- WRONG: Checkpoint with broken environment -->
|
|
331
|
+
<task type="checkpoint:human-verify">
|
|
332
|
+
<what-built>Dashboard (server failed to start)</what-built>
|
|
333
|
+
<how-to-verify>Visit http://localhost:3000...</how-to-verify>
|
|
334
|
+
</task>
|
|
335
|
+
|
|
336
|
+
<!-- RIGHT: Fix first, then checkpoint -->
|
|
337
|
+
<task type="auto">
|
|
338
|
+
<name>Fix server startup issue</name>
|
|
339
|
+
<action>Investigate error, fix root cause, restart server</action>
|
|
340
|
+
<verify>curl http://localhost:3000 returns 200</verify>
|
|
341
|
+
<done>Server running correctly</done>
|
|
342
|
+
</task>
|
|
343
|
+
|
|
344
|
+
<task type="checkpoint:human-verify">
|
|
345
|
+
<what-built>Dashboard - server running at http://localhost:3000</what-built>
|
|
346
|
+
<how-to-verify>Visit http://localhost:3000/dashboard...</how-to-verify>
|
|
347
|
+
</task>
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Quick Reference
|
|
351
|
+
|
|
352
|
+
| Action | Automatable? | Claude does it? |
|
|
353
|
+
|--------|--------------|-----------------|
|
|
354
|
+
| Deploy to Vercel | Yes (`vercel`) | YES |
|
|
355
|
+
| Create Stripe webhook | Yes (API) | YES |
|
|
356
|
+
| Write .env file | Yes (Write tool) | YES |
|
|
357
|
+
| Create Upstash DB | Yes (`upstash`) | YES |
|
|
358
|
+
| Run tests | Yes (`npm test`) | YES |
|
|
359
|
+
| Start dev server | Yes (`npm run dev`) | YES |
|
|
360
|
+
| Add env vars to Convex | Yes (`npx convex env set`) | YES |
|
|
361
|
+
| Add env vars to Vercel | Yes (`vercel env add`) | YES |
|
|
362
|
+
| Seed database | Yes (CLI/API) | YES |
|
|
363
|
+
| Click email verification link | No | NO |
|
|
364
|
+
| Enter credit card with 3DS | No | NO |
|
|
365
|
+
| Complete OAuth in browser | No | NO |
|
|
366
|
+
| Visually verify UI looks correct | No | NO |
|
|
367
|
+
| Test interactive user flows | No | NO |
|
|
368
|
+
|
|
369
|
+
</automation_reference>
|