@open-agent-toolkit/cli 0.3.9 → 0.3.11

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 (193) hide show
  1. package/README.md +2 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/config/dispatch-matrix-recommendation.json +6 -6
  4. package/assets/docs/cli-utilities/configuration.md +12 -8
  5. package/assets/docs/cli-utilities/meta.json +13 -0
  6. package/assets/docs/cli-utilities/tool-packs.md +8 -2
  7. package/assets/docs/cli-utilities/workflow-gates.md +14 -1
  8. package/assets/docs/contributing/code.md +8 -2
  9. package/assets/docs/contributing/documentation.md +7 -1
  10. package/assets/docs/contributing/meta.json +15 -0
  11. package/assets/docs/contributing/updating-model-guidance.md +34 -6
  12. package/assets/docs/contributing/verifying-cursor-pins.md +38 -9
  13. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +14 -5
  14. package/assets/docs/docs-tooling/commands.md +26 -8
  15. package/assets/docs/docs-tooling/meta.json +4 -0
  16. package/assets/docs/docs-tooling/workflows.md +2 -2
  17. package/assets/docs/guide/meta.json +4 -0
  18. package/assets/docs/meta.json +14 -0
  19. package/assets/docs/provider-sync/instruction-sync.md +8 -0
  20. package/assets/docs/provider-sync/meta.json +11 -0
  21. package/assets/docs/provider-sync/providers.md +4 -4
  22. package/assets/docs/provider-sync/scope-and-surface.md +3 -4
  23. package/assets/docs/reference/cli-reference.md +5 -2
  24. package/assets/docs/reference/docs-index-contract.md +22 -6
  25. package/assets/docs/reference/file-locations.md +7 -2
  26. package/assets/docs/reference/index.md +1 -1
  27. package/assets/docs/reference/meta.json +10 -0
  28. package/assets/docs/reference/troubleshooting.md +41 -6
  29. package/assets/docs/workflows/ideas/meta.json +4 -0
  30. package/assets/docs/workflows/meta.json +4 -0
  31. package/assets/docs/workflows/projects/cursor-cloud.md +8 -3
  32. package/assets/docs/workflows/projects/dispatch-ceiling.md +21 -14
  33. package/assets/docs/workflows/projects/evidence-layers.md +6 -8
  34. package/assets/docs/workflows/projects/implementation-execution.md +34 -5
  35. package/assets/docs/workflows/projects/lifecycle.md +7 -1
  36. package/assets/docs/workflows/projects/meta.json +25 -0
  37. package/assets/docs/workflows/projects/orchestration-model.md +5 -6
  38. package/assets/docs/workflows/skills/meta.json +10 -0
  39. package/assets/docs/workflows/skills/recon.md +28 -3
  40. package/assets/public-package-versions.json +4 -4
  41. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +30 -16
  42. package/assets/skills/oat-dispatch-subagents/SKILL.md +4 -12
  43. package/assets/skills/oat-dispatch-subagents/references/managed-claude-example.json +1 -1
  44. package/assets/skills/oat-dispatch-subagents/references/provider-codex.md +51 -0
  45. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +5 -2
  46. package/assets/skills/oat-dispatch-subagents/references/record-schema.md +8 -7
  47. package/assets/skills/oat-docs-analyze/SKILL.md +28 -3
  48. package/assets/skills/oat-docs-apply/SKILL.md +3 -3
  49. package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
  50. package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +5 -2
  51. package/assets/skills/oat-docs-bootstrap/SKILL.md +4 -3
  52. package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +3 -3
  53. package/assets/skills/oat-pjm-decision/SKILL.md +3 -2
  54. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -4
  55. package/assets/skills/oat-project-complete/SKILL.md +47 -2
  56. package/assets/skills/oat-project-design/SKILL.md +10 -6
  57. package/assets/skills/oat-project-discover/SKILL.md +3 -3
  58. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +3 -10
  59. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -4
  60. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  61. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +135 -3
  62. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +8 -10
  63. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -4
  64. package/assets/skills/oat-project-implement/references/plan-and-resume.md +1 -1
  65. package/assets/skills/oat-project-import-plan/SKILL.md +3 -3
  66. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +4 -4
  67. package/assets/skills/oat-project-new/SKILL.md +3 -3
  68. package/assets/skills/oat-project-next/SKILL.md +50 -7
  69. package/assets/skills/oat-project-plan/SKILL.md +4 -4
  70. package/assets/skills/oat-project-plan-writing/SKILL.md +4 -4
  71. package/assets/skills/oat-project-pr-final/SKILL.md +11 -1
  72. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -4
  73. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  74. package/assets/skills/oat-project-quick-start/SKILL.md +12 -8
  75. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -4
  76. package/assets/skills/oat-project-retro/SKILL.md +6 -3
  77. package/assets/skills/oat-project-review-provide/SKILL.md +2 -2
  78. package/assets/skills/oat-project-review-provide-remote/SKILL.md +2 -2
  79. package/assets/skills/oat-project-spec/SKILL.md +3 -3
  80. package/assets/skills/oat-project-summary/SKILL.md +22 -3
  81. package/assets/skills/oat-repo-improve/SKILL.md +2 -2
  82. package/assets/skills/recon/SKILL.md +24 -3
  83. package/assets/skills/recon/references/packet-contract.md +36 -6
  84. package/assets/skills/recon/references/profiles.md +3 -0
  85. package/assets/skills/recon/references/worker-contract.md +16 -3
  86. package/assets/skills/recon/scripts/create-review-brief.mjs +17 -86
  87. package/assets/skills/recon/scripts/lib/contracts.mjs +158 -41
  88. package/assets/skills/recon/scripts/lib/review-binding.mjs +123 -0
  89. package/assets/skills/recon/scripts/lib/routing.mjs +5 -2
  90. package/assets/skills/recon/scripts/reconcile-ledger.mjs +18 -7
  91. package/assets/skills/recon/scripts/render-packet.mjs +93 -1
  92. package/assets/skills/recon/scripts/validate-packet.mjs +119 -88
  93. package/assets/skills/subagent-orchestration/SKILL.md +1 -1
  94. package/assets/skills/subagent-orchestration/references/evidence-and-refresh.md +20 -8
  95. package/assets/skills/subagent-orchestration/references/provider-claude.md +25 -12
  96. package/assets/skills/subagent-orchestration/references/provider-codex.md +27 -18
  97. package/assets/skills/subagent-orchestration/references/provider-cursor.md +40 -10
  98. package/assets/templates/state.md +1 -0
  99. package/dist/commands/backlog/new.d.ts +2 -2
  100. package/dist/commands/backlog/new.d.ts.map +1 -1
  101. package/dist/commands/backlog/new.js +2 -2
  102. package/dist/commands/decision/new.d.ts +2 -2
  103. package/dist/commands/decision/new.d.ts.map +1 -1
  104. package/dist/commands/decision/new.js +2 -2
  105. package/dist/commands/docs/nav/contents.d.ts +9 -0
  106. package/dist/commands/docs/nav/contents.d.ts.map +1 -1
  107. package/dist/commands/docs/nav/contents.js +7 -2
  108. package/dist/commands/docs/nav/fumadocs.d.ts +51 -0
  109. package/dist/commands/docs/nav/fumadocs.d.ts.map +1 -0
  110. package/dist/commands/docs/nav/fumadocs.js +301 -0
  111. package/dist/commands/docs/nav/sync.d.ts +31 -1
  112. package/dist/commands/docs/nav/sync.d.ts.map +1 -1
  113. package/dist/commands/docs/nav/sync.js +163 -6
  114. package/dist/commands/index.d.ts.map +1 -1
  115. package/dist/commands/index.js +2 -0
  116. package/dist/commands/instructions/instructions.utils.d.ts +19 -0
  117. package/dist/commands/instructions/instructions.utils.d.ts.map +1 -1
  118. package/dist/commands/instructions/instructions.utils.js +89 -17
  119. package/dist/commands/instructions/sync/sync.d.ts.map +1 -1
  120. package/dist/commands/instructions/sync/sync.js +49 -2
  121. package/dist/commands/pjm/init.d.ts.map +1 -1
  122. package/dist/commands/pjm/init.js +2 -2
  123. package/dist/commands/project/closeout-check/closeout-invariant.d.ts +97 -0
  124. package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -0
  125. package/dist/commands/project/closeout-check/closeout-invariant.js +301 -0
  126. package/dist/commands/project/closeout-check/index.d.ts +38 -0
  127. package/dist/commands/project/closeout-check/index.d.ts.map +1 -0
  128. package/dist/commands/project/closeout-check/index.js +117 -0
  129. package/dist/commands/project/complete-state/index.d.ts +4 -0
  130. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  131. package/dist/commands/project/complete-state/index.js +11 -13
  132. package/dist/commands/project/dispatch/index.d.ts.map +1 -1
  133. package/dist/commands/project/dispatch/index.js +6 -30
  134. package/dist/commands/project/dispatch/record.d.ts +9 -18
  135. package/dist/commands/project/dispatch/record.d.ts.map +1 -1
  136. package/dist/commands/project/dispatch/record.js +15 -212
  137. package/dist/commands/project/index.d.ts.map +1 -1
  138. package/dist/commands/project/index.js +2 -0
  139. package/dist/commands/project/new/scaffold.d.ts +0 -1
  140. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  141. package/dist/commands/project/new/scaffold.js +19 -20
  142. package/dist/commands/project/promote/promote.d.ts +2 -2
  143. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  144. package/dist/commands/project/promote/promote.js +13 -11
  145. package/dist/commands/shared/frontmatter.d.ts +21 -0
  146. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  147. package/dist/commands/shared/frontmatter.js +70 -4
  148. package/dist/commands/shared/template-source.d.ts +29 -0
  149. package/dist/commands/shared/template-source.d.ts.map +1 -0
  150. package/dist/commands/{pjm → shared}/template-source.js +24 -7
  151. package/dist/commands/state/generate.js +2 -2
  152. package/dist/commands/template/index.d.ts +10 -0
  153. package/dist/commands/template/index.d.ts.map +1 -0
  154. package/dist/commands/template/index.js +87 -0
  155. package/dist/commands/template/resolve.d.ts +31 -0
  156. package/dist/commands/template/resolve.d.ts.map +1 -0
  157. package/dist/commands/template/resolve.js +86 -0
  158. package/dist/fs/io.d.ts +0 -41
  159. package/dist/fs/io.d.ts.map +1 -1
  160. package/dist/fs/io.js +2 -414
  161. package/dist/providers/claude/dispatch-envelope.d.ts.map +1 -1
  162. package/dist/providers/claude/dispatch-envelope.js +1 -0
  163. package/dist/providers/claude/targets.d.ts +1 -0
  164. package/dist/providers/claude/targets.d.ts.map +1 -1
  165. package/dist/providers/claude/targets.js +3 -1
  166. package/dist/providers/codex/codec/shared.d.ts +3 -0
  167. package/dist/providers/codex/codec/shared.d.ts.map +1 -1
  168. package/dist/providers/codex/codec/shared.js +4 -0
  169. package/dist/providers/cursor/codec/catalog.d.ts +2 -2
  170. package/dist/providers/cursor/codec/catalog.d.ts.map +1 -1
  171. package/dist/providers/cursor/codec/catalog.js +45 -0
  172. package/dist/providers/cursor/codec/mapping-validation.d.ts +4 -0
  173. package/dist/providers/cursor/codec/mapping-validation.d.ts.map +1 -0
  174. package/dist/providers/cursor/codec/mapping-validation.js +25 -0
  175. package/dist/providers/cursor/codec/materialize.d.ts.map +1 -1
  176. package/dist/providers/cursor/codec/materialize.js +2 -11
  177. package/dist/providers/cursor/codec/sync-extension.d.ts.map +1 -1
  178. package/dist/providers/cursor/codec/sync-extension.js +2 -11
  179. package/dist/providers/identity/absolute-paths.d.ts +4 -13
  180. package/dist/providers/identity/absolute-paths.d.ts.map +1 -1
  181. package/dist/providers/identity/absolute-paths.js +4 -17
  182. package/dist/providers/identity/generic-dispatch-record.d.ts +1 -1
  183. package/dist/providers/identity/generic-dispatch-record.js +2 -2
  184. package/dist/providers/identity/oat-dispatch-record.d.ts +4 -357
  185. package/dist/providers/identity/oat-dispatch-record.d.ts.map +1 -1
  186. package/dist/providers/identity/oat-dispatch-record.js +4 -236
  187. package/dist/release/public-package-contract.d.ts.map +1 -1
  188. package/dist/release/public-package-contract.js +12 -4
  189. package/dist/validation/skills.d.ts.map +1 -1
  190. package/dist/validation/skills.js +32 -6
  191. package/package.json +2 -2
  192. package/dist/commands/pjm/template-source.d.ts +0 -14
  193. package/dist/commands/pjm/template-source.d.ts.map +0 -1
