gsd-opencode 1.10.2 → 1.20.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/agents/gsd-codebase-mapper.md +29 -3
- package/agents/gsd-debugger.md +19 -21
- package/agents/gsd-executor.md +213 -528
- package/agents/gsd-integration-checker.md +20 -0
- package/agents/gsd-phase-researcher.md +189 -267
- package/agents/gsd-plan-checker.md +278 -279
- package/agents/gsd-planner.md +299 -490
- package/agents/gsd-project-researcher.md +103 -345
- package/agents/gsd-research-synthesizer.md +5 -22
- package/agents/gsd-roadmapper.md +43 -6
- package/agents/gsd-verifier.md +158 -377
- package/{lib → bin/dm/lib}/constants.js +10 -3
- package/{src → bin/dm/src}/commands/install.js +5 -4
- package/{src → bin/dm/src}/commands/uninstall.js +3 -1
- package/{src → bin/dm/src}/services/backup-manager.js +1 -1
- package/{src → bin/dm/src}/services/config.js +1 -1
- package/{src → bin/dm/src}/services/file-ops.js +20 -4
- package/{src → bin/dm/src}/services/health-checker.js +3 -1
- package/{src → bin/dm/src}/services/repair-service.js +3 -1
- package/{src → bin/dm/src}/services/settings.js +1 -1
- package/{src → bin/dm/src}/services/update-service.js +2 -2
- package/bin/gsd-install.js +0 -0
- package/bin/gsd.js +9 -9
- package/commands/gsd/gsd-add-phase.md +43 -0
- package/commands/gsd/gsd-add-todo.md +47 -0
- package/commands/gsd/gsd-audit-milestone.md +36 -0
- package/commands/gsd/gsd-check-todos.md +45 -0
- package/commands/gsd/gsd-cleanup.md +18 -0
- package/commands/gsd/{complete-milestone.md → gsd-complete-milestone.md} +1 -1
- package/commands/gsd/{debug.md → gsd-debug.md} +16 -21
- package/commands/gsd/{discuss-phase.md → gsd-discuss-phase.md} +6 -9
- package/commands/gsd/gsd-execute-phase.md +41 -0
- package/commands/gsd/gsd-health.md +22 -0
- package/commands/gsd/gsd-help.md +22 -0
- package/commands/gsd/gsd-insert-phase.md +32 -0
- package/commands/gsd/gsd-join-discord.md +18 -0
- package/commands/gsd/{list-phase-assumptions.md → gsd-list-phase-assumptions.md} +3 -7
- package/commands/gsd/{map-codebase.md → gsd-map-codebase.md} +3 -3
- package/commands/gsd/gsd-new-milestone.md +44 -0
- package/commands/gsd/gsd-new-project.md +42 -0
- package/commands/gsd/gsd-pause-work.md +38 -0
- package/commands/gsd/gsd-plan-milestone-gaps.md +34 -0
- package/commands/gsd/gsd-plan-phase.md +44 -0
- package/commands/gsd/gsd-progress.md +24 -0
- package/commands/gsd/gsd-quick.md +41 -0
- package/commands/gsd/gsd-reapply-patches.md +119 -0
- package/commands/gsd/gsd-remove-phase.md +31 -0
- package/commands/gsd/{research-phase.md → gsd-research-phase.md} +38 -49
- package/commands/gsd/{resume-work.md → gsd-resume-work.md} +2 -2
- package/commands/gsd/gsd-set-profile.md +34 -0
- package/commands/gsd/gsd-settings.md +36 -0
- package/commands/gsd/gsd-update.md +37 -0
- package/commands/gsd/gsd-verify-work.md +38 -0
- package/get-shit-done/bin/gsd-tools.cjs +553 -0
- package/get-shit-done/bin/gsd-tools.test.cjs +2346 -0
- package/get-shit-done/bin/lib/commands.cjs +556 -0
- package/get-shit-done/bin/lib/config.cjs +162 -0
- package/get-shit-done/bin/lib/core.cjs +377 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
- package/get-shit-done/bin/lib/init.cjs +694 -0
- package/get-shit-done/bin/lib/milestone.cjs +215 -0
- package/get-shit-done/bin/lib/phase.cjs +877 -0
- package/get-shit-done/bin/lib/roadmap.cjs +298 -0
- package/get-shit-done/bin/lib/state.cjs +490 -0
- package/get-shit-done/bin/lib/template.cjs +222 -0
- package/get-shit-done/bin/lib/verify.cjs +772 -0
- package/get-shit-done/references/checkpoints.md +62 -364
- package/get-shit-done/references/decimal-phase-calculation.md +65 -0
- package/get-shit-done/references/git-integration.md +10 -16
- package/get-shit-done/references/git-planning-commit.md +38 -0
- package/get-shit-done/references/model-profile-resolution.md +34 -0
- package/get-shit-done/references/model-profiles.md +54 -66
- package/get-shit-done/references/phase-argument-parsing.md +61 -0
- package/get-shit-done/references/planning-config.md +112 -10
- package/get-shit-done/references/questioning.md +4 -0
- package/get-shit-done/references/ui-brand.md +1 -1
- package/get-shit-done/templates/UAT.md +1 -1
- package/get-shit-done/templates/VALIDATION.md +104 -0
- package/get-shit-done/templates/codebase/structure.md +6 -6
- package/get-shit-done/templates/config.json +37 -0
- package/get-shit-done/templates/context.md +2 -10
- package/get-shit-done/templates/continue-here.md +6 -6
- package/get-shit-done/templates/debug-subagent-prompt.md +2 -2
- package/get-shit-done/templates/discovery.md +6 -6
- package/get-shit-done/templates/milestone-archive.md +3 -3
- package/get-shit-done/templates/phase-prompt.md +9 -7
- package/get-shit-done/templates/planner-subagent-prompt.md +6 -6
- package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
- package/get-shit-done/templates/research.md +29 -6
- package/get-shit-done/templates/roadmap.md +1 -1
- package/get-shit-done/templates/state.md +0 -30
- package/get-shit-done/templates/summary-complex.md +59 -0
- package/get-shit-done/templates/summary-minimal.md +41 -0
- package/get-shit-done/templates/summary-standard.md +48 -0
- package/get-shit-done/templates/summary.md +16 -37
- package/get-shit-done/templates/user-setup.md +1 -13
- package/get-shit-done/templates/verification-report.md +5 -5
- package/get-shit-done/workflows/add-phase.md +111 -0
- package/{commands/gsd → get-shit-done/workflows}/add-todo.md +24 -60
- package/{commands/gsd → get-shit-done/workflows}/audit-milestone.md +83 -63
- package/{commands/gsd → get-shit-done/workflows}/check-todos.md +21 -73
- package/get-shit-done/workflows/cleanup.md +152 -0
- package/get-shit-done/workflows/complete-milestone.md +251 -312
- package/get-shit-done/workflows/diagnose-issues.md +6 -31
- package/get-shit-done/workflows/discovery-phase.md +11 -11
- package/get-shit-done/workflows/discuss-phase.md +156 -49
- package/get-shit-done/workflows/execute-phase.md +238 -396
- package/get-shit-done/workflows/execute-plan.md +180 -1609
- package/get-shit-done/workflows/health.md +156 -0
- package/{commands/gsd → get-shit-done/workflows}/help.md +33 -35
- package/get-shit-done/workflows/insert-phase.md +129 -0
- package/get-shit-done/workflows/list-phase-assumptions.md +3 -3
- package/get-shit-done/workflows/map-codebase.md +73 -80
- package/get-shit-done/workflows/new-milestone.md +382 -0
- package/{commands/gsd → get-shit-done/workflows}/new-project.md +281 -234
- package/get-shit-done/workflows/oc-set-profile.md +320 -0
- package/{commands/gsd → get-shit-done/workflows}/pause-work.md +31 -43
- package/{commands/gsd → get-shit-done/workflows}/plan-milestone-gaps.md +29 -50
- package/get-shit-done/workflows/plan-phase.md +478 -0
- package/{commands/gsd → get-shit-done/workflows}/progress.md +64 -47
- package/get-shit-done/workflows/quick.md +453 -0
- package/get-shit-done/workflows/remove-phase.md +154 -0
- package/get-shit-done/workflows/research-phase.md +73 -0
- package/get-shit-done/workflows/resume-project.md +17 -26
- package/get-shit-done/workflows/set-profile.md +80 -0
- package/get-shit-done/workflows/settings.md +213 -0
- package/get-shit-done/workflows/transition.md +84 -104
- package/{commands/gsd → get-shit-done/workflows}/update.md +70 -28
- package/get-shit-done/workflows/verify-phase.md +106 -492
- package/get-shit-done/workflows/verify-work.md +26 -53
- package/package.json +7 -4
- package/rules/gsd-oc-work-hard.md +36 -0
- package/skills/gsd-oc-select-model/SKILL.md +348 -0
- package/skills/gsd-oc-select-model/scripts/select-models.cjs +268 -0
- package/agents/gsd-set-model.md +0 -287
- package/agents/gsd-set-profile.md +0 -239
- package/agents/gsd-settings.md +0 -749
- package/bin/install.js +0 -323
- package/commands/gsd/add-phase.md +0 -207
- package/commands/gsd/execute-phase.md +0 -339
- package/commands/gsd/insert-phase.md +0 -227
- package/commands/gsd/new-milestone.md +0 -721
- package/commands/gsd/plan-phase.md +0 -525
- package/commands/gsd/quick.md +0 -309
- package/commands/gsd/remove-phase.md +0 -349
- package/commands/gsd/set-model.md +0 -77
- package/commands/gsd/set-profile.md +0 -46
- package/commands/gsd/settings.md +0 -33
- package/commands/gsd/verify-work.md +0 -219
- package/commands/gsd/whats-new.md +0 -124
- /package/{src → bin/dm/src}/commands/check.js +0 -0
- /package/{src → bin/dm/src}/commands/config.js +0 -0
- /package/{src → bin/dm/src}/commands/list.js +0 -0
- /package/{src → bin/dm/src}/commands/repair.js +0 -0
- /package/{src → bin/dm/src}/commands/update.js +0 -0
- /package/{src → bin/dm/src}/services/manifest-manager.js +0 -0
- /package/{src → bin/dm/src}/services/migration-service.js +0 -0
- /package/{src → bin/dm/src}/services/scope-manager.js +0 -0
- /package/{src → bin/dm/src}/services/structure-detector.js +0 -0
- /package/{src → bin/dm/src}/utils/hash.js +0 -0
- /package/{src → bin/dm/src}/utils/interactive.js +0 -0
- /package/{src → bin/dm/src}/utils/logger.js +0 -0
- /package/{src → bin/dm/src}/utils/npm-registry.js +0 -0
- /package/{src → bin/dm/src}/utils/path-resolver.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<overview>
|
|
2
|
-
Plans execute autonomously. Checkpoints formalize
|
|
2
|
+
Plans execute autonomously. Checkpoints formalize interaction points where human verification or decisions are needed.
|
|
3
3
|
|
|
4
4
|
**Core principle:** OpenCode automates everything with CLI/API. Checkpoints are for verification and decisions, not manual work.
|
|
5
5
|
|
|
@@ -8,6 +8,7 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
8
8
|
2. **OpenCode sets up the verification environment** - Start dev servers, seed databases, configure env vars
|
|
9
9
|
3. **User only does what requires human judgment** - Visual checks, UX evaluation, "does this feel right?"
|
|
10
10
|
4. **Secrets come from user, automation comes from OpenCode** - Ask for API keys, then OpenCode uses them via CLI
|
|
11
|
+
5. **Auto-mode bypasses verification/decision checkpoints** — When `workflow.auto_advance` is true in config: human-verify auto-approves, decision auto-selects first option, human-action still stops (auth gates cannot be automated)
|
|
11
12
|
</overview>
|
|
12
13
|
|
|
13
14
|
<checkpoint_types>
|
|
@@ -36,34 +37,7 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
36
37
|
</task>
|
|
37
38
|
```
|
|
38
39
|
|
|
39
|
-
**
|
|
40
|
-
- `<what-built>`: What OpenCode automated (deployed, built, configured)
|
|
41
|
-
- `<how-to-verify>`: Exact steps to confirm it works (numbered, specific)
|
|
42
|
-
- `<resume-signal>`: Clear indication of how to continue
|
|
43
|
-
|
|
44
|
-
**Example: Vercel Deployment**
|
|
45
|
-
```xml
|
|
46
|
-
<task type="auto">
|
|
47
|
-
<name>Deploy to Vercel</name>
|
|
48
|
-
<files>.vercel/, vercel.json</files>
|
|
49
|
-
<action>Run `vercel --yes` to create project and deploy. Capture deployment URL from output.</action>
|
|
50
|
-
<verify>vercel ls shows deployment, curl {url} returns 200</verify>
|
|
51
|
-
<done>App deployed, URL captured</done>
|
|
52
|
-
</task>
|
|
53
|
-
|
|
54
|
-
<task type="checkpoint:human-verify" gate="blocking">
|
|
55
|
-
<what-built>Deployed to Vercel at https://myapp-abc123.vercel.app</what-built>
|
|
56
|
-
<how-to-verify>
|
|
57
|
-
Visit https://myapp-abc123.vercel.app and confirm:
|
|
58
|
-
- Homepage loads without errors
|
|
59
|
-
- Login form is visible
|
|
60
|
-
- No console errors in browser DevTools
|
|
61
|
-
</how-to-verify>
|
|
62
|
-
<resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
|
|
63
|
-
</task>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**Example: UI Component**
|
|
40
|
+
**Example: UI Component (shows key pattern: OpenCode starts server BEFORE checkpoint)**
|
|
67
41
|
```xml
|
|
68
42
|
<task type="auto">
|
|
69
43
|
<name>Build responsive dashboard layout</name>
|
|
@@ -93,8 +67,6 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
93
67
|
</task>
|
|
94
68
|
```
|
|
95
69
|
|
|
96
|
-
**Key pattern:** OpenCode starts the dev server BEFORE the checkpoint. User only needs to visit the URL.
|
|
97
|
-
|
|
98
70
|
**Example: Xcode Build**
|
|
99
71
|
```xml
|
|
100
72
|
<task type="auto">
|
|
@@ -152,12 +124,6 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
152
124
|
</task>
|
|
153
125
|
```
|
|
154
126
|
|
|
155
|
-
**Key elements:**
|
|
156
|
-
- `<decision>`: What's being decided
|
|
157
|
-
- `<context>`: Why this matters
|
|
158
|
-
- `<options>`: Each option with balanced pros/cons (not prescriptive)
|
|
159
|
-
- `<resume-signal>`: How to indicate choice
|
|
160
|
-
|
|
161
127
|
**Example: Auth Provider Selection**
|
|
162
128
|
```xml
|
|
163
129
|
<task type="checkpoint:decision" gate="blocking">
|
|
@@ -222,19 +188,18 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
222
188
|
**When:** Action has NO CLI/API and requires human-only interaction, OR OpenCode hit an authentication gate during automation.
|
|
223
189
|
|
|
224
190
|
**Use ONLY for:**
|
|
225
|
-
- **Authentication gates** - OpenCode tried
|
|
226
|
-
- Email verification links (
|
|
191
|
+
- **Authentication gates** - OpenCode tried CLI/API but needs credentials (this is NOT a failure)
|
|
192
|
+
- Email verification links (clicking email)
|
|
227
193
|
- SMS 2FA codes (phone verification)
|
|
228
|
-
- Manual account approvals (platform requires human review
|
|
194
|
+
- Manual account approvals (platform requires human review)
|
|
229
195
|
- Credit card 3D Secure flows (web-based payment authorization)
|
|
230
|
-
- OAuth app approvals (
|
|
196
|
+
- OAuth app approvals (web-based approval)
|
|
231
197
|
|
|
232
198
|
**Do NOT use for pre-planned manual work:**
|
|
233
|
-
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
-
|
|
237
|
-
- Creating files manually (use write tool)
|
|
199
|
+
- Deploying (use CLI - auth gate if needed)
|
|
200
|
+
- Creating webhooks/databases (use API/CLI - auth gate if needed)
|
|
201
|
+
- Running builds/tests (use bash tool)
|
|
202
|
+
- Creating files (use write tool)
|
|
238
203
|
|
|
239
204
|
**Structure:**
|
|
240
205
|
```xml
|
|
@@ -249,8 +214,6 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
249
214
|
</task>
|
|
250
215
|
```
|
|
251
216
|
|
|
252
|
-
**Key principle:** OpenCode automates EVERYTHING possible first, only asks human for the truly unavoidable manual step.
|
|
253
|
-
|
|
254
217
|
**Example: Email Verification**
|
|
255
218
|
```xml
|
|
256
219
|
<task type="auto">
|
|
@@ -271,26 +234,6 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
271
234
|
</task>
|
|
272
235
|
```
|
|
273
236
|
|
|
274
|
-
**Example: Credit Card 3D Secure**
|
|
275
|
-
```xml
|
|
276
|
-
<task type="auto">
|
|
277
|
-
<name>Create Stripe payment intent</name>
|
|
278
|
-
<action>Use Stripe API to create payment intent for $99. Generate checkout URL.</action>
|
|
279
|
-
<verify>Stripe API returns payment intent ID and URL</verify>
|
|
280
|
-
<done>Payment intent created</done>
|
|
281
|
-
</task>
|
|
282
|
-
|
|
283
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
284
|
-
<action>Complete 3D Secure authentication</action>
|
|
285
|
-
<instructions>
|
|
286
|
-
I created the payment intent: https://checkout.stripe.com/pay/cs_test_abc123
|
|
287
|
-
Visit that URL and complete the 3D Secure verification flow with your test card.
|
|
288
|
-
</instructions>
|
|
289
|
-
<verification>Stripe webhook receives payment_intent.succeeded event</verification>
|
|
290
|
-
<resume-signal>Type "done" when payment completes</resume-signal>
|
|
291
|
-
</task>
|
|
292
|
-
```
|
|
293
|
-
|
|
294
237
|
**Example: Authentication Gate (Dynamic Checkpoint)**
|
|
295
238
|
```xml
|
|
296
239
|
<task type="auto">
|
|
@@ -322,7 +265,7 @@ Plans execute autonomously. Checkpoints formalize the interaction points where h
|
|
|
322
265
|
</task>
|
|
323
266
|
```
|
|
324
267
|
|
|
325
|
-
**Key distinction:**
|
|
268
|
+
**Key distinction:** Auth gates are created dynamically when OpenCode encounters auth errors. NOT pre-planned — OpenCode automates first, asks for credentials only when blocked.
|
|
326
269
|
</type>
|
|
327
270
|
</checkpoint_types>
|
|
328
271
|
|
|
@@ -343,16 +286,15 @@ When OpenCode encounters `type="checkpoint:*"`:
|
|
|
343
286
|
╚═══════════════════════════════════════════════════════╝
|
|
344
287
|
|
|
345
288
|
Progress: 5/8 tasks complete
|
|
346
|
-
|
|
289
|
+
task: Responsive dashboard layout
|
|
347
290
|
|
|
348
291
|
Built: Responsive dashboard at /dashboard
|
|
349
292
|
|
|
350
293
|
How to verify:
|
|
351
|
-
1.
|
|
352
|
-
2.
|
|
353
|
-
3.
|
|
354
|
-
4.
|
|
355
|
-
5. Mobile (375px): Sidebar hidden, hamburger menu appears
|
|
294
|
+
1. Visit: http://localhost:3000/dashboard
|
|
295
|
+
2. Desktop (>1024px): Sidebar visible, content fills remaining space
|
|
296
|
+
3. Tablet (768px): Sidebar collapses to icons
|
|
297
|
+
4. Mobile (375px): Sidebar hidden, hamburger menu appears
|
|
356
298
|
|
|
357
299
|
────────────────────────────────────────────────────────
|
|
358
300
|
→ YOUR ACTION: Type "approved" or describe issues
|
|
@@ -366,7 +308,7 @@ How to verify:
|
|
|
366
308
|
╚═══════════════════════════════════════════════════════╝
|
|
367
309
|
|
|
368
310
|
Progress: 2/6 tasks complete
|
|
369
|
-
|
|
311
|
+
task: Select authentication provider
|
|
370
312
|
|
|
371
313
|
Decision: Which auth provider should we use?
|
|
372
314
|
|
|
@@ -397,7 +339,7 @@ Options:
|
|
|
397
339
|
╚═══════════════════════════════════════════════════════╝
|
|
398
340
|
|
|
399
341
|
Progress: 3/8 tasks complete
|
|
400
|
-
|
|
342
|
+
task: Deploy to Vercel
|
|
401
343
|
|
|
402
344
|
Attempted: vercel --yes
|
|
403
345
|
Error: Not authenticated. Please run 'vercel login'
|
|
@@ -417,9 +359,9 @@ I'll verify: vercel whoami returns your account
|
|
|
417
359
|
|
|
418
360
|
<authentication_gates>
|
|
419
361
|
|
|
420
|
-
**
|
|
362
|
+
**Auth gate = OpenCode tried CLI/API, got auth error.** Not a failure — a gate requiring human input to unblock.
|
|
421
363
|
|
|
422
|
-
**Pattern:** OpenCode tries automation → auth error → creates checkpoint →
|
|
364
|
+
**Pattern:** OpenCode tries automation → auth error → creates checkpoint:human-action → user authenticates → OpenCode retries → continues
|
|
423
365
|
|
|
424
366
|
**Gate protocol:**
|
|
425
367
|
1. Recognize it's not a failure - missing auth is expected
|
|
@@ -430,46 +372,6 @@ I'll verify: vercel whoami returns your account
|
|
|
430
372
|
6. Retry the original task
|
|
431
373
|
7. Continue normally
|
|
432
374
|
|
|
433
|
-
**Example execution flow (Vercel auth gate):**
|
|
434
|
-
|
|
435
|
-
```
|
|
436
|
-
OpenCode: Running `vercel --yes` to deploy...
|
|
437
|
-
|
|
438
|
-
Error: Not authenticated. Please run 'vercel login'
|
|
439
|
-
|
|
440
|
-
╔═══════════════════════════════════════════════════════╗
|
|
441
|
-
║ CHECKPOINT: Action Required ║
|
|
442
|
-
╚═══════════════════════════════════════════════════════╝
|
|
443
|
-
|
|
444
|
-
Progress: 2/8 tasks complete
|
|
445
|
-
Task: Deploy to Vercel
|
|
446
|
-
|
|
447
|
-
Attempted: vercel --yes
|
|
448
|
-
Error: Not authenticated
|
|
449
|
-
|
|
450
|
-
What you need to do:
|
|
451
|
-
1. Run: vercel login
|
|
452
|
-
2. Complete browser authentication
|
|
453
|
-
|
|
454
|
-
I'll verify: vercel whoami returns your account
|
|
455
|
-
|
|
456
|
-
────────────────────────────────────────────────────────
|
|
457
|
-
→ YOUR ACTION: Type "done" when authenticated
|
|
458
|
-
────────────────────────────────────────────────────────
|
|
459
|
-
|
|
460
|
-
User: done
|
|
461
|
-
|
|
462
|
-
OpenCode: Verifying authentication...
|
|
463
|
-
Running: vercel whoami
|
|
464
|
-
✓ Authenticated as: user@example.com
|
|
465
|
-
|
|
466
|
-
Retrying deployment...
|
|
467
|
-
Running: vercel --yes
|
|
468
|
-
✓ Deployed to: https://myapp-abc123.vercel.app
|
|
469
|
-
|
|
470
|
-
Task 3 complete. Continuing to task 4...
|
|
471
|
-
```
|
|
472
|
-
|
|
473
375
|
**Key distinction:**
|
|
474
376
|
- Pre-planned checkpoint: "I need you to do X" (wrong - OpenCode should automate)
|
|
475
377
|
- Auth gate: "I tried to automate X but need credentials" (correct - unblocks automation)
|
|
@@ -510,7 +412,7 @@ Task 3 complete. Continuing to task 4...
|
|
|
510
412
|
| Fly | `fly secrets set` | `fly secrets set DATABASE_URL=...` |
|
|
511
413
|
| Supabase | `supabase secrets set` | `supabase secrets set MY_SECRET=value` |
|
|
512
414
|
|
|
513
|
-
**
|
|
415
|
+
**Secret collection pattern:**
|
|
514
416
|
```xml
|
|
515
417
|
<!-- WRONG: Asking user to add env vars in dashboard -->
|
|
516
418
|
<task type="checkpoint:human-action">
|
|
@@ -522,11 +424,11 @@ Task 3 complete. Continuing to task 4...
|
|
|
522
424
|
<task type="checkpoint:human-action">
|
|
523
425
|
<action>Provide your OpenAI API key</action>
|
|
524
426
|
<instructions>
|
|
525
|
-
I need your OpenAI API key
|
|
427
|
+
I need your OpenAI API key for Convex backend.
|
|
526
428
|
Get it from: https://platform.openai.com/api-keys
|
|
527
429
|
Paste the key (starts with sk-)
|
|
528
430
|
</instructions>
|
|
529
|
-
<verification>I'll add it via `npx convex env set` and verify
|
|
431
|
+
<verification>I'll add it via `npx convex env set` and verify</verification>
|
|
530
432
|
<resume-signal>Paste your API key</resume-signal>
|
|
531
433
|
</task>
|
|
532
434
|
|
|
@@ -539,8 +441,6 @@ Task 3 complete. Continuing to task 4...
|
|
|
539
441
|
|
|
540
442
|
## Dev Server Automation
|
|
541
443
|
|
|
542
|
-
**OpenCode starts servers, user visits URLs:**
|
|
543
|
-
|
|
544
444
|
| Framework | Start Command | Ready Signal | Default URL |
|
|
545
445
|
|-----------|---------------|--------------|-------------|
|
|
546
446
|
| Next.js | `npm run dev` | "Ready in" or "started server" | http://localhost:3000 |
|
|
@@ -549,53 +449,22 @@ Task 3 complete. Continuing to task 4...
|
|
|
549
449
|
| Express | `npm start` | "listening on port" | http://localhost:3000 |
|
|
550
450
|
| Django | `python manage.py runserver` | "Starting development server" | http://localhost:8000 |
|
|
551
451
|
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
**Starting servers:**
|
|
452
|
+
**Server lifecycle:**
|
|
555
453
|
```bash
|
|
556
|
-
# Run in background, capture PID
|
|
454
|
+
# Run in background, capture PID
|
|
557
455
|
npm run dev &
|
|
558
456
|
DEV_SERVER_PID=$!
|
|
559
457
|
|
|
560
|
-
# Wait for ready
|
|
458
|
+
# Wait for ready (max 30s)
|
|
561
459
|
timeout 30 bash -c 'until curl -s localhost:3000 > /dev/null 2>&1; do sleep 1; done'
|
|
562
460
|
```
|
|
563
461
|
|
|
564
|
-
**Port conflicts:**
|
|
565
|
-
If default port is in use, check what's running and either:
|
|
566
|
-
1. Kill the existing process if it's stale: `lsof -ti:3000 | xargs kill`
|
|
567
|
-
2. Use alternate port: `npm run dev -- --port 3001`
|
|
568
|
-
|
|
569
|
-
**Server stays running** for the duration of the checkpoint. After user approves, server continues running for subsequent tasks. Only kill explicitly if:
|
|
570
|
-
- Plan is complete and no more verification needed
|
|
571
|
-
- Switching to production deployment
|
|
572
|
-
- Port needed for different service
|
|
573
|
-
|
|
574
|
-
**Pattern:**
|
|
575
|
-
```xml
|
|
576
|
-
<!-- OpenCode starts server before checkpoint -->
|
|
577
|
-
<task type="auto">
|
|
578
|
-
<name>Start dev server</name>
|
|
579
|
-
<action>Run `npm run dev` in background, wait for ready signal</action>
|
|
580
|
-
<verify>curl http://localhost:3000 returns 200</verify>
|
|
581
|
-
<done>Dev server running</done>
|
|
582
|
-
</task>
|
|
462
|
+
**Port conflicts:** Kill stale process (`lsof -ti:3000 | xargs kill`) or use alternate port (`--port 3001`).
|
|
583
463
|
|
|
584
|
-
|
|
585
|
-
<task type="checkpoint:human-verify">
|
|
586
|
-
<what-built>Feature X - dev server running at http://localhost:3000</what-built>
|
|
587
|
-
<how-to-verify>
|
|
588
|
-
Visit http://localhost:3000/feature and verify:
|
|
589
|
-
1. [Visual check 1]
|
|
590
|
-
2. [Visual check 2]
|
|
591
|
-
</how-to-verify>
|
|
592
|
-
</task>
|
|
593
|
-
```
|
|
464
|
+
**Server stays running** through checkpoints. Only kill when plan complete, switching to production, or port needed for different service.
|
|
594
465
|
|
|
595
466
|
## CLI Installation Handling
|
|
596
467
|
|
|
597
|
-
**When a required CLI is not installed:**
|
|
598
|
-
|
|
599
468
|
| CLI | Auto-install? | Command |
|
|
600
469
|
|-----|---------------|---------|
|
|
601
470
|
| npm/pnpm/yarn | No - ask user | User chooses package manager |
|
|
@@ -607,36 +476,20 @@ If default port is in use, check what's running and either:
|
|
|
607
476
|
| fly | Yes | `brew install flyctl` or curl installer |
|
|
608
477
|
| railway | Yes | `npm i -g @railway/cli` |
|
|
609
478
|
|
|
610
|
-
**Protocol:**
|
|
611
|
-
1. Try the command
|
|
612
|
-
2. If "command not found", check if auto-installable
|
|
613
|
-
3. If yes: install silently, retry command
|
|
614
|
-
4. If no: create checkpoint asking user to install
|
|
615
|
-
|
|
616
|
-
```xml
|
|
617
|
-
<!-- Example: vercel not found -->
|
|
618
|
-
<task type="auto">
|
|
619
|
-
<name>Install Vercel CLI</name>
|
|
620
|
-
<action>Run `npm i -g vercel`</action>
|
|
621
|
-
<verify>`vercel --version` succeeds</verify>
|
|
622
|
-
<done>Vercel CLI installed</done>
|
|
623
|
-
</task>
|
|
624
|
-
```
|
|
479
|
+
**Protocol:** Try command → "command not found" → auto-installable? → yes: install silently, retry → no: checkpoint asking user to install.
|
|
625
480
|
|
|
626
481
|
## Pre-Checkpoint Automation Failures
|
|
627
482
|
|
|
628
|
-
**When setup fails before checkpoint:**
|
|
629
|
-
|
|
630
483
|
| Failure | Response |
|
|
631
484
|
|---------|----------|
|
|
632
|
-
| Server won't start | Check error
|
|
485
|
+
| Server won't start | Check error, fix issue, retry (don't proceed to checkpoint) |
|
|
633
486
|
| Port in use | Kill stale process or use alternate port |
|
|
634
487
|
| Missing dependency | Run `npm install`, retry |
|
|
635
|
-
| Build error | Fix the error first (
|
|
488
|
+
| Build error | Fix the error first (bug, not checkpoint issue) |
|
|
636
489
|
| Auth error | Create auth gate checkpoint |
|
|
637
490
|
| Network timeout | Retry with backoff, then checkpoint if persistent |
|
|
638
491
|
|
|
639
|
-
**
|
|
492
|
+
**Never present a checkpoint with broken verification environment.** If `curl localhost:3000` fails, don't ask user to "visit localhost:3000".
|
|
640
493
|
|
|
641
494
|
```xml
|
|
642
495
|
<!-- WRONG: Checkpoint with broken environment -->
|
|
@@ -650,7 +503,6 @@ If default port is in use, check what's running and either:
|
|
|
650
503
|
<name>Fix server startup issue</name>
|
|
651
504
|
<action>Investigate error, fix root cause, restart server</action>
|
|
652
505
|
<verify>curl http://localhost:3000 returns 200</verify>
|
|
653
|
-
<done>Server running correctly</done>
|
|
654
506
|
</task>
|
|
655
507
|
|
|
656
508
|
<task type="checkpoint:human-verify">
|
|
@@ -659,7 +511,7 @@ If default port is in use, check what's running and either:
|
|
|
659
511
|
</task>
|
|
660
512
|
```
|
|
661
513
|
|
|
662
|
-
## Quick Reference
|
|
514
|
+
## Automatable Quick Reference
|
|
663
515
|
|
|
664
516
|
| Action | Automatable? | OpenCode does it? |
|
|
665
517
|
|--------|--------------|-----------------|
|
|
@@ -685,17 +537,15 @@ If default port is in use, check what's running and either:
|
|
|
685
537
|
**DO:**
|
|
686
538
|
- Automate everything with CLI/API before checkpoint
|
|
687
539
|
- Be specific: "Visit https://myapp.vercel.app" not "check deployment"
|
|
688
|
-
- Number verification steps
|
|
540
|
+
- Number verification steps
|
|
689
541
|
- State expected outcomes: "You should see X"
|
|
690
542
|
- Provide context: why this checkpoint exists
|
|
691
|
-
- Make verification executable: clear, testable steps
|
|
692
543
|
|
|
693
544
|
**DON'T:**
|
|
694
|
-
- Ask human to do work OpenCode can automate
|
|
545
|
+
- Ask human to do work OpenCode can automate ❌
|
|
695
546
|
- Assume knowledge: "Configure the usual settings" ❌
|
|
696
|
-
- Skip steps: "Set up database"
|
|
697
|
-
- Mix multiple verifications in one checkpoint
|
|
698
|
-
- Make verification impossible (OpenCode can't check visual appearance without user confirmation)
|
|
547
|
+
- Skip steps: "Set up database" (too vague) ❌
|
|
548
|
+
- Mix multiple verifications in one checkpoint ❌
|
|
699
549
|
|
|
700
550
|
**Placement:**
|
|
701
551
|
- **After automation completes** - not before OpenCode does the work
|
|
@@ -703,53 +553,14 @@ If default port is in use, check what's running and either:
|
|
|
703
553
|
- **Before dependent work** - decisions before implementation
|
|
704
554
|
- **At integration points** - after configuring external services
|
|
705
555
|
|
|
706
|
-
**Bad placement:**
|
|
707
|
-
- Before OpenCode automates (asking human to do automatable work) ❌
|
|
708
|
-
- Too frequent (every other task is a checkpoint) ❌
|
|
709
|
-
- Too late (checkpoint is last task, but earlier tasks needed its result) ❌
|
|
556
|
+
**Bad placement:** Before automation ❌ | Too frequent ❌ | Too late (dependent tasks already needed the result) ❌
|
|
710
557
|
</writing_guidelines>
|
|
711
558
|
|
|
712
559
|
<examples>
|
|
713
560
|
|
|
714
|
-
### Example 1:
|
|
715
|
-
|
|
716
|
-
```xml
|
|
717
|
-
<!-- OpenCode automates everything -->
|
|
718
|
-
<task type="auto">
|
|
719
|
-
<name>Deploy to Vercel</name>
|
|
720
|
-
<files>.vercel/, vercel.json, package.json</files>
|
|
721
|
-
<action>
|
|
722
|
-
1. Run `vercel --yes` to create project and deploy
|
|
723
|
-
2. Capture deployment URL from output
|
|
724
|
-
3. Set environment variables with `vercel env add`
|
|
725
|
-
4. Trigger production deployment with `vercel --prod`
|
|
726
|
-
</action>
|
|
727
|
-
<verify>
|
|
728
|
-
- vercel ls shows deployment
|
|
729
|
-
- curl {url} returns 200
|
|
730
|
-
- Environment variables set correctly
|
|
731
|
-
</verify>
|
|
732
|
-
<done>App deployed to production, URL captured</done>
|
|
733
|
-
</task>
|
|
734
|
-
|
|
735
|
-
<!-- Human verifies visual/functional correctness -->
|
|
736
|
-
<task type="checkpoint:human-verify" gate="blocking">
|
|
737
|
-
<what-built>Deployed to https://myapp.vercel.app</what-built>
|
|
738
|
-
<how-to-verify>
|
|
739
|
-
Visit https://myapp.vercel.app and confirm:
|
|
740
|
-
- Homepage loads correctly
|
|
741
|
-
- All images/assets load
|
|
742
|
-
- Navigation works
|
|
743
|
-
- No console errors
|
|
744
|
-
</how-to-verify>
|
|
745
|
-
<resume-signal>Type "approved" or describe issues</resume-signal>
|
|
746
|
-
</task>
|
|
747
|
-
```
|
|
748
|
-
|
|
749
|
-
### Example 2: Database Setup (No Checkpoint Needed)
|
|
561
|
+
### Example 1: Database Setup (No Checkpoint Needed)
|
|
750
562
|
|
|
751
563
|
```xml
|
|
752
|
-
<!-- OpenCode automates everything -->
|
|
753
564
|
<task type="auto">
|
|
754
565
|
<name>Create Upstash Redis database</name>
|
|
755
566
|
<files>.env</files>
|
|
@@ -770,39 +581,7 @@ If default port is in use, check what's running and either:
|
|
|
770
581
|
<!-- NO CHECKPOINT NEEDED - OpenCode automated everything and verified programmatically -->
|
|
771
582
|
```
|
|
772
583
|
|
|
773
|
-
### Example
|
|
774
|
-
|
|
775
|
-
```xml
|
|
776
|
-
<!-- OpenCode automates everything -->
|
|
777
|
-
<task type="auto">
|
|
778
|
-
<name>Configure Stripe webhooks</name>
|
|
779
|
-
<files>.env, src/app/api/webhooks/route.ts</files>
|
|
780
|
-
<action>
|
|
781
|
-
1. Use Stripe API to create webhook endpoint pointing to /api/webhooks
|
|
782
|
-
2. Subscribe to events: payment_intent.succeeded, customer.subscription.updated
|
|
783
|
-
3. Save webhook signing secret to .env
|
|
784
|
-
4. Implement webhook handler in route.ts
|
|
785
|
-
</action>
|
|
786
|
-
<verify>
|
|
787
|
-
- Stripe API returns webhook endpoint ID
|
|
788
|
-
- .env contains STRIPE_WEBHOOK_SECRET
|
|
789
|
-
- curl webhook endpoint returns 200
|
|
790
|
-
</verify>
|
|
791
|
-
<done>Stripe webhooks configured and handler implemented</done>
|
|
792
|
-
</task>
|
|
793
|
-
|
|
794
|
-
<!-- Human verifies in Stripe dashboard -->
|
|
795
|
-
<task type="checkpoint:human-verify" gate="blocking">
|
|
796
|
-
<what-built>Stripe webhook configured via API</what-built>
|
|
797
|
-
<how-to-verify>
|
|
798
|
-
Visit Stripe Dashboard > Developers > Webhooks
|
|
799
|
-
Confirm: Endpoint shows https://myapp.com/api/webhooks with correct events
|
|
800
|
-
</how-to-verify>
|
|
801
|
-
<resume-signal>Type "yes" if correct</resume-signal>
|
|
802
|
-
</task>
|
|
803
|
-
```
|
|
804
|
-
|
|
805
|
-
### Example 4: Full Auth Flow Verification (Correct)
|
|
584
|
+
### Example 2: Full Auth Flow (Single checkpoint at end)
|
|
806
585
|
|
|
807
586
|
```xml
|
|
808
587
|
<task type="auto">
|
|
@@ -833,7 +612,7 @@ If default port is in use, check what's running and either:
|
|
|
833
612
|
<done>Dev server running at http://localhost:3000</done>
|
|
834
613
|
</task>
|
|
835
614
|
|
|
836
|
-
<!-- ONE checkpoint at end verifies the complete flow
|
|
615
|
+
<!-- ONE checkpoint at end verifies the complete flow -->
|
|
837
616
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
838
617
|
<what-built>Complete authentication flow - dev server running at http://localhost:3000</what-built>
|
|
839
618
|
<how-to-verify>
|
|
@@ -885,63 +664,16 @@ If default port is in use, check what's running and either:
|
|
|
885
664
|
</task>
|
|
886
665
|
```
|
|
887
666
|
|
|
888
|
-
### ❌ BAD: Asking
|
|
889
|
-
|
|
890
|
-
```xml
|
|
891
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
892
|
-
<action>Add environment variables to Convex</action>
|
|
893
|
-
<instructions>
|
|
894
|
-
1. Go to dashboard.convex.dev
|
|
895
|
-
2. Select your project
|
|
896
|
-
3. Navigate to Settings → Environment Variables
|
|
897
|
-
4. Add OPENAI_API_KEY with your key
|
|
898
|
-
</instructions>
|
|
899
|
-
</task>
|
|
900
|
-
```
|
|
901
|
-
|
|
902
|
-
**Why bad:** Convex has `npx convex env set`. OpenCode should ask for the key value, then run the CLI command.
|
|
903
|
-
|
|
904
|
-
### ✅ GOOD: OpenCode collects secret, adds via CLI
|
|
905
|
-
|
|
906
|
-
```xml
|
|
907
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
908
|
-
<action>Provide your OpenAI API key</action>
|
|
909
|
-
<instructions>
|
|
910
|
-
I need your OpenAI API key. Get it from: https://platform.openai.com/api-keys
|
|
911
|
-
Paste the key below (starts with sk-)
|
|
912
|
-
</instructions>
|
|
913
|
-
<verification>I'll configure it via CLI</verification>
|
|
914
|
-
<resume-signal>Paste your key</resume-signal>
|
|
915
|
-
</task>
|
|
916
|
-
|
|
917
|
-
<task type="auto">
|
|
918
|
-
<name>Add OpenAI key to Convex</name>
|
|
919
|
-
<action>Run `npx convex env set OPENAI_API_KEY {key}`</action>
|
|
920
|
-
<verify>`npx convex env get` shows OPENAI_API_KEY configured</verify>
|
|
921
|
-
</task>
|
|
922
|
-
```
|
|
923
|
-
|
|
924
|
-
### ❌ BAD: Asking human to deploy
|
|
667
|
+
### ❌ BAD: Asking human to deploy / ✅ GOOD: OpenCode automates
|
|
925
668
|
|
|
926
669
|
```xml
|
|
670
|
+
<!-- BAD: Asking user to deploy via dashboard -->
|
|
927
671
|
<task type="checkpoint:human-action" gate="blocking">
|
|
928
672
|
<action>Deploy to Vercel</action>
|
|
929
|
-
<instructions>
|
|
930
|
-
1. Visit vercel.com/new
|
|
931
|
-
2. Import Git repository
|
|
932
|
-
3. Click Deploy
|
|
933
|
-
4. Copy deployment URL
|
|
934
|
-
</instructions>
|
|
935
|
-
<verification>Deployment exists</verification>
|
|
936
|
-
<resume-signal>Paste URL</resume-signal>
|
|
673
|
+
<instructions>Visit vercel.com/new → Import repo → Click Deploy → Copy URL</instructions>
|
|
937
674
|
</task>
|
|
938
|
-
```
|
|
939
|
-
|
|
940
|
-
**Why bad:** Vercel has a CLI. OpenCode should run `vercel --yes`.
|
|
941
675
|
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
```xml
|
|
676
|
+
<!-- GOOD: OpenCode deploys, user verifies -->
|
|
945
677
|
<task type="auto">
|
|
946
678
|
<name>Deploy to Vercel</name>
|
|
947
679
|
<action>Run `vercel --yes`. Capture URL.</action>
|
|
@@ -955,22 +687,18 @@ If default port is in use, check what's running and either:
|
|
|
955
687
|
</task>
|
|
956
688
|
```
|
|
957
689
|
|
|
958
|
-
### ❌ BAD: Too many checkpoints
|
|
690
|
+
### ❌ BAD: Too many checkpoints / ✅ GOOD: Single checkpoint
|
|
959
691
|
|
|
960
692
|
```xml
|
|
693
|
+
<!-- BAD: Checkpoint after every task -->
|
|
961
694
|
<task type="auto">Create schema</task>
|
|
962
695
|
<task type="checkpoint:human-verify">Check schema</task>
|
|
963
696
|
<task type="auto">Create API route</task>
|
|
964
697
|
<task type="checkpoint:human-verify">Check API</task>
|
|
965
698
|
<task type="auto">Create UI form</task>
|
|
966
699
|
<task type="checkpoint:human-verify">Check form</task>
|
|
967
|
-
```
|
|
968
|
-
|
|
969
|
-
**Why bad:** Verification fatigue. Combine into one checkpoint at end.
|
|
970
700
|
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
```xml
|
|
701
|
+
<!-- GOOD: One checkpoint at end -->
|
|
974
702
|
<task type="auto">Create schema</task>
|
|
975
703
|
<task type="auto">Create API route</task>
|
|
976
704
|
<task type="auto">Create UI form</task>
|
|
@@ -982,36 +710,16 @@ If default port is in use, check what's running and either:
|
|
|
982
710
|
</task>
|
|
983
711
|
```
|
|
984
712
|
|
|
985
|
-
### ❌ BAD:
|
|
986
|
-
|
|
987
|
-
```xml
|
|
988
|
-
<task type="checkpoint:human-action">
|
|
989
|
-
<action>Create .env file</action>
|
|
990
|
-
<instructions>
|
|
991
|
-
1. Create .env in project root
|
|
992
|
-
2. Add: DATABASE_URL=...
|
|
993
|
-
3. Add: STRIPE_KEY=...
|
|
994
|
-
</instructions>
|
|
995
|
-
</task>
|
|
996
|
-
```
|
|
997
|
-
|
|
998
|
-
**Why bad:** OpenCode has write tool. This should be `type="auto"`.
|
|
999
|
-
|
|
1000
|
-
### ❌ BAD: Vague verification steps
|
|
713
|
+
### ❌ BAD: Vague verification / ✅ GOOD: Specific steps
|
|
1001
714
|
|
|
1002
715
|
```xml
|
|
716
|
+
<!-- BAD -->
|
|
1003
717
|
<task type="checkpoint:human-verify">
|
|
1004
718
|
<what-built>Dashboard</what-built>
|
|
1005
719
|
<how-to-verify>Check it works</how-to-verify>
|
|
1006
|
-
<resume-signal>Continue</resume-signal>
|
|
1007
720
|
</task>
|
|
1008
|
-
```
|
|
1009
|
-
|
|
1010
|
-
**Why bad:** No specifics. User doesn't know what to test or what "works" means.
|
|
1011
721
|
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
```xml
|
|
722
|
+
<!-- GOOD -->
|
|
1015
723
|
<task type="checkpoint:human-verify">
|
|
1016
724
|
<what-built>Responsive dashboard - server running at http://localhost:3000</what-built>
|
|
1017
725
|
<how-to-verify>
|
|
@@ -1025,16 +733,12 @@ If default port is in use, check what's running and either:
|
|
|
1025
733
|
</task>
|
|
1026
734
|
```
|
|
1027
735
|
|
|
1028
|
-
### ❌ BAD: Asking user to run
|
|
736
|
+
### ❌ BAD: Asking user to run CLI commands
|
|
1029
737
|
|
|
1030
738
|
```xml
|
|
1031
739
|
<task type="checkpoint:human-action">
|
|
1032
740
|
<action>Run database migrations</action>
|
|
1033
|
-
<instructions>
|
|
1034
|
-
1. Run: npx prisma migrate deploy
|
|
1035
|
-
2. Run: npx prisma db seed
|
|
1036
|
-
3. Verify tables exist
|
|
1037
|
-
</instructions>
|
|
741
|
+
<instructions>Run: npx prisma migrate deploy && npx prisma db seed</instructions>
|
|
1038
742
|
</task>
|
|
1039
743
|
```
|
|
1040
744
|
|
|
@@ -1045,13 +749,7 @@ If default port is in use, check what's running and either:
|
|
|
1045
749
|
```xml
|
|
1046
750
|
<task type="checkpoint:human-action">
|
|
1047
751
|
<action>Configure webhook URL in Stripe</action>
|
|
1048
|
-
<instructions>
|
|
1049
|
-
1. Copy the deployment URL from terminal
|
|
1050
|
-
2. Go to Stripe Dashboard → Webhooks
|
|
1051
|
-
3. Add endpoint with URL + /api/webhooks
|
|
1052
|
-
4. Copy webhook signing secret
|
|
1053
|
-
5. Add to .env file
|
|
1054
|
-
</instructions>
|
|
752
|
+
<instructions>Copy deployment URL → Stripe Dashboard → Webhooks → Add endpoint → Copy secret → Add to .env</instructions>
|
|
1055
753
|
</task>
|
|
1056
754
|
```
|
|
1057
755
|
|
|
@@ -1061,18 +759,18 @@ If default port is in use, check what's running and either:
|
|
|
1061
759
|
|
|
1062
760
|
<summary>
|
|
1063
761
|
|
|
1064
|
-
Checkpoints formalize human-in-the-loop points
|
|
762
|
+
Checkpoints formalize human-in-the-loop points for verification and decisions, not manual work.
|
|
1065
763
|
|
|
1066
764
|
**The golden rule:** If OpenCode CAN automate it, OpenCode MUST automate it.
|
|
1067
765
|
|
|
1068
766
|
**Checkpoint priority:**
|
|
1069
|
-
1. **checkpoint:human-verify** (90%
|
|
1070
|
-
2. **checkpoint:decision** (9%
|
|
1071
|
-
3. **checkpoint:human-action** (1%
|
|
767
|
+
1. **checkpoint:human-verify** (90%) - OpenCode automated everything, human confirms visual/functional correctness
|
|
768
|
+
2. **checkpoint:decision** (9%) - Human makes architectural/technology choices
|
|
769
|
+
3. **checkpoint:human-action** (1%) - Truly unavoidable manual steps with no API/CLI
|
|
1072
770
|
|
|
1073
771
|
**When NOT to use checkpoints:**
|
|
1074
|
-
- Things OpenCode can verify programmatically (tests
|
|
1075
|
-
- File operations (OpenCode can read files
|
|
1076
|
-
- Code correctness (
|
|
772
|
+
- Things OpenCode can verify programmatically (tests, builds)
|
|
773
|
+
- File operations (OpenCode can read files)
|
|
774
|
+
- Code correctness (tests and static analysis)
|
|
1077
775
|
- Anything automatable via CLI/API
|
|
1078
776
|
</summary>
|