codex-orchestrator 2.0.11 → 2.0.13

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 (262) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +25 -51
  3. package/dist/src/index.d.ts +2 -8
  4. package/dist/src/index.d.ts.map +1 -1
  5. package/dist/src/index.js +1 -4
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/v2/acceptance-proof.d.ts +46 -31
  8. package/dist/src/v2/acceptance-proof.d.ts.map +1 -1
  9. package/dist/src/v2/acceptance-proof.js +157 -195
  10. package/dist/src/v2/acceptance-proof.js.map +1 -1
  11. package/dist/src/v2/active-attempt.d.ts +94 -0
  12. package/dist/src/v2/active-attempt.d.ts.map +1 -0
  13. package/dist/src/v2/active-attempt.js +200 -0
  14. package/dist/src/v2/active-attempt.js.map +1 -0
  15. package/dist/src/v2/adapters/command.d.ts +6 -0
  16. package/dist/src/v2/adapters/command.d.ts.map +1 -1
  17. package/dist/src/v2/adapters/command.js +43 -2
  18. package/dist/src/v2/adapters/command.js.map +1 -1
  19. package/dist/src/v2/candidate.d.ts +15 -31
  20. package/dist/src/v2/candidate.d.ts.map +1 -1
  21. package/dist/src/v2/candidate.js +7 -29
  22. package/dist/src/v2/candidate.js.map +1 -1
  23. package/dist/src/v2/checked-change.d.ts +3 -2
  24. package/dist/src/v2/checked-change.d.ts.map +1 -1
  25. package/dist/src/v2/checked-change.js +4 -3
  26. package/dist/src/v2/checked-change.js.map +1 -1
  27. package/dist/src/v2/cli-contract.d.ts +1 -1
  28. package/dist/src/v2/cli-contract.d.ts.map +1 -1
  29. package/dist/src/v2/cli-contract.js +4 -6
  30. package/dist/src/v2/cli-contract.js.map +1 -1
  31. package/dist/src/v2/cli.d.ts +8 -0
  32. package/dist/src/v2/cli.d.ts.map +1 -1
  33. package/dist/src/v2/cli.js +13 -0
  34. package/dist/src/v2/cli.js.map +1 -1
  35. package/dist/src/v2/code-review-report.d.ts +10 -18
  36. package/dist/src/v2/code-review-report.d.ts.map +1 -1
  37. package/dist/src/v2/code-review-report.js +63 -60
  38. package/dist/src/v2/code-review-report.js.map +1 -1
  39. package/dist/src/v2/codex-process.d.ts +6 -2
  40. package/dist/src/v2/codex-process.d.ts.map +1 -1
  41. package/dist/src/v2/codex-process.js +25 -9
  42. package/dist/src/v2/codex-process.js.map +1 -1
  43. package/dist/src/v2/config.d.ts +0 -2
  44. package/dist/src/v2/config.d.ts.map +1 -1
  45. package/dist/src/v2/config.js +3 -6
  46. package/dist/src/v2/config.js.map +1 -1
  47. package/dist/src/v2/contained-report-operation.d.ts +41 -196
  48. package/dist/src/v2/contained-report-operation.d.ts.map +1 -1
  49. package/dist/src/v2/contained-report-operation.js +139 -466
  50. package/dist/src/v2/contained-report-operation.js.map +1 -1
  51. package/dist/src/v2/containment.d.ts +1 -0
  52. package/dist/src/v2/containment.d.ts.map +1 -1
  53. package/dist/src/v2/containment.js +12 -2
  54. package/dist/src/v2/containment.js.map +1 -1
  55. package/dist/src/v2/delivery-authority.d.ts +26 -0
  56. package/dist/src/v2/delivery-authority.d.ts.map +1 -0
  57. package/dist/src/v2/delivery-authority.js +44 -0
  58. package/dist/src/v2/delivery-authority.js.map +1 -0
  59. package/dist/src/v2/direct-delivery.d.ts +16 -36
  60. package/dist/src/v2/direct-delivery.d.ts.map +1 -1
  61. package/dist/src/v2/direct-delivery.js +135 -122
  62. package/dist/src/v2/direct-delivery.js.map +1 -1
  63. package/dist/src/v2/immutable-workflow-publisher.d.ts.map +1 -1
  64. package/dist/src/v2/immutable-workflow-publisher.js +3 -1
  65. package/dist/src/v2/immutable-workflow-publisher.js.map +1 -1
  66. package/dist/src/v2/implementation-report.d.ts +3 -1
  67. package/dist/src/v2/implementation-report.d.ts.map +1 -1
  68. package/dist/src/v2/implementation-report.js +28 -10
  69. package/dist/src/v2/implementation-report.js.map +1 -1
  70. package/dist/src/v2/implementation-reviewer.d.ts +41 -12
  71. package/dist/src/v2/implementation-reviewer.d.ts.map +1 -1
  72. package/dist/src/v2/implementation-reviewer.js +114 -42
  73. package/dist/src/v2/implementation-reviewer.js.map +1 -1
  74. package/dist/src/v2/pending-effect-settlement.d.ts +44 -0
  75. package/dist/src/v2/pending-effect-settlement.d.ts.map +1 -0
  76. package/dist/src/v2/pending-effect-settlement.js +69 -0
  77. package/dist/src/v2/pending-effect-settlement.js.map +1 -0
  78. package/dist/src/v2/process-identity.d.ts +45 -0
  79. package/dist/src/v2/process-identity.d.ts.map +1 -0
  80. package/dist/src/v2/process-identity.js +118 -0
  81. package/dist/src/v2/process-identity.js.map +1 -0
  82. package/dist/src/v2/proof-report.d.ts +2 -1
  83. package/dist/src/v2/proof-report.d.ts.map +1 -1
  84. package/dist/src/v2/proof-report.js +10 -4
  85. package/dist/src/v2/proof-report.js.map +1 -1
  86. package/dist/src/v2/review-feedback-coordinator.d.ts +1 -1
  87. package/dist/src/v2/review-feedback-coordinator.d.ts.map +1 -1
  88. package/dist/src/v2/review-feedback-coordinator.js +1 -1
  89. package/dist/src/v2/review-feedback-coordinator.js.map +1 -1
  90. package/dist/src/v2/review-feedback.d.ts +14 -20
  91. package/dist/src/v2/review-feedback.d.ts.map +1 -1
  92. package/dist/src/v2/review-feedback.js +45 -87
  93. package/dist/src/v2/review-feedback.js.map +1 -1
  94. package/dist/src/v2/run-issue.d.ts +129 -88
  95. package/dist/src/v2/run-issue.d.ts.map +1 -1
  96. package/dist/src/v2/run-issue.js +1965 -2381
  97. package/dist/src/v2/run-issue.js.map +1 -1
  98. package/dist/src/v2/run-state-projections.d.ts +84 -0
  99. package/dist/src/v2/run-state-projections.d.ts.map +1 -0
  100. package/dist/src/v2/run-state-projections.js +142 -0
  101. package/dist/src/v2/run-state-projections.js.map +1 -0
  102. package/dist/src/v2/run-store.d.ts +99 -81
  103. package/dist/src/v2/run-store.d.ts.map +1 -1
  104. package/dist/src/v2/run-store.js +245 -542
  105. package/dist/src/v2/run-store.js.map +1 -1
  106. package/dist/src/v2/runtime-assets.d.ts +3 -0
  107. package/dist/src/v2/runtime-assets.d.ts.map +1 -1
  108. package/dist/src/v2/runtime-assets.js +104 -0
  109. package/dist/src/v2/runtime-assets.js.map +1 -1
  110. package/dist/src/v2/runtime.d.ts +56 -44
  111. package/dist/src/v2/runtime.d.ts.map +1 -1
  112. package/dist/src/v2/runtime.js +383 -503
  113. package/dist/src/v2/runtime.js.map +1 -1
  114. package/dist/src/v2/setup.js +0 -2
  115. package/dist/src/v2/setup.js.map +1 -1
  116. package/dist/src/v2/validation-progression.d.ts +70 -0
  117. package/dist/src/v2/validation-progression.d.ts.map +1 -0
  118. package/dist/src/v2/validation-progression.js +247 -0
  119. package/dist/src/v2/validation-progression.js.map +1 -0
  120. package/dist/src/v2/workflow-assets.d.ts +9 -3
  121. package/dist/src/v2/workflow-assets.d.ts.map +1 -1
  122. package/dist/src/v2/workflow-assets.js +256 -43
  123. package/dist/src/v2/workflow-assets.js.map +1 -1
  124. package/internal-workflow/docs/agents/bug-workflow-routing.md +9 -7
  125. package/internal-workflow/docs/agents/coding-skill-routing.md +170 -120
  126. package/internal-workflow/docs/agents/tool-usage.md +23 -12
  127. package/internal-workflow/manifest.json +1 -1
  128. package/internal-workflow/operations/code-review/SKILL.md +34 -15
  129. package/internal-workflow/operations/implementation/SKILL.md +21 -16
  130. package/internal-workflow/profiles/implementer.toml +9 -0
  131. package/internal-workflow/profiles/review_coordinator.toml +9 -0
  132. package/internal-workflow/profiles/spec_reviewer.toml +9 -0
  133. package/internal-workflow/profiles/standards_reviewer.toml +9 -0
  134. package/internal-workflow/schemas/code-review-v1.json +1 -1
  135. package/internal-workflow/schemas/implementation-report-v1.json +1 -1
  136. package/internal-workflow/schemas/proof-report-v1.json +1 -1
  137. package/internal-workflow/skills/bug-root-cause-explainer/SKILL.md +114 -0
  138. package/internal-workflow/skills/bug-root-cause-explainer/agents/openai.yaml +7 -0
  139. package/internal-workflow/skills/bug-root-cause-explainer/evals/evals.json +18 -0
  140. package/internal-workflow/skills/code-review/SKILL.md +84 -306
  141. package/internal-workflow/skills/code-review/agents/openai.yaml +5 -3
  142. package/internal-workflow/skills/code-review/evals/evals.json +83 -0
  143. package/internal-workflow/skills/code-review/references/standards-smells.md +41 -0
  144. package/internal-workflow/skills/diagnosing-bugs/SKILL.md +69 -32
  145. package/internal-workflow/skills/diagnosing-bugs/agents/openai.yaml +2 -2
  146. package/internal-workflow/skills/diagnosing-bugs/evals/evals.json +63 -0
  147. package/internal-workflow/skills/grilling/SKILL.md +51 -0
  148. package/internal-workflow/skills/grilling/agents/openai.yaml +6 -0
  149. package/internal-workflow/skills/grilling/evals/evals.json +47 -0
  150. package/internal-workflow/skills/implement/SKILL.md +135 -0
  151. package/internal-workflow/skills/implement/agents/openai.yaml +6 -0
  152. package/internal-workflow/skills/implement/evals/evals.json +150 -0
  153. package/internal-workflow/skills/plan/SKILL.md +59 -0
  154. package/internal-workflow/skills/plan/agents/openai.yaml +6 -0
  155. package/internal-workflow/skills/plan/evals/evals.json +36 -0
  156. package/internal-workflow/skills/prototype/LOGIC.md +130 -0
  157. package/internal-workflow/skills/prototype/SKILL.md +69 -0
  158. package/internal-workflow/skills/prototype/UI.md +157 -0
  159. package/internal-workflow/skills/prototype/agents/openai.yaml +6 -0
  160. package/internal-workflow/skills/prototype/evals/evals.json +67 -0
  161. package/internal-workflow/skills/research/SKILL.md +110 -0
  162. package/internal-workflow/skills/research/agents/openai.yaml +6 -0
  163. package/internal-workflow/skills/research/evals/evals.json +49 -0
  164. package/internal-workflow/skills/tdd/SKILL.md +72 -67
  165. package/internal-workflow/skills/tdd/agents/openai.yaml +2 -2
  166. package/internal-workflow/skills/tdd/evals/evals.json +12 -0
  167. package/internal-workflow/skills/tdd/mocking.md +48 -1
  168. package/internal-workflow/skills/tdd/refactoring.md +3 -3
  169. package/internal-workflow/skills/tickets-orchestrator/SKILL.md +199 -0
  170. package/internal-workflow/skills/tickets-orchestrator/agents/openai.yaml +6 -0
  171. package/internal-workflow/skills/tickets-orchestrator/evals/evals.json +126 -0
  172. package/internal-workflow/skills/tickets-orchestrator/references/delegate-integrate.md +83 -0
  173. package/internal-workflow/skills/tickets-orchestrator/references/finish-delivery.md +69 -0
  174. package/internal-workflow/skills/tickets-orchestrator/references/stop-completion.md +63 -0
  175. package/internal-workflow/skills/to-spec/SKILL.md +133 -0
  176. package/internal-workflow/skills/to-spec/agents/openai.yaml +6 -0
  177. package/internal-workflow/skills/to-spec/evals/evals.json +24 -0
  178. package/internal-workflow/skills/to-tickets/SKILL.md +189 -0
  179. package/internal-workflow/skills/to-tickets/agents/openai.yaml +6 -0
  180. package/internal-workflow/skills/to-tickets/evals/evals.json +79 -0
  181. package/internal-workflow/skills/to-tickets/references/publishing-details.md +117 -0
  182. package/package.json +1 -1
  183. package/dist/src/v2/proof-store.d.ts +0 -54
  184. package/dist/src/v2/proof-store.d.ts.map +0 -1
  185. package/dist/src/v2/proof-store.js +0 -301
  186. package/dist/src/v2/proof-store.js.map +0 -1
  187. package/dist/src/v2/route-continuations.d.ts +0 -32
  188. package/dist/src/v2/route-continuations.d.ts.map +0 -1
  189. package/dist/src/v2/route-continuations.js +0 -2
  190. package/dist/src/v2/route-continuations.js.map +0 -1
  191. package/dist/src/v2/route-coordinator.d.ts +0 -72
  192. package/dist/src/v2/route-coordinator.d.ts.map +0 -1
  193. package/dist/src/v2/route-coordinator.js +0 -275
  194. package/dist/src/v2/route-coordinator.js.map +0 -1
  195. package/dist/src/v2/route-decision.d.ts +0 -120
  196. package/dist/src/v2/route-decision.d.ts.map +0 -1
  197. package/dist/src/v2/route-decision.js +0 -380
  198. package/dist/src/v2/route-decision.js.map +0 -1
  199. package/dist/src/v2/spec-coordinator.d.ts +0 -73
  200. package/dist/src/v2/spec-coordinator.d.ts.map +0 -1
  201. package/dist/src/v2/spec-coordinator.js +0 -126
  202. package/dist/src/v2/spec-coordinator.js.map +0 -1
  203. package/dist/src/v2/spec-delivery.d.ts +0 -112
  204. package/dist/src/v2/spec-delivery.d.ts.map +0 -1
  205. package/dist/src/v2/spec-delivery.js +0 -336
  206. package/dist/src/v2/spec-delivery.js.map +0 -1
  207. package/dist/src/v2/triage-route.d.ts +0 -68
  208. package/dist/src/v2/triage-route.d.ts.map +0 -1
  209. package/dist/src/v2/triage-route.js +0 -223
  210. package/dist/src/v2/triage-route.js.map +0 -1
  211. package/dist/src/v2/waiting-human-coordinator.d.ts +0 -49
  212. package/dist/src/v2/waiting-human-coordinator.d.ts.map +0 -1
  213. package/dist/src/v2/waiting-human-coordinator.js +0 -509
  214. package/dist/src/v2/waiting-human-coordinator.js.map +0 -1
  215. package/dist/src/v2/waiting-human.d.ts +0 -143
  216. package/dist/src/v2/waiting-human.d.ts.map +0 -1
  217. package/dist/src/v2/waiting-human.js +0 -408
  218. package/dist/src/v2/waiting-human.js.map +0 -1
  219. package/internal-workflow/docs/agents/contract-test-ledger.md +0 -71
  220. package/internal-workflow/docs/agents/review-gates.md +0 -42
  221. package/internal-workflow/docs/agents/review-protocol.md +0 -98
  222. package/internal-workflow/evals/coding-skill-evals.json +0 -373
  223. package/internal-workflow/operations/ambiguity-review/SKILL.md +0 -5
  224. package/internal-workflow/operations/qualification-repair/SKILL.md +0 -17
  225. package/internal-workflow/operations/spec-author/SKILL.md +0 -12
  226. package/internal-workflow/operations/spec-review/SKILL.md +0 -12
  227. package/internal-workflow/operations/triage/SKILL.md +0 -12
  228. package/internal-workflow/profiles/analyst_deep.toml +0 -9
  229. package/internal-workflow/profiles/implementer_standard.toml +0 -9
  230. package/internal-workflow/profiles/proof_agent.toml +0 -8
  231. package/internal-workflow/profiles/reviewer_deep.toml +0 -9
  232. package/internal-workflow/profiles/reviewer_standard.toml +0 -9
  233. package/internal-workflow/schemas/ambiguity-review-v1.json +0 -1
  234. package/internal-workflow/schemas/spec-author-v1.json +0 -1
  235. package/internal-workflow/schemas/spec-review-v1.json +0 -30
  236. package/internal-workflow/schemas/triage-route-v1.json +0 -1
  237. package/internal-workflow/skills/agent-auto/SKILL.md +0 -19
  238. package/internal-workflow/skills/agent-auto/agents/openai.yaml +0 -6
  239. package/internal-workflow/skills/code-debugger/SKILL.md +0 -122
  240. package/internal-workflow/skills/code-debugger/agents/openai.yaml +0 -7
  241. package/internal-workflow/skills/code-review/references/bug-classes.md +0 -56
  242. package/internal-workflow/skills/code-review/references/cleanup-lens.md +0 -52
  243. package/internal-workflow/skills/code-review/references/framework-lenses.md +0 -34
  244. package/internal-workflow/skills/code-review/references/targeted-recipes.md +0 -49
  245. package/internal-workflow/skills/implementation-spec-maker/SKILL.md +0 -107
  246. package/internal-workflow/skills/implementation-spec-maker/agents/openai.yaml +0 -6
  247. package/internal-workflow/skills/implementation-spec-maker/references/source-modes.md +0 -32
  248. package/internal-workflow/skills/implementation-spec-maker/references/spec-template.md +0 -146
  249. package/internal-workflow/skills/implementation-spec-review/SKILL.md +0 -131
  250. package/internal-workflow/skills/implementation-spec-review/agents/openai.yaml +0 -6
  251. package/internal-workflow/skills/implementation-spec-review/evals/evals.json +0 -78
  252. package/internal-workflow/skills/implementation-spec-review/references/review-loop.md +0 -121
  253. package/internal-workflow/skills/small-task-implementer/SKILL.md +0 -112
  254. package/internal-workflow/skills/small-task-implementer/agents/openai.yaml +0 -6
  255. package/internal-workflow/skills/spec-implementer/SKILL.md +0 -133
  256. package/internal-workflow/skills/spec-implementer/agents/openai.yaml +0 -6
  257. package/internal-workflow/skills/spec-implementer/evals/evals.json +0 -30
  258. package/internal-workflow/skills/spec-implementer/references/review-loop.md +0 -100
  259. package/internal-workflow/skills/triage/AGENT-BRIEF.md +0 -192
  260. package/internal-workflow/skills/triage/OUT-OF-SCOPE.md +0 -101
  261. package/internal-workflow/skills/triage/SKILL.md +0 -134
  262. package/internal-workflow/skills/triage/agents/openai.yaml +0 -6
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: tickets-orchestrator
3
+ description: Coordinate an approved multi-ticket dependency graph through unique fresh workers, strict dependency-safe integration, root-owned Git checkpoints, direct Parent proof, and cumulative Spec and Standards review. Route a single ticket to Implement.
4
+ ---
5
+
6
+ # Tickets Orchestrator
7
+
8
+ Coordinate the complete approved graph. This skill owns graph scheduling,
9
+ integration, local checkpoints, and the cumulative Parent outcome. It does not
10
+ replace Implement for one ticket or create another planning layer.
11
+
12
+ ## Graph-only boundary
13
+
14
+ Activate only for an approved graph with multiple executable child tickets,
15
+ multiple ready disjoint children, dependency-frontier coordination, or an
16
+ explicit request to execute the complete graph. A single deterministic ticket
17
+ routes to `$implement`, which supplies its one fresh worker and owns its normal
18
+ proof and review path.
19
+
20
+ Do not implement a planning-context Parent when executable children exist.
21
+ Root must not implement a full child or merge ticket boundaries. A ticket that
22
+ cannot execute from its body plus the Parent PRD is a ticket-packet defect and
23
+ fails closed.
24
+
25
+ ## Authority and ownership
26
+
27
+ Before work, require:
28
+
29
+ - one clean isolated integration worktree and pinned baseline for every
30
+ repository in the graph;
31
+ - the complete Parent PRD, complete tickets, and authoritative tracker state,
32
+ including native Parent, sub-issue, and blocker links;
33
+ - repository policy, bounded child write scopes and exclusions; and
34
+ - deterministic proof obligations that exercise the target coordinator state.
35
+
36
+ Every child receives a unique fresh `implementer`. Begin every assignment with
37
+ `Assigned role: implementer` and include the complete ticket, complete Parent
38
+ PRD, repository policy, bounded write scope, exclusions, required proof, stop
39
+ conditions, and explicit no-Git boundary. Capture a non-empty worker identity
40
+ and wait for that same worker to complete. Workers perform no Git action and
41
+ return changed files, local proof, skipped checks, risks, Decision Deltas,
42
+ overlap, and blockers. Any worker Git event fails the child.
43
+
44
+ Root is the only integrator and Git writer. After the required gates pass, root
45
+ automatically creates a scoped child or wave checkpoint. Push and PR always
46
+ require separate authority. Tracker writes also require explicit authority.
47
+
48
+ ## Ephemeral integration ledger
49
+
50
+ Keep one in-memory integration ledger keyed by stable authoritative repository
51
+ identity, never by a worker or worktree path. For each repository record its
52
+ integration worktree, pinned baseline SHA, ordered confirmed checkpoint SHAs,
53
+ any checkpoint SHAs rediscovered during recovery as `recovery_commits`, and,
54
+ once settled, its final checkpoint and exact `baseline..final` range. Fail
55
+ closed when repository identity or membership is ambiguous.
56
+
57
+ This ledger coordinates only the current run. Never serialize it to a file,
58
+ database, branch, commit, tracker field, comment, tag, or other durable state.
59
+ Git checkpoints remain product integration commits, not workflow-state
60
+ records. Rebuild a lost ledger from authoritative sources and confirmed Git.
61
+
62
+ ## Coordinator contract
63
+
64
+ 1. Populate the repository-keyed in-memory ledger, pin every baseline, inspect
65
+ each integration worktree's clean status, reread Parent, tickets, tracker
66
+ links, blockers, and labels, then build the ready frontier.
67
+ 2. Do not start a blocked child. Sequence any dependency or overlap. Use one
68
+ parallel wave only when owners, write scopes, public seams, proof resources,
69
+ migrations, generated artifacts, and source-of-truth contracts are all
70
+ genuinely disjoint.
71
+ 3. Launch one unique fresh worker per ready child. Never reuse a worker context
72
+ or treat narration as completion.
73
+ 4. Wait for every worker in the wave. A failure, timeout, missing identity,
74
+ incomplete wait, scope drift, dirty overlap, or stale or missing proof fails
75
+ the affected wave.
76
+ 5. Root inspects each worker report and the complete integrated diff, confirms
77
+ ownership and scope, and leaves unrelated or ambiguous state untouched.
78
+ 6. Run only rewritten target-state checks plus the smallest affected combined
79
+ deterministic proof on the settled bytes. Do not use inherited coordinator
80
+ tests, live agents, or Codex execution as acceptance evidence, and do not
81
+ create a replacement runner.
82
+ 7. Only after worker proof, root inspection, target-state checks, and combined
83
+ proof are current may root create the scoped checkpoint in the affected
84
+ repository. Its message names the Parent and exact child or wave issues.
85
+ 8. Reread Git to confirm the checkpoint and clean integration boundary, then
86
+ append its SHA to that repository's in-memory checkpoint sequence before
87
+ releasing successors. A proven checkpoint is an integration boundary, not
88
+ a Parent completion claim.
89
+
90
+ A multi-repository wave settles checkpoints per repository but releases as one
91
+ unit. If settlement stops after one or more repository checkpoints are
92
+ confirmed, retain those earlier commits; do not roll them back, rewrite them,
93
+ or duplicate them to simulate an atomic wave. Reconstruct every affected
94
+ repository from Git. For a repository with no confirmed checkpoint, classify
95
+ the checkpoint as not yet created, not as a failed checkpoint commit. In that
96
+ repository's isolated integration worktree, revalidate intact authorized work
97
+ or assign a unique fresh implementer to recreate missing work under the
98
+ original ticket boundary. Root then reruns affected target-state checks and the
99
+ combined deterministic proof across every repository range and creates only
100
+ the missing scoped checkpoint. Release no successor until every repository
101
+ checkpoint in the wave is confirmed and that combined proof is current. Keep
102
+ all settlement state only in the ephemeral repository-keyed ledger.
103
+
104
+ Any authorized in-scope repair returns to a unique fresh implementer for the
105
+ affected existing ticket under that ticket's original bounded assignment and
106
+ no-Git boundary. Root never edits the repair itself. Root integrates the worker
107
+ result, reruns the affected proof, and creates a new scoped checkpoint before
108
+ final review resumes. New
109
+ behavior, ownership, scope, or ticket boundaries are a Decision Delta and stop
110
+ the graph.
111
+
112
+ No per-ticket delivery Review runs for graph children. Their worker proof and
113
+ root checkpoint gates accumulate into the one final Parent Review below.
114
+
115
+ ## Recovery
116
+
117
+ After interruption, reconstruct each repository entry only from its integration
118
+ worktree, pinned baseline, Parent PRD, tracker, tickets, Git, and unique root
119
+ checkpoints. Do not trust worker narration or create duplicate durable run
120
+ state. Put a uniquely rediscovered checkpoint SHA in both its ordered checkpoint
121
+ sequence and `recovery_commits`; do not create a recovery-only commit.
122
+
123
+ If a checkpoint command result is lost, reread Git in the affected repository
124
+ before any retry. Accept recovery when exactly one reachable scoped commit
125
+ after that repository's baseline has the expected Parent-and-ticket message and
126
+ matching diff. Multiple matches, unexpected commits, uncertain ownership, or
127
+ ambiguous uncommitted or staged state fail closed. When no matching commit
128
+ exists and Git confirms that no checkpoint was created, mark that repository
129
+ checkpoint not yet created and resume the per-repository settlement path; do
130
+ not describe it as a failed checkpoint commit. Leave uncertain bytes untouched
131
+ and release no successor until the whole wave settles.
132
+
133
+ ## Final Parent acceptance
134
+
135
+ After every child checkpoint and final deterministic proof are settled, pin the
136
+ final checkpoint and exact `baseline..final` range in every repository entry.
137
+ Compare the complete Parent PRD directly against all full cumulative repository
138
+ ranges. Do not substitute child reports, local tests, tracker state, or the
139
+ last child diff.
140
+
141
+ The reusable final-review mechanism launches one fresh `spec_reviewer` and one
142
+ fresh `standards_reviewer` in parallel on the repository-keyed set of final
143
+ checkpoints and ranges. Spec checks every Parent obligation against the full
144
+ diff and proof. Standards checks correctness, repository policy, failure paths,
145
+ cleanup, duplicate ownership, compatibility residue, and unnecessary machinery.
146
+
147
+ Capture both non-empty identities and complete both waits. Reviewer verdicts
148
+ are evidence, not authority: root verifies each finding against the Parent and
149
+ cumulative diff, and Parent approval exists when both independent reviews have
150
+ no verified blocker or required-proof gap. Generic `PASS` without direct Parent
151
+ coverage, failed review, and timeout remain blocking. A blocker
152
+ requires a concrete defect or proof gap causally linked to a Parent obligation,
153
+ existing invariant, or mandatory repository rule. Other findings are
154
+ non-blocking observations.
155
+
156
+ Before repair dispatch, root independently establishes **Authority** (the
157
+ Parent obligation, invariant, or rule), **Trigger**, **Impact**, and **Minimal
158
+ repair**. Only a finding with all four facts is a verified blocker eligible for
159
+ repair. When root verifies such a blocker, assign the
160
+ affected existing ticket to a unique fresh implementer with no Git authority.
161
+ Root integrates the returned repair, reruns affected target-state and combined
162
+ deterministic proof, creates the scoped checkpoint, pins the new revision, and
163
+ launches only the affected targeted lens: Spec for Parent behavior, Standards
164
+ for correctness or mandatory rules, and both lenses for mixed or unisolatable
165
+ repairs. Before relaunch, update the affected
166
+ repository's final checkpoint and range. Give the reviewer the previous
167
+ reviewed checkpoint as baseline, the repair delta, repaired blockers, directly
168
+ affected Parent obligations and cross-ticket seams, and current affected proof.
169
+ Review only the repair delta and directly affected Parent obligations.
170
+ Untouched parts of the cumulative result retain their approval.
171
+
172
+ Before each repair dispatch, consolidate every verified blocker from the current review
173
+ into one graph-final repair batch. Dispatch each affected existing ticket once
174
+ under its original boundary, then settle all returned checkpoints and proof
175
+ before targeted Review. The original Parent and ticket authority covers these
176
+ in-scope repairs without another user confirmation. Repeat the graph-final
177
+ repair and targeted Review loop until approval; reviewer count is never a stop
178
+ condition. Use a complete cumulative two-lens Review again only when the repair
179
+ cannot be isolated from previously approved scope.
180
+
181
+ Deterministic checks may prove this mechanism's contract without counting as a
182
+ real final-review activation. The real activation occurs only for the settled
183
+ final graph revision owned by the graph's final acceptance step.
184
+
185
+ Read [delegate-integrate.md](references/delegate-integrate.md) for workers,
186
+ waves, integration, and checkpoints; [finish-delivery.md](references/finish-delivery.md)
187
+ for cumulative review and authorized delivery; and
188
+ [stop-completion.md](references/stop-completion.md) for fail-closed recovery.
189
+
190
+ ## Handoff
191
+
192
+ Report, per repository key, the integration worktree, baseline SHA, ordered
193
+ checkpoint and recovery-commit SHAs, final checkpoint SHA, and exact final
194
+ range. Also report frontier state, worker identities and write scopes,
195
+ dependency and overlap decisions, checkpoint messages, combined deterministic
196
+ results tied to repository ranges, both final review questions and the ranges
197
+ in the reviewer brief when activated, tracker actions, skipped checks, risks,
198
+ Decision Deltas, blockers, and exact Git actions. Never claim Parent completion
199
+ from a child checkpoint or persist the in-memory ledger as handoff state.
@@ -0,0 +1,6 @@
1
+ interface:
2
+ display_name: "Tickets Orchestrator"
3
+ short_description: "Coordinate approved multi-ticket graphs"
4
+ default_prompt: "Use $tickets-orchestrator for this approved multi-ticket graph: unique fresh child implementers, strict dependency-safe root integration, root-owned checkpoints, direct cumulative Parent proof, and independent Spec and Standards review."
5
+ policy:
6
+ allow_implicit_invocation: true
@@ -0,0 +1,126 @@
1
+ {
2
+ "schema_version": 1,
3
+ "skill": "tickets-orchestrator",
4
+ "cases": [
5
+ {
6
+ "id": "deterministic-ticket-direct",
7
+ "prompt": "Deliver one authorized issue whose execution targets and proof are already deterministic.",
8
+ "expected": ["route the ticket to Implement", "launch exactly one fresh implementer through the single-ticket route"],
9
+ "forbidden": ["activate tickets-orchestrator", "manufacture a replacement planning layer"]
10
+ },
11
+ {
12
+ "id": "fresh-worker-assignment-and-git-owner",
13
+ "prompt": "Start two children in an approved graph from a clean isolated integration worktree.",
14
+ "expected": ["use a unique fresh implementer for every ticket", "include the complete ticket, Parent PRD, repository policy, and bounded write scope", "reserve all Git actions to root"],
15
+ "forbidden": ["reuse a worker context", "let a worker stage or commit", "implement a full child on root"]
16
+ },
17
+ {
18
+ "id": "dependency-and-overlap-sequencing",
19
+ "prompt": "Tickets A and B touch the same owner and proof resource; ticket C is natively blocked by B.",
20
+ "expected": ["sequence A and B", "release C only after B and combined deterministic proof succeed"],
21
+ "forbidden": ["launch A and B in one wave", "release C from worker narration"]
22
+ },
23
+ {
24
+ "id": "safe-disjoint-wave",
25
+ "prompt": "Two ready tickets have disjoint owners, write scopes, migrations, generated artifacts, and exclusive proof resources.",
26
+ "expected": ["launch both fresh workers in one parallel wave", "wait for both workers before root integration"],
27
+ "forbidden": ["merge ticket boundaries", "let either worker commit"]
28
+ },
29
+ {
30
+ "id": "repository-keyed-in-memory-scheduling",
31
+ "prompt": "An approved graph spans two repositories with separate integration worktrees and baselines.",
32
+ "expected": ["keep an in-memory ledger keyed by stable repository identity", "schedule each ticket only against its repository integration worktree, baseline, and checkpoints", "keep proof ranges separate per repository"],
33
+ "forbidden": ["key state by worker identity", "imply one Git range across repositories", "persist workflow state"]
34
+ },
35
+ {
36
+ "id": "worker-or-proof-failure-fails-closed",
37
+ "prompt": "A worker times out or fails and another worker returns stale target-state validation.",
38
+ "expected": ["create no affected checkpoint commit", "release no successor", "report both blockers"],
39
+ "forbidden": ["substitute root implementation", "accept inherited legacy tests", "continue from a partial wave"]
40
+ },
41
+ {
42
+ "id": "root-checkpoint-order",
43
+ "prompt": "A wave completes successfully and its successor is ready.",
44
+ "expected": ["wait for worker proof", "inspect the integrated diff on root", "run rewritten target-state checks and combined deterministic proof", "commit a scoped root checkpoint naming the Parent and exact ticket issues before releasing the successor"],
45
+ "forbidden": ["commit from a worker", "release the successor before the checkpoint"]
46
+ },
47
+ {
48
+ "id": "crash-before-checkpoint",
49
+ "prompt": "Root crashes after combined proof but before the checkpoint commit begins.",
50
+ "expected": ["reread the worktree and Git", "treat the ticket as uncommitted", "release no successor until the full root gate is repeated"],
51
+ "forbidden": ["infer a checkpoint from completed proof", "trust worker narration", "skip root diff inspection"]
52
+ },
53
+ {
54
+ "id": "lost-checkpoint-response",
55
+ "prompt": "The root commit command may have succeeded, but its response was lost.",
56
+ "expected": ["reread Git before retrying", "accept exactly one scoped checkpoint reachable from the pinned baseline whose message names the Parent and exact tickets"],
57
+ "forbidden": ["blindly retry the commit", "trust worker narration", "write duplicate durable run state"]
58
+ },
59
+ {
60
+ "id": "repository-keyed-recovery-commit",
61
+ "prompt": "The in-memory ledger is lost after a checkpoint response disappears in one repository of a two-repository graph.",
62
+ "expected": ["rebuild repository entries from authoritative sources and Git", "record the uniquely rediscovered SHA in that repository checkpoint sequence and recovery_commits", "release successors only from the reconstructed repository-scoped checkpoint"],
63
+ "forbidden": ["create a recovery-only commit", "recover from worker narration", "write a ledger file"]
64
+ },
65
+ {
66
+ "id": "multi-repository-wave-partial-checkpoint-settlement",
67
+ "prompt": "A two-repository wave passes proof. Root confirms the checkpoint in repository A, but settlement is interrupted before repository B has a checkpoint; Git later confirms that B has no matching commit and its work may be missing.",
68
+ "expected": ["retain repository A's confirmed earlier checkpoint", "reconstruct both repository entries from Git and classify repository B's checkpoint as not yet created rather than a failed checkpoint commit", "revalidate intact repository B work or recreate missing work through a unique fresh implementer in B's isolated integration worktree", "rerun combined deterministic proof across every repository range and create only B's missing scoped checkpoint", "release no successor until every repository checkpoint and combined proof settle"],
69
+ "forbidden": ["roll back or rewrite repository A's confirmed commit", "duplicate repository A's checkpoint", "release a successor from repository A alone", "persist settlement state"]
70
+ },
71
+ {
72
+ "id": "interrupted-or-dirty-integration",
73
+ "prompt": "Root is interrupted during staging and later finds ambiguous uncommitted state overlapping the ticket scope.",
74
+ "expected": ["leave ambiguous state untouched", "block the affected ticket", "reconstruct only from baseline, tracker, Parent, tickets, Git, and unique root checkpoints"],
75
+ "forbidden": ["guess ownership", "discard the state", "commit ambiguous bytes", "create duplicate workflow bookkeeping"]
76
+ },
77
+ {
78
+ "id": "cumulative-parent-review-mechanism",
79
+ "prompt": "All graph checkpoints and deterministic proof are settled at one final revision.",
80
+ "expected": ["compare the complete Parent PRD directly to the full cumulative diff", "launch fresh Spec and Standards reviewers in parallel", "complete both independent waits and grant coordinator approval only when no verified blocker or required-proof gap remains"],
81
+ "forbidden": ["gate acceptance on the raw reviewer verdict", "review only the last child", "accept a generic PASS", "reuse a reviewer context", "create durable review lifecycle state"]
82
+ },
83
+ {
84
+ "id": "repository-ranges-in-proof-review-and-handoff",
85
+ "prompt": "A two-repository graph is ready for final proof, reviewer briefs, and handoff.",
86
+ "expected": ["pin an exact baseline..final range for each repository", "give the reviewer the repository-keyed baselines, final checkpoints, ranges, and proof", "report each integration worktree, checkpoint and recovery commit, and final range in handoff"],
87
+ "forbidden": ["review only one repository", "omit a repository range from the reviewer brief", "persist the in-memory ledger as handoff state"]
88
+ },
89
+ {
90
+ "id": "failed-final-review",
91
+ "prompt": "The Standards reviewer fails or times out.",
92
+ "expected": ["block Parent completion", "report the failed Standards review"],
93
+ "forbidden": ["replace the reviewer with root self-review", "mark the Parent complete"]
94
+ },
95
+ {
96
+ "id": "material-repair-reviews-new-revision",
97
+ "prompt": "A final reviewer reports a material finding in affected existing ticket #33; root independently establishes its Authority, Trigger, Impact, and Minimal repair without widening the Parent outcome.",
98
+ "expected": ["classify the finding as a verified blocker only after all four facts are established", "assign ticket #33 to a unique fresh implementer with no Git authority", "have root integrate the worker repair, rerun affected target-state and combined deterministic proof, and create a new scoped checkpoint", "launch only the affected fresh targeted lens on the new revision"],
99
+ "forbidden": ["dispatch repair from the reviewer label alone", "have root implement the material defect", "reuse either old approval", "record a review lifecycle", "create a durable completion artifact"]
100
+ },
101
+ {
102
+ "id": "graph-delivery-stops-before-remote-git",
103
+ "prompt": "All local graph checkpoints and cumulative acceptance approve, but push and PR were not separately authorized.",
104
+ "expected": ["report local checkpoint state", "perform no push or PR"],
105
+ "forbidden": ["infer push authority", "open a PR", "mutate the tracker without authority"]
106
+ },
107
+ {
108
+ "id": "cumulative-final-review-repair-loop",
109
+ "prompt": "The cumulative graph-final Standards reviewer reports two findings with established Authority, Trigger, Impact, and Minimal repair plus one unsupported preference labeled BLOCK; the targeted reviewer later reports another finding for which root independently establishes the same four facts.",
110
+ "expected": [
111
+ "consolidate all verified current-review blockers into one graph-final repair batch",
112
+ "treat the unsupported preference as an observation and perform no repair for it",
113
+ "dispatch each affected existing ticket once through a unique fresh Gitless implementer",
114
+ "settle updated checkpoints and cumulative proof before only the affected fresh targeted lens",
115
+ "continue the repair and targeted Review loop until approval"
116
+ ],
117
+ "forbidden": [
118
+ "run per-ticket delivery Review",
119
+ "treat the reviewer label as repair authority",
120
+ "stop because of reviewer count alone",
121
+ "carry approval for the changed impact cone",
122
+ "persist review bookkeeping"
123
+ ]
124
+ }
125
+ ]
126
+ }
@@ -0,0 +1,83 @@
1
+ # Delegate And Integrate
2
+
3
+ ## Fresh child ownership
4
+
5
+ Launch one unique fresh `implementer` per child. Root never keeps a ticket for
6
+ itself, splits one child among workers, or reuses a prior worker context. Begin
7
+ the assignment with `Assigned role: implementer` and provide the complete
8
+ ticket, complete Parent PRD, repository policy, bounded write scope and
9
+ exclusions, blocker state, proof, stop conditions, concurrent-work warning,
10
+ and no-Git boundary.
11
+
12
+ Record a non-empty identity and complete the wait for that same worker. Require
13
+ changed files, local proof, skipped checks, risks, Decision Deltas, overlap, and
14
+ blockers. Worker timeout, failure, missing identity, incomplete wait, scope
15
+ drift, or any staging or commit attempt blocks its ticket. Root must not finish
16
+ the child on the worker's behalf.
17
+
18
+ ## Frontier and waves
19
+
20
+ Build readiness from authoritative native blockers and the current root
21
+ checkpoints. Before scheduling, resolve every ticket to one stable repository
22
+ key and use only that repository's in-memory integration-worktree, baseline,
23
+ and checkpoint entry. A successor stays blocked until its prerequisites have a
24
+ confirmed checkpoint in the correct repository entries and current combined
25
+ proof across every affected repository range.
26
+
27
+ Tickets may share one wave only when their owners, write scopes, public seams,
28
+ proof resources, migrations, generated artifacts, and source-of-truth
29
+ contracts are all disjoint. Any uncertainty or overlap forces strict
30
+ sequencing. Wait for the whole disjoint wave before integration.
31
+
32
+ ## Root integration gate
33
+
34
+ The mandatory order is: worker completion, root diff inspection, rewritten
35
+ target-state checks, combined deterministic proof, root checkpoint commit,
36
+ then successor release.
37
+
38
+ After every wave, root:
39
+
40
+ 1. verifies each worker identity, completed wait, report, and local proof;
41
+ 2. inspects the complete integrated diff and status in every affected
42
+ repository-keyed integration worktree without discarding unrelated or
43
+ ambiguous work;
44
+ 3. confirms every changed file belongs to exactly one authorized child scope;
45
+ 4. runs only the rewritten targeted coordinator checks and the smallest
46
+ affected combined deterministic check on settled bytes;
47
+ 5. creates no new checkpoint in an unsettled repository and releases no
48
+ successor on any failure or stale result, while retaining any earlier
49
+ repository checkpoint already confirmed for the wave; and
50
+ 6. after all gates pass, creates one scoped root checkpoint in each affected
51
+ repository whose message names the Parent and exact child or wave issues,
52
+ confirms each from Git, appends each SHA to the matching in-memory checkpoint
53
+ sequence, and only then recalculates the frontier.
54
+
55
+ Proof briefs must name the repository key, integration worktree, baseline,
56
+ current checkpoint, and exact range being exercised. Never combine bytes from
57
+ different repositories into an implied single Git range. The coordinator may
58
+ aggregate proof outcomes in memory, but must not persist the integration ledger
59
+ or create bookkeeping commits.
60
+
61
+ ## Multi-repository wave settlement
62
+
63
+ Checkpoint settlement is per repository even though successor release is per
64
+ wave. If settlement is interrupted after some repositories commit, keep every
65
+ confirmed earlier checkpoint and reconstruct all affected repository entries
66
+ from Git. Never roll back, rewrite, or duplicate a confirmed commit to make the
67
+ wave appear atomic.
68
+
69
+ For each repository without a confirmed checkpoint, first use Git to determine
70
+ whether its authorized work is intact. No matching commit means its checkpoint
71
+ is not yet created; it is not by itself a failed checkpoint commit. Revalidate
72
+ intact work in that repository's isolated integration worktree. If work is
73
+ missing, assign a unique fresh implementer to recreate it under the original
74
+ ticket scope and no-Git boundary, then integrate it there. Rerun affected
75
+ target-state checks and the combined deterministic proof over every repository
76
+ range before root creates only the missing scoped checkpoints. Release no
77
+ successor until every repository checkpoint for the wave is confirmed and the
78
+ combined proof is current. Record no settlement state outside the ephemeral
79
+ repository-keyed ledger.
80
+
81
+ Root never edits a repair. Every authorized in-scope defect returns to a unique
82
+ fresh implementer, then root reruns affected proof. A change to product behavior, ownership, scope, or ticket
83
+ boundaries is a Decision Delta and stops integration.
@@ -0,0 +1,69 @@
1
+ # Finish And Deliver
2
+
3
+ ## Cumulative Parent acceptance
4
+
5
+ Start only after every child has a confirmed root checkpoint, every blocker is
6
+ settled, every repository-keyed integration worktree is clean, and required
7
+ deterministic proof is current on every final checkpoint.
8
+
9
+ 1. In the in-memory ledger, pin each repository's final checkpoint and exact
10
+ `baseline..final` range. Compare the complete Parent PRD directly against the
11
+ full cumulative diff for every range. Cover every Parent obligation,
12
+ exclusion, child interaction, and failure path.
13
+ 2. Launch one fresh `spec_reviewer` and one fresh `standards_reviewer` in
14
+ parallel. Give both briefs the
15
+ repository-keyed map of integration worktrees, baselines, final checkpoints,
16
+ exact final ranges, and proof plus the Parent PRD, child graph, and repository
17
+ policy. Require Spec to check Parent-obligation fidelity and Standards to
18
+ check correctness and cleanup, each returning `APPROVE` or `BLOCK`.
19
+ 3. Capture both non-empty identities and require both completed waits. Their
20
+ outputs must tie findings to every pinned final range.
21
+ Generic `PASS`, a partial wait, missing Parent coverage, or a failed or
22
+ timed-out reviewer blocks Parent completion. The reviewer verdict is
23
+ evidence, not authority: approval exists when the completed independent
24
+ review has no verified blocker or required-proof gap. A blocker requires a
25
+ concrete defect or proof gap causally linked to a Parent obligation,
26
+ existing invariant, or mandatory repository rule; other findings are
27
+ non-blocking observations.
28
+ 4. Verify findings against the cumulative diff. Before repair dispatch,
29
+ independently establish **Authority**, **Trigger**, **Impact**, and
30
+ **Minimal repair**. Only a finding with all four facts is a verified blocker
31
+ eligible for repair. For every authorized in-scope defect,
32
+ assign a unique fresh implementer to the affected existing ticket under its
33
+ original bounded assignment and explicit no-Git boundary. Root integrates
34
+ the worker result, reruns affected target-state checks and combined
35
+ deterministic proof, creates a new scoped checkpoint, pins that revision,
36
+ and launches only the affected fresh targeted lens: Spec for Parent behavior,
37
+ Standards for correctness or mandatory rules, and both for mixed or
38
+ unisolatable repairs. Root never
39
+ edits the repair. Before relaunch, update the affected in-memory final
40
+ checkpoint and range. Give the reviewer the previous reviewed checkpoint
41
+ as baseline, the repair delta, repaired blockers, directly affected Parent
42
+ obligations and cross-ticket seams, and current affected proof. Review only
43
+ the repair delta and directly affected Parent obligations. Untouched parts of
44
+ the cumulative result retain their approval. Before dispatch, consolidate
45
+ every verified blocker from the current review into one graph-final repair batch and
46
+ dispatch each affected ticket once for that revision. Repeat the graph-final repair and targeted
47
+ Review loop until approval; reviewer count is never a stop condition, and
48
+ in-scope repair requires no new user confirmation. Use a complete cumulative
49
+ Review again only when the repair cannot be isolated from previously approved
50
+ scope.
51
+ 5. No per-ticket delivery Review runs for graph children. Never substitute the
52
+ last child diff, checkpoint messages, child reports,
53
+ tracker state, or root self-review for the completed approval.
54
+
55
+ Checking the reusable launch contract with deterministic tests is not the real
56
+ final activation. Activate reviewers only for the graph's settled final
57
+ revision after all source and consumer synchronization owned by that graph is
58
+ complete.
59
+
60
+ ## Delivery boundaries
61
+
62
+ After coordinator approval from the completed independent evidence, report
63
+ every repository key, integration worktree,
64
+ baseline, checkpoint and recovery-commit SHA, final checkpoint, exact final
65
+ range, direct Parent coverage, deterministic proof, reviewer identities and
66
+ verdicts, skipped checks, and residual risk. This is a report, not durable
67
+ workflow state. Reconcile tracker state only when explicitly authorized. Push,
68
+ PR, merge, and release each require separate authority; local graph acceptance
69
+ grants none of them.
@@ -0,0 +1,63 @@
1
+ # Stop And Completion
2
+
3
+ ## Fail-closed conditions
4
+
5
+ Create no new checkpoint in an unsettled repository and release no successor
6
+ when any of these is true. Retain any earlier repository checkpoint already
7
+ confirmed for a partially settled multi-repository wave:
8
+
9
+ - Parent authority, a ticket body, native blocker state, repository policy,
10
+ owner, write scope, exclusion, or deterministic proof is missing or
11
+ contradictory;
12
+ - a child needs a new product decision, changed ownership, changed scope, or a
13
+ changed ticket boundary;
14
+ - worker identity is missing or reused, its wait is incomplete, it times out or
15
+ fails, its output overlaps another owner, or it attempts a Git action;
16
+ - supposedly parallel children share an owner, write scope, public seam, proof
17
+ resource, migration, generated artifact, or source-of-truth contract;
18
+ - the root diff contains unexplained or dirty overlapping bytes;
19
+ - target-state or combined deterministic proof is missing, failed, or stale;
20
+ - a ticket, checkpoint, proof result, or final range cannot be assigned to
21
+ exactly one repository-keyed in-memory integration entry;
22
+ - checkpoint ownership, message, scope, or commit result is ambiguous;
23
+ - the final reviewer is missing, incomplete, failed, timed out, tied to another
24
+ revision, or does not approve; or
25
+ - work is interrupted while index or worktree ownership is uncertain.
26
+
27
+ ## Recovery
28
+
29
+ Rebuild the lost in-memory repository ledger only from authoritative repository
30
+ identity, each integration worktree and pinned baseline, Parent PRD, tracker,
31
+ tickets, Git, and unique root checkpoints. Worker narration and uncommitted
32
+ state are not completion evidence. Recovery creates no additional durable
33
+ workflow record.
34
+
35
+ After a lost checkpoint response, reread Git in the affected repository before
36
+ any retry. Recover only one commit reachable from that repository's pinned
37
+ baseline with the expected Parent-and-ticket message and exact authorized
38
+ scope. Append that SHA to the matching in-memory checkpoint sequence and
39
+ `recovery_commits`; never create a recovery-only commit. More than one match
40
+ blocks the ticket. If no match exists and Git confirms no checkpoint was
41
+ created, classify that repository checkpoint as not yet created, not as a
42
+ failed checkpoint commit. Preserve confirmed checkpoints in the other
43
+ repositories, then revalidate intact authorized work or recreate missing work
44
+ through a unique fresh implementer in the affected isolated integration
45
+ worktree. Root reruns affected checks and combined proof and creates only the
46
+ missing checkpoint. Leave ambiguous staged or unstaged bytes untouched; do not
47
+ guess, discard, stage, commit, or release a successor. No successor is released
48
+ until every repository checkpoint and the combined deterministic proof settle.
49
+
50
+ ## Completion standard
51
+
52
+ The graph is complete only when every child has one confirmed root checkpoint,
53
+ all blockers are settled, every final repository worktree boundary is clean,
54
+ deterministic proof is current for every exact `baseline..final` range, the
55
+ complete Parent PRD is proved directly against those full cumulative diffs, and
56
+ one fresh Spec reviewer plus one fresh Standards reviewer completed on the
57
+ repository-keyed range map with approval for both lenses. A child
58
+ checkpoint, local test result, tracker status, worker report, generic verdict,
59
+ or review of only the final child cannot establish Parent completion.
60
+
61
+ Report any skipped check, Decision Delta, unresolved overlap, remote Git action,
62
+ or tracker action honestly. Never infer push or PR authority from local graph
63
+ completion.