@open-agent-toolkit/cli 0.2.41 → 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 (204) hide show
  1. package/assets/agents/oat-phase-implementer.md +11 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/cli-utilities/configuration.md +11 -1
  4. package/assets/docs/quickstart.md +9 -0
  5. package/assets/docs/reference/cli-reference.md +56 -1
  6. package/assets/docs/reference/file-locations.md +18 -1
  7. package/assets/docs/reference/oat-directory-structure.md +20 -4
  8. package/assets/docs/workflows/projects/artifacts.md +27 -1
  9. package/assets/docs/workflows/projects/implementation-execution.md +22 -0
  10. package/assets/docs/workflows/projects/index.md +6 -0
  11. package/assets/docs/workflows/projects/lifecycle.md +19 -5
  12. package/assets/docs/workflows/projects/picking-up-projects.md +75 -0
  13. package/assets/docs/workflows/projects/pr-flow.md +22 -1
  14. package/assets/docs/workflows/projects/reviewing-oat-prs.md +60 -0
  15. package/assets/public-package-versions.json +4 -4
  16. package/assets/skills/oat-brainstorm/SKILL.md +135 -32
  17. package/assets/skills/oat-brainstorm/references/destinations.md +9 -6
  18. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +11 -1
  19. package/assets/skills/oat-doctor/SKILL.md +8 -1
  20. package/assets/skills/oat-project-autonomous/SKILL.md +45 -1
  21. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +8 -8
  22. package/assets/skills/oat-project-capture/SKILL.md +29 -9
  23. package/assets/skills/oat-project-complete/SKILL.md +610 -38
  24. package/assets/skills/oat-project-complete/scripts/parse-completion-retry-fields.mjs +265 -0
  25. package/assets/skills/oat-project-complete/scripts/recover-completion-receipts.mjs +764 -0
  26. package/assets/skills/oat-project-complete/scripts/resolve-completion-retry.mjs +134 -0
  27. package/assets/skills/oat-project-complete/scripts/validate-nonarchive-lifecycle-receipt.mjs +160 -0
  28. package/assets/skills/oat-project-design/SKILL.md +33 -9
  29. package/assets/skills/oat-project-discover/SKILL.md +16 -3
  30. package/assets/skills/oat-project-document/SKILL.md +10 -4
  31. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +8 -8
  32. package/assets/skills/oat-project-implement/SKILL.md +14 -3
  33. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +18 -6
  34. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +8 -8
  35. package/assets/skills/oat-project-implement/references/phase-execution.md +9 -3
  36. package/assets/skills/oat-project-implement/references/plan-and-resume.md +3 -0
  37. package/assets/skills/oat-project-import-plan/SKILL.md +15 -9
  38. package/assets/skills/oat-project-new/SKILL.md +7 -5
  39. package/assets/skills/oat-project-next/SKILL.md +32 -10
  40. package/assets/skills/oat-project-plan/SKILL.md +18 -3
  41. package/assets/skills/oat-project-pr-final/SKILL.md +23 -2
  42. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +8 -8
  43. package/assets/skills/oat-project-pr-progress/SKILL.md +23 -2
  44. package/assets/skills/oat-project-progress/SKILL.md +23 -9
  45. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +20 -2
  46. package/assets/skills/oat-project-quick-start/SKILL.md +48 -18
  47. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +8 -8
  48. package/assets/skills/oat-project-reconcile/SKILL.md +14 -10
  49. package/assets/skills/oat-project-retro/SKILL.md +3 -3
  50. package/assets/skills/oat-project-retro/references/apply-procedure.md +102 -6
  51. package/assets/skills/oat-project-retro-file/SKILL.md +57 -6
  52. package/assets/skills/oat-project-review-provide/SKILL.md +45 -4
  53. package/assets/skills/oat-project-review-receive/SKILL.md +16 -7
  54. package/assets/skills/oat-project-review-receive-remote/SKILL.md +9 -3
  55. package/assets/skills/oat-project-revise/SKILL.md +12 -3
  56. package/assets/skills/oat-project-spec/SKILL.md +16 -3
  57. package/assets/skills/oat-project-summary/SKILL.md +113 -13
  58. package/assets/skills/oat-wave-execute/SKILL.md +34 -2
  59. package/assets/skills/oat-worktree-bootstrap/SKILL.md +13 -1
  60. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +13 -1
  61. package/dist/commands/config/index.d.ts +1 -0
  62. package/dist/commands/config/index.d.ts.map +1 -1
  63. package/dist/commands/config/index.js +30 -2
  64. package/dist/commands/doctor/index.d.ts +2 -0
  65. package/dist/commands/doctor/index.d.ts.map +1 -1
  66. package/dist/commands/doctor/index.js +27 -3
  67. package/dist/commands/doctor/synced-projects.d.ts +12 -0
  68. package/dist/commands/doctor/synced-projects.d.ts.map +1 -0
  69. package/dist/commands/doctor/synced-projects.js +208 -0
  70. package/dist/commands/init/gitattributes.d.ts +4 -0
  71. package/dist/commands/init/gitattributes.d.ts.map +1 -0
  72. package/dist/commands/init/gitattributes.js +12 -0
  73. package/dist/commands/init/gitignore.d.ts +8 -1
  74. package/dist/commands/init/gitignore.d.ts.map +1 -1
  75. package/dist/commands/init/gitignore.js +146 -41
  76. package/dist/commands/init/index.d.ts +2 -0
  77. package/dist/commands/init/index.d.ts.map +1 -1
  78. package/dist/commands/init/index.js +3 -0
  79. package/dist/commands/init/managed-block.d.ts +10 -0
  80. package/dist/commands/init/managed-block.d.ts.map +1 -0
  81. package/dist/commands/init/managed-block.js +40 -0
  82. package/dist/commands/init/tools/workflows/install-workflows.js +1 -1
  83. package/dist/commands/local/index.d.ts.map +1 -1
  84. package/dist/commands/local/index.js +5 -1
  85. package/dist/commands/local/sync.d.ts +4 -0
  86. package/dist/commands/local/sync.d.ts.map +1 -1
  87. package/dist/commands/local/sync.js +123 -2
  88. package/dist/commands/pjm/adoption.d.ts +2 -0
  89. package/dist/commands/pjm/adoption.d.ts.map +1 -1
  90. package/dist/commands/pjm/adoption.js +1 -1
  91. package/dist/commands/project/archive/archive-utils.d.ts +24 -0
  92. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  93. package/dist/commands/project/archive/archive-utils.js +349 -22
  94. package/dist/commands/project/archive/index.d.ts.map +1 -1
  95. package/dist/commands/project/archive/index.js +1 -0
  96. package/dist/commands/project/archive/push-runner.d.ts +5 -1
  97. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  98. package/dist/commands/project/archive/push-runner.js +33 -4
  99. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  100. package/dist/commands/project/complete-state/index.js +3 -1
  101. package/dist/commands/project/index.d.ts.map +1 -1
  102. package/dist/commands/project/index.js +12 -0
  103. package/dist/commands/project/links/compute.d.ts +9 -0
  104. package/dist/commands/project/links/compute.d.ts.map +1 -0
  105. package/dist/commands/project/links/compute.js +27 -0
  106. package/dist/commands/project/links/index.d.ts +17 -0
  107. package/dist/commands/project/links/index.d.ts.map +1 -0
  108. package/dist/commands/project/links/index.js +72 -0
  109. package/dist/commands/project/links/refresh.d.ts +26 -0
  110. package/dist/commands/project/links/refresh.d.ts.map +1 -0
  111. package/dist/commands/project/links/refresh.js +92 -0
  112. package/dist/commands/project/links/render.d.ts +24 -0
  113. package/dist/commands/project/links/render.d.ts.map +1 -0
  114. package/dist/commands/project/links/render.js +68 -0
  115. package/dist/commands/project/list.d.ts +5 -0
  116. package/dist/commands/project/list.d.ts.map +1 -1
  117. package/dist/commands/project/list.js +182 -9
  118. package/dist/commands/project/migrate/index.d.ts +22 -0
  119. package/dist/commands/project/migrate/index.d.ts.map +1 -0
  120. package/dist/commands/project/migrate/index.js +79 -0
  121. package/dist/commands/project/new/index.d.ts +2 -0
  122. package/dist/commands/project/new/index.d.ts.map +1 -1
  123. package/dist/commands/project/new/index.js +14 -2
  124. package/dist/commands/project/new/scaffold.d.ts +22 -1
  125. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  126. package/dist/commands/project/new/scaffold.js +287 -69
  127. package/dist/commands/project/open/index.d.ts +16 -0
  128. package/dist/commands/project/open/index.d.ts.map +1 -1
  129. package/dist/commands/project/open/index.js +151 -19
  130. package/dist/commands/project/pause/index.d.ts +8 -0
  131. package/dist/commands/project/pause/index.d.ts.map +1 -1
  132. package/dist/commands/project/pause/index.js +129 -19
  133. package/dist/commands/project/prune/index.d.ts +21 -0
  134. package/dist/commands/project/prune/index.d.ts.map +1 -0
  135. package/dist/commands/project/prune/index.js +95 -0
  136. package/dist/commands/project/pull/index.d.ts +28 -0
  137. package/dist/commands/project/pull/index.d.ts.map +1 -0
  138. package/dist/commands/project/pull/index.js +157 -0
  139. package/dist/commands/project/push/index.d.ts +22 -0
  140. package/dist/commands/project/push/index.d.ts.map +1 -0
  141. package/dist/commands/project/push/index.js +100 -0
  142. package/dist/commands/project/scope/index.d.ts +17 -0
  143. package/dist/commands/project/scope/index.d.ts.map +1 -0
  144. package/dist/commands/project/scope/index.js +107 -0
  145. package/dist/commands/project/split/run.d.ts +4 -0
  146. package/dist/commands/project/split/run.d.ts.map +1 -1
  147. package/dist/commands/project/split/run.js +48 -10
  148. package/dist/commands/project/sync/git.d.ts +18 -0
  149. package/dist/commands/project/sync/git.d.ts.map +1 -0
  150. package/dist/commands/project/sync/git.js +60 -0
  151. package/dist/commands/project/sync/record.d.ts +22 -0
  152. package/dist/commands/project/sync/record.d.ts.map +1 -0
  153. package/dist/commands/project/sync/record.js +133 -0
  154. package/dist/commands/project/sync/ref-sync.d.ts +120 -0
  155. package/dist/commands/project/sync/ref-sync.d.ts.map +1 -0
  156. package/dist/commands/project/sync/ref-sync.js +962 -0
  157. package/dist/commands/project/sync/resolve-target.d.ts +27 -0
  158. package/dist/commands/project/sync/resolve-target.d.ts.map +1 -0
  159. package/dist/commands/project/sync/resolve-target.js +159 -0
  160. package/dist/commands/shared/oat-paths.d.ts +4 -1
  161. package/dist/commands/shared/oat-paths.d.ts.map +1 -1
  162. package/dist/commands/shared/oat-paths.js +2 -2
  163. package/dist/commands/shared/project-scope.d.ts +23 -0
  164. package/dist/commands/shared/project-scope.d.ts.map +1 -0
  165. package/dist/commands/shared/project-scope.js +106 -0
  166. package/dist/commands/tools/migrate/index.js +1 -1
  167. package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -1
  168. package/dist/commands/tools/shared/pack-inventory.js +11 -0
  169. package/dist/commands/tools/shared/pack-lifecycle.js +1 -1
  170. package/dist/commands/tools/shared/pack-reconcile.d.ts.map +1 -1
  171. package/dist/commands/tools/shared/pack-reconcile.js +4 -1
  172. package/dist/commands/tools/update/index.d.ts.map +1 -1
  173. package/dist/commands/tools/update/index.js +20 -10
  174. package/dist/commands/tools/update/update-tools.d.ts +2 -0
  175. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  176. package/dist/config/oat-config.d.ts +6 -3
  177. package/dist/config/oat-config.d.ts.map +1 -1
  178. package/dist/config/oat-config.js +41 -7
  179. package/dist/config/resolve.d.ts.map +1 -1
  180. package/dist/config/resolve.js +2 -1
  181. package/dist/fs/io.d.ts +2 -1
  182. package/dist/fs/io.d.ts.map +1 -1
  183. package/dist/fs/io.js +5 -2
  184. package/dist/projects/split/finalize.d.ts.map +1 -1
  185. package/dist/projects/split/finalize.js +55 -2
  186. package/dist/projects/split/resume.d.ts +3 -0
  187. package/dist/projects/split/resume.d.ts.map +1 -1
  188. package/dist/projects/split/resume.js +34 -7
  189. package/dist/projects/split/seed-children.d.ts.map +1 -1
  190. package/dist/projects/split/seed-children.js +6 -0
  191. package/dist/projects/split/write-parent.d.ts +7 -0
  192. package/dist/projects/split/write-parent.d.ts.map +1 -1
  193. package/dist/projects/split/write-parent.js +7 -4
  194. package/dist/release/public-package-contract.d.ts.map +1 -1
  195. package/dist/release/public-package-contract.js +1 -0
  196. package/dist/validation/skills.d.ts.map +1 -1
  197. package/dist/validation/skills.js +434 -0
  198. package/package.json +4 -4
  199. package/dist/__tests__/skills/split-flow-fixtures.d.ts +0 -50
  200. package/dist/__tests__/skills/split-flow-fixtures.d.ts.map +0 -1
  201. package/dist/__tests__/skills/split-flow-fixtures.js +0 -161
  202. package/dist/commands/__tests__/helpers.d.ts +0 -12
  203. package/dist/commands/__tests__/helpers.d.ts.map +0 -1
  204. 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
 
