@open-agent-toolkit/cli 0.2.40 → 0.2.45

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 (213) hide show
  1. package/assets/agents/oat-codebase-mapper.md +15 -3
  2. package/assets/agents/oat-phase-implementer.md +34 -9
  3. package/assets/agents/oat-reviewer.md +2 -2
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/cli-utilities/configuration.md +11 -1
  6. package/assets/docs/cli-utilities/tool-packs.md +8 -0
  7. package/assets/docs/contributing/skills.md +67 -14
  8. package/assets/docs/quickstart.md +9 -0
  9. package/assets/docs/reference/cli-reference.md +56 -1
  10. package/assets/docs/reference/file-locations.md +18 -1
  11. package/assets/docs/reference/oat-directory-structure.md +20 -4
  12. package/assets/docs/workflows/projects/artifacts.md +27 -1
  13. package/assets/docs/workflows/projects/implementation-execution.md +22 -0
  14. package/assets/docs/workflows/projects/index.md +6 -0
  15. package/assets/docs/workflows/projects/lifecycle.md +19 -5
  16. package/assets/docs/workflows/projects/picking-up-projects.md +75 -0
  17. package/assets/docs/workflows/projects/pr-flow.md +22 -1
  18. package/assets/docs/workflows/projects/reviewing-oat-prs.md +60 -0
  19. package/assets/public-package-versions.json +4 -4
  20. package/assets/skills/analyze/SKILL.md +13 -5
  21. package/assets/skills/compare/SKILL.md +11 -2
  22. package/assets/skills/oat-brainstorm/SKILL.md +135 -32
  23. package/assets/skills/oat-brainstorm/references/destinations.md +9 -6
  24. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +11 -1
  25. package/assets/skills/oat-dispatch-subagents/SKILL.md +19 -6
  26. package/assets/skills/oat-doctor/SKILL.md +8 -1
  27. package/assets/skills/oat-project-autonomous/SKILL.md +45 -1
  28. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +8 -8
  29. package/assets/skills/oat-project-capture/SKILL.md +29 -9
  30. package/assets/skills/oat-project-complete/SKILL.md +610 -38
  31. package/assets/skills/oat-project-complete/scripts/parse-completion-retry-fields.mjs +265 -0
  32. package/assets/skills/oat-project-complete/scripts/recover-completion-receipts.mjs +764 -0
  33. package/assets/skills/oat-project-complete/scripts/resolve-completion-retry.mjs +134 -0
  34. package/assets/skills/oat-project-complete/scripts/validate-nonarchive-lifecycle-receipt.mjs +160 -0
  35. package/assets/skills/oat-project-design/SKILL.md +33 -9
  36. package/assets/skills/oat-project-discover/SKILL.md +16 -3
  37. package/assets/skills/oat-project-document/SKILL.md +10 -4
  38. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +8 -8
  39. package/assets/skills/oat-project-implement/SKILL.md +14 -3
  40. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +18 -6
  41. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +8 -8
  42. package/assets/skills/oat-project-implement/references/phase-execution.md +9 -3
  43. package/assets/skills/oat-project-implement/references/plan-and-resume.md +3 -0
  44. package/assets/skills/oat-project-import-plan/SKILL.md +15 -9
  45. package/assets/skills/oat-project-new/SKILL.md +7 -5
  46. package/assets/skills/oat-project-next/SKILL.md +32 -10
  47. package/assets/skills/oat-project-plan/SKILL.md +18 -3
  48. package/assets/skills/oat-project-pr-final/SKILL.md +23 -2
  49. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +8 -8
  50. package/assets/skills/oat-project-pr-progress/SKILL.md +23 -2
  51. package/assets/skills/oat-project-progress/SKILL.md +23 -9
  52. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +20 -2
  53. package/assets/skills/oat-project-quick-start/SKILL.md +48 -18
  54. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +8 -8
  55. package/assets/skills/oat-project-reconcile/SKILL.md +14 -10
  56. package/assets/skills/oat-project-retro/SKILL.md +3 -3
  57. package/assets/skills/oat-project-retro/references/apply-procedure.md +102 -6
  58. package/assets/skills/oat-project-retro-file/SKILL.md +57 -6
  59. package/assets/skills/oat-project-review-provide/SKILL.md +56 -6
  60. package/assets/skills/oat-project-review-receive/SKILL.md +16 -7
  61. package/assets/skills/oat-project-review-receive-remote/SKILL.md +9 -3
  62. package/assets/skills/oat-project-revise/SKILL.md +12 -3
  63. package/assets/skills/oat-project-spec/SKILL.md +16 -3
  64. package/assets/skills/oat-project-summary/SKILL.md +113 -13
  65. package/assets/skills/oat-repo-improve/SKILL.md +18 -7
  66. package/assets/skills/oat-review-provide-remote/SKILL.md +11 -2
  67. package/assets/skills/oat-wave-execute/SKILL.md +34 -2
  68. package/assets/skills/oat-worktree-bootstrap/SKILL.md +13 -1
  69. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +13 -1
  70. package/dist/commands/config/index.d.ts +1 -0
  71. package/dist/commands/config/index.d.ts.map +1 -1
  72. package/dist/commands/config/index.js +30 -2
  73. package/dist/commands/doctor/index.d.ts +2 -0
  74. package/dist/commands/doctor/index.d.ts.map +1 -1
  75. package/dist/commands/doctor/index.js +27 -3
  76. package/dist/commands/doctor/synced-projects.d.ts +12 -0
  77. package/dist/commands/doctor/synced-projects.d.ts.map +1 -0
  78. package/dist/commands/doctor/synced-projects.js +208 -0
  79. package/dist/commands/init/gitattributes.d.ts +4 -0
  80. package/dist/commands/init/gitattributes.d.ts.map +1 -0
  81. package/dist/commands/init/gitattributes.js +12 -0
  82. package/dist/commands/init/gitignore.d.ts +8 -1
  83. package/dist/commands/init/gitignore.d.ts.map +1 -1
  84. package/dist/commands/init/gitignore.js +146 -41
  85. package/dist/commands/init/index.d.ts +2 -0
  86. package/dist/commands/init/index.d.ts.map +1 -1
  87. package/dist/commands/init/index.js +3 -0
  88. package/dist/commands/init/managed-block.d.ts +10 -0
  89. package/dist/commands/init/managed-block.d.ts.map +1 -0
  90. package/dist/commands/init/managed-block.js +40 -0
  91. package/dist/commands/init/tools/workflows/install-workflows.js +1 -1
  92. package/dist/commands/local/index.d.ts.map +1 -1
  93. package/dist/commands/local/index.js +5 -1
  94. package/dist/commands/local/sync.d.ts +4 -0
  95. package/dist/commands/local/sync.d.ts.map +1 -1
  96. package/dist/commands/local/sync.js +123 -2
  97. package/dist/commands/pjm/adoption.d.ts +2 -0
  98. package/dist/commands/pjm/adoption.d.ts.map +1 -1
  99. package/dist/commands/pjm/adoption.js +1 -1
  100. package/dist/commands/project/archive/archive-utils.d.ts +24 -0
  101. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  102. package/dist/commands/project/archive/archive-utils.js +349 -22
  103. package/dist/commands/project/archive/index.d.ts.map +1 -1
  104. package/dist/commands/project/archive/index.js +1 -0
  105. package/dist/commands/project/archive/push-runner.d.ts +5 -1
  106. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  107. package/dist/commands/project/archive/push-runner.js +33 -4
  108. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  109. package/dist/commands/project/complete-state/index.js +3 -1
  110. package/dist/commands/project/index.d.ts.map +1 -1
  111. package/dist/commands/project/index.js +12 -0
  112. package/dist/commands/project/links/compute.d.ts +9 -0
  113. package/dist/commands/project/links/compute.d.ts.map +1 -0
  114. package/dist/commands/project/links/compute.js +27 -0
  115. package/dist/commands/project/links/index.d.ts +17 -0
  116. package/dist/commands/project/links/index.d.ts.map +1 -0
  117. package/dist/commands/project/links/index.js +72 -0
  118. package/dist/commands/project/links/refresh.d.ts +26 -0
  119. package/dist/commands/project/links/refresh.d.ts.map +1 -0
  120. package/dist/commands/project/links/refresh.js +92 -0
  121. package/dist/commands/project/links/render.d.ts +24 -0
  122. package/dist/commands/project/links/render.d.ts.map +1 -0
  123. package/dist/commands/project/links/render.js +68 -0
  124. package/dist/commands/project/list.d.ts +5 -0
  125. package/dist/commands/project/list.d.ts.map +1 -1
  126. package/dist/commands/project/list.js +182 -9
  127. package/dist/commands/project/migrate/index.d.ts +22 -0
  128. package/dist/commands/project/migrate/index.d.ts.map +1 -0
  129. package/dist/commands/project/migrate/index.js +79 -0
  130. package/dist/commands/project/new/index.d.ts +2 -0
  131. package/dist/commands/project/new/index.d.ts.map +1 -1
  132. package/dist/commands/project/new/index.js +14 -2
  133. package/dist/commands/project/new/scaffold.d.ts +22 -1
  134. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  135. package/dist/commands/project/new/scaffold.js +287 -69
  136. package/dist/commands/project/open/index.d.ts +16 -0
  137. package/dist/commands/project/open/index.d.ts.map +1 -1
  138. package/dist/commands/project/open/index.js +151 -19
  139. package/dist/commands/project/pause/index.d.ts +8 -0
  140. package/dist/commands/project/pause/index.d.ts.map +1 -1
  141. package/dist/commands/project/pause/index.js +129 -19
  142. package/dist/commands/project/prune/index.d.ts +21 -0
  143. package/dist/commands/project/prune/index.d.ts.map +1 -0
  144. package/dist/commands/project/prune/index.js +95 -0
  145. package/dist/commands/project/pull/index.d.ts +28 -0
  146. package/dist/commands/project/pull/index.d.ts.map +1 -0
  147. package/dist/commands/project/pull/index.js +157 -0
  148. package/dist/commands/project/push/index.d.ts +22 -0
  149. package/dist/commands/project/push/index.d.ts.map +1 -0
  150. package/dist/commands/project/push/index.js +100 -0
  151. package/dist/commands/project/scope/index.d.ts +17 -0
  152. package/dist/commands/project/scope/index.d.ts.map +1 -0
  153. package/dist/commands/project/scope/index.js +107 -0
  154. package/dist/commands/project/split/run.d.ts +4 -0
  155. package/dist/commands/project/split/run.d.ts.map +1 -1
  156. package/dist/commands/project/split/run.js +48 -10
  157. package/dist/commands/project/sync/git.d.ts +18 -0
  158. package/dist/commands/project/sync/git.d.ts.map +1 -0
  159. package/dist/commands/project/sync/git.js +60 -0
  160. package/dist/commands/project/sync/record.d.ts +22 -0
  161. package/dist/commands/project/sync/record.d.ts.map +1 -0
  162. package/dist/commands/project/sync/record.js +133 -0
  163. package/dist/commands/project/sync/ref-sync.d.ts +120 -0
  164. package/dist/commands/project/sync/ref-sync.d.ts.map +1 -0
  165. package/dist/commands/project/sync/ref-sync.js +962 -0
  166. package/dist/commands/project/sync/resolve-target.d.ts +27 -0
  167. package/dist/commands/project/sync/resolve-target.d.ts.map +1 -0
  168. package/dist/commands/project/sync/resolve-target.js +159 -0
  169. package/dist/commands/shared/oat-paths.d.ts +4 -1
  170. package/dist/commands/shared/oat-paths.d.ts.map +1 -1
  171. package/dist/commands/shared/oat-paths.js +2 -2
  172. package/dist/commands/shared/project-scope.d.ts +23 -0
  173. package/dist/commands/shared/project-scope.d.ts.map +1 -0
  174. package/dist/commands/shared/project-scope.js +106 -0
  175. package/dist/commands/tools/migrate/index.js +1 -1
  176. package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -1
  177. package/dist/commands/tools/shared/pack-inventory.js +11 -0
  178. package/dist/commands/tools/shared/pack-lifecycle.js +1 -1
  179. package/dist/commands/tools/shared/pack-reconcile.d.ts.map +1 -1
  180. package/dist/commands/tools/shared/pack-reconcile.js +4 -1
  181. package/dist/commands/tools/update/index.d.ts.map +1 -1
  182. package/dist/commands/tools/update/index.js +20 -10
  183. package/dist/commands/tools/update/update-tools.d.ts +2 -0
  184. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  185. package/dist/config/oat-config.d.ts +6 -3
  186. package/dist/config/oat-config.d.ts.map +1 -1
  187. package/dist/config/oat-config.js +41 -7
  188. package/dist/config/resolve.d.ts.map +1 -1
  189. package/dist/config/resolve.js +2 -1
  190. package/dist/fs/io.d.ts +2 -1
  191. package/dist/fs/io.d.ts.map +1 -1
  192. package/dist/fs/io.js +5 -2
  193. package/dist/projects/split/finalize.d.ts.map +1 -1
  194. package/dist/projects/split/finalize.js +55 -2
  195. package/dist/projects/split/resume.d.ts +3 -0
  196. package/dist/projects/split/resume.d.ts.map +1 -1
  197. package/dist/projects/split/resume.js +34 -7
  198. package/dist/projects/split/seed-children.d.ts.map +1 -1
  199. package/dist/projects/split/seed-children.js +6 -0
  200. package/dist/projects/split/write-parent.d.ts +7 -0
  201. package/dist/projects/split/write-parent.d.ts.map +1 -1
  202. package/dist/projects/split/write-parent.js +7 -4
  203. package/dist/release/public-package-contract.d.ts.map +1 -1
  204. package/dist/release/public-package-contract.js +1 -0
  205. package/dist/validation/skills.d.ts.map +1 -1
  206. package/dist/validation/skills.js +434 -0
  207. package/package.json +4 -4
  208. package/dist/__tests__/skills/split-flow-fixtures.d.ts +0 -50
  209. package/dist/__tests__/skills/split-flow-fixtures.d.ts.map +0 -1
  210. package/dist/__tests__/skills/split-flow-fixtures.js +0 -161
  211. package/dist/commands/__tests__/helpers.d.ts +0 -12
  212. package/dist/commands/__tests__/helpers.d.ts.map +0 -1
  213. package/dist/commands/__tests__/helpers.js +0 -36
