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.
Files changed (61) hide show
  1. package/README.md +10 -9
  2. package/agents/design-specialist.md +222 -0
  3. package/agents/gsd-executor.md +37 -375
  4. package/agents/gsd-planner.md +15 -108
  5. package/bin/install.js +92 -5
  6. package/commands/gsd/autopilot.md +518 -0
  7. package/commands/gsd/checkpoints.md +229 -0
  8. package/commands/gsd/design-system.md +70 -0
  9. package/commands/gsd/discuss-design.md +77 -0
  10. package/commands/gsd/extend.md +80 -0
  11. package/commands/gsd/help.md +46 -17
  12. package/commands/gsd/new-project.md +94 -8
  13. package/commands/gsd/plan-phase.md +35 -5
  14. package/get-shit-done/references/ccr-integration.md +468 -0
  15. package/get-shit-done/references/checkpoint-execution.md +369 -0
  16. package/get-shit-done/references/checkpoint-types.md +728 -0
  17. package/get-shit-done/references/deviation-rules.md +215 -0
  18. package/get-shit-done/references/framework-patterns.md +543 -0
  19. package/get-shit-done/references/ui-principles.md +258 -0
  20. package/get-shit-done/references/verification-patterns.md +1 -1
  21. package/get-shit-done/skills/gsd-extend/SKILL.md +154 -0
  22. package/get-shit-done/skills/gsd-extend/references/agent-structure.md +305 -0
  23. package/get-shit-done/skills/gsd-extend/references/extension-anatomy.md +123 -0
  24. package/get-shit-done/skills/gsd-extend/references/reference-structure.md +408 -0
  25. package/get-shit-done/skills/gsd-extend/references/template-structure.md +370 -0
  26. package/get-shit-done/skills/gsd-extend/references/validation-rules.md +140 -0
  27. package/get-shit-done/skills/gsd-extend/references/workflow-structure.md +253 -0
  28. package/get-shit-done/skills/gsd-extend/templates/agent-template.md +234 -0
  29. package/get-shit-done/skills/gsd-extend/templates/reference-template.md +239 -0
  30. package/get-shit-done/skills/gsd-extend/templates/workflow-template.md +169 -0
  31. package/get-shit-done/skills/gsd-extend/workflows/create-approach.md +332 -0
  32. package/get-shit-done/skills/gsd-extend/workflows/list-extensions.md +133 -0
  33. package/get-shit-done/skills/gsd-extend/workflows/remove-extension.md +93 -0
  34. package/get-shit-done/skills/gsd-extend/workflows/validate-extension.md +184 -0
  35. package/get-shit-done/templates/autopilot-script-simple.sh +181 -0
  36. package/get-shit-done/templates/autopilot-script.sh +1142 -0
  37. package/get-shit-done/templates/autopilot-script.sh.backup +1142 -0
  38. package/get-shit-done/templates/design-system.md +238 -0
  39. package/get-shit-done/templates/phase-design.md +205 -0
  40. package/get-shit-done/templates/phase-models-template.json +71 -0
  41. package/get-shit-done/templates/phase-prompt.md +4 -4
  42. package/get-shit-done/templates/state.md +37 -0
  43. package/get-shit-done/tui/App.tsx +169 -0
  44. package/get-shit-done/tui/README.md +107 -0
  45. package/get-shit-done/tui/build.js +37 -0
  46. package/get-shit-done/tui/components/ActivityFeed.tsx +126 -0
  47. package/get-shit-done/tui/components/PhaseCard.tsx +86 -0
  48. package/get-shit-done/tui/components/StatsBar.tsx +147 -0
  49. package/get-shit-done/tui/dist/index.js +387 -0
  50. package/get-shit-done/tui/index.tsx +12 -0
  51. package/get-shit-done/tui/package-lock.json +1074 -0
  52. package/get-shit-done/tui/package.json +22 -0
  53. package/get-shit-done/tui/utils/pipeReader.ts +129 -0
  54. package/get-shit-done/workflows/design-system.md +245 -0
  55. package/get-shit-done/workflows/discuss-design.md +330 -0
  56. package/get-shit-done/workflows/execute-phase.md +44 -1
  57. package/get-shit-done/workflows/execute-plan-auth.md +122 -0
  58. package/get-shit-done/workflows/execute-plan-checkpoints.md +541 -0
  59. package/get-shit-done/workflows/execute-plan.md +34 -856
  60. package/package.json +8 -3
  61. package/commands/gsd/whats-new.md +0 -124