@@ -662,9 +662,15 @@ Bookkeeping is mandatory:
662
662
 
663
663
  ```bash
664
664
  oat state refresh
665
- git add {PROJECT_PATH}/implementation.md {PROJECT_PATH}/state.md {PROJECT_PATH}/plan.md
666
- [ -f {PROJECT_PATH}/project-log.md ] && git add {PROJECT_PATH}/project-log.md
667
- git commit -m "chore(oat): bookkeeping after {pNN} {pass|fail}"
665
+ 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; }
666
+ # fail closed: never fall back to branch bookkeeping when scope resolution fails
667
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
668
+ oat project push "{PROJECT_PATH}" --message "chore(oat): bookkeeping after {pNN} {pass|fail}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
669
+ else
670
+ git add {PROJECT_PATH}/implementation.md {PROJECT_PATH}/state.md {PROJECT_PATH}/plan.md
671
+ [ -f {PROJECT_PATH}/project-log.md ] && git add {PROJECT_PATH}/project-log.md
672
+ git commit -m "chore(oat): bookkeeping after {pNN} {pass|fail}"
673
+ fi
668
674
  ```
669
675
 
670
676
  `project-log.md` is tracked, so leaving it unstaged carries the log's dirt into
@@ -2,6 +2,9 @@
2
2
 