@@ -226,10 +226,10 @@ remains immutable baseline evidence for the original p01-t01 verification.
226
226
  | Skill root / file | Stable prompt-site mappings |
227
227
  | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
228
228
  | `oat-project-new/SKILL.md` | `f7ca8635452f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> NEW-01`; `45b699c1c0b5 -> NEW-01`; `ba6d120791c1 -> NEW-01`; `33ce6a6c30aa -> NEW-02`; `0f5a90f34f63 -> NG`; `d0ea3a91261d -> NG` |
229
- | `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> QS-01`; `141d0a20099b -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `0960c3eb1564 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `39e3fe23dd85 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG`; `b4af2220eb91 -> QS-12` |
229
+ | `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `dceff5cc04b5 -> NG`; `1af4957a1af2 -> QS-01`; `141d0a20099b -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `1564ca151111 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `39e3fe23dd85 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG`; `b4af2220eb91 -> QS-12` |
230
230
  | `oat-project-quick-start/references/docs/autonomy-contract.md` | `* -> NG` |
231
231
  | `oat-project-discover/SKILL.md` | `8fe35bbfbcd6 -> NG`; `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `5c8d5f04f6e2 -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `523764981692 -> 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` |
232
- | `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`; `8678cdb975d0 -> 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`; `38a0adf2dcd6 -> DES-07`; `16c2036990df -> DES-07`; `b23bbe0c4282 -> DES-07`; `71972778f6b8 -> DES-07`; `7f88caab1f38 -> DES-07`; `7eb6f3a2d666 -> DES-07`; `e7a364820674 -> DES-07`; `241de26a0b0b -> DES-07`; `9d7a898331a3 -> DES-07`; `686152516d78 -> 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` |
232
+ | `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` |
233
233
  | `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