@@ -247,9 +247,9 @@ remains immutable baseline evidence for the original p01-t01 verification.
247
247
  | `oat-project-lite/SKILL.md` | `b8a40746b272 -> NG`; `090e205f5959 -> LITE-10` |
248
248
  | `oat-project-quick-start/references/docs/autonomy-contract.md` | `* -> NG` |
249
249
  | `oat-project-discover/SKILL.md` | `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `50a1cdc5156b -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `59b36042ba08 -> DISC-06`; `7eaa40e078b9 -> DISC-07`; `b57408be1e7b -> DISC-07`; `4683ea4a7d2f -> DISC-07`; `04454a79d998 -> DISC-08`; `54444ee79fc8 -> DISC-08`; `dd3b5d3d6424 -> DISC-08`; `f64efa435cb2 -> DISC-08`; `1f802b9bc5ad -> DISC-08`; `3fad0405b2bc -> NG`; `2eeba46b7d76 -> DISC-08`; `459873105e7a -> NG` |
250
- | `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `5eb3949f32e1 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `9c3320eee2f8 -> NG`; `8b653210ce17 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `b3df7f6b838c -> DES-07`; `f2cb6d4a915e -> DES-07`; `2f4a7f0c9fe5 -> DES-07`; `feccfddbb990 -> DES-07`; `62556fd0060a -> DES-07`; `5382604ed237 -> DES-07`; `3b8724979206 -> DES-07`; `f86a1f05edb9 -> DES-07`; `65f2c8b5c7fd -> DES-07`; `96e24cf8a888 -> DES-07`; `bd3ad56d6265 -> DES-08`; `a19d9c6d7b42 -> DES-08`; `3af5412588ba -> DES-08`; `a0f1c66507d0 -> DES-08`; `a97364c2ca8b -> DES-08`; `4725e333dea4 -> DES-07`; `595d3a64c0f4 -> DES-07`; `57923a130802 -> DES-07`; `7d8fdfb4ca6f -> NG`; `033fb711de49 -> NG`; `d30bb6464138 -> DES-08` |
250
+ | `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `f9e319c9b223 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `9c3320eee2f8 -> NG`; `8b653210ce17 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `b3df7f6b838c -> DES-07`; `f2cb6d4a915e -> DES-07`; `2f4a7f0c9fe5 -> DES-07`; `feccfddbb990 -> DES-07`; `62556fd0060a -> DES-07`; `5382604ed237 -> DES-07`; `3b8724979206 -> DES-07`; `f86a1f05edb9 -> DES-07`; `65f2c8b5c7fd -> DES-07`; `96e24cf8a888 -> DES-07`; `bd3ad56d6265 -> DES-08`; `a19d9c6d7b42 -> DES-08`; `3af5412588ba -> DES-08`; `a0f1c66507d0 -> DES-08`; `a97364c2ca8b -> DES-08`; `4725e333dea4 -> DES-07`; `595d3a64c0f4 -> DES-07`; `57923a130802 -> DES-07`; `7d8fdfb4ca6f -> NG`; `033fb711de49 -> NG`; `d30bb6464138 -> DES-08` |
251
251
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
252
- | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `2f0ae331febf -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
252
+ | `oat-project-plan/SKILL.md` | `f9e319c9b223 -> NG`; `2f0ae331febf -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
253
253
  | `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09`; `30aa74677c8d -> IMPORT-03`; `430c2bc030a6 -> IMPORT-03`; `93522f67da52 -> NG` |
