@gajae-code/coding-agent 0.2.5 → 0.3.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 (112) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/types/async/job-manager.d.ts +84 -2
  3. package/dist/types/commands/harness.d.ts +37 -0
  4. package/dist/types/config/settings-schema.d.ts +6 -0
  5. package/dist/types/config/settings.d.ts +2 -0
  6. package/dist/types/deep-interview/render-middleware.d.ts +5 -0
  7. package/dist/types/extensibility/custom-tools/types.d.ts +1 -0
  8. package/dist/types/extensibility/extensions/types.d.ts +6 -0
  9. package/dist/types/extensibility/shared-events.d.ts +1 -0
  10. package/dist/types/gjc-runtime/state-graph.d.ts +4 -0
  11. package/dist/types/gjc-runtime/state-migrations.d.ts +24 -0
  12. package/dist/types/gjc-runtime/state-renderer.d.ts +65 -0
  13. package/dist/types/gjc-runtime/state-runtime.d.ts +2 -0
  14. package/dist/types/gjc-runtime/state-validation.d.ts +6 -0
  15. package/dist/types/gjc-runtime/state-writer.d.ts +137 -0
  16. package/dist/types/gjc-runtime/team-runtime.d.ts +81 -7
  17. package/dist/types/gjc-runtime/workflow-manifest.d.ts +54 -0
  18. package/dist/types/harness-control-plane/classifier.d.ts +13 -0
  19. package/dist/types/harness-control-plane/control-endpoint.d.ts +30 -0
  20. package/dist/types/harness-control-plane/finalize.d.ts +47 -0
  21. package/dist/types/harness-control-plane/frame-mapper.d.ts +29 -0
  22. package/dist/types/harness-control-plane/operate.d.ts +35 -0
  23. package/dist/types/harness-control-plane/owner.d.ts +46 -0
  24. package/dist/types/harness-control-plane/preserve.d.ts +19 -0
  25. package/dist/types/harness-control-plane/receipts.d.ts +88 -0
  26. package/dist/types/harness-control-plane/rpc-adapter.d.ts +66 -0
  27. package/dist/types/harness-control-plane/seams.d.ts +21 -0
  28. package/dist/types/harness-control-plane/session-lease.d.ts +65 -0
  29. package/dist/types/harness-control-plane/state-machine.d.ts +19 -0
  30. package/dist/types/harness-control-plane/storage.d.ts +53 -0
  31. package/dist/types/harness-control-plane/types.d.ts +162 -0
  32. package/dist/types/hooks/skill-keywords.d.ts +2 -1
  33. package/dist/types/hooks/skill-state.d.ts +2 -29
  34. package/dist/types/modes/components/hook-selector.d.ts +1 -0
  35. package/dist/types/modes/interactive-mode.d.ts +1 -0
  36. package/dist/types/modes/types.d.ts +1 -0
  37. package/dist/types/sdk.d.ts +2 -0
  38. package/dist/types/session/agent-session.d.ts +8 -0
  39. package/dist/types/skill-state/active-state.d.ts +2 -0
  40. package/dist/types/skill-state/deep-interview-mutation-guard.d.ts +1 -1
  41. package/dist/types/skill-state/workflow-state-contract.d.ts +24 -0
  42. package/dist/types/task/executor.d.ts +3 -0
  43. package/dist/types/task/types.d.ts +55 -3
  44. package/dist/types/tools/subagent.d.ts +11 -1
  45. package/package.json +7 -7
  46. package/src/async/job-manager.ts +298 -6
  47. package/src/cli/auth-broker-cli.ts +1 -0
  48. package/src/cli/config-cli.ts +10 -2
  49. package/src/cli.ts +2 -0
  50. package/src/commands/harness.ts +592 -0
  51. package/src/commands/team.ts +36 -39
  52. package/src/config/settings-schema.ts +7 -0
  53. package/src/config/settings.ts +5 -0
  54. package/src/deep-interview/render-middleware.ts +366 -0
  55. package/src/defaults/gjc/skills/team/SKILL.md +47 -21
  56. package/src/defaults/gjc/skills/ultragoal/SKILL.md +78 -11
  57. package/src/extensibility/custom-tools/types.ts +1 -0
  58. package/src/extensibility/extensions/types.ts +6 -0
  59. package/src/extensibility/shared-events.ts +1 -0
  60. package/src/gjc-runtime/deep-interview-runtime.ts +40 -21
  61. package/src/gjc-runtime/goal-mode-request.ts +11 -3
  62. package/src/gjc-runtime/ralplan-runtime.ts +25 -10
  63. package/src/gjc-runtime/state-graph.ts +86 -0
  64. package/src/gjc-runtime/state-migrations.ts +132 -0
  65. package/src/gjc-runtime/state-renderer.ts +345 -0
  66. package/src/gjc-runtime/state-runtime.ts +733 -21
  67. package/src/gjc-runtime/state-validation.ts +49 -0
  68. package/src/gjc-runtime/state-writer.ts +718 -0
  69. package/src/gjc-runtime/team-runtime.ts +1083 -89
  70. package/src/gjc-runtime/ultragoal-runtime.ts +348 -19
  71. package/src/gjc-runtime/workflow-manifest.generated.json +1497 -0
  72. package/src/gjc-runtime/workflow-manifest.ts +425 -0
  73. package/src/harness-control-plane/classifier.ts +128 -0
  74. package/src/harness-control-plane/control-endpoint.ts +137 -0
  75. package/src/harness-control-plane/finalize.ts +222 -0
  76. package/src/harness-control-plane/frame-mapper.ts +286 -0
  77. package/src/harness-control-plane/operate.ts +225 -0
  78. package/src/harness-control-plane/owner.ts +553 -0
  79. package/src/harness-control-plane/preserve.ts +102 -0
  80. package/src/harness-control-plane/receipts.ts +216 -0
  81. package/src/harness-control-plane/rpc-adapter.ts +276 -0
  82. package/src/harness-control-plane/seams.ts +39 -0
  83. package/src/harness-control-plane/session-lease.ts +388 -0
  84. package/src/harness-control-plane/state-machine.ts +97 -0
  85. package/src/harness-control-plane/storage.ts +257 -0
  86. package/src/harness-control-plane/types.ts +214 -0
  87. package/src/hooks/skill-keywords.ts +4 -2
  88. package/src/hooks/skill-state.ts +24 -41
  89. package/src/internal-urls/docs-index.generated.ts +1 -1
  90. package/src/modes/components/assistant-message.ts +5 -1
  91. package/src/modes/components/hook-selector.ts +72 -2
  92. package/src/modes/controllers/event-controller.ts +71 -6
  93. package/src/modes/controllers/extension-ui-controller.ts +6 -0
  94. package/src/modes/controllers/input-controller.ts +9 -1
  95. package/src/modes/controllers/selector-controller.ts +2 -1
  96. package/src/modes/interactive-mode.ts +1 -0
  97. package/src/modes/types.ts +1 -0
  98. package/src/prompts/agents/executor.md +13 -0
  99. package/src/prompts/tools/subagent.md +33 -3
  100. package/src/sdk.ts +4 -0
  101. package/src/session/agent-session.ts +231 -33
  102. package/src/session/session-manager.ts +13 -1
  103. package/src/skill-state/active-state.ts +58 -65
  104. package/src/skill-state/deep-interview-mutation-guard.ts +91 -13
  105. package/src/skill-state/initial-phase.ts +2 -0
  106. package/src/skill-state/workflow-state-contract.ts +26 -0
  107. package/src/task/executor.ts +50 -8
  108. package/src/task/index.ts +120 -8
  109. package/src/task/render.ts +6 -3
  110. package/src/task/types.ts +56 -3
  111. package/src/tools/ask.ts +28 -7
  112. package/src/tools/subagent.ts +255 -64