234
234
  | `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> 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` |
235
235
  | `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` |
@@ -239,14 +239,14 @@ remains immutable baseline evidence for the original p01-t01 verification.
239
239
  | `oat-project-implement/references/docs/autonomy-contract.md` | `* -> NG` |
240
240
  | `oat-project-implement/references/phase-execution.md` | `27737e814790 -> NG`; `6dda2b8e62e2 -> IMPLEMENT-10`; `b3197086bb1e -> IMPLEMENT-10`; `25f2a6e104ee -> NG`; `4aa21120295f -> NG` |
241
241
  | `oat-project-implement/references/plan-and-resume.md` | `413829d31e32 -> IMPLEMENT-02`; `c7706cd8ad09 -> IMPLEMENT-03`; `a80a948df658 -> 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` |
242
- | `oat-project-document/SKILL.md` | `4fc2d8618208 -> NG`; `3f9b0273ba77 -> 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` |
242
+ | `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` |
243
243
  | `oat-project-document/references/docs/autonomy-contract.md` | `* -> NG` |
244
- | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `8ff515033147 -> NG`; `f979b2342d28 -> NG`; `f3e49b727752 -> NG`; `5f315ab87cb1 -> NG`; `803bf40ec423 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG` |
245
- | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
244
+ | `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` |
245
+ | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
246
246
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
247
- | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `ffcdc9d576c0 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `9497d9f94eed -> COMPLETE-01`; `7b59c728d3fb -> COMPLETE-01`; `48e10a9636fe -> COMPLETE-01`; `c0dad37fc166 -> COMPLETE-01`; `aa9a36243ec1 -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG` |
247
+ | `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`; `12f7c30a54c8 -> NG`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG` |
248
248
  | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `fcb9de611ff3 -> NG`; `d2a838dfb18d -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
249
- | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `df49c8c6f192 -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `c8ab5dd90075 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `3ad3aadb8c60 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `3f758313fedb -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `aba178a21441 -> REVIEWRECEIVE-04`; `a37e601cd731 -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `90001dadf75f -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
249
+ | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `df49c8c6f192 -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `c8ab5dd90075 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `3ad3aadb8c60 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `aba178a21441 -> REVIEWRECEIVE-04`; `a37e601cd731 -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `90001dadf75f -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
250
250
  | `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
251
251
  | `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