254
254
  | `oat-project-implement/SKILL.md` | `18980f6bc1a6 -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG`; `bd0cb4988188 -> NG`; `28af4ee0055d -> NG` |
255
255
  | `oat-project-implement/references/completion-and-closeout.md` | `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17`; `9889538f6212 -> NG`; `58add7778cef -> NG`; `3984cd158ca8 -> NG`; `64a638393159 -> NG`; `ecdaaf6c76fa -> NG`; `96e01b7c0713 -> NG`; `79806948373a -> NG`; `82701dfaf962 -> NG`; `b1c7b8299bf7 -> IMPLEMENT-13+IMPLEMENT-15`; `352caf79e5cb -> IMPLEMENT-13+IMPLEMENT-15`; `6792dd0068a7 -> IMPLEMENT-13+IMPLEMENT-15`; `91f4ebf1704c -> IMPLEMENT-13+IMPLEMENT-15`; `1119540c90cd -> IMPLEMENT-13+IMPLEMENT-15`; `13e6d608682c -> IMPLEMENT-15`; `9fc3aa86e096 -> IMPLEMENT-13+IMPLEMENT-15`; `b44bd8f4fe7e -> NG`; `d62f3ae68677 -> NG`; `4133bca9bd9f -> IMPLEMENT-12`; `f6f87d97896b -> IMPLEMENT-14`; `9d066a59d00a -> IMPLEMENT-14`; `abd7a8d8fc89 -> IMPLEMENT-14`; `a2199f9dafee -> IMPLEMENT-14`; `fcef83b91326 -> NG`; `e2df750966f5 -> IMPLEMENT-13+IMPLEMENT-15`; `2b714060ccae -> IMPLEMENT-13+IMPLEMENT-15`; `708e8e6d33ac -> IMPLEMENT-15`; `f81e67549c28 -> IMPLEMENT-13+IMPLEMENT-15`; `8980233e250d -> NG`; `713729395d08 -> IMPLEMENT-13`; `671f3622cd05 -> IMPLEMENT-13`; `19c38f351f3e -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `b552eeb1fa37 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `24de52a2e140 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `18071a1287a9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `318989f76cd7 -> IMPLEMENT-16`; `50c9170a3fc8 -> NG`; `8af4d1f8c32c -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f47aefb3a3cc -> IMPLEMENT-16`; `7c7bcd0381cb -> NG`; `4808cd2e14d6 -> NG`; `906d7d8628af -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `c7221ba40303 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `05eaa2d6f58f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `acf05140d8f3 -> IMPLEMENT-19`; `6d68053180a0 -> NG`; `1128ae7838f5 -> IMPLEMENT-19`; `2b3e427b5fc0 -> IMPLEMENT-19`; `9fdeb38897a2 -> IMPLEMENT-13+IMPLEMENT-15`; `4f1c82e4bef8 -> IMPLEMENT-13+IMPLEMENT-15`; `d74b5b3c4ad3 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `85b8fae4aa24 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `912923a29ecf -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `c9707e20ad4a -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `8108196d68a5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `ad9d8e0114a6 -> IMPLEMENT-16`; `e6ef8cdc8986 -> IMPLEMENT-16`; `d3891824ecfa -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `045d486db046 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `7f3891ba6f9d -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2db46931ac00 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `aaaf9a6d018a -> IMPLEMENT-16`; `5198341f296c -> IMPLEMENT-16`; `4443b0d16d43 -> IMPLEMENT-16`; `76511502e95b -> IMPLEMENT-16`; `585a1f4575a1 -> IMPLEMENT-16`; `7dc4e4afca1e -> IMPLEMENT-16`; `0d3f1d6038fd -> IMPLEMENT-16`; `e3dfc24fbed6 -> IMPLEMENT-16`; `f19c8013230c -> IMPLEMENT-16`; `ba83e7ce6aed -> IMPLEMENT-16`; `4e4c5485b755 -> IMPLEMENT-16`; `cc8e7e01f30c -> IMPLEMENT-17`; `a13b8adde5da -> IMPLEMENT-17` |
@@ -259,7 +259,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
259
259
  | `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `b7ea139780ec -> IMPLEMENT-03+IMPLEMENT-04`; `8d438f2180ba -> IMPLEMENT-03`; `9e72e0518cda -> IMPLEMENT-03`; `3e177a1021e6 -> IMPLEMENT-03+IMPLEMENT-04`; `b59fc9eb9ce3 -> IMPLEMENT-03`; `a2b1d6855283 -> IMPLEMENT-03`; `44351a32e52a -> IMPLEMENT-03`; `b98b022f5523 -> IMPLEMENT-03`; `e9f5b949e214 -> IMPLEMENT-03`; `316fb6d9e980 -> IMPLEMENT-03`; `8b25a2c5c548 -> IMPLEMENT-03`; `1a59b1c0e705 -> IMPLEMENT-03`; `466cd562fc52 -> IMPLEMENT-03`; `083d896978d5 -> IMPLEMENT-03`; `f4ab11c13ae9 -> IMPLEMENT-03`; `7dc17ffcc1c4 -> IMPLEMENT-03`; `f731a90adabd -> IMPLEMENT-04`; `886ac01e7aa9 -> IMPLEMENT-04`; `b715db67df0c -> IMPLEMENT-04`; `2d9f26a539f3 -> IMPLEMENT-10`; `28384dee114f -> IMPLEMENT-05`; `f2591a4978b4 -> NG`; `8290823080b5 -> IMPLEMENT-06`; `f75789bf6c8e -> IMPLEMENT-07`; `b5bd4852c58d -> NG`; `6e7fac10d436 -> NG`; `16f6203aadac -> NG`; `4b876e81abad -> NG` |