@@ -0,0 +1,541 @@
1
+ <purpose>
2
+ Checkpoint handling extension for execute-plan.md. Load this file when a plan contains checkpoints.
3
+ </purpose>
4
+
5
+ <detection>
6
+ Load this file if plan has checkpoints:
7
+ ```bash
8
+ grep -q 'type="checkpoint' .planning/phases/XX-name/{phase}-{plan}-PLAN.md && echo "has_checkpoints"
9
+ ```
10
+ </detection>
11
+
12
+ <step name="parse_segments">
13
+ **Intelligent segmentation: Parse plan into execution segments.**
14
+
15
+ Plans are divided into segments by checkpoints. Each segment is routed to optimal execution context (subagent or main).
16
+
17
+ **1. Check for checkpoints:**
18
+
19
+ ```bash
20
+ # Find all checkpoints and their types
21
+ grep -n "type=\"checkpoint" .planning/phases/XX-name/{phase}-{plan}-PLAN.md
22
+ ```
23
+
24
+ **2. Analyze execution strategy:**
25
+
26
+ **If NO checkpoints found:**
27
+
28
+ - **Fully autonomous plan** - spawn single subagent for entire plan
29
+ - Subagent gets fresh 200k context, executes all tasks, creates SUMMARY, commits
30
+ - Main context: Just orchestration (~5% usage)
31
+
32
+ **If checkpoints found, parse into segments:**
33
+
34
+ Segment = tasks between checkpoints (or start→first checkpoint, or last checkpoint→end)
35
+
36
+ **For each segment, determine routing:**
37
+
38
+ ```
39
+ Segment routing rules:
40
+
41
+ IF segment has no prior checkpoint:
42
+ → SUBAGENT (first segment, nothing to depend on)
43
+
44
+ IF segment follows checkpoint:human-verify:
45
+ → SUBAGENT (verification is just confirmation, doesn't affect next work)
46
+
47
+ IF segment follows checkpoint:decision OR checkpoint:human-action:
48
+ → MAIN CONTEXT (next tasks need the decision/result)
49
+ ```
50
+
51
+ **3. Execution pattern:**
52
+
53
+ **Pattern A: Fully autonomous (no checkpoints)**
54
+
55
+ ```
56
+ Spawn subagent → execute all tasks → SUMMARY → commit → report back
57
+ ```
58
+
59
+ **Pattern B: Segmented with verify-only checkpoints**
60
+
61
+ ```
62
+ Segment 1 (tasks 1-3): Spawn subagent → execute → report back
63
+ Checkpoint 4 (human-verify): Main context → you verify → continue
64
+ Segment 2 (tasks 5-6): Spawn NEW subagent → execute → report back
65
+ Checkpoint 7 (human-verify): Main context → you verify → continue
66
+ Aggregate results → SUMMARY → commit
67
+ ```
68
+
69
+ **Pattern C: Decision-dependent (must stay in main)**
70
+
71
+ ```
72
+ Checkpoint 1 (decision): Main context → you decide → continue in main
73
+ Tasks 2-5: Main context (need decision from checkpoint 1)
74
+ No segmentation benefit - execute entirely in main
75
+ ```
76
+
77
+ **4. Why segment:** Fresh context per subagent preserves peak quality. Main context stays lean (~15% usage).
78
+
79
+ **5. Implementation:**
80
+
81
+ **For fully autonomous plans:**
82
+
83
+ ```
84
+ 1. Run init_agent_tracking step first (see step below)
85
+
86
+ 2. Use Task tool with subagent_type="gsd-executor" and model="{executor_model}":
87
+
88
+ Prompt: "Execute plan at .planning/phases/{phase}-{plan}-PLAN.md
89
+
90
+ This is an autonomous plan (no checkpoints). Execute all tasks, create SUMMARY.md in phase directory, commit with message following plan's commit guidance.
91
+
92
+ Follow all deviation rules and authentication gate protocols from the plan.
93
+
94
+ When complete, report: plan name, tasks completed, SUMMARY path, commit hash."
95
+
96
+ 3. After Task tool returns with agent_id:
97
+
98
+ a. Write agent_id to current-agent-id.txt:
99
+ echo "[agent_id]" > .planning/current-agent-id.txt
100
+
101
+ b. Append spawn entry to agent-history.json:
102
+ {
103
+ "agent_id": "[agent_id from Task response]",
104
+ "task_description": "Execute full plan {phase}-{plan} (autonomous)",
105
+ "phase": "{phase}",
106
+ "plan": "{plan}",
107
+ "segment": null,
108
+ "timestamp": "[ISO timestamp]",
109
+ "status": "spawned",
110
+ "completion_timestamp": null
111
+ }
112
+
113
+ 4. Wait for subagent to complete
114
+
115
+ 5. After subagent completes successfully:
116
+
117
+ a. Update agent-history.json entry:
118
+ - Find entry with matching agent_id
119
+ - Set status: "completed"
120
+ - Set completion_timestamp: "[ISO timestamp]"
121
+
122
+ b. Clear current-agent-id.txt:
123
+ rm .planning/current-agent-id.txt
124
+
125
+ 6. Report completion to user
126
+ ```
127
+
128
+ **For segmented plans (has verify-only checkpoints):**
129
+
130
+ ```
131
+ Execute segment-by-segment:
132
+
133
+ For each autonomous segment:
134
+ Spawn subagent with prompt: "Execute tasks [X-Y] from plan at .planning/phases/{phase}-{plan}-PLAN.md. Read the plan for full context and deviation rules. Do NOT create SUMMARY or commit - just execute these tasks and report results."
135
+
136
+ Wait for subagent completion
137
+
138
+ For each checkpoint:
139
+ Execute in main context
140
+ Wait for user interaction
141
+ Continue to next segment
142
+
143
+ After all segments complete:
144
+ Aggregate all results
145
+ Create SUMMARY.md
146
+ Commit with all changes
147
+ ```
148
+
149
+ **For decision-dependent plans:**
150
+
151
+ ```
152
+ Execute in main context (standard flow below)
153
+ No subagent routing
154
+ Quality maintained through small scope (2-3 tasks per plan)
155
+ ```
156
+
157
+ See step name="segment_execution" for detailed segment execution loop.
158
+ </step>
159
+
160
+ <step name="init_agent_tracking">
161
+ **Initialize agent tracking for subagent resume capability.**
162
+
163
+ Before spawning any subagents, set up tracking infrastructure:
164
+
165
+ **1. Create/verify tracking files:**
166
+
167
+ ```bash
168
+ # Create agent history file if doesn't exist
169
+ if [ ! -f .planning/agent-history.json ]; then
170
+ echo '{"version":"1.0","max_entries":50,"entries":[]}' > .planning/agent-history.json
171
+ fi
172
+
173
+ # Clear any stale current-agent-id (from interrupted sessions)
174
+ # Will be populated when subagent spawns
175
+ rm -f .planning/current-agent-id.txt
176
+ ```
177
+
178
+ **2. Check for interrupted agents (resume detection):**
179
+
180
+ ```bash
181
+ # Check if current-agent-id.txt exists from previous interrupted session
182
+ if [ -f .planning/current-agent-id.txt ]; then
183
+ INTERRUPTED_ID=$(cat .planning/current-agent-id.txt)
184
+ echo "Found interrupted agent: $INTERRUPTED_ID"
185
+ fi
186
+ ```
187
+
188
+ **If interrupted agent found:**
189
+ - The agent ID file exists from a previous session that didn't complete
190
+ - This agent can potentially be resumed using Task tool's `resume` parameter
191
+ - Present to user: "Previous session was interrupted. Resume agent [ID] or start fresh?"
192
+ - If resume: Use Task tool with `resume` parameter set to the interrupted ID
193
+ - If fresh: Clear the file and proceed normally
194
+
195
+ **3. Prune old entries (housekeeping):**
196
+
197
+ If agent-history.json has more than `max_entries`:
198
+ - Remove oldest entries with status "completed"
199
+ - Never remove entries with status "spawned" (may need resume)
200
+ - Keep file under size limit for fast reads
201
+
202
+ **When to run this step:**
203
+ - Pattern A (fully autonomous): Before spawning the single subagent
204
+ - Pattern B (segmented): Before the segment execution loop
205
+ - Pattern C (main context): Skip - no subagents spawned
206
+ </step>
207
+
208
+ <step name="segment_execution">
209
+ **Detailed segment execution loop for segmented plans.**
210
+
211
+ **This step applies ONLY to segmented plans (Pattern B: has checkpoints, but they're verify-only).**
212
+
213
+ For Pattern A (fully autonomous) and Pattern C (decision-dependent), skip this step.
214
+
215
+ **Execution flow:**
216
+
217
+ ````
218
+ 1. Parse plan to identify segments:
219
+ - Read plan file
220
+ - Find checkpoint locations: grep -n "type=\"checkpoint" PLAN.md
221
+ - Identify checkpoint types: grep "type=\"checkpoint" PLAN.md | grep -o 'checkpoint:[^"]*'
222
+ - Build segment map:
223
+ * Segment 1: Start → first checkpoint (tasks 1-X)
224
+ * Checkpoint 1: Type and location
225
+ * Segment 2: After checkpoint 1 → next checkpoint (tasks X+1 to Y)
226
+ * Checkpoint 2: Type and location
227
+ * ... continue for all segments
228
+
229
+ 2. For each segment in order:
230
+
231
+ A. Determine routing (apply rules from parse_segments):
232
+ - No prior checkpoint? → Subagent
233
+ - Prior checkpoint was human-verify? → Subagent
234
+ - Prior checkpoint was decision/human-action? → Main context
235
+
236
+ B. If routing = Subagent:
237
+ ```
238
+ Spawn Task tool with subagent_type="gsd-executor" and model="{executor_model}":
239
+
240
+ Prompt: "Execute tasks [task numbers/names] from plan at [plan path].
241
+
242
+ **Context:**
243
+ - Read the full plan for objective, context files, and deviation rules
244
+ - You are executing a SEGMENT of this plan (not the full plan)
245
+ - Other segments will be executed separately
246
+
247
+ **Your responsibilities:**
248
+ - Execute only the tasks assigned to you
249
+ - Follow all deviation rules and authentication gate protocols
250
+ - Track deviations for later Summary
251
+ - DO NOT create SUMMARY.md (will be created after all segments complete)
252
+ - DO NOT commit (will be done after all segments complete)
253
+
254
+ **Report back:**
255
+ - Tasks completed
256
+ - Files created/modified
257
+ - Deviations encountered
258
+ - Any issues or blockers"
259
+
260
+ **After Task tool returns with agent_id:**
261
+
262
+ 1. Write agent_id to current-agent-id.txt:
263
+ echo "[agent_id]" > .planning/current-agent-id.txt
264
+
265
+ 2. Append spawn entry to agent-history.json:
266
+ {
267
+ "agent_id": "[agent_id from Task response]",
268
+ "task_description": "Execute tasks [X-Y] from plan {phase}-{plan}",
269
+ "phase": "{phase}",
270
+ "plan": "{plan}",
271
+ "segment": [segment_number],
272
+ "timestamp": "[ISO timestamp]",
273
+ "status": "spawned",
274
+ "completion_timestamp": null
275
+ }
276
+
277
+ Wait for subagent to complete
278
+ Capture results (files changed, deviations, etc.)
279
+
280
+ **After subagent completes successfully:**
281
+
282
+ 1. Update agent-history.json entry:
283
+ - Find entry with matching agent_id
284
+ - Set status: "completed"
285
+ - Set completion_timestamp: "[ISO timestamp]"
286
+
287
+ 2. Clear current-agent-id.txt:
288
+ rm .planning/current-agent-id.txt
289
+
290
+ ```
291
+
292
+ C. If routing = Main context:
293
+ Execute tasks in main using standard execution flow (step name="execute")
294
+ Track results locally
295
+
296
+ D. After segment completes (whether subagent or main):
297
+ Continue to next checkpoint/segment
298
+
299
+ 3. After ALL segments complete:
300
+
301
+ A. Aggregate results from all segments:
302
+ - Collect files created/modified from all segments
303
+ - Collect deviations from all segments
304
+ - Collect decisions from all checkpoints
305
+ - Merge into complete picture
306
+
307
+ B. Create SUMMARY.md:
308
+ - Use aggregated results
309
+ - Document all work from all segments
310
+ - Include deviations from all segments
311
+ - Note which segments were subagented
312
+
313
+ C. Commit:
314
+ - Stage all files from all segments
315
+ - Stage SUMMARY.md
316
+ - Commit with message following plan guidance
317
+ - Include note about segmented execution if relevant
318
+
319
+ D. Report completion
320
+
321
+ **Example execution trace:**
322
+
323
+ ````
324
+
325
+ Plan: 01-02-PLAN.md (8 tasks, 2 verify checkpoints)
326
+
327
+ Parsing segments...
328
+
329
+ - Segment 1: Tasks 1-3 (autonomous)
330
+ - Checkpoint 4: human-verify
331
+ - Segment 2: Tasks 5-6 (autonomous)
332
+ - Checkpoint 7: human-verify
333
+ - Segment 3: Task 8 (autonomous)
334
+
335
+ Routing analysis:
336
+
337
+ - Segment 1: No prior checkpoint → SUBAGENT ✓
338
+ - Checkpoint 4: Verify only → MAIN (required)
339
+ - Segment 2: After verify → SUBAGENT ✓
340
+ - Checkpoint 7: Verify only → MAIN (required)
341
+ - Segment 3: After verify → SUBAGENT ✓
342
+
343
+ Execution:
344
+ [1] Spawning subagent for tasks 1-3...
345
+ → Subagent completes: 3 files modified, 0 deviations
346
+ [2] Executing checkpoint 4 (human-verify)...
347
+ ╔═══════════════════════════════════════════════════════╗
348
+ ║ CHECKPOINT: Verification Required ║
349
+ ╚═══════════════════════════════════════════════════════╝
350
+
351
+ Progress: 3/8 tasks complete
352
+ Task: Verify database schema
353
+
354
+ Built: User and Session tables with relations
355
+
356
+ How to verify:
357
+ 1. Check src/db/schema.ts for correct types
358
+
359
+ ────────────────────────────────────────────────────────
360
+ → YOUR ACTION: Type "approved" or describe issues
361
+ ────────────────────────────────────────────────────────
362
+ User: "approved"
363
+ [3] Spawning subagent for tasks 5-6...
364
+ → Subagent completes: 2 files modified, 1 deviation (added error handling)
365
+ [4] Executing checkpoint 7 (human-verify)...
366
+ User: "approved"
367
+ [5] Spawning subagent for task 8...
368
+ → Subagent completes: 1 file modified, 0 deviations
369
+
370
+ Aggregating results...
371
+
372
+ - Total files: 6 modified
373
+ - Total deviations: 1
374
+ - Segmented execution: 3 subagents, 2 checkpoints
375
+
376
+ Creating SUMMARY.md...
377
+ Committing...
378
+ ✓ Complete
379
+
380
+ ````
381
+
382
+ **Benefit:** Each subagent starts fresh (~20-30% context), enabling larger plans without quality degradation.
383
+ </step>
384
+
385
+ <step name="checkpoint_protocol">
386
+ When encountering `type="checkpoint:*"`:
387
+
388
+ **Critical: Claude automates everything with CLI/API before checkpoints.** Checkpoints are for verification and decisions, not manual work.
389
+
390
+ **Display checkpoint clearly:**
391
+
392
+ ```
393
+ ╔═══════════════════════════════════════════════════════╗
394
+ ║ CHECKPOINT: [Type] ║
395
+ ╚═══════════════════════════════════════════════════════╝
396
+
397
+ Progress: {X}/{Y} tasks complete
398
+ Task: [task name]
399
+
400
+ [Display task-specific content based on type]
401
+
402
+ ────────────────────────────────────────────────────────
403
+ → YOUR ACTION: [Resume signal instruction]
404
+ ────────────────────────────────────────────────────────
405
+ ```
406
+
407
+ **For checkpoint:human-verify (90% of checkpoints):**
408
+
409
+ ```
410
+ Built: [what was automated - deployed, built, configured]
411
+
412
+ How to verify:
413
+ 1. [Step 1 - exact command/URL]
414
+ 2. [Step 2 - what to check]
415
+ 3. [Step 3 - expected behavior]
416
+
417
+ ────────────────────────────────────────────────────────
418
+ → YOUR ACTION: Type "approved" or describe issues
419
+ ────────────────────────────────────────────────────────
420
+ ```
421
+
422
+ **For checkpoint:decision (9% of checkpoints):**
423
+
424
+ ```
425
+ Decision needed: [decision]
426
+
427
+ Context: [why this matters]
428
+
429
+ Options:
430
+ 1. [option-id]: [name]
431
+ Pros: [pros]
432
+ Cons: [cons]
433
+
434
+ 2. [option-id]: [name]
435
+ Pros: [pros]
436
+ Cons: [cons]
437
+
438
+ [Resume signal - e.g., "Select: option-id"]
439
+ ```
440
+
441
+ **For checkpoint:human-action (1% - rare, only for truly unavoidable manual steps):**
442
+
443
+ ```
444
+ I automated: [what Claude already did via CLI/API]
445
+
446
+ Need your help with: [the ONE thing with no CLI/API - email link, 2FA code]
447
+
448
+ Instructions:
449
+ [Single unavoidable step]
450
+
451
+ I'll verify after: [verification]
452
+
453
+ [Resume signal - e.g., "Type 'done' when complete"]
454
+ ```
455
+
456
+ **After displaying:** WAIT for user response. Do NOT hallucinate completion. Do NOT continue to next task.
457
+
458
+ **After user responds:**
459
+
460
+ - Run verification if specified (file exists, env var set, tests pass, etc.)
461
+ - If verification passes or N/A: continue to next task
462
+ - If verification fails: inform user, wait for resolution
463
+
464
+ See ~/.claude/get-shit-done/references/checkpoint-execution.md for complete execution protocol and automation reference.
465
+ </step>
466
+
467
+ <step name="checkpoint_return_for_orchestrator">
468
+ **When spawned by an orchestrator (execute-phase or execute-plan command):**
469
+
470
+ If you were spawned via Task tool and hit a checkpoint, you cannot directly interact with the user. Instead, RETURN to the orchestrator with structured checkpoint state so it can present to the user and spawn a fresh continuation agent.
471
+
472
+ **Return format for checkpoints:**
473
+
474
+ **Required in your return:**
475
+
476
+ 1. **Completed Tasks table** - Tasks done so far with commit hashes and files created
477
+ 2. **Current Task** - Which task you're on and what's blocking it
478
+ 3. **Checkpoint Details** - User-facing content (verification steps, decision options, or action instructions)
479
+ 4. **Awaiting** - What you need from the user
480
+
481
+ **Example return:**
482
+
483
+ ```
484
+ ## CHECKPOINT REACHED
485
+
486
+ **Type:** human-action
487
+ **Plan:** 01-01
488
+ **Progress:** 1/3 tasks complete
489
+
490
+ ### Completed Tasks
491
+
492
+ | Task | Name | Commit | Files |
493
+ |------|------|--------|-------|
494
+ | 1 | Initialize Next.js 15 project | d6fe73f | package.json, tsconfig.json, app/ |
495
+
496
+ ### Current Task
497
+
498
+ **Task 2:** Initialize Convex backend
499
+ **Status:** blocked
500
+ **Blocked by:** Convex CLI authentication required
501
+
502
+ ### Checkpoint Details
503
+
504
+ **Automation attempted:**
505
+ Ran `npx convex dev` to initialize Convex backend
506
+
507
+ **Error encountered:**
508
+ "Error: Not authenticated. Run `npx convex login` first."
509
+
510
+ **What you need to do:**
511
+ 1. Run: `npx convex login`
512
+ 2. Complete browser authentication
513
+ 3. Run: `npx convex dev`
514
+ 4. Create project when prompted
515
+
516
+ **I'll verify after:**
517
+ `cat .env.local | grep CONVEX` returns the Convex URL
518
+
519
+ ### Awaiting
520
+
521
+ Type "done" when Convex is authenticated and project created.
522
+ ```
523
+
524
+ **After you return:**
525
+
526
+ The orchestrator will:
527
+ 1. Parse your structured return
528
+ 2. Present checkpoint details to the user
529
+ 3. Collect user's response
530
+ 4. Spawn a FRESH continuation agent with your completed tasks state
531
+
532
+ You will NOT be resumed. A new agent continues from where you stopped, using your Completed Tasks table to know what's done.
533
+
534
+ **How to know if you were spawned:**
535
+
536
+ If you're reading this workflow because an orchestrator spawned you (vs running directly), the orchestrator's prompt will include checkpoint return instructions. Follow those instructions when you hit a checkpoint.
537
+
538
+ **If running in main context (not spawned):**
539
+
540
+ Use the standard checkpoint_protocol - display checkpoint and wait for direct user response.
541
+ </step>