252
252
  | `oat-project-implement/references/phase-execution.md` | `b31a9a4e6f75 -> NG` |
@@ -260,7 +260,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
260
260
  | `oat-project-dispatch-subagents/SKILL.md` | `eca03ad1ca12 -> PDISPATCH-01`; `59fbcdc79cea -> PDISPATCH-01` |
261
261
  | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
262
262
  | `oat-project-implement/references/completion-and-closeout.md` | `6909a5a5a1fa -> IMPLEMENT-19`; `a7c02ef670fd -> IMPLEMENT-19`; `9dde56d89a71 -> IMPLEMENT-16`; `13c41b2b2590 -> IMPLEMENT-16` |
263
- | `oat-project-complete/SKILL.md` | `ffad9f909dba -> COMPLETE-01`; `ffe636f736e8 -> COMPLETE-01`; `9262624c148f -> COMPLETE-01`; `23ec8b6a5cee -> COMPLETE-01`; `9e6c4d7cc3a8 -> COMPLETE-01`; `47383d4ab654 -> COMPLETE-01`; `ba34449bd586 -> COMPLETE-01`; `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `eb3e75663ac0 -> NG` |
263
+ | `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `8305b5bb65ef -> NG`; `eb3e75663ac0 -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01` |
264
264
 
265
265
  ## Prompt-scan comparison