@@ -0,0 +1,1497 @@
1
+ {
2
+ "deep-interview": {
3
+ "graphLabel": "Deep Interview",
4
+ "hudFields": [
5
+ "current_phase",
6
+ "ambiguity_score",
7
+ "threshold",
8
+ "spec_slug",
9
+ "spec_path",
10
+ "topology"
11
+ ],
12
+ "initialState": "interviewing",
13
+ "retention": [
14
+ {
15
+ "category": "state",
16
+ "keep": 1
17
+ },
18
+ {
19
+ "category": "artifact"
20
+ },
21
+ {
22
+ "category": "prune/delete",
23
+ "maxAgeDays": 30
24
+ },
25
+ {
26
+ "category": "force",
27
+ "maxAgeDays": 90
28
+ }
29
+ ],
30
+ "skill": "deep-interview",
31
+ "states": [
32
+ {
33
+ "id": "interviewing",
34
+ "initial": true
35
+ },
36
+ {
37
+ "id": "handoff",
38
+ "terminal": true
39
+ },
40
+ {
41
+ "id": "complete",
42
+ "terminal": true
43
+ }
44
+ ],
45
+ "terminalStates": [
46
+ "handoff",
47
+ "complete"
48
+ ],
49
+ "transitions": [
50
+ {
51
+ "from": "interviewing",
52
+ "to": "handoff",
53
+ "verb": "write-spec"
54
+ },
55
+ {
56
+ "from": "handoff",
57
+ "to": "complete",
58
+ "verb": "clear"
59
+ },
60
+ {
61
+ "from": "interviewing",
62
+ "to": "complete",
63
+ "verb": "clear"
64
+ }
65
+ ],
66
+ "typedArgs": [
67
+ {
68
+ "appliesToVerbs": [
69
+ "write",
70
+ "api"
71
+ ],
72
+ "name": "input",
73
+ "type": "string"
74
+ },
75
+ {
76
+ "appliesToVerbs": [
77
+ "read",
78
+ "write",
79
+ "clear",
80
+ "contract",
81
+ "handoff"
82
+ ],
83
+ "enumValues": [
84
+ "deep-interview",
85
+ "ralplan",
86
+ "ultragoal",
87
+ "team"
88
+ ],
89
+ "name": "mode",
90
+ "type": "enum"
91
+ },
92
+ {
93
+ "appliesToVerbs": [
94
+ "read",
95
+ "write",
96
+ "clear",
97
+ "contract",
98
+ "handoff",
99
+ "kickoff",
100
+ "write-spec",
101
+ "write-artifact"
102
+ ],
103
+ "name": "session-id",
104
+ "type": "string"
105
+ },
106
+ {
107
+ "appliesToVerbs": [
108
+ "write",
109
+ "clear",
110
+ "handoff"
111
+ ],
112
+ "name": "thread-id",
113
+ "type": "string"
114
+ },
115
+ {
116
+ "appliesToVerbs": [
117
+ "write",
118
+ "clear",
119
+ "handoff"
120
+ ],
121
+ "name": "turn-id",
122
+ "type": "string"
123
+ },
124
+ {
125
+ "appliesToVerbs": [
126
+ "handoff"
127
+ ],
128
+ "enumValues": [
129
+ "deep-interview",
130
+ "ralplan",
131
+ "ultragoal",
132
+ "team"
133
+ ],
134
+ "name": "to",
135
+ "required": true,
136
+ "type": "enum"
137
+ },
138
+ {
139
+ "appliesToVerbs": [
140
+ "write"
141
+ ],
142
+ "name": "replace",
143
+ "type": "boolean"
144
+ },
145
+ {
146
+ "appliesToVerbs": [
147
+ "write",
148
+ "clear",
149
+ "handoff"
150
+ ],
151
+ "name": "force",
152
+ "type": "boolean"
153
+ },
154
+ {
155
+ "appliesToVerbs": [
156
+ "kickoff"
157
+ ],
158
+ "name": "quick",
159
+ "type": "boolean"
160
+ },
161
+ {
162
+ "appliesToVerbs": [
163
+ "kickoff"
164
+ ],
165
+ "name": "standard",
166
+ "type": "boolean"
167
+ },
168
+ {
169
+ "appliesToVerbs": [
170
+ "kickoff"
171
+ ],
172
+ "name": "deep",
173
+ "type": "boolean"
174
+ },
175
+ {
176
+ "appliesToVerbs": [
177
+ "kickoff"
178
+ ],
179
+ "name": "threshold",
180
+ "type": "number"
181
+ },
182
+ {
183
+ "appliesToVerbs": [
184
+ "kickoff"
185
+ ],
186
+ "name": "threshold-source",
187
+ "type": "string"
188
+ },
189
+ {
190
+ "appliesToVerbs": [
191
+ "write-spec"
192
+ ],
193
+ "enumValues": [
194
+ "final"
195
+ ],
196
+ "name": "stage",
197
+ "type": "enum"
198
+ },
199
+ {
200
+ "appliesToVerbs": [
201
+ "write-spec"
202
+ ],
203
+ "name": "slug",
204
+ "type": "string"
205
+ },
206
+ {
207
+ "appliesToVerbs": [
208
+ "write-spec"
209
+ ],
210
+ "name": "spec",
211
+ "required": true,
212
+ "type": "string"
213
+ },
214
+ {
215
+ "appliesToVerbs": [
216
+ "write-spec"
217
+ ],
218
+ "enumValues": [
219
+ "ralplan"
220
+ ],
221
+ "name": "handoff",
222
+ "type": "enum"
223
+ },
224
+ {
225
+ "appliesToVerbs": [
226
+ "write-spec"
227
+ ],
228
+ "name": "deliberate",
229
+ "type": "boolean"
230
+ },
231
+ {
232
+ "appliesToVerbs": [
233
+ "write-spec"
234
+ ],
235
+ "name": "json",
236
+ "type": "boolean"
237
+ },
238
+ {
239
+ "name": "args",
240
+ "planned": true,
241
+ "type": "string"
242
+ },
243
+ {
244
+ "name": "metadata-json",
245
+ "planned": true,
246
+ "type": "string"
247
+ }
248
+ ],
249
+ "verbs": [
250
+ {
251
+ "name": "read",
252
+ "surface": "state-action"
253
+ },
254
+ {
255
+ "name": "write",
256
+ "surface": "state-action"
257
+ },
258
+ {
259
+ "name": "clear",
260
+ "surface": "state-action"
261
+ },
262
+ {
263
+ "name": "contract",
264
+ "surface": "state-action"
265
+ },
266
+ {
267
+ "name": "handoff",
268
+ "surface": "state-action"
269
+ },
270
+ {
271
+ "name": "kickoff",
272
+ "surface": "command-flag"
273
+ },
274
+ {
275
+ "name": "write-spec",
276
+ "surface": "command-flag"
277
+ },
278
+ {
279
+ "name": "graph",
280
+ "planned": true,
281
+ "surface": "state-action"
282
+ },
283
+ {
284
+ "name": "prune",
285
+ "planned": true,
286
+ "surface": "state-action"
287
+ },
288
+ {
289
+ "name": "migrate",
290
+ "planned": true,
291
+ "surface": "state-action"
292
+ },
293
+ {
294
+ "name": "force-overwrite",
295
+ "planned": true,
296
+ "surface": "state-action"
297
+ }
298
+ ]
299
+ },
300
+ "ralplan": {
301
+ "graphLabel": "Ralplan",
302
+ "hudFields": [
303
+ "current_phase",
304
+ "mode",
305
+ "run_id",
306
+ "stage",
307
+ "stage_n",
308
+ "plan_path"
309
+ ],
310
+ "initialState": "planner",
311
+ "retention": [
312
+ {
313
+ "category": "state",
314
+ "keep": 1
315
+ },
316
+ {
317
+ "category": "artifact"
318
+ },
319
+ {
320
+ "category": "ledger"
321
+ },
322
+ {
323
+ "category": "prune/delete",
324
+ "maxAgeDays": 30
325
+ },
326
+ {
327
+ "category": "force",
328
+ "maxAgeDays": 90
329
+ }
330
+ ],
331
+ "skill": "ralplan",
332
+ "states": [
333
+ {
334
+ "id": "planner",
335
+ "initial": true
336
+ },
337
+ {
338
+ "id": "architect"
339
+ },
340
+ {
341
+ "id": "critic"
342
+ },
343
+ {
344
+ "id": "revision"
345
+ },
346
+ {
347
+ "id": "adr"
348
+ },
349
+ {
350
+ "id": "final",
351
+ "terminal": true
352
+ },
353
+ {
354
+ "id": "handoff",
355
+ "terminal": true
356
+ }
357
+ ],
358
+ "terminalStates": [
359
+ "final",
360
+ "handoff"
361
+ ],
362
+ "transitions": [
363
+ {
364
+ "from": "planner",
365
+ "to": "architect",
366
+ "verb": "write-artifact"
367
+ },
368
+ {
369
+ "from": "architect",
370
+ "to": "critic",
371
+ "verb": "write-artifact"
372
+ },
373
+ {
374
+ "from": "critic",
375
+ "to": "revision",
376
+ "verb": "write-artifact"
377
+ },
378
+ {
379
+ "from": "revision",
380
+ "to": "adr",
381
+ "verb": "write-artifact"
382
+ },
383
+ {
384
+ "from": "adr",
385
+ "to": "final",
386
+ "verb": "write-artifact"
387
+ },
388
+ {
389
+ "from": "planner",
390
+ "to": "handoff",
391
+ "verb": "handoff"
392
+ },
393
+ {
394
+ "from": "architect",
395
+ "to": "handoff",
396
+ "verb": "handoff"
397
+ },
398
+ {
399
+ "from": "critic",
400
+ "to": "handoff",
401
+ "verb": "handoff"
402
+ },
403
+ {
404
+ "from": "revision",
405
+ "to": "handoff",
406
+ "verb": "handoff"
407
+ },
408
+ {
409
+ "from": "adr",
410
+ "to": "handoff",
411
+ "verb": "handoff"
412
+ }
413
+ ],
414
+ "typedArgs": [
415
+ {
416
+ "appliesToVerbs": [
417
+ "write",
418
+ "api"
419
+ ],
420
+ "name": "input",
421
+ "type": "string"
422
+ },
423
+ {
424
+ "appliesToVerbs": [
425
+ "read",
426
+ "write",
427
+ "clear",
428
+ "contract",
429
+ "handoff"
430
+ ],
431
+ "enumValues": [
432
+ "deep-interview",
433
+ "ralplan",
434
+ "ultragoal",
435
+ "team"
436
+ ],
437
+ "name": "mode",
438
+ "type": "enum"
439
+ },
440
+ {
441
+ "appliesToVerbs": [
442
+ "read",
443
+ "write",
444
+ "clear",
445
+ "contract",
446
+ "handoff",
447
+ "kickoff",
448
+ "write-spec",
449
+ "write-artifact"
450
+ ],
451
+ "name": "session-id",
452
+ "type": "string"
453
+ },
454
+ {
455
+ "appliesToVerbs": [
456
+ "write",
457
+ "clear",
458
+ "handoff"
459
+ ],
460
+ "name": "thread-id",
461
+ "type": "string"
462
+ },
463
+ {
464
+ "appliesToVerbs": [
465
+ "write",
466
+ "clear",
467
+ "handoff"
468
+ ],
469
+ "name": "turn-id",
470
+ "type": "string"
471
+ },
472
+ {
473
+ "appliesToVerbs": [
474
+ "handoff"
475
+ ],
476
+ "enumValues": [
477
+ "deep-interview",
478
+ "ralplan",
479
+ "ultragoal",
480
+ "team"
481
+ ],
482
+ "name": "to",
483
+ "required": true,
484
+ "type": "enum"
485
+ },
486
+ {
487
+ "appliesToVerbs": [
488
+ "write"
489
+ ],
490
+ "name": "replace",
491
+ "type": "boolean"
492
+ },
493
+ {
494
+ "appliesToVerbs": [
495
+ "write",
496
+ "clear",
497
+ "handoff"
498
+ ],
499
+ "name": "force",
500
+ "type": "boolean"
501
+ },
502
+ {
503
+ "appliesToVerbs": [
504
+ "kickoff"
505
+ ],
506
+ "name": "interactive",
507
+ "type": "boolean"
508
+ },
509
+ {
510
+ "appliesToVerbs": [
511
+ "kickoff"
512
+ ],
513
+ "name": "deliberate",
514
+ "type": "boolean"
515
+ },
516
+ {
517
+ "appliesToVerbs": [
518
+ "kickoff"
519
+ ],
520
+ "name": "architect",
521
+ "type": "string"
522
+ },
523
+ {
524
+ "appliesToVerbs": [
525
+ "kickoff"
526
+ ],
527
+ "name": "critic",
528
+ "type": "string"
529
+ },
530
+ {
531
+ "appliesToVerbs": [
532
+ "kickoff",
533
+ "write-artifact"
534
+ ],
535
+ "name": "json",
536
+ "type": "boolean"
537
+ },
538
+ {
539
+ "appliesToVerbs": [
540
+ "write-artifact"
541
+ ],
542
+ "enumValues": [
543
+ "planner",
544
+ "architect",
545
+ "critic",
546
+ "revision",
547
+ "adr",
548
+ "final"
549
+ ],
550
+ "name": "stage",
551
+ "type": "enum"
552
+ },
553
+ {
554
+ "appliesToVerbs": [
555
+ "write-artifact"
556
+ ],
557
+ "name": "stage_n",
558
+ "type": "number"
559
+ },
560
+ {
561
+ "appliesToVerbs": [
562
+ "write-artifact"
563
+ ],
564
+ "name": "artifact",
565
+ "required": true,
566
+ "type": "string"
567
+ },
568
+ {
569
+ "appliesToVerbs": [
570
+ "write-artifact"
571
+ ],
572
+ "name": "run-id",
573
+ "type": "string"
574
+ },
575
+ {
576
+ "name": "args",
577
+ "planned": true,
578
+ "type": "string"
579
+ },
580
+ {
581
+ "name": "metadata-json",
582
+ "planned": true,
583
+ "type": "string"
584
+ }
585
+ ],
586
+ "verbs": [
587
+ {
588
+ "name": "read",
589
+ "surface": "state-action"
590
+ },
591
+ {
592
+ "name": "write",
593
+ "surface": "state-action"
594
+ },
595
+ {
596
+ "name": "clear",
597
+ "surface": "state-action"
598
+ },
599
+ {
600
+ "name": "contract",
601
+ "surface": "state-action"
602
+ },
603
+ {
604
+ "name": "handoff",
605
+ "surface": "state-action"
606
+ },
607
+ {
608
+ "name": "kickoff",
609
+ "surface": "command-flag"
610
+ },
611
+ {
612
+ "name": "write-artifact",
613
+ "surface": "command-flag"
614
+ },
615
+ {
616
+ "name": "graph",
617
+ "planned": true,
618
+ "surface": "state-action"
619
+ },
620
+ {
621
+ "name": "prune",
622
+ "planned": true,
623
+ "surface": "state-action"
624
+ },
625
+ {
626
+ "name": "migrate",
627
+ "planned": true,
628
+ "surface": "state-action"
629
+ },
630
+ {
631
+ "name": "force-overwrite",
632
+ "planned": true,
633
+ "surface": "state-action"
634
+ }
635
+ ]
636
+ },
637
+ "team": {
638
+ "graphLabel": "Team",
639
+ "hudFields": [
640
+ "current_phase",
641
+ "team_name",
642
+ "workers",
643
+ "task_counts",
644
+ "phase",
645
+ "integration"
646
+ ],
647
+ "initialState": "starting",
648
+ "retention": [
649
+ {
650
+ "category": "state",
651
+ "keep": 1
652
+ },
653
+ {
654
+ "category": "artifact"
655
+ },
656
+ {
657
+ "category": "ledger"
658
+ },
659
+ {
660
+ "category": "log",
661
+ "maxAgeDays": 30
662
+ },
663
+ {
664
+ "category": "report",
665
+ "maxAgeDays": 30
666
+ },
667
+ {
668
+ "category": "agents"
669
+ },
670
+ {
671
+ "category": "prune/delete",
672
+ "maxAgeDays": 30
673
+ },
674
+ {
675
+ "category": "force",
676
+ "maxAgeDays": 90
677
+ }
678
+ ],
679
+ "skill": "team",
680
+ "states": [
681
+ {
682
+ "id": "starting",
683
+ "initial": true
684
+ },
685
+ {
686
+ "id": "running"
687
+ },
688
+ {
689
+ "id": "awaiting_integration"
690
+ },
691
+ {
692
+ "id": "complete",
693
+ "terminal": true
694
+ },
695
+ {
696
+ "id": "failed",
697
+ "terminal": true
698
+ },
699
+ {
700
+ "id": "cancelled",
701
+ "terminal": true
702
+ },
703
+ {
704
+ "id": "handoff",
705
+ "terminal": true
706
+ }
707
+ ],
708
+ "terminalStates": [
709
+ "complete",
710
+ "failed",
711
+ "cancelled",
712
+ "handoff"
713
+ ],
714
+ "transitions": [
715
+ {
716
+ "from": "starting",
717
+ "to": "running",
718
+ "verb": "start"
719
+ },
720
+ {
721
+ "from": "starting",
722
+ "to": "failed",
723
+ "verb": "start"
724
+ },
725
+ {
726
+ "from": "running",
727
+ "to": "awaiting_integration",
728
+ "verb": "api"
729
+ },
730
+ {
731
+ "from": "running",
732
+ "to": "complete",
733
+ "verb": "shutdown"
734
+ },
735
+ {
736
+ "from": "running",
737
+ "to": "failed",
738
+ "verb": "shutdown"
739
+ },
740
+ {
741
+ "from": "running",
742
+ "to": "cancelled",
743
+ "verb": "shutdown"
744
+ },
745
+ {
746
+ "from": "awaiting_integration",
747
+ "to": "running",
748
+ "verb": "resume"
749
+ },
750
+ {
751
+ "from": "awaiting_integration",
752
+ "to": "complete",
753
+ "verb": "shutdown"
754
+ },
755
+ {
756
+ "from": "starting",
757
+ "to": "handoff",
758
+ "verb": "handoff"
759
+ },
760
+ {
761
+ "from": "running",
762
+ "to": "handoff",
763
+ "verb": "handoff"
764
+ },
765
+ {
766
+ "from": "awaiting_integration",
767
+ "to": "handoff",
768
+ "verb": "handoff"
769
+ }
770
+ ],
771
+ "typedArgs": [
772
+ {
773
+ "appliesToVerbs": [
774
+ "write",
775
+ "api"
776
+ ],
777
+ "name": "input",
778
+ "type": "string"
779
+ },
780
+ {
781
+ "appliesToVerbs": [
782
+ "read",
783
+ "write",
784
+ "clear",
785
+ "contract",
786
+ "handoff"
787
+ ],
788
+ "enumValues": [
789
+ "deep-interview",
790
+ "ralplan",
791
+ "ultragoal",
792
+ "team"
793
+ ],
794
+ "name": "mode",
795
+ "type": "enum"
796
+ },
797
+ {
798
+ "appliesToVerbs": [
799
+ "read",
800
+ "write",
801
+ "clear",
802
+ "contract",
803
+ "handoff",
804
+ "kickoff",
805
+ "write-spec",
806
+ "write-artifact"
807
+ ],
808
+ "name": "session-id",
809
+ "type": "string"
810
+ },
811
+ {
812
+ "appliesToVerbs": [
813
+ "write",
814
+ "clear",
815
+ "handoff"
816
+ ],
817
+ "name": "thread-id",
818
+ "type": "string"
819
+ },
820
+ {
821
+ "appliesToVerbs": [
822
+ "write",
823
+ "clear",
824
+ "handoff"
825
+ ],
826
+ "name": "turn-id",
827
+ "type": "string"
828
+ },
829
+ {
830
+ "appliesToVerbs": [
831
+ "handoff"
832
+ ],
833
+ "enumValues": [
834
+ "deep-interview",
835
+ "ralplan",
836
+ "ultragoal",
837
+ "team"
838
+ ],
839
+ "name": "to",
840
+ "required": true,
841
+ "type": "enum"
842
+ },
843
+ {
844
+ "appliesToVerbs": [
845
+ "write"
846
+ ],
847
+ "name": "replace",
848
+ "type": "boolean"
849
+ },
850
+ {
851
+ "appliesToVerbs": [
852
+ "write",
853
+ "clear",
854
+ "handoff"
855
+ ],
856
+ "name": "force",
857
+ "type": "boolean"
858
+ },
859
+ {
860
+ "appliesToVerbs": [
861
+ "start"
862
+ ],
863
+ "name": "dry-run",
864
+ "type": "boolean"
865
+ },
866
+ {
867
+ "appliesToVerbs": [
868
+ "start"
869
+ ],
870
+ "name": "worktree",
871
+ "type": "string"
872
+ },
873
+ {
874
+ "appliesToVerbs": [
875
+ "start"
876
+ ],
877
+ "name": "w",
878
+ "type": "string"
879
+ },
880
+ {
881
+ "appliesToVerbs": [
882
+ "api"
883
+ ],
884
+ "name": "input",
885
+ "required": true,
886
+ "type": "string"
887
+ },
888
+ {
889
+ "appliesToVerbs": [
890
+ "api"
891
+ ],
892
+ "enumValues": [
893
+ "send-message",
894
+ "broadcast",
895
+ "mailbox-list",
896
+ "mailbox-mark-delivered",
897
+ "mailbox-mark-notified",
898
+ "notification-list",
899
+ "notification-read",
900
+ "notification-replay",
901
+ "notification-mark-pane-attempt",
902
+ "worker-startup-ack",
903
+ "create-task",
904
+ "read-task",
905
+ "list-tasks",
906
+ "update-task",
907
+ "claim-task",
908
+ "transition-task-status",
909
+ "transition-task",
910
+ "release-task-claim",
911
+ "read-config",
912
+ "read-manifest",
913
+ "read-worker-status",
914
+ "read-worker-heartbeat",
915
+ "update-worker-heartbeat",
916
+ "write-worker-inbox",
917
+ "write-worker-identity",
918
+ "append-event",
919
+ "read-events",
920
+ "await-event",
921
+ "write-shutdown-request",
922
+ "read-shutdown-ack",
923
+ "read-monitor-snapshot",
924
+ "write-monitor-snapshot",
925
+ "read-task-approval",
926
+ "write-task-approval"
927
+ ],
928
+ "name": "operation",
929
+ "required": true,
930
+ "type": "enum"
931
+ },
932
+ {
933
+ "appliesToVerbs": [
934
+ "api"
935
+ ],
936
+ "name": "worker-id",
937
+ "type": "string"
938
+ },
939
+ {
940
+ "appliesToVerbs": [
941
+ "api"
942
+ ],
943
+ "name": "task-id",
944
+ "type": "string"
945
+ },
946
+ {
947
+ "appliesToVerbs": [
948
+ "api"
949
+ ],
950
+ "name": "claim-token",
951
+ "type": "string"
952
+ },
953
+ {
954
+ "appliesToVerbs": [
955
+ "api"
956
+ ],
957
+ "enumValues": [
958
+ "pending",
959
+ "blocked",
960
+ "in_progress",
961
+ "completed",
962
+ "failed"
963
+ ],
964
+ "name": "status",
965
+ "type": "enum"
966
+ },
967
+ {
968
+ "appliesToVerbs": [
969
+ "api"
970
+ ],
971
+ "name": "completion_evidence",
972
+ "type": "object"
973
+ },
974
+ {
975
+ "appliesToVerbs": [
976
+ "api"
977
+ ],
978
+ "name": "completionEvidence",
979
+ "type": "object"
980
+ },
981
+ {
982
+ "name": "args",
983
+ "planned": true,
984
+ "type": "string"
985
+ },
986
+ {
987
+ "name": "metadata-json",
988
+ "planned": true,
989
+ "type": "string"
990
+ }
991
+ ],
992
+ "verbs": [
993
+ {
994
+ "name": "read",
995
+ "surface": "state-action"
996
+ },
997
+ {
998
+ "name": "write",
999
+ "surface": "state-action"
1000
+ },
1001
+ {
1002
+ "name": "clear",
1003
+ "surface": "state-action"
1004
+ },
1005
+ {
1006
+ "name": "contract",
1007
+ "surface": "state-action"
1008
+ },
1009
+ {
1010
+ "name": "handoff",
1011
+ "surface": "state-action"
1012
+ },
1013
+ {
1014
+ "name": "start",
1015
+ "surface": "command-positional"
1016
+ },
1017
+ {
1018
+ "name": "list",
1019
+ "surface": "command-positional"
1020
+ },
1021
+ {
1022
+ "name": "status",
1023
+ "surface": "command-positional"
1024
+ },
1025
+ {
1026
+ "name": "monitor",
1027
+ "surface": "command-positional"
1028
+ },
1029
+ {
1030
+ "name": "resume",
1031
+ "surface": "command-positional"
1032
+ },
1033
+ {
1034
+ "name": "shutdown",
1035
+ "surface": "command-positional"
1036
+ },
1037
+ {
1038
+ "name": "api",
1039
+ "surface": "command-positional"
1040
+ },
1041
+ {
1042
+ "name": "graph",
1043
+ "planned": true,
1044
+ "surface": "state-action"
1045
+ },
1046
+ {
1047
+ "name": "prune",
1048
+ "planned": true,
1049
+ "surface": "state-action"
1050
+ },
1051
+ {
1052
+ "name": "migrate",
1053
+ "planned": true,
1054
+ "surface": "state-action"
1055
+ },
1056
+ {
1057
+ "name": "force-overwrite",
1058
+ "planned": true,
1059
+ "surface": "state-action"
1060
+ }
1061
+ ]
1062
+ },
1063
+ "ultragoal": {
1064
+ "graphLabel": "Ultragoal",
1065
+ "hudFields": [
1066
+ "current_phase",
1067
+ "active_goal_id",
1068
+ "status",
1069
+ "counts",
1070
+ "ledger_path",
1071
+ "brief_path"
1072
+ ],
1073
+ "initialState": "goal-planning",
1074
+ "retention": [
1075
+ {
1076
+ "category": "state",
1077
+ "keep": 1
1078
+ },
1079
+ {
1080
+ "category": "artifact"
1081
+ },
1082
+ {
1083
+ "category": "ledger"
1084
+ },
1085
+ {
1086
+ "category": "prune/delete",
1087
+ "maxAgeDays": 30
1088
+ },
1089
+ {
1090
+ "category": "force",
1091
+ "maxAgeDays": 90
1092
+ }
1093
+ ],
1094
+ "skill": "ultragoal",
1095
+ "states": [
1096
+ {
1097
+ "id": "goal-planning",
1098
+ "initial": true
1099
+ },
1100
+ {
1101
+ "id": "pending"
1102
+ },
1103
+ {
1104
+ "id": "active"
1105
+ },
1106
+ {
1107
+ "id": "blocked"
1108
+ },
1109
+ {
1110
+ "id": "failed",
1111
+ "terminal": true
1112
+ },
1113
+ {
1114
+ "id": "complete",
1115
+ "terminal": true
1116
+ },
1117
+ {
1118
+ "id": "handoff",
1119
+ "terminal": true
1120
+ }
1121
+ ],
1122
+ "terminalStates": [
1123
+ "failed",
1124
+ "complete",
1125
+ "handoff"
1126
+ ],
1127
+ "transitions": [
1128
+ {
1129
+ "from": "goal-planning",
1130
+ "to": "pending",
1131
+ "verb": "create-goals"
1132
+ },
1133
+ {
1134
+ "from": "pending",
1135
+ "to": "active",
1136
+ "verb": "complete-goals"
1137
+ },
1138
+ {
1139
+ "from": "active",
1140
+ "to": "blocked",
1141
+ "verb": "checkpoint"
1142
+ },
1143
+ {
1144
+ "from": "active",
1145
+ "to": "failed",
1146
+ "verb": "checkpoint"
1147
+ },
1148
+ {
1149
+ "from": "active",
1150
+ "to": "complete",
1151
+ "verb": "checkpoint"
1152
+ },
1153
+ {
1154
+ "from": "blocked",
1155
+ "to": "active",
1156
+ "verb": "checkpoint"
1157
+ },
1158
+ {
1159
+ "from": "failed",
1160
+ "to": "active",
1161
+ "verb": "complete-goals"
1162
+ },
1163
+ {
1164
+ "from": "goal-planning",
1165
+ "to": "handoff",
1166
+ "verb": "handoff"
1167
+ },
1168
+ {
1169
+ "from": "pending",
1170
+ "to": "handoff",
1171
+ "verb": "handoff"
1172
+ },
1173
+ {
1174
+ "from": "active",
1175
+ "to": "handoff",
1176
+ "verb": "handoff"
1177
+ },
1178
+ {
1179
+ "from": "blocked",
1180
+ "to": "handoff",
1181
+ "verb": "handoff"
1182
+ }
1183
+ ],
1184
+ "typedArgs": [
1185
+ {
1186
+ "appliesToVerbs": [
1187
+ "write",
1188
+ "api"
1189
+ ],
1190
+ "name": "input",
1191
+ "type": "string"
1192
+ },
1193
+ {
1194
+ "appliesToVerbs": [
1195
+ "read",
1196
+ "write",
1197
+ "clear",
1198
+ "contract",
1199
+ "handoff"
1200
+ ],
1201
+ "enumValues": [
1202
+ "deep-interview",
1203
+ "ralplan",
1204
+ "ultragoal",
1205
+ "team"
1206
+ ],
1207
+ "name": "mode",
1208
+ "type": "enum"
1209
+ },
1210
+ {
1211
+ "appliesToVerbs": [
1212
+ "read",
1213
+ "write",
1214
+ "clear",
1215
+ "contract",
1216
+ "handoff",
1217
+ "kickoff",
1218
+ "write-spec",
1219
+ "write-artifact"
1220
+ ],
1221
+ "name": "session-id",
1222
+ "type": "string"
1223
+ },
1224
+ {
1225
+ "appliesToVerbs": [
1226
+ "write",
1227
+ "clear",
1228
+ "handoff"
1229
+ ],
1230
+ "name": "thread-id",
1231
+ "type": "string"
1232
+ },
1233
+ {
1234
+ "appliesToVerbs": [
1235
+ "write",
1236
+ "clear",
1237
+ "handoff"
1238
+ ],
1239
+ "name": "turn-id",
1240
+ "type": "string"
1241
+ },
1242
+ {
1243
+ "appliesToVerbs": [
1244
+ "handoff"
1245
+ ],
1246
+ "enumValues": [
1247
+ "deep-interview",
1248
+ "ralplan",
1249
+ "ultragoal",
1250
+ "team"
1251
+ ],
1252
+ "name": "to",
1253
+ "required": true,
1254
+ "type": "enum"
1255
+ },
1256
+ {
1257
+ "appliesToVerbs": [
1258
+ "write"
1259
+ ],
1260
+ "name": "replace",
1261
+ "type": "boolean"
1262
+ },
1263
+ {
1264
+ "appliesToVerbs": [
1265
+ "write",
1266
+ "clear",
1267
+ "handoff"
1268
+ ],
1269
+ "name": "force",
1270
+ "type": "boolean"
1271
+ },
1272
+ {
1273
+ "appliesToVerbs": [
1274
+ "create-goals"
1275
+ ],
1276
+ "name": "brief",
1277
+ "type": "string"
1278
+ },
1279
+ {
1280
+ "appliesToVerbs": [
1281
+ "create-goals"
1282
+ ],
1283
+ "name": "brief-file",
1284
+ "type": "string"
1285
+ },
1286
+ {
1287
+ "appliesToVerbs": [
1288
+ "create-goals"
1289
+ ],
1290
+ "name": "from-stdin",
1291
+ "type": "boolean"
1292
+ },
1293
+ {
1294
+ "appliesToVerbs": [
1295
+ "create-goals"
1296
+ ],
1297
+ "enumValues": [
1298
+ "aggregate",
1299
+ "per-story"
1300
+ ],
1301
+ "name": "gjc-goal-mode",
1302
+ "type": "enum"
1303
+ },
1304
+ {
1305
+ "appliesToVerbs": [
1306
+ "complete-goals"
1307
+ ],
1308
+ "name": "retry-failed",
1309
+ "type": "boolean"
1310
+ },
1311
+ {
1312
+ "appliesToVerbs": [
1313
+ "checkpoint",
1314
+ "record-review-blockers"
1315
+ ],
1316
+ "name": "goal-id",
1317
+ "required": true,
1318
+ "type": "string"
1319
+ },
1320
+ {
1321
+ "appliesToVerbs": [
1322
+ "checkpoint"
1323
+ ],
1324
+ "enumValues": [
1325
+ "pending",
1326
+ "active",
1327
+ "complete",
1328
+ "failed",
1329
+ "blocked",
1330
+ "review_blocked",
1331
+ "superseded"
1332
+ ],
1333
+ "name": "status",
1334
+ "required": true,
1335
+ "type": "enum"
1336
+ },
1337
+ {
1338
+ "appliesToVerbs": [
1339
+ "checkpoint",
1340
+ "record-review-blockers",
1341
+ "steer"
1342
+ ],
1343
+ "name": "evidence",
1344
+ "required": true,
1345
+ "type": "string"
1346
+ },
1347
+ {
1348
+ "appliesToVerbs": [
1349
+ "checkpoint",
1350
+ "record-review-blockers"
1351
+ ],
1352
+ "name": "gjc-goal-json",
1353
+ "type": "string"
1354
+ },
1355
+ {
1356
+ "appliesToVerbs": [
1357
+ "checkpoint"
1358
+ ],
1359
+ "name": "quality-gate-json",
1360
+ "type": "string"
1361
+ },
1362
+ {
1363
+ "appliesToVerbs": [
1364
+ "steer"
1365
+ ],
1366
+ "enumValues": [
1367
+ "add_subgoal"
1368
+ ],
1369
+ "name": "kind",
1370
+ "type": "enum"
1371
+ },
1372
+ {
1373
+ "appliesToVerbs": [
1374
+ "record-review-blockers",
1375
+ "steer"
1376
+ ],
1377
+ "name": "title",
1378
+ "type": "string"
1379
+ },
1380
+ {
1381
+ "appliesToVerbs": [
1382
+ "record-review-blockers",
1383
+ "steer"
1384
+ ],
1385
+ "name": "objective",
1386
+ "type": "string"
1387
+ },
1388
+ {
1389
+ "appliesToVerbs": [
1390
+ "steer"
1391
+ ],
1392
+ "name": "rationale",
1393
+ "type": "string"
1394
+ },
1395
+ {
1396
+ "appliesToVerbs": [
1397
+ "status",
1398
+ "create-goals",
1399
+ "complete-goals",
1400
+ "checkpoint",
1401
+ "record-review-blockers",
1402
+ "steer"
1403
+ ],
1404
+ "name": "json",
1405
+ "type": "boolean"
1406
+ },
1407
+ {
1408
+ "appliesToVerbs": [
1409
+ "steer"
1410
+ ],
1411
+ "name": "directive-json",
1412
+ "planned": true,
1413
+ "type": "string"
1414
+ },
1415
+ {
1416
+ "name": "args",
1417
+ "planned": true,
1418
+ "type": "string"
1419
+ },
1420
+ {
1421
+ "name": "metadata-json",
1422
+ "planned": true,
1423
+ "type": "string"
1424
+ }
1425
+ ],
1426
+ "verbs": [
1427
+ {
1428
+ "name": "read",
1429
+ "surface": "state-action"
1430
+ },
1431
+ {
1432
+ "name": "write",
1433
+ "surface": "state-action"
1434
+ },
1435
+ {
1436
+ "name": "clear",
1437
+ "surface": "state-action"
1438
+ },
1439
+ {
1440
+ "name": "contract",
1441
+ "surface": "state-action"
1442
+ },
1443
+ {
1444
+ "name": "handoff",
1445
+ "surface": "state-action"
1446
+ },
1447
+ {
1448
+ "name": "status",
1449
+ "surface": "command-positional"
1450
+ },
1451
+ {
1452
+ "name": "create",
1453
+ "surface": "command-positional"
1454
+ },
1455
+ {
1456
+ "name": "create-goals",
1457
+ "surface": "command-positional"
1458
+ },
1459
+ {
1460
+ "name": "complete-goals",
1461
+ "surface": "command-positional"
1462
+ },
1463
+ {
1464
+ "name": "checkpoint",
1465
+ "surface": "command-positional"
1466
+ },
1467
+ {
1468
+ "name": "record-review-blockers",
1469
+ "surface": "command-positional"
1470
+ },
1471
+ {
1472
+ "name": "steer",
1473
+ "surface": "command-positional"
1474
+ },
1475
+ {
1476
+ "name": "graph",
1477
+ "planned": true,
1478
+ "surface": "state-action"
1479
+ },
1480
+ {
1481
+ "name": "prune",
1482
+ "planned": true,
1483
+ "surface": "state-action"
1484
+ },
1485
+ {
1486
+ "name": "migrate",
1487
+ "planned": true,
1488
+ "surface": "state-action"
1489
+ },
1490
+ {
1491
+ "name": "force-overwrite",
1492
+ "planned": true,
1493
+ "surface": "state-action"
1494
+ }
1495
+ ]
1496
+ }
1497
+ }