3
3
  This reference preserves the route-specific implementation contract. Load it only when the entry skill routes execution here.
4
4
 
5
+ Step 0 of the entry skill has already pulled and materialized any discoverable
6
+ synced project before this route validates or reads its artifacts.
7
+
5
8
  ### Step 1: Check Plan Complete
6
9
 
7
10
  ```bash
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-import-plan
3
- version: 1.4.9
3
+ version: 1.4.10
4
4
  description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
5
5
  argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
6
6
  oat_gateable: true
@@ -426,14 +426,20 @@ Initialize pointer to first plan task ID.
426
426
  After the import-aware plan artifact review, project state sync, dashboard refresh, and implementation tracker setup, stage and commit the changed import artifacts before handing off to implementation or stopping.
427
427
 
428
428
  ```bash
429
- git add "$PROJECT_PATH/references/"
430
- for path in \
431
- "$PROJECT_PATH/plan.md" \
432
- "$PROJECT_PATH/implementation.md" \
433
- "$PROJECT_PATH/state.md"; do
434
- [ -e "$path" ] && git add "$path"
435
- done
436
- git diff --cached --quiet || git commit -m "chore(oat): update imported plan artifacts for {project-name}"
429
+ 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; }
430
+ # fail closed: never fall back to branch bookkeeping when scope resolution fails
431
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
432
+ oat project push "$PROJECT_PATH" --message "chore(oat): update imported plan artifacts for {project-name}" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
433
+ else
434
+ git add "$PROJECT_PATH/references/"
435
+ for path in \
436
+ "$PROJECT_PATH/plan.md" \
437
+ "$PROJECT_PATH/implementation.md" \
438
+ "$PROJECT_PATH/state.md"; do
439
+ [ -e "$path" ] && git add "$path"
440
+ done
441
+ git diff --cached --quiet || git commit -m "chore(oat): update imported plan artifacts for {project-name}"
442
+ fi
437
443
  ```
438
444
 
439
445
  ### Gate Execution
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: oat-project-new
3
- version: 1.3.2
3
+ version: 1.4.0
4
4
  description: Use when starting a spec-driven OAT project from scratch. Scaffolds a new project under PROJECTS_ROOT and sets it active.
5
- argument-hint: '<project-name> [--force]'
5
+ argument-hint: '<project-name> [--scope shared|local|synced] [--force]'
6
6
  disable-model-invocation: true
7
7
  user-invocable: true
8
8
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
@@ -10,7 +10,7 @@ allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
10
10
 
11
11
  # New OAT Project
12
12
 
13
- Create a new OAT project directory, scaffold standard artifacts from `.oat/templates/`, and set `activeProject` in local config.
13
+ Create a new OAT project directory, scaffold standard artifacts from `.oat/templates/`, and set `activeProject` in local config. New projects default to `synced`; pass `--scope shared|local|synced` to override the resolved `projects.defaultScope` setting.
14
14
 
15
15
  ## Progress Indicators (User-Facing)
16
16
 
@@ -65,11 +65,12 @@ If not provided in `$ARGUMENTS`, ask the user for `{project-name}` (slug format:
65
65
  Use the CLI scaffolder:
66
66
 
67
67
  ```bash
68
- oat project new "{project-name}" --mode spec-driven
68
+ oat project new "{project-name}" --mode spec-driven [--scope shared|local|synced]
69
69
  ```
70
70
 
71
71
  Optional flags:
72
72
 
73
+ - `--scope shared|local|synced` (omitting it uses `projects.defaultScope`, whose default is `synced`)
73
74
  - `--force` (non-destructive; only fills missing files/dirs, does not overwrite)
74
75
  - `--no-set-active`
75
76
  - `--no-dashboard`
@@ -78,7 +79,8 @@ Optional flags:
78
79
 
79
80
  Confirm to the user:
80
81
 
81
- - Project path created: `{PROJECTS_ROOT}/{project-name}`
82
+ - Project path created under the resolved scope root (`.oat/projects/synced/` by default)
83
+ - Project scope: `{shared|local|synced}` (`projects.defaultScope` when `--scope` was omitted)
82
84
  - Active project set in local config: `.oat/config.local.json` (`activeProject`)
83
85
  - Repo State Dashboard refreshed locally: `.oat/state.md` (if enabled; generated and normally gitignored)
84
86
 
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: oat-project-next
3
- version: 1.0.11
3
+ version: 1.0.12
4
4
  description: Use when continuing work on the active OAT project. Reads project state, determines the next lifecycle action, and invokes the appropriate skill automatically.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
7
- allowed-tools: Read, Glob, Grep, Bash(git:*), Skill
7
+ allowed-tools: Read, Glob, Grep, Bash(git:*), Bash(oat:*), Skill
8
8
  ---
9
9
 
10
10
  # Project Next
@@ -73,27 +73,49 @@ This skill is purely a reader and dispatcher — it never mutates project state.
73
73
 
74
74
  ```bash
75
75
  PROJECT_PATH=$(oat config get activeProject 2>/dev/null || true)
76
- PROJECTS_ROOT="${OAT_PROJECTS_ROOT:-$(oat config get projects.root 2>/dev/null || echo ".oat/projects/shared")}"
77
- PROJECTS_ROOT="${PROJECTS_ROOT%/}"
76
+ ```
77
+
78
+ Before reading project state, resolve the active project's scope and pull a
79
+ synced checkout. Arrival is read-oriented: if scope resolution fails, warn,
80
+ skip the pull, and continue into the existing missing/invalid-project routing
81
+ instead of terminating the skill.
82
+
83
+ ```bash
84
+ if [ -n "$PROJECT_PATH" ]; then
85
+ if ! PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value); then
86
+ echo "Warning: Could not resolve active project scope; skipping arrival pull and continuing with available local state." >&2
87
+ PROJECT_SCOPE=""
88
+ elif [ "$PROJECT_SCOPE" = "synced" ]; then
89
+ [ "$PROJECT_SCOPE" = "synced" ] && oat project pull "$PROJECT_PATH"
90
+ fi
91
+ fi
78
92
  ```
79
93
 
80
94
  **If `PROJECT_PATH` is missing or invalid (directory does not exist):**
81
95
 
82
- Check whether any projects exist:
96
+ Ask the CLI for its all-scope project inventory. Do not probe only the shared
97
+ projects root:
83
98
 
84
99
  ```bash
85
- ls -d "$PROJECTS_ROOT"/*/ 2>/dev/null
100
+ PROJECT_LIST_JSON=$(oat project list --json) || exit 1
86
101
  ```
87
102
 
88
- - **No projects exist:** Report error and suggest:
103
+ Read the structured `projects` array. It includes shared projects, local-only
104
+ projects, and synced records whose detached checkout is absent.
105
+
106
+ - **The `projects` array is empty:** Report error and suggest:
89
107
  - `oat-project-new` — Create a spec-driven project
90
108
  - `oat-project-quick-start` — Start a quick workflow project
91
109
  - `oat-project-import-plan` — Import an external plan
92
110
  - **STOP.** Do not attempt routing.
93
111
 
94
- - **Projects exist but none is active:** Report error and suggest:
95
- - `oat-project-open` — Select an existing project
96
- - **STOP.** Do not attempt routing.
112
+ - **The `projects` array is non-empty but the active pointer is missing or
113
+ invalid:** Show the available project names with their `scope` and `checkout`
114
+ state, then invoke `oat-project-open` so the user selects an existing
115
+ project. An absent-checkout synced record and a local-only project both take
116
+ this selection route; never suggest creating a replacement project. **STOP**
117
+ this router after the selection workflow returns so the next invocation can
118
+ pull/read the chosen project normally.
97
119
 
98
120
  **If `PROJECT_PATH` is valid:** derive `{project-name}` as the basename of the path.
99
121
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan
3
- version: 1.4.4
3
+ version: 1.4.5
4
4
  description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
5
5
  oat_gateable: true
6
6
  disable-model-invocation: true
@@ -641,8 +641,22 @@ Planning - Ready for implementation
641
641
  ### Step 15: Commit Plan
642
642
 
643
643
  ```bash
644
- git add "$PROJECT_PATH/"
645
- git commit -m "docs: complete implementation plan for {project-name}
644
+ 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; }
645
+ # fail closed: never fall back to branch bookkeeping when scope resolution fails
646
+ if [ "$PROJECT_SCOPE" = "synced" ]; then
647
+ oat project push "$PROJECT_PATH" --message "docs: complete implementation plan for {project-name}
648
+
649
+ Phases:
650
+ - Phase 1: {description} ({N} tasks)
651
+ - Phase 2: {description} ({N} tasks)
652
+
653
+ Total: {N} tasks
654
+
655
+ Ready for implementation" || { echo "oat: project push failed; run oat project pull, resolve the reported state, and retry" >&2; exit 1; }
656
+ else
657
+ PROJECT_OUTPUT_PATHS=("$PROJECT_PATH/plan.md" "$PROJECT_PATH/state.md")
658
+ git add -- "${PROJECT_OUTPUT_PATHS[@]}"
659
+ git commit -m "docs: complete implementation plan for {project-name}
646
660
 
647
661
  Phases:
648
662
  - Phase 1: {description} ({N} tasks)
@@ -651,6 +665,7 @@ Phases:
651
665
  Total: {N} tasks
652
666
 
653
667
  Ready for implementation"
668
+ fi
654
669
  ```
655
670
 
656
671
  ### Step 15.5: Generate the Project Explainer When Selected
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: oat-project-pr-final
3
- version: 1.5.3
3
+ version: 1.6.0
4
4
  description: Use when the user requests or confirms opening the final PR for an active OAT project — e.g. "open the final PR", "ship it", "run oat-project-pr-final", or confirms a previously offered final-PR step. Do NOT auto-invoke when phases are marked complete. Generates the final lifecycle PR description from artifacts and creates the PR.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
7
- allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
7
+ allowed-tools: Read, Write, Bash(awk:*), Bash(gh:*), Bash(git:*), Bash(mktemp:*), Bash(oat:*), Bash(rm:*), Glob, Grep, AskUserQuestion
8
8
  ---
9
9
 
10
10
  # Project PR (Final)
@@ -293,6 +293,10 @@ Reference links policy:
293
293
  - Prefer clickable blob links to the current branch for References.
294
294
  - Build links from `origin` + current branch when possible.
295
295
  - If remote URL cannot be resolved into a web URL, fall back to plain relative paths.
296
+ - For `synced`, never add project artifact paths to References. The delimited
297
+ `oat project links` block replaces them and contains only eligible pinned
298
+ discovery/design/summary links; it never links plan, state, implementation,
299
+ or reviews.
296
300
 
297
301
  Local path exclusion:
298
302
 
@@ -366,6 +370,23 @@ Only include links to artifacts that actually exist in the project. Omit any tha
366
370
 
367
371
  After writing the PR artifact, push and create the PR automatically.
368
372
 
373
+ For a synced project, use this ordered flow; do not reorder it:
374
+
375
+ 1. Finish or refresh `summary.md` and the PR artifact.
376
+ 2. Run `oat project push "$PROJECT_PATH" --message "chore(oat): prepare final PR artifacts" --json` so the ref contains both files; a nonzero exit stops the flow until the reported pull/conflict recovery is resolved and the push is retried.
377
+ 3. Render `oat project links "$PROJECT_PATH" --format markdown` and insert or replace its delimited block in the stripped PR body. The initial body must already contain the freshly pushed summary link when `summary.md` exists.
378
+ 4. Push the code branch, then run `gh pr create`; capture the returned URL.
379
+ 5. Set `oat_pr_status: open`, `oat_pr_url`, `oat_phase_status: pr_open`, and the existing routing prose in `state.md`.
380
+ 6. Run `oat project push "$PROJECT_PATH" --message "chore(oat): record final PR metadata" --json` again. A nonzero exit stops closeout until the reported recovery is resolved and the push is retried. A successful push publishes authoritative PR metadata and refreshes the GitHub links block to the new ref SHA.
381
+
382
+ Scope resolution is fail-closed:
383
+
384
+ ```bash
385
+ PROJECT_SCOPE=$(oat project scope "$PROJECT_PATH" --format value) || { echo "oat: cannot resolve project scope for $PROJECT_PATH; refusing PR bookkeeping" >&2; exit 1; }
386
+ ```
387
+
388
+ The non-synced flow below remains unchanged.
389
+
369
390
  **CRITICAL — Strip YAML frontmatter before submitting to GitHub.**
370
391
  The local artifact file contains YAML frontmatter (`---` delimited block at the top) for OAT metadata. This frontmatter MUST NOT appear in the GitHub PR body. Before passing the file to `gh pr create`, strip everything from the start of the file through and including the closing `---` line. Verify the resulting body starts with the markdown heading (e.g., `# feat: ...`), not YAML keys.
371
392