260
260
  | `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `8c7b024c4e9d -> NG`; `40f8be47affa -> NG`; `3a3c390528f3 -> DOCUMENT-03`; `2a7ba093b315 -> DOCUMENT-02`; `252aabe44db2 -> DOCUMENT-02`; `3751172de299 -> DOCUMENT-02`; `b987a0697ba9 -> DOCUMENT-01`; `a06ff3ca7926 -> NG`; `0d04714ca9fc -> NG`; `f79af01d94c6 -> DOCUMENT-02`; `71634113c348 -> DOCUMENT-02`; `cdb707f5081e -> NG` |
261
261
  | `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
262
- | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `35cb2ea1d677 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `f3e49b727752 -> NG`; `f979b2342d28 -> NG`; `803bf40ec423 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG`; `5f315ab87cb1 -> NG` |
262
+ | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a8983fec040c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `f3e49b727752 -> NG`; `f979b2342d28 -> NG`; `803bf40ec423 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG`; `5f315ab87cb1 -> NG` |
263
263
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
264
264
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
265
265
  | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> NG` |
@@ -283,7 +283,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
283
283
  | `oat-project-quick-start/SKILL.md` | `aa560418765a -> QS-13`; `40ddcac880ef -> NG` |
284
284
  | `oat-project-plan/SKILL.md` | `2b32bc5e9fea -> NG`; `58cc6b0adf97 -> PLAN-13`; `9fba3b40b522 -> NG` |
285
285
  | `oat-project-import-plan/SKILL.md` | `349790ade2e1 -> IMPORT-10`; `8ea53b60c725 -> NG` |
286
- | `oat-project-implement/references/completion-and-closeout.md` | `5636ed3a0418 -> NG` |
286
+ | `oat-project-implement/references/completion-and-closeout.md` | `5636ed3a0418 -> NG`; `98aadc6a1691 -> NG`; `218e19d342f1 -> NG`; `5c6cf9e72316 -> NG` |
287
287
 
288
288
  ## Prompt-scan comparison
289
289
 
@@ -7,7 +7,7 @@ disable-model-invocation: true
7
7
  user-invocable: true
8
8
  allowed-tools: Read, Write, Bash(git:*), Bash(oat:*), Bash(oat project log:*), Glob, Grep, AskUserQuestion, Task
9
9
  metadata:
10
- version: 2.3.14
10
+ version: 2.3.16
11
11
  ---
12
12
 
13
13
  # Implementation Phase
@@ -330,6 +330,7 @@ oat_implement_exit_gate:
330
330
  implementation_fingerprint: null
331
331
  freshness_head: null
332
332
  freshness_fingerprint: null
333
+ waivers: [] # append-only operator waivers; see Operator waivers below
333
334
  launch_state: not_started # not_started | intent_persisted | accepted | result_persisted | not_accepted