266
266
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-reconcile
3
- version: 1.0.1
3
+ version: 1.0.2
4
4
  description: Use when human-implemented commits need to be mapped back to planned tasks. Reconciles implementation.md and state.md after manual work outside the OAT workflow.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -675,21 +675,25 @@ Add a reconciliation session entry to the `## Implementation Log` section:
675
675
 
676
676
  Create a single bookkeeping commit for all artifact updates and present a final summary.
677
677
 
678
- **6a. Stage only tracking files:**
678
+ **6a. Persist only tracking files:**
679
679
 
680
680
  ```bash
681
- git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md"
682
- # Only add plan.md if it was modified
683
- git diff --name-only "$PROJECT_PATH/plan.md" 2>/dev/null | grep -q . && git add "$PROJECT_PATH/plan.md"
681
+ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2; exit 1; }
682
+ # fail closed: never fall back to branch bookkeeping when scope resolution fails
683
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
684
+ oat project push "$PROJECT_PATH" --message "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
685
+ else
686
+ git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md"
687
+ # Only add plan.md if it was modified
688
+ git diff --name-only "$PROJECT_PATH/plan.md" 2>/dev/null | grep -q . && git add "$PROJECT_PATH/plan.md"
689
+ git diff --cached --quiet || git commit -m "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})"
690
+ fi
684
691
  ```
685
692
 
686
693
  **Important:** Do NOT use `git add -A` or glob patterns. Only stage the specific OAT tracking files listed above.
687
694
 
688
- **6b. Commit with reconciliation message:**
689
-
690
- ```bash
691
- git diff --cached --quiet || git commit -m "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})"
692
- ```
695
+ **6b. Record the reconciliation message:** use the same message in either the
696
+ synced push or branch commit above.
693
697
 
694
698
  Example: `chore(oat): reconcile manual implementation (p01-t03..p02-t01)`
695
699
 
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: oat-project-retro
3
- version: 1.0.2
3
+ version: 1.0.3
4
4
  description: Use when the user requests or confirms a project retrospective — e.g. "run the project retro", "write project-retro.md", "retrospective this project", or confirms a previously offered retro. Do NOT auto-invoke merely because implementation or summary completed. Produces references/project-retro.md from project logs, execution learnings, and session/transcript evidence, with repo improvements and OAT upstream feedback.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
