@open-agent-toolkit/cli 0.2.36 → 0.2.38

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 (183) hide show
  1. package/assets/bundle-metadata.json +1 -1
  2. package/assets/docs/cli-utilities/backlog-lifecycle.md +18 -0
  3. package/assets/docs/cli-utilities/bootstrap.md +6 -3
  4. package/assets/docs/cli-utilities/config-and-local-state.md +26 -12
  5. package/assets/docs/cli-utilities/configuration.md +36 -13
  6. package/assets/docs/cli-utilities/tool-packs.md +423 -51
  7. package/assets/docs/provider-sync/scope-and-surface.md +4 -1
  8. package/assets/docs/reference/cli-reference.md +5 -3
  9. package/assets/docs/reference/file-locations.md +28 -4
  10. package/assets/docs/reference/troubleshooting.md +132 -2
  11. package/assets/docs/workflows/projects/lifecycle.md +21 -2
  12. package/assets/public-package-versions.json +4 -4
  13. package/assets/scripts/generate-oat-state.sh +441 -0
  14. package/assets/scripts/generate-thin-index.sh +200 -0
  15. package/assets/skills/oat-agent-instructions-analyze/SKILL.md +10 -5
  16. package/assets/skills/oat-agent-instructions-apply/SKILL.md +30 -5
  17. package/assets/skills/oat-brainstorm/SKILL.md +34 -8
  18. package/assets/skills/oat-brainstorm/references/destinations.md +6 -1
  19. package/assets/skills/oat-docs-analyze/SKILL.md +9 -4
  20. package/assets/skills/oat-docs-apply/SKILL.md +6 -3
  21. package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +14 -1
  22. package/assets/skills/oat-pjm-decision/SKILL.md +22 -10
  23. package/assets/skills/oat-pjm-review-backlog/SKILL.md +20 -3
  24. package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +20 -10
  25. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
  26. package/assets/skills/oat-project-document/SKILL.md +21 -3
  27. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
  28. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
  29. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
  30. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
  31. package/assets/skills/oat-project-summary/SKILL.md +23 -11
  32. package/assets/skills/oat-repo-knowledge-index/SKILL.md +6 -3
  33. package/dist/commands/backlog/index.d.ts +2 -0
  34. package/dist/commands/backlog/index.d.ts.map +1 -1
  35. package/dist/commands/backlog/index.js +67 -23
  36. package/dist/commands/backlog/new.d.ts +3 -0
  37. package/dist/commands/backlog/new.d.ts.map +1 -1
  38. package/dist/commands/backlog/new.js +8 -21
  39. package/dist/commands/decision/agents-guidance.d.ts.map +1 -1
  40. package/dist/commands/decision/agents-guidance.js +2 -1
  41. package/dist/commands/decision/index.d.ts +2 -0
  42. package/dist/commands/decision/index.d.ts.map +1 -1
  43. package/dist/commands/decision/index.js +19 -3
  44. package/dist/commands/decision/new.d.ts +4 -0
  45. package/dist/commands/decision/new.d.ts.map +1 -1
  46. package/dist/commands/decision/new.js +11 -30
  47. package/dist/commands/doctor/index.d.ts +4 -0
  48. package/dist/commands/doctor/index.d.ts.map +1 -1
  49. package/dist/commands/doctor/index.js +254 -9
  50. package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -1
  51. package/dist/commands/init/tools/brainstorm/index.js +20 -6
  52. package/dist/commands/init/tools/docs/index.d.ts.map +1 -1
  53. package/dist/commands/init/tools/docs/index.js +4 -1
  54. package/dist/commands/init/tools/ideas/index.d.ts.map +1 -1
  55. package/dist/commands/init/tools/ideas/index.js +4 -1
  56. package/dist/commands/init/tools/index.d.ts +11 -2
  57. package/dist/commands/init/tools/index.d.ts.map +1 -1
  58. package/dist/commands/init/tools/index.js +459 -351
  59. package/dist/commands/init/tools/install-state.d.ts +2 -0
  60. package/dist/commands/init/tools/install-state.d.ts.map +1 -1
  61. package/dist/commands/init/tools/install-state.js +11 -0
  62. package/dist/commands/init/tools/project-management/agents-guidance.d.ts.map +1 -1
  63. package/dist/commands/init/tools/project-management/agents-guidance.js +3 -1
  64. package/dist/commands/init/tools/project-management/index.d.ts +1 -0
  65. package/dist/commands/init/tools/project-management/index.d.ts.map +1 -1
  66. package/dist/commands/init/tools/project-management/index.js +24 -55
  67. package/dist/commands/init/tools/project-management/install-project-management.d.ts +4 -0
  68. package/dist/commands/init/tools/project-management/install-project-management.d.ts.map +1 -1
  69. package/dist/commands/init/tools/project-management/install-project-management.js +4 -1
  70. package/dist/commands/init/tools/research/index.d.ts.map +1 -1
  71. package/dist/commands/init/tools/research/index.js +4 -1
  72. package/dist/commands/init/tools/shared/copy-helpers.d.ts.map +1 -1
  73. package/dist/commands/init/tools/shared/copy-helpers.js +10 -0
  74. package/dist/commands/init/tools/shared/skill-manifest.d.ts +15 -15
  75. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  76. package/dist/commands/init/tools/shared/skill-manifest.js +17 -122
  77. package/dist/commands/init/tools/utility/index.d.ts.map +1 -1
  78. package/dist/commands/init/tools/utility/index.js +4 -1
  79. package/dist/commands/init/tools/workflows/index.d.ts.map +1 -1
  80. package/dist/commands/init/tools/workflows/index.js +4 -1
  81. package/dist/commands/init/tools/workflows/install-workflows.d.ts.map +1 -1
  82. package/dist/commands/init/tools/workflows/install-workflows.js +2 -4
  83. package/dist/commands/pjm/adoption.d.ts +12 -0
  84. package/dist/commands/pjm/adoption.d.ts.map +1 -0
  85. package/dist/commands/pjm/adoption.js +47 -0
  86. package/dist/commands/pjm/doctor.d.ts +3 -2
  87. package/dist/commands/pjm/doctor.d.ts.map +1 -1
  88. package/dist/commands/pjm/doctor.js +28 -13
  89. package/dist/commands/pjm/index.d.ts +2 -0
  90. package/dist/commands/pjm/index.d.ts.map +1 -1
  91. package/dist/commands/pjm/index.js +11 -3
  92. package/dist/commands/pjm/init.d.ts +3 -0
  93. package/dist/commands/pjm/init.d.ts.map +1 -1
  94. package/dist/commands/pjm/init.js +37 -32
  95. package/dist/commands/pjm/migrate.d.ts +1 -0
  96. package/dist/commands/pjm/migrate.d.ts.map +1 -1
  97. package/dist/commands/pjm/migrate.js +1 -0
  98. package/dist/commands/pjm/template-source.d.ts +14 -0
  99. package/dist/commands/pjm/template-source.d.ts.map +1 -0
  100. package/dist/commands/pjm/template-source.js +56 -0
  101. package/dist/commands/remove/skills/remove-skills.d.ts.map +1 -1
  102. package/dist/commands/remove/skills/remove-skills.js +10 -19
  103. package/dist/commands/status/index.d.ts +5 -0
  104. package/dist/commands/status/index.d.ts.map +1 -1
  105. package/dist/commands/status/index.js +203 -2
  106. package/dist/commands/sync/index.d.ts.map +1 -1
  107. package/dist/commands/sync/index.js +40 -7
  108. package/dist/commands/sync/sync.types.d.ts +4 -0
  109. package/dist/commands/sync/sync.types.d.ts.map +1 -1
  110. package/dist/commands/tools/has/has-pack.d.ts +11 -2
  111. package/dist/commands/tools/has/has-pack.d.ts.map +1 -1
  112. package/dist/commands/tools/has/has-pack.js +33 -20
  113. package/dist/commands/tools/index.d.ts.map +1 -1
  114. package/dist/commands/tools/index.js +3 -1
  115. package/dist/commands/tools/info/info-tool.d.ts +3 -0
  116. package/dist/commands/tools/info/info-tool.d.ts.map +1 -1
  117. package/dist/commands/tools/info/info-tool.js +29 -4
  118. package/dist/commands/tools/list/list-tools.d.ts +3 -0
  119. package/dist/commands/tools/list/list-tools.d.ts.map +1 -1
  120. package/dist/commands/tools/list/list-tools.js +31 -4
  121. package/dist/commands/tools/migrate/index.d.ts +26 -0
  122. package/dist/commands/tools/migrate/index.d.ts.map +1 -0
  123. package/dist/commands/tools/migrate/index.js +312 -0
  124. package/dist/commands/tools/migrate/migrate-pack.d.ts +81 -0
  125. package/dist/commands/tools/migrate/migrate-pack.d.ts.map +1 -0
  126. package/dist/commands/tools/migrate/migrate-pack.js +324 -0
  127. package/dist/commands/tools/outdated/outdated-tools.d.ts +11 -0
  128. package/dist/commands/tools/outdated/outdated-tools.d.ts.map +1 -1
  129. package/dist/commands/tools/outdated/outdated-tools.js +33 -5
  130. package/dist/commands/tools/remove/index.d.ts.map +1 -1
  131. package/dist/commands/tools/remove/index.js +73 -20
  132. package/dist/commands/tools/remove/remove-tools.d.ts +28 -0
  133. package/dist/commands/tools/remove/remove-tools.d.ts.map +1 -1
  134. package/dist/commands/tools/remove/remove-tools.js +156 -26
  135. package/dist/commands/tools/shared/apply-pack-reconcile.d.ts +41 -0
  136. package/dist/commands/tools/shared/apply-pack-reconcile.d.ts.map +1 -0
  137. package/dist/commands/tools/shared/apply-pack-reconcile.js +126 -0
  138. package/dist/commands/tools/shared/auto-sync.d.ts +5 -2
  139. package/dist/commands/tools/shared/auto-sync.d.ts.map +1 -1
  140. package/dist/commands/tools/shared/auto-sync.js +1 -0
  141. package/dist/commands/tools/shared/content-digest.d.ts +3 -0
  142. package/dist/commands/tools/shared/content-digest.d.ts.map +1 -0
  143. package/dist/commands/tools/shared/content-digest.js +57 -0
  144. package/dist/commands/tools/shared/format-pack-inventory.d.ts +3 -0
  145. package/dist/commands/tools/shared/format-pack-inventory.d.ts.map +1 -0
  146. package/dist/commands/tools/shared/format-pack-inventory.js +21 -0
  147. package/dist/commands/tools/shared/install-sync-context.d.ts.map +1 -1
  148. package/dist/commands/tools/shared/install-sync-context.js +2 -25
  149. package/dist/commands/tools/shared/pack-inventory.d.ts +46 -0
  150. package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -0
  151. package/dist/commands/tools/shared/pack-inventory.js +207 -0
  152. package/dist/commands/tools/shared/pack-lifecycle.d.ts +34 -0
  153. package/dist/commands/tools/shared/pack-lifecycle.d.ts.map +1 -0
  154. package/dist/commands/tools/shared/pack-lifecycle.js +67 -0
  155. package/dist/commands/tools/shared/pack-manifest.d.ts +11 -0
  156. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -0
  157. package/dist/commands/tools/shared/pack-manifest.js +384 -0
  158. package/dist/commands/tools/shared/pack-paths.d.ts +21 -0
  159. package/dist/commands/tools/shared/pack-paths.d.ts.map +1 -0
  160. package/dist/commands/tools/shared/pack-paths.js +35 -0
  161. package/dist/commands/tools/shared/pack-reconcile.d.ts +64 -0
  162. package/dist/commands/tools/shared/pack-reconcile.d.ts.map +1 -0
  163. package/dist/commands/tools/shared/pack-reconcile.js +158 -0
  164. package/dist/commands/tools/shared/project-tools-config.d.ts.map +1 -1
  165. package/dist/commands/tools/shared/project-tools-config.js +12 -38
  166. package/dist/commands/tools/shared/scan-tools.js +2 -2
  167. package/dist/commands/tools/shared/scoped-pack-intent.d.ts +34 -0
  168. package/dist/commands/tools/shared/scoped-pack-intent.d.ts.map +1 -0
  169. package/dist/commands/tools/shared/scoped-pack-intent.js +116 -0
  170. package/dist/commands/tools/shared/types.d.ts +22 -0
  171. package/dist/commands/tools/shared/types.d.ts.map +1 -1
  172. package/dist/commands/tools/update/index.d.ts.map +1 -1
  173. package/dist/commands/tools/update/index.js +30 -5
  174. package/dist/commands/tools/update/update-tools.d.ts +9 -1
  175. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  176. package/dist/commands/tools/update/update-tools.js +176 -64
  177. package/dist/config/oat-config.d.ts +6 -0
  178. package/dist/config/oat-config.d.ts.map +1 -1
  179. package/dist/config/oat-config.js +49 -20
  180. package/dist/fs/paths.d.ts +12 -0
  181. package/dist/fs/paths.d.ts.map +1 -1
  182. package/dist/fs/paths.js +87 -1
  183. package/package.json +2 -2
@@ -241,7 +241,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
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
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` |
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`; `ac36f854dd6b -> NG`; `f3e49b727752 -> NG`; `5f315ab87cb1 -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> 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
245
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
246
246
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
247
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` |
@@ -241,7 +241,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
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
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` |
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`; `ac36f854dd6b -> NG`; `f3e49b727752 -> NG`; `5f315ab87cb1 -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> 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
245
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
246
246
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
247
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` |
@@ -241,7 +241,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
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
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` |
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`; `ac36f854dd6b -> NG`; `f3e49b727752 -> NG`; `5f315ab87cb1 -> NG`; `e73bd88837ea -> NG`; `83257ff6cb68 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> 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
245
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `5eb3949f32e1 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
246
246
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
247
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` |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-summary
3
- version: 1.3.5
3
+ version: 1.5.0
4
4
  description: Use when the user requests or confirms summarizing an active OAT project — e.g. "summarize the project", "generate the summary", "run oat-project-summary", or confirms a previously offered summary run. Do NOT auto-invoke when implementation completes. Generates summary.md from project artifacts as institutional memory.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -360,24 +360,36 @@ append-based `project` → `general` promotion in Step 2.5.
360
360
 
361
361
  Run this step **after** `summary.md` (including its `## Key Decisions` section) has been written/refreshed and its frontmatter updated. It promotes the project's Key Decisions out of per-project prose and into the canonical, repo-wide `reference/decisions/` log so they stop being siloed in `summary.md`. This step is **additive and non-interactive** — it never prompts.
362
362
 
363
- **7.1 — PJM gate (auto, no prompt).** Check whether the PJM tool pack is effectively available:
363
+ **7.1 — PJM capability and adoption gate (auto, no prompt).** Check capability
364
+ availability, then inspect repository adoption read-only:
364
365
 
365
366
  ```bash
366
367
  PJM_ENABLED=$(oat tools has project-management 2>/dev/null || echo "")
368
+ PJM_ADOPTION_STATE=""
369
+ if [ "$PJM_ENABLED" = "true" ]; then
370
+ PJM_ADOPTION_STATE=$(oat pjm doctor --json 2>/dev/null | jq -r '.adoption.state // ""')
371
+ fi
367
372
  ```
368
373
 
369
- - If `PJM_ENABLED` is `true` → perform the promotion automatically. Do NOT ask the user.
370
- - Otherwise (any other value, empty, or unset) → **skip this entire step silently.** Do not print a warning or prompt.
374
+ - If `PJM_ADOPTION_STATE` is `declared` or `inferred-legacy` → perform the
375
+ promotion automatically. Do NOT ask the user.
376
+ - If capability is absent → skip this entire step silently.
377
+ - If adoption is `none` or `partial-initialization` → skip every PJM write and
378
+ report that `oat pjm init` is required before decision promotion.
379
+ - If capability is present but `PJM_ADOPTION_STATE` is empty or holds any value
380
+ other than the four documented states (`declared`, `inferred-legacy`, `none`,
381
+ `partial-initialization`) → treat adoption as unverified: skip every PJM
382
+ write, do not fall through to the promotion branch, and report that adoption
383
+ could not be determined (usually `jq` missing from `PATH` or a failing
384
+ `oat pjm doctor`).
371
385
 
372
386
  **7.2 — Skip if nothing to promote.** If `summary.md` has no `## Key Decisions` section, or that section has no decision content, skip the step. There is nothing to promote.
373
387
 
374
- **7.3 — Ensure the decisions surface exists.** The canonical decisions root is `.oat/repo/reference/decisions` (the `oat decision` default; pass `--decisions-root <path>` only for an explicit override). If its managed index is missing — i.e. `.oat/repo/reference/decisions/index.md` does not exist — initialize it first so `oat decision new` can succeed:
375
-
376
- ```bash
377
- test -f .oat/repo/reference/decisions/index.md || oat decision init
378
- ```
379
-
380
- `oat decision init` is idempotent; running it when the scaffold already exists is harmless.
388
+ **7.3 — Verify the decisions surface exists.** The canonical decisions root is
389
+ `.oat/repo/reference/decisions` (the `oat decision` default; pass
390
+ `--decisions-root <path>` only for an explicit override). If its managed index
391
+ is missing, stop decision promotion and recommend `oat pjm init`. Never use
392
+ `oat decision init` as an alternate repository-adoption path.
381
393
 
382
394
  **7.4 — Idempotent, date-independent promotion (critical).** For each decision in `## Key Decisions`:
383
395
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-repo-knowledge-index
3
- version: 1.2.0
3
+ version: 1.3.0
4
4
  description: Use when onboarding OAT to a repository or when knowledge artifacts are stale. Generates or refreshes the codebase knowledge index using parallel mapper agents.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -675,11 +675,14 @@ Generated from commit: {MERGE_BASE_SHA}"
675
675
  Record the knowledge index run in the shared tracking manifest:
676
676
 
677
677
  ```bash
678
- ROOT_TARGET=$(bash .oat/scripts/resolve-tracking.sh root)
678
+ # Set SKILL_DIR to the absolute directory containing this loaded SKILL.md.
679
+ SCOPE_ROOT="$(cd "$SKILL_DIR/../../.." && pwd)"
680
+ TRACKING_SCRIPT="$SCOPE_ROOT/.oat/scripts/resolve-tracking.sh"
681
+ ROOT_TARGET=$(bash "$TRACKING_SCRIPT" root)
679
682
  ROOT_HASH=$(echo "$ROOT_TARGET" | jq -r '.commitHash')
680
683
  ROOT_BRANCH=$(echo "$ROOT_TARGET" | jq -r '.baseBranch')
681
684
 
682
- bash .oat/scripts/resolve-tracking.sh \
685
+ bash "$TRACKING_SCRIPT" \
683
686
  write knowledgeIndex "$ROOT_HASH" "$ROOT_BRANCH" full \
684
687
  --artifact-path ".oat/repo/knowledge/"
685
688
  ```
@@ -1,4 +1,5 @@
1
1
  import { buildCommandContext } from '../../app/command-context.js';
2
+ import { resolvePjmAdoption } from '../pjm/adoption.js';
2
3
  import { resolveAssetsRoot } from '../../fs/assets.js';
3
4
  import { resolveProjectRoot } from '../../fs/paths.js';
4
5
  import { Command } from 'commander';
@@ -10,6 +11,7 @@ interface BacklogCommandDependencies {
10
11
  buildCommandContext: typeof buildCommandContext;
11
12
  resolveProjectRoot: typeof resolveProjectRoot;
12
13
  resolveAssetsRoot: typeof resolveAssetsRoot;
14
+ resolvePjmAdoption: typeof resolvePjmAdoption;
13
15
  initializeBacklog: typeof initializeBacklog;
14
16
  regenerateBacklogIndex: typeof regenerateBacklogIndex;
15
17
  createBacklogItem: typeof createBacklogItem;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/backlog/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAuB,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA8B5D,UAAU,0BAA0B;IAClC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;IACtD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AA4CD,wBAAgB,oBAAoB,CAClC,SAAS,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAClD,OAAO,CAqQT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/backlog/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,kBAAkB,EAAuB,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AA8B5D,UAAU,0BAA0B;IAClC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;IACtD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AA4ED,wBAAgB,oBAAoB,CAClC,SAAS,GAAE,OAAO,CAAC,0BAA0B,CAAM,GAClD,OAAO,CAyRT"}
@@ -1,7 +1,9 @@
1
1
  import { access } from 'node:fs/promises';
2
2
  import { join, resolve } from 'node:path';
3
3
  import { buildCommandContext } from '../../app/command-context.js';
4
+ import { resolvePjmAdoption } from '../pjm/adoption.js';
4
5
  import { readGlobalOptions } from '../shared/shared.utils.js';
6
+ import { CliError } from '../../errors/index.js';
5
7
  import { resolveAssetsRoot } from '../../fs/assets.js';
6
8
  import { resolveProjectRoot } from '../../fs/paths.js';
7
9
  import { Command } from 'commander';
@@ -29,19 +31,42 @@ const DEFAULT_DEPENDENCIES = {
29
31
  buildCommandContext,
30
32
  resolveProjectRoot,
31
33
  resolveAssetsRoot,
34
+ resolvePjmAdoption,
32
35
  initializeBacklog,
33
36
  regenerateBacklogIndex,
34
37
  createBacklogItem,
35
38
  archiveBacklogItem,
36
39
  pathExists: pathExistsDefault,
37
40
  };
38
- async function resolveBacklogRoot(context, configuredRoot, dependencies = DEFAULT_DEPENDENCIES) {
41
+ async function resolveBacklogRoot(context, configuredRoot, dependencies = DEFAULT_DEPENDENCIES, resolvedProjectRoot) {
39
42
  if (configuredRoot) {
40
43
  return resolve(context.cwd, configuredRoot);
41
44
  }
42
- const projectRoot = await dependencies.resolveProjectRoot(context.cwd);
45
+ const projectRoot = resolvedProjectRoot ?? (await dependencies.resolveProjectRoot(context.cwd));
43
46
  return resolve(projectRoot, '.oat', 'repo', 'pjm', 'backlog');
44
47
  }
48
+ async function requireRepositoryPjm(context, dependencies) {
49
+ const projectRoot = await dependencies.resolveProjectRoot(context.cwd);
50
+ const repoRoot = resolve(projectRoot, '.oat', 'repo');
51
+ const adoption = await dependencies.resolvePjmAdoption({
52
+ projectRoot,
53
+ repoRoot,
54
+ });
55
+ if (adoption.state !== 'declared' && adoption.state !== 'inferred-legacy') {
56
+ throw new CliError(`PJM is not initialized for repository ${repoRoot}. Run \`oat pjm init\` before writing PJM state.`, 1);
57
+ }
58
+ return projectRoot;
59
+ }
60
+ function reportError(context, error) {
61
+ const message = error instanceof Error ? error.message : String(error);
62
+ if (context.json) {
63
+ context.logger.json({ status: 'error', message });
64
+ }
65
+ else {
66
+ context.logger.error(message);
67
+ }
68
+ process.exitCode = 1;
69
+ }
45
70
  export function createBacklogCommand(overrides = {}) {
46
71
  const dependencies = {
47
72
  ...DEFAULT_DEPENDENCIES,
@@ -54,15 +79,21 @@ export function createBacklogCommand(overrides = {}) {
54
79
  .option('--backlog-root <path>', 'Backlog root directory (defaults to .oat/repo/pjm/backlog)')
55
80
  .action(async (options, command) => {
56
81
  const context = dependencies.buildCommandContext(readGlobalOptions(command));
57
- const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies);
58
- await dependencies.initializeBacklog(backlogRoot);
59
- if (context.json) {
60
- context.logger.json({ status: 'ok', backlogRoot });
82
+ try {
83
+ const projectRoot = await requireRepositoryPjm(context, dependencies);
84
+ const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies, projectRoot);
85
+ await dependencies.initializeBacklog(backlogRoot);
86
+ if (context.json) {
87
+ context.logger.json({ status: 'ok', backlogRoot });
88
+ }
89
+ else {
90
+ context.logger.info(`Initialized backlog scaffold at ${backlogRoot}`);
91
+ }
92
+ process.exitCode = 0;
61
93
  }
62
- else {
63
- context.logger.info(`Initialized backlog scaffold at ${backlogRoot}`);
94
+ catch (error) {
95
+ reportError(context, error);
64
96
  }
65
- process.exitCode = 0;
66
97
  });
67
98
  cmd
68
99
  .command('new')
@@ -77,13 +108,14 @@ export function createBacklogCommand(overrides = {}) {
77
108
  .action(async (title, options, command) => {
78
109
  const context = dependencies.buildCommandContext(readGlobalOptions(command));
79
110
  try {
80
- const projectRoot = await dependencies.resolveProjectRoot(context.cwd);
81
- const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies);
111
+ const projectRoot = await requireRepositoryPjm(context, dependencies);
112
+ const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies, projectRoot);
82
113
  const assetsRoot = await dependencies.resolveAssetsRoot();
83
114
  const result = await dependencies.createBacklogItem({
84
115
  backlogRoot,
85
116
  assetsRoot,
86
117
  templatesRoot: resolve(projectRoot, '.oat', 'templates'),
118
+ home: context.home,
87
119
  title,
88
120
  priority: options.priority,
89
121
  scope: options.scope,
@@ -121,18 +153,29 @@ export function createBacklogCommand(overrides = {}) {
121
153
  .option('--backlog-root <path>', 'Backlog root directory (defaults to .oat/repo/pjm/backlog)')
122
154
  .action(async (options, command) => {
123
155
  const context = dependencies.buildCommandContext(readGlobalOptions(command));
124
- const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies);
125
- const { itemCount, warnings } = await dependencies.regenerateBacklogIndex(backlogRoot);
126
- if (context.json) {
127
- context.logger.json({ status: 'ok', backlogRoot, itemCount, warnings });
128
- }
129
- else {
130
- for (const warning of warnings) {
131
- context.logger.warn(warning);
156
+ try {
157
+ const projectRoot = await requireRepositoryPjm(context, dependencies);
158
+ const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies, projectRoot);
159
+ const { itemCount, warnings } = await dependencies.regenerateBacklogIndex(backlogRoot);
160
+ if (context.json) {
161
+ context.logger.json({
162
+ status: 'ok',
163
+ backlogRoot,
164
+ itemCount,
165
+ warnings,
166
+ });
167
+ }
168
+ else {
169
+ for (const warning of warnings) {
170
+ context.logger.warn(warning);
171
+ }
172
+ context.logger.info(`Regenerated backlog index at ${backlogRoot}`);
132
173
  }
133
- context.logger.info(`Regenerated backlog index at ${backlogRoot}`);
174
+ process.exitCode = 0;
175
+ }
176
+ catch (error) {
177
+ reportError(context, error);
134
178
  }
135
- process.exitCode = 0;
136
179
  });
137
180
  cmd
138
181
  .command('archive')
@@ -143,8 +186,9 @@ export function createBacklogCommand(overrides = {}) {
143
186
  .option('--backlog-root <path>', 'Backlog root directory (defaults to .oat/repo/pjm/backlog)')
144
187
  .action(async (id, options, command) => {
145
188
  const context = dependencies.buildCommandContext(readGlobalOptions(command));
146
- const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies);
147
189
  try {
190
+ const projectRoot = await requireRepositoryPjm(context, dependencies);
191
+ const backlogRoot = await resolveBacklogRoot(context, options.backlogRoot, dependencies, projectRoot);
148
192
  const result = await dependencies.archiveBacklogItem(backlogRoot, id, {
149
193
  wontDo: options.wontDo,
150
194
  summary: options.summary,
@@ -180,7 +224,7 @@ export function createBacklogCommand(overrides = {}) {
180
224
  process.exitCode = error.exitCode;
181
225
  return;
182
226
  }
183
- throw error;
227
+ reportError(context, error);
184
228
  }
185
229
  });
186
230
  cmd
@@ -1,9 +1,11 @@
1
+ import { type PjmTemplateTier } from '../pjm/template-source.js';
1
2
  import { initializeBacklog } from './init.js';
2
3
  import { regenerateBacklogIndex, type RegenerateBacklogIndexResult } from './regenerate-index.js';
3
4
  export interface CreateBacklogItemOptions {
4
5
  backlogRoot: string;
5
6
  assetsRoot: string;
6
7
  templatesRoot?: string;
8
+ home?: string;
7
9
  title: string;
8
10
  priority?: string;
9
11
  scope?: string;
@@ -17,6 +19,7 @@ export interface CreateBacklogItemResult {
17
19
  backlogRoot: string;
18
20
  filePath: string;
19
21
  templatePath: string;
22
+ templateTier: PjmTemplateTier;
20
23
  index: RegenerateBacklogIndexResult;
21
24
  }
22
25
  export interface CreateBacklogItemDependencies {
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/backlog/new.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,4BAA4B,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AAuLD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,EACjC,SAAS,GAAE,OAAO,CAAC,6BAA6B,CAAM,GACrD,OAAO,CAAC,uBAAuB,CAAC,CAqDlC"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../src/commands/backlog/new.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,EAClC,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,4BAA4B,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AA2JD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,EACjC,SAAS,GAAE,OAAO,CAAC,6BAA6B,CAAM,GACrD,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
@@ -1,5 +1,6 @@
1
1
  import { access, readFile, rm, writeFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
+ import { resolvePjmTemplate, } from '../pjm/template-source.js';
3
4
  import { stripTemplateFrontmatter } from '../shared/strip-template-frontmatter.js';
4
5
  import YAML from 'yaml';
5
6
  import { initializeBacklog } from './init.js';
@@ -28,26 +29,6 @@ async function pathExists(path) {
28
29
  return false;
29
30
  }
30
31
  }
31
- async function resolveBacklogTemplate(assetsRoot, templatesRoot) {
32
- const candidates = [
33
- ...(templatesRoot ? [join(templatesRoot, 'backlog-item.md')] : []),
34
- join(assetsRoot, 'templates', 'backlog-item.md'),
35
- ];
36
- for (const path of candidates) {
37
- try {
38
- return { content: await readFile(path, 'utf8'), path };
39
- }
40
- catch (error) {
41
- const code = error && typeof error === 'object' && 'code' in error
42
- ? String(error.code)
43
- : null;
44
- if (code !== 'ENOENT') {
45
- throw error;
46
- }
47
- }
48
- }
49
- throw new Error('Template backlog-item.md was not found in repo-local templates or bundled assets.');
50
- }
51
32
  function normalizeChoice(field, value, fallback, allowed, transform) {
52
33
  const normalized = transform(value ?? fallback);
53
34
  if (!allowed.includes(normalized)) {
@@ -123,7 +104,12 @@ export async function createBacklogItem(options, overrides = {}) {
123
104
  if ((await pathExists(filePath)) || (await pathExists(archivedPath))) {
124
105
  throw new Error(`Backlog item ${id} already exists. Use a more specific title to disambiguate.`);
125
106
  }
126
- const template = await resolveBacklogTemplate(options.assetsRoot, options.templatesRoot);
107
+ const template = await resolvePjmTemplate({
108
+ name: 'backlog-item.md',
109
+ assetsRoot: options.assetsRoot,
110
+ templatesRoot: options.templatesRoot,
111
+ home: options.home,
112
+ });
127
113
  const content = renderBacklogItem(template.content, { id, ...values });
128
114
  await dependencies.initializeBacklog(options.backlogRoot);
129
115
  const indexPath = join(options.backlogRoot, 'index.md');
@@ -153,6 +139,7 @@ export async function createBacklogItem(options, overrides = {}) {
153
139
  backlogRoot: options.backlogRoot,
154
140
  filePath,
155
141
  templatePath: template.path,
142
+ templateTier: template.tier,
156
143
  index,
157
144
  };
158
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agents-guidance.d.ts","sourceRoot":"","sources":["../../../src/commands/decision/agents-guidance.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAwBvD,wBAAgB,8BAA8B,CAC5C,aAAa,SAAyB,GACrC,MAAM,CAUR;AAED,wBAAgB,oCAAoC,IAAI,MAAM,CAU7D;AAED,MAAM,WAAW,uCAAuC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,wBAAsB,sCAAsC,CAC1D,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,uCAAuC,GAC/C,OAAO,CAAC,4BAA4B,CAAC,CAgBvC"}
1
+ {"version":3,"file":"agents-guidance.d.ts","sourceRoot":"","sources":["../../../src/commands/decision/agents-guidance.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,2BAA2B,cAAc,CAAC;AAwBvD,wBAAgB,8BAA8B,CAC5C,aAAa,SAAyB,GACrC,MAAM,CAWR;AAED,wBAAgB,oCAAoC,IAAI,MAAM,CAU7D;AAED,MAAM,WAAW,uCAAuC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,wBAAsB,sCAAsC,CAC1D,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,uCAAuC,GAC/C,OAAO,CAAC,4BAA4B,CAAC,CAgBvC"}
@@ -23,7 +23,8 @@ export function buildDecisionAgentsSectionBody(decisionsPath = DEFAULT_DECISIONS
23
23
  `- Before finalizing a durable repository decision, review \`${decisionsPath}/index.md\` and any relevant records.`,
24
24
  '- When the user asks to record a durable decision or confirms a proposed capture, use `oat-pjm-decision` when that skill is installed; otherwise use `oat decision new`.',
25
25
  '- Do not hand-edit the generated decision index; run `oat decision regenerate-index` after record changes or to resolve index conflicts.',
26
- '- If the decision surface is missing, initialize it with `oat decision init`.',
26
+ '- Run `oat pjm doctor --json` and inspect `adoption.state` before any decision write.',
27
+ '- If the decision surface is missing, repository adoption is absent or partial; stop and initialize it with `oat pjm init`.',
27
28
  ].join('\n');
28
29
  }
29
30
  export function buildScopedDecisionAgentsSectionBody() {
@@ -1,4 +1,5 @@
1
1
  import { buildCommandContext } from '../../app/command-context.js';
2
+ import { resolvePjmAdoption } from '../pjm/adoption.js';
2
3
  import { resolveAssetsRoot } from '../../fs/assets.js';
3
4
  import { resolveProjectRoot } from '../../fs/paths.js';
4
5
  import { Command } from 'commander';
@@ -11,6 +12,7 @@ interface DecisionCommandDependencies {
11
12
  buildCommandContext: typeof buildCommandContext;
12
13
  resolveProjectRoot: typeof resolveProjectRoot;
13
14
  resolveAssetsRoot: typeof resolveAssetsRoot;
15
+ resolvePjmAdoption: typeof resolvePjmAdoption;
14
16
  initializeDecisionAgentsGuidance: typeof initializeDecisionAgentsGuidance;
15
17
  initializeDecisionRecords: typeof initializeDecisionRecords;
16
18
  regenerateDecisionIndex: typeof regenerateDecisionIndex;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/decision/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAyB7D,UAAU,2BAA2B;IACnC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,gCAAgC,EAAE,OAAO,gCAAgC,CAAC;IAC1E,yBAAyB,EAAE,OAAO,yBAAyB,CAAC;IAC5D,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AA+CD,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,OAAO,CAAC,2BAA2B,CAAM,GACnD,OAAO,CAoNT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/decision/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAyB7D,UAAU,2BAA2B;IACnC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;IAChD,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,gCAAgC,EAAE,OAAO,gCAAgC,CAAC;IAC1E,yBAAyB,EAAE,OAAO,yBAAyB,CAAC;IAC5D,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;CACvD;AAmED,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,OAAO,CAAC,2BAA2B,CAAM,GACnD,OAAO,CAqNT"}