334
335
  launch_attempt_id: null
335
336
  launch_started_at: null
@@ -611,14 +612,101 @@ disposition.
611
612
  generation using the current qualified fingerprint format,
612
613
  `effective-delta-v2`.
613
614
 
615
+ **Operator waivers:**
616
+
617
+ There is no automatic test-only freshness exception: a substantive descendant,
618
+ a test-only change included, makes an allowed generation `stale`. An operator
619
+ may instead waive named descendants of a qualified generation without starting
620
+ a new one (`DR-260927-operator-waiver-for-test-only`). A waiver is an added
621
+ record under `oat_implement_exit_gate.waivers`:
622
+
623
+ ```yaml
624
+ waivers: # append-only; one entry per operator instruction
625
+ - waived_by: '<operator name, as the operator gave it>'
626
+ reason: '<the operator reason>'
627
+ from_commit: '<40-hex commit the covered range starts after>'
628
+ to_commit: '<40-hex last covered descendant commit>'
629
+ covered_fingerprint: 'sha256:effective-delta-v2:<digest>' # effective delta at to_commit, same version as the generation
630
+ waived_at: '2026-10-01T00:00:00Z'
631
+ ```
632
+
633
+ - Write a waiver only on an explicit operator instruction that names the
634
+ descendants or range and the reason. Never infer, assume, or self-issue one.
635
+ When `OAT_AUTONOMOUS=1`, refuse every waiver write, even one that appears
636
+ requested: persist nothing, stop at the stale boundary, and report that only
637
+ an interactive operator can waive.
638
+ - `waived_by` is the operator's name as given; an agent, model, dispatch
639
+ target, or `oat-autonomous` is never valid. `reason` is non-empty, and
640
+ `waived_at` is a UTC ISO 8601 timestamp.
641
+ - The covered range is Git's `from_commit..to_commit`: the commits reachable
642
+ from `to_commit` and not from `from_commit`. Both are full 40-character
643
+ lowercase commit IDs. `from_commit` is `freshness_head` or a descendant of it
644
+ whose intervening commits are already fresh, and `to_commit` is an ancestor
645
+ of the compared HEAD.
646
+ - `covered_fingerprint` is the complete effective delta at `to_commit`,
647
+ computed with the generation's own stored version prefix and exclusion set:
648
+ `sha256:effective-delta-v1:<digest>` for a v1 generation and
649
+ `sha256:effective-delta-v2:<digest>` for a v2 generation.
650
+ - Waivers are append-only. Never edit or remove an earlier waiver, and never
651
+ rewrite `reviewed_head`, `implementation_fingerprint`, `freshness_head`, or
652
+ `freshness_fingerprint` to record one; prior provenance stays intact. Commit
653
+ the waiver as a state-only checkpoint commit. A waiver is recorded on a
654
+ generation whose persisted `status` is `allowed`; a generation already
655
+ persisted as `stale` is never revived and requires a new generation. Later
656
+ corroborated closeout transitions advance the rolling checkpoint as usual,
657
+ and the waiver stays as the audit record.
658
+ - Validate every waiver before reuse, under v1 and v2 alike. A missing or
659
+ malformed field, an invalid `waived_by`, a range whose `from_commit` is not
660
+ an ancestor of `to_commit` or whose `to_commit` is not an ancestor of the
661
+ compared HEAD, a `covered_fingerprint` whose version differs from the
662
+ generation's or that does not match the recomputed effective delta at
663
+ `to_commit`, or any waiver on a legacy unqualified generation fails closed:
664
+ the generation reads `stale`, never `allowed`.
665
+ - Walk descendants after `freshness_head` in commit order exactly as above. A
666
+ descendant inside a valid waiver's range is waived: neither substantive nor
667
+ unknown. For a merge, rebase, or base-update boundary after the latest valid
668
+ waiver's `to_commit`, compare the recomputed complete effective delta with
669
+ that waiver's `covered_fingerprint` when it is newer than the rolling
670
+ checkpoint.
671
+ - A waived generation reads `allowed` only while nothing substantive lands
672
+ after the covered range. Any later substantive or unknown descendant outside
673
+ every waiver's range makes it `stale` again. The rule is identical for
674
+ `effective-delta-v1` and `effective-delta-v2`; the versions differ only in
675
+ which paths count as substantive.
676
+ - `oat-project-summary` and `oat-project-pr-final` show every waiver: who
677
+ waived, the reason, the covered range, the fingerprint version, and the
678
+ timestamp.
679
+
680
+ **Stale-boundary waiver offer:**
681
+
682
+ When a persisted `allowed` qualified generation classifies as `stale` only
683
+ because of descendant commits after `freshness_head` (or after the latest
684
+ valid waiver's `to_commit`) that no valid waiver covers, do not persist
685
+ `stale` yet. In an interactive run, list those commits and their changed paths,
686
+ then ask the operator whether to waive that exact range or start a new gate
687
+ run. A waiver needs the operator's name and reason; record it as above,
688
+ commit it, and classify again. Persist `stale` and start a new generation only
689
+ when the operator declines the waiver. When `OAT_AUTONOMOUS=1`, never offer or
690
+ issue a waiver: persist `stale` and start a new gate run. Every other stale
691
+ cause, such as a malformed waiver, a configuration-fingerprint mismatch, a
692
+ re-enabled project override, a legacy unqualified generation, or a merge whose
693
+ effective delta no longer matches, is persisted `stale` without an offer.
694
+
695
+ An operator may also record a waiver before resuming implement, for example
696
+ after `oat-project-next` routes stale state: include the range, name, and
697
+ reason in the instruction that resumes `oat-project-implement`, which records
698
+ it on the still-`allowed` generation before classifying freshness.
699
+
614
700
  Before approval-aware sequencing, final HiLL approval, implementation
615
701
  completion, or success output, run the configured gate:
616
702
 
617
703
  1. Classify persisted state. A fresh allowed generation proceeds to Step 15
618
704
  without duplicate gate or receive execution. A valid `pending` or `blocked`
619
705
  generation resumes its first incomplete boundary with its persisted
620
- configuration. For absent or stale state, start a new generation and resolve
621
- the gate for this skill:
706
+ configuration. When a persisted `allowed` generation classifies as stale,
707
+ apply the **Stale-boundary waiver offer** in **Operator waivers** before
708
+ persisting `stale`. For absent or stale state, start a new generation and
709
+ resolve the gate for this skill:
622
710
 
623
711
  ```bash
624
712
  oat gate resolve oat-project-implement --project "$PROJECT_PATH" --json
@@ -730,7 +818,9 @@ child dispatches.
730
818
  Before creating or resuming `oat_post_implement_sequence`, and again before
731
819
  every dispatch, final HiLL transition, completion mutation, and success output,
732
820
  require `oat_implement_exit_gate` to remain allowed and fresh. If it becomes
733
- stale, malformed, pending, or blocked, persist/retain that state, stop the
821
+ stale, first apply the Step 14 **Stale-boundary waiver offer**; a recorded
822
+ waiver that classifies fresh lets the sequence continue. If it remains stale,
823
+ or becomes malformed, pending, or blocked, persist/retain that state, stop the
734
824
  sequence, and resume through `oat-project-implement`.
735
825
 
736
826
  For `oat_workflow_mode: lite`, there is no final HiLL approval step. A passed
@@ -869,6 +959,30 @@ discard a nonempty preference. Replace both with the exact normalized arrays
869
959
  resolved above. Never add `retro` unless the configured `postApproval` array
870
960
  explicitly contains it; the autonomous default remains `postApproval: []`.
871
961
 
962
+ **Closeout check before the first dispatch:**
963
+
964
+ Commit the snapshot before dispatching any sequence child, then run the
965
+ read-only closeout check against the committed `state.md`:
966
+
967
+ ```bash
968
+ CLOSEOUT_CHECK_ARGS=("$PROJECT_PATH" --json)
969
+ if [ "${OAT_AUTONOMOUS:-}" = "1" ]; then
970
+ CLOSEOUT_CHECK_ARGS+=(--autonomous)
971
+ fi
972
+ CLOSEOUT_CHECK_EXIT=0
973
+ CLOSEOUT_CHECK_JSON=$(oat project closeout-check "${CLOSEOUT_CHECK_ARGS[@]}") || CLOSEOUT_CHECK_EXIT=$?
974
+ ```
975
+
976
+ An incomplete result exits 1 by design; route on the JSON, not the exit code.
977
+ Before the first child it reports `status: incomplete` with `nextOwner` set
978
+ to the first incomplete stored step to dispatch, or, when `pre_approval` is
979
+ empty, to the approval boundary to record: `approval: approved` after final
980
+ HiLL sign-off, or `approval: not_required` when no final checkpoint exists. A
981
+ `snapshot_missing` or `snapshot_malformed` invariant means the snapshot did not
982
+ persist: dispatch nothing, repair the persisted snapshot, and resume through
983
+ `oat-project-implement`. Run the same check on every resume and dispatch the
984
+ step it names.
985
+
872
986
  The snapshot is immutable for this closeout: never re-resolve
873
987
  `workflow.postImplementSequence` while it is incomplete. Iterate
874
988
  `pre_approval` and `post_approval` in their stored array order; do not sort or
@@ -1021,6 +1135,24 @@ policy-allowed disposition, including an allowed no-gate outcome, and the Step
1021
1135
  that is blocked, unresolved, malformed, or stale leaves implementation in
1022
1136
  progress.
1023
1137
 
1138
+ Before any Step 16 write, run the closeout check against the committed
1139
+ `state.md`:
1140
+
1141
+ ```bash
1142
+ CLOSEOUT_CHECK_ARGS=("$PROJECT_PATH" --json)
1143
+ if [ "${OAT_AUTONOMOUS:-}" = "1" ]; then
1144
+ CLOSEOUT_CHECK_ARGS+=(--autonomous)
1145
+ fi
1146
+ CLOSEOUT_CHECK_EXIT=0
1147
+ CLOSEOUT_CHECK_JSON=$(oat project closeout-check "${CLOSEOUT_CHECK_ARGS[@]}") || CLOSEOUT_CHECK_EXIT=$?
1148
+ ```
1149
+
1150
+ Continue only when `status` is `complete` or `not_required`. An `incomplete`
1151
+ result leaves implementation in progress: report its `invariant` and
1152
+ `nextOwner`, write nothing, and resume Step 15 at that owner. `not_required`
1153
+ means no snapshot was owed: the closeout is not configured, not autonomous,
1154
+ and not lite. A command error fails closed the same way.
1155
+
1024
1156
  Update `"$PROJECT_PATH/implementation.md"` frontmatter:
1025
1157
 
1026
1158
  ```yaml
@@ -402,11 +402,9 @@ All project-aware launch paths record the launch in the project's run record.
402
402
  Construct and redact the complete generic record plus OAT role event before the
403
403
  native host call; when the call returns `accepted` or `blocked-before-start`,
404
404
  write the request ID, the `Dispatch:` stamp, the launch status, and later the
405
- terminal outcome into the run record in `implementation.md`. Writing a
406
- per-dispatch file with `oat project dispatch record` is optional and off by
407
- default: no lifecycle skill or command consumes those files, so do not persist
408
- one unless the host has explicitly opted in. The managed Claude validation-only
409
- call below is mandatory and does not persist a file. A rejected
405
+ terminal outcome into the run record in `implementation.md`; that run record
406
+ is the only launch record. The managed Claude validation-only
407
+ `oat project dispatch record` call below is mandatory and writes nothing. A rejected
410
408
  launch must attest `provesNoChildStarted: true`; only it permits one
411
409
  exact-target approximation with a fresh request ID. Preserve exact model,
412
410
  effort, reasoning, service tier, route, authority, and provider controls.
@@ -531,15 +529,15 @@ Claude rules:
531
529
  Assemble the input with a JSON-aware tool such as `jq --slurpfile` and
532
530
  `--rawfile`. Set the pre-launch record base to `launch_status: planned` and
533
531
  `child_outcome: null`, then run
534
- `oat project dispatch record --event-file <input> --json` without
535
- `--project`. Require `status: validated-only`. Launch only
532
+ `oat project dispatch record --event-file <input> --json`. Require
533
+ `status: validated-only`. Launch only
536
534
  `record.payload.variant` (and `record.payload.model` when present) from that
537
535
  result. The producer rejects a missing or stale variant, an absent or drifted
538
536
  generated definition, and a conflicting per-call model. It reports every
539
537
  violation it finds in one run, one `stage path: message` line each, so fix
540
538
  them together and rerun. After the terminal child outcome, rebuild through
541
- the same managed input with the terminal status; persistence remains subject
542
- to the opt-in rule above. Never copy model, effort, selector, candidate, or
539
+ the same managed input with the terminal status; the command still writes
540
+ nothing. Never copy model, effort, selector, candidate, or
543
541
  payload fields into the record base: the accepted envelope owns and derives
544
542
  them.
545
543
 
@@ -727,7 +725,7 @@ Dispatch policy: {policy}; selected={selected value | none}; cap={value | none}
727
725
  ```text
728
726
  Dispatch policy: balanced; selected=xhigh; cap=xhigh (codex, enforced — variant oat-phase-implementer-gpt-5-6-terra-xhigh)
729
727
  Dispatch policy: inherit host defaults; selected=none; cap=none (codex, advisory — base role follows provider default)
730
- Dispatch policy: balanced; selected=claude-sonnet-5/high; cap=claude-sonnet-5/high (claude, enforced — native variant oat-phase-implementer-claude-claude-sonnet-5-high)
728
+ Dispatch policy: balanced; selected=claude-sonnet-5-5/high; cap=claude-sonnet-5-5/high (claude, enforced — native variant oat-phase-implementer-claude-claude-sonnet-5-5-high)
731
729
  Cursor materialized-variant example: Dispatch policy: frontier; selected=gpt-5.6-sol-max; cap=gpt-5.6-sol-max (cursor, enforced — native variant oat-phase-implementer-gpt-5-6-sol-max)
732
730
  Dispatch policy: unresolved; selected=none; cap=none (codex, advisory — policy set but no value resolved)
733
731
  ```