7
- allowed-tools: Read, Write, Bash(git:*), Bash(pnpm:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat project log:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion
7
+ allowed-tools: Read, Write, Bash(git:*), Bash(jq:*), Bash(pnpm:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat project log:*), Bash(oat project push:*), Bash(oat project scope:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion
8
8
  ---
9
9
 
10
10
  # Project Retrospective
@@ -42,7 +42,7 @@ identity, correction-commit, and later retro-writeback transitions. Perform
42
42
  semantic post-side-effect recovery before appending again. Record `Applied-ref`
43
43
  only after the correction and retro writeback are durably committed.
44
44
 
45
- ## Progress Indicators
45
+ ## Progress Indicators (User-Facing)
46
46
 
47
47
  Print one banner and concise step indicators:
48
48
 
@@ -76,7 +76,18 @@ continues immediately, this can be written back together with the final
76
76
  - Only when recovery finds zero matches, run the complete judgment append
77
77
  invocation exactly once:
78
78
 
79
+ Define `parse_synced_push_receipt` once before applying records:
80
+
79
81
  ```bash
82
+ parse_synced_push_receipt() {
83
+ node -e '
84
+ let value;
85
+ try { value = JSON.parse(process.argv[1]); } catch { process.exit(1); }
86
+ if (!["pushed", "up-to-date"].includes(value.status) || !/^[0-9a-f]{40}$/.test(value.sha)) process.exit(1);
87
+ process.stdout.write(value.sha);
88
+ ' "$1"
89
+ }
90
+
80
91
  oat project log append --project "$PROJECT_PATH" \
81
92
  --type feedback \
82
93
  --scope project \
@@ -84,9 +95,24 @@ continues immediately, this can be written back together with the final
84
95
  --body "$CORRECTION_BODY"
85
96
  ```
86
97
 
87
- - Commit the project-log append without retro writeback. Verify the commit
88
- contains the normalized project-log path and exact correction body.
89
- Capture its full 40-character SHA and exact generated heading.
98
+ - Commit the project-log append without retro writeback using the scope
99
+ guard below. Verify the commit contains the normalized project-log path
100
+ and exact correction body. Capture its full 40-character SHA and exact
101
+ generated heading.
102
+
103
+ ```bash
104
+ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2; exit 1; }
105
+ # fail closed: never fall back to branch bookkeeping when scope resolution fails
106
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
107
+ CORRECTION_PUSH=$(oat project push "$PROJECT_PATH" --message "chore(oat): apply retro correction $RP_ID" --json) || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
108
+ CORRECTION_COMMIT=$(parse_synced_push_receipt "$CORRECTION_PUSH") || { printf '%s\n' "$CORRECTION_PUSH" >&2; echo "Recovery: run oat project pull \"$PROJECT_PATH\", resolve conflicts, then retry this push." >&2; exit 1; }
109
+ else
110
+ git add "$PROJECT_PATH/project-log.md"
111
+ git commit -m "chore(oat): apply retro correction $RP_ID"
112
+ CORRECTION_COMMIT=$(git rev-parse HEAD)
113
+ fi
114
+ ```
115
+
90
116
  - In a later retro-only writeback commit, set the RP status and
91
117
  `Applied-ref`. The reference names the full 40-character correction commit
92
118
  plus the exact generated heading, serialized as
@@ -194,11 +220,68 @@ Compute `oat_retro_promotions` exactly:
194
220
  - Use one reviewed batch when the items are inseparable edits to the same
195
221
  canonical surface.
196
222
  - Include the target edit and its artifact status writeback in the same commit
197
- whenever possible. The project-log correction route is the explicit
198
- exception: its correction commit must precede the later retro-only writeback
199
- commit so `Applied-ref` can name an already durable correction.
223
+ for shared and local projects whenever possible. Synced projects and the
224
+ project-log correction route are explicit two-commit transactions: the
225
+ repository target commit must precede the retro-only project-ref writeback
226
+ commit so `Applied-ref` can name an already durable target.
200
227
  - Before each commit, format touched files, run surface-relevant checks, and
201
228
  verify the item still has the expected pre-apply status.
229
+ - Before applying a non-project-log item, build `RETRO_TARGET_PATHS` from the
230
+ exact repository files owned by that proposal. A docs, agent-instruction, or
231
+ rule item lists every exact edited canonical file. A decision item lists the
232
+ exact generated or verified decision record and includes the managed decision
233
+ index only when this application changed it. Never stage a target directory.
234
+ - Fail if any owned target or the retro artifact was staged before this item,
235
+ then snapshot unrelated staged state with
236
+ `UNRELATED_STAGED_PATCH_BEFORE=$(git diff --cached --binary)`. After every
237
+ commit, require `git diff --cached --binary` to remain byte-for-byte equal to
238
+ that snapshot.
239
+ - Persist each target and retro writeback under this fail-closed scope guard:
240
+
241
+ ```bash
242
+ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2; exit 1; }
243
+ # fail closed: never fall back to branch bookkeeping when scope resolution fails
244
+ for OWNED_PATH in "${RETRO_TARGET_PATHS[@]}" "$PROJECT_PATH/references/project-retro.md"; do
245
+ git diff --cached --quiet -- "$OWNED_PATH" || { echo "oat: owned retro path was already staged: $OWNED_PATH" >&2; exit 1; }
246
+ done
247
+ UNRELATED_STAGED_PATCH_BEFORE=$(git diff --cached --binary)
248
+
249
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
250
+ # RETRO_TARGET_PATHS contains exact ordinary-doc, agent-instruction, rule,
251
+ # or decision-record paths; include the managed decision index only when changed.
252
+ git add -- "${RETRO_TARGET_PATHS[@]}"
253
+ git commit --only -m "chore(oat): apply retro target $RP_ID" -- "${RETRO_TARGET_PATHS[@]}"
254
+ RETRO_TARGET_COMMIT=$(git rev-parse HEAD) || exit 1
255
+ RETRO_TARGET_COMMIT_PATHS=$(git diff-tree --no-commit-id --name-only -r "$RETRO_TARGET_COMMIT") || exit 1
256
+ # Require RETRO_TARGET_COMMIT_PATHS to equal the complete normalized
257
+ # RETRO_TARGET_PATHS set exactly. Missing or additional paths stop writeback.
258
+ APPLIED_REF="$RETRO_TARGET_COMMIT :: ${RETRO_TARGET_PATHS[*]}"
259
+
260
+ # Only now write Status: applied, Applied-ref: $APPLIED_REF, the cleared
261
+ # disposition note, promotions, and Current State into project-retro.md.
262
+ RETRO_PUSH=$(oat project push "$PROJECT_PATH" --message "chore(oat): record retro application $RP_ID" --json) || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
263
+ RETRO_WRITEBACK_COMMIT=$(parse_synced_push_receipt "$RETRO_PUSH") || { printf '%s\n' "$RETRO_PUSH" >&2; echo "Recovery: run oat project pull \"$PROJECT_PATH\", resolve conflicts, then retry this push." >&2; exit 1; }
264
+ else
265
+ # Write back the artifact before this commit, then preserve the single-commit
266
+ # shared/local route with only the exact target and retro paths.
267
+ APPLIED_REF="${RETRO_TARGET_PATHS[*]}"
268
+ RETRO_COMMIT_PATHS=("${RETRO_TARGET_PATHS[@]}" "$PROJECT_PATH/references/project-retro.md")
269
+ git add -- "${RETRO_COMMIT_PATHS[@]}"
270
+ git commit --only -m "chore(oat): apply retro item $RP_ID" -- "${RETRO_COMMIT_PATHS[@]}"
271
+ RETRO_TARGET_COMMIT=$(git rev-parse HEAD) || exit 1
272
+ fi
273
+
274
+ UNRELATED_STAGED_PATCH_AFTER=$(git diff --cached --binary)
275
+ [ "$UNRELATED_STAGED_PATCH_AFTER" = "$UNRELATED_STAGED_PATCH_BEFORE" ] || { echo "oat: unrelated staged state changed during retro application" >&2; exit 1; }
276
+ ```
277
+
278
+ The shown writeback comments are ordered operations, not permission to edit
279
+ fields before the synced target receipt exists. Format and verify every exact
280
+ repository target before `git add`. For a newly created decision, verify the
281
+ reported record and managed index before the parent commit. For an existing
282
+ matching decision, recover its existing durable commit and exact path receipt
283
+ rather than creating or recommitting it; if durability cannot be proven, stop.
284
+
202
285
  - On re-run, rescan the artifact and process only remaining
203
286
  `proposed | approved` apply-items. Never repeat an `applied` item.
204
287
 
@@ -210,3 +293,16 @@ rule, and decision items. A matching side effect plus missing writeback is an
210
293
  interrupted success, not permission to apply twice. A partial, divergent, or
211
294
  unverifiable target requires direction; never overwrite or claim it
212
295
  automatically.
296
+
297
+ For synced projects, classify interruption recovery at the two-commit boundary:
298
+
299
+ | Interruption point | Required recovery |
300
+ | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
301
+ | Before the parent target commit | The repository target is not durable. Leave the RP item unsettled, restore or finish only its exact target paths, rerun formatting and verification, then create the parent target commit. Do not write back or push the retro artifact yet. |
302
+ | Between the parent target commit and project-ref push | Verify the durable parent commit contains exactly the complete target-path set and represents the proposal. Recover `Applied-ref` from its full SHA and paths, do not reapply the target, then write back and push the retro artifact. |
303
+ | After both commits | Verify both the exact parent target receipt and the project-ref writeback receipt. Treat a matching `Status: applied` and `Applied-ref` as complete and skip the item; repair only a missing idempotent writeback from the two receipts. |
304
+
305
+ If the parent target commit succeeds but retro writeback or project-ref push
306
+ fails, preserve that immutable parent commit, leave the artifact unsettled, and
307
+ retry only writeback from the recovered receipt. Any partial, extra-path,
308
+ divergent, or ambiguous receipt requires direction without another commit.
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: oat-project-retro-file
3
- version: 1.0.1
3
+ version: 1.0.2
4
4
  description: Use when the user requests or confirms filing proposed feedback from a project retro into repository or upstream GitHub issues and OAT backlog items. Runs destination capability, duplicate, approval, and sanitization checks before filing, then writes destinations and statuses back to the retro artifact.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
7
- allowed-tools: Read, Write, Bash(git:*), Bash(pnpm:*), Bash(gh:*), Bash(oat backlog:*), Bash(oat config:*), Glob, Grep, AskUserQuestion
7
+ allowed-tools: Read, Write, Bash(git:*), Bash(jq:*), Bash(pnpm:*), Bash(gh:*), Bash(oat backlog:*), Bash(oat config:*), Bash(oat project push:*), Bash(oat project scope:*), Glob, Grep, AskUserQuestion
8
8
  ---
9
9
 
10
10
  # File Project Retro Feedback
@@ -16,7 +16,7 @@ idempotent status writeback.
16
16
  This skill never applies `Disposition: apply` repo edits and never mutates
17
17
  `oat_retro_promotions`.
18
18
 
19
- ## Progress Indicators
19
+ ## Progress Indicators (User-Facing)
20
20
 
21
21
  Print one banner and concise step indicators:
22
22
 
@@ -278,10 +278,15 @@ strengthened local backlog destination:
278
278
  not reachable from it, means `unpushed`.
279
279
  5. Only after the receipt is confirmed, write back the retro in a subsequent
280
280
  commit with `Destination`, `Destination-receipt`, and `Remote-visibility`.
281
- 6. Capture the full writeback commit SHA, require it to differ from the
282
- destination commit, and run
281
+ 6. Capture the full writeback commit SHA and require it to differ from the
282
+ destination commit. For shared/local projects, run
283
283
  `git merge-base --is-ancestor "$DESTINATION_COMMIT" "$WRITEBACK_COMMIT"`.
284
- This proves the destination commit predates the retro writeback commit.
284
+ For synced projects, the writeback lives on the independent project ref, so
285
+ ancestry is not expected; verify the destination commit and exact-path
286
+ receipt first, then perform the project push and retain both SHAs as the
287
+ ordering proof. In both branches, the destination commit predates the
288
+ writeback commit: shared/local history proves it by ancestry, while the
289
+ synced transaction proves it by verified-before-push sequencing.
285
290
 
286
291
  If the destination mutation commit fails, stop that item without retro
287
292
  writeback; a failed destination commit yields no receipt and must never yield
@@ -358,6 +363,52 @@ explicit `—` local receipt fields. On re-run, skip a `filed` item only after t
358
363
  pre-selection integrity pass proves its destination-type state complete and
359
364
  valid; retry all eligible unsettled statuses.
360
365
 
366
+ Resolve project scope and fail closed before committing the writeback. For a
367
+ synced project, capture the project-ref commit returned by the push; otherwise
368
+ commit only the retro artifact on the current branch:
369
+
370
+ ```bash
371
+ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || {
372
+ echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing to commit artifacts" >&2
373
+ exit 1
374
+ }
375
+ ```
376
+
377
+ Define this fail-closed parser before the writeback push. If it rejects the
378
+ receipt, print the full CLI JSON, run `oat project pull "$PROJECT_PATH"`,
379
+ resolve the reported conflict, and retry the original push.
380
+
381
+ ```bash
382
+ parse_synced_push_receipt() {
383
+ node -e '
384
+ let value;
385
+ try { value = JSON.parse(process.argv[1]); } catch { process.exit(1); }
386
+ if (!["pushed", "up-to-date"].includes(value.status) || !/^[0-9a-f]{40}$/.test(value.sha)) process.exit(1);
387
+ process.stdout.write(value.sha);
388
+ ' "$1"
389
+ }
390
+ ```
391
+
392
+ ```bash
393
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
394
+ RETRO_PUSH=$(oat project push "$PROJECT_PATH" --message "chore(oat): record project retro filing writeback" --json) || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
395
+ WRITEBACK_COMMIT=$(parse_synced_push_receipt "$RETRO_PUSH") || { printf '%s\n' "$RETRO_PUSH" >&2; echo "Recovery: run oat project pull \"$PROJECT_PATH\", resolve conflicts, then retry this push." >&2; exit 1; }
396
+ else
397
+ git add "$RETRO_PATH"
398
+ git diff --cached --quiet || git commit -m "chore(oat): record project retro filing writeback"
399
+ WRITEBACK_COMMIT=$(git rev-parse HEAD)
400
+ fi
401
+
402
+ if [ -n "${DESTINATION_COMMIT:-}" ]; then
403
+ [ "$DESTINATION_COMMIT" != "$WRITEBACK_COMMIT" ] || exit 1
404
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
405
+ git cat-file -e "${DESTINATION_COMMIT}^{commit}" || exit 1
406
+ else
407
+ git merge-base --is-ancestor "$DESTINATION_COMMIT" "$WRITEBACK_COMMIT" || exit 1
408
+ fi
409
+ fi
410
+ ```
411
+
361
412
  ## Final Report
362
413
 
363
414
  Report: