@open-agent-toolkit/cli 0.0.10

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 (797) hide show
  1. package/README.md +50 -0
  2. package/assets/agents/oat-codebase-mapper.md +275 -0
  3. package/assets/agents/oat-reviewer.md +350 -0
  4. package/assets/agents/skeptical-evaluator.md +126 -0
  5. package/assets/docs/contributing/code.md +95 -0
  6. package/assets/docs/contributing/commit-conventions.md +41 -0
  7. package/assets/docs/contributing/design-principles.md +124 -0
  8. package/assets/docs/contributing/documentation.md +69 -0
  9. package/assets/docs/contributing/hooks-and-safety.md +31 -0
  10. package/assets/docs/contributing/index.md +18 -0
  11. package/assets/docs/contributing/markdown-features.md +117 -0
  12. package/assets/docs/contributing/skills.md +68 -0
  13. package/assets/docs/guide/cli-reference.md +211 -0
  14. package/assets/docs/guide/concepts.md +88 -0
  15. package/assets/docs/guide/configuration.md +130 -0
  16. package/assets/docs/guide/documentation/commands.md +157 -0
  17. package/assets/docs/guide/documentation/index.md +27 -0
  18. package/assets/docs/guide/documentation/quickstart.md +164 -0
  19. package/assets/docs/guide/documentation/workflows.md +67 -0
  20. package/assets/docs/guide/getting-started.md +63 -0
  21. package/assets/docs/guide/ideas/index.md +34 -0
  22. package/assets/docs/guide/ideas/lifecycle.md +106 -0
  23. package/assets/docs/guide/index.md +20 -0
  24. package/assets/docs/guide/provider-sync/commands.md +100 -0
  25. package/assets/docs/guide/provider-sync/config.md +77 -0
  26. package/assets/docs/guide/provider-sync/index.md +65 -0
  27. package/assets/docs/guide/provider-sync/manifest-and-drift.md +55 -0
  28. package/assets/docs/guide/provider-sync/providers.md +67 -0
  29. package/assets/docs/guide/provider-sync/scope-and-surface.md +64 -0
  30. package/assets/docs/guide/skills/index.md +115 -0
  31. package/assets/docs/guide/tool-packs.md +167 -0
  32. package/assets/docs/guide/workflow/artifacts.md +44 -0
  33. package/assets/docs/guide/workflow/hill-checkpoints.md +53 -0
  34. package/assets/docs/guide/workflow/index.md +34 -0
  35. package/assets/docs/guide/workflow/lifecycle.md +207 -0
  36. package/assets/docs/guide/workflow/pr-flow.md +55 -0
  37. package/assets/docs/guide/workflow/repo-analysis.md +96 -0
  38. package/assets/docs/guide/workflow/reviews.md +98 -0
  39. package/assets/docs/guide/workflow/state-machine.md +74 -0
  40. package/assets/docs/index.md +45 -0
  41. package/assets/docs/quickstart.md +162 -0
  42. package/assets/docs/reference/docs-index-contract.md +53 -0
  43. package/assets/docs/reference/file-locations.md +109 -0
  44. package/assets/docs/reference/index.md +29 -0
  45. package/assets/docs/reference/oat-directory-structure.md +236 -0
  46. package/assets/docs/reference/troubleshooting.md +63 -0
  47. package/assets/public-package-versions.json +6 -0
  48. package/assets/scripts/resolve-tracking.sh +233 -0
  49. package/assets/skills/analyze/SKILL.md +358 -0
  50. package/assets/skills/compare/SKILL.md +276 -0
  51. package/assets/skills/create-agnostic-skill/SKILL.md +410 -0
  52. package/assets/skills/create-agnostic-skill/references/skill-template.md +195 -0
  53. package/assets/skills/deep-research/SKILL.md +350 -0
  54. package/assets/skills/deep-research/references/schema-analysis.md +93 -0
  55. package/assets/skills/deep-research/references/schema-architectural.md +75 -0
  56. package/assets/skills/deep-research/references/schema-base.md +70 -0
  57. package/assets/skills/deep-research/references/schema-comparative.md +72 -0
  58. package/assets/skills/deep-research/references/schema-conceptual.md +68 -0
  59. package/assets/skills/deep-research/references/schema-technical.md +64 -0
  60. package/assets/skills/oat-agent-instructions-analyze/SKILL.md +500 -0
  61. package/assets/skills/oat-agent-instructions-analyze/references/analysis-artifact-template.md +248 -0
  62. package/assets/skills/oat-agent-instructions-analyze/references/bundle-summary-template.md +31 -0
  63. package/assets/skills/oat-agent-instructions-analyze/references/directory-assessment-criteria.md +93 -0
  64. package/assets/skills/oat-agent-instructions-analyze/references/docs/agent-instruction.md +575 -0
  65. package/assets/skills/oat-agent-instructions-analyze/references/docs/cursor-rules-files.md +510 -0
  66. package/assets/skills/oat-agent-instructions-analyze/references/docs/provider-reference.md +429 -0
  67. package/assets/skills/oat-agent-instructions-analyze/references/docs/rules-files.md +594 -0
  68. package/assets/skills/oat-agent-instructions-analyze/references/file-type-discovery-checklist.md +273 -0
  69. package/assets/skills/oat-agent-instructions-analyze/references/quality-checklist.md +125 -0
  70. package/assets/skills/oat-agent-instructions-analyze/references/recommendation-pack-template.md +45 -0
  71. package/assets/skills/oat-agent-instructions-analyze/references/recommendations-manifest-template.yaml +27 -0
  72. package/assets/skills/oat-agent-instructions-analyze/scripts/resolve-instruction-files.sh +120 -0
  73. package/assets/skills/oat-agent-instructions-analyze/scripts/resolve-providers.sh +135 -0
  74. package/assets/skills/oat-agent-instructions-apply/SKILL.md +507 -0
  75. package/assets/skills/oat-agent-instructions-apply/references/apply-plan-template.md +80 -0
  76. package/assets/skills/oat-agent-instructions-apply/references/docs/agent-instruction.md +575 -0
  77. package/assets/skills/oat-agent-instructions-apply/references/docs/cursor-rules-files.md +510 -0
  78. package/assets/skills/oat-agent-instructions-apply/references/docs/provider-reference.md +429 -0
  79. package/assets/skills/oat-agent-instructions-apply/references/docs/rules-files.md +594 -0
  80. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/agents-md-root.md +85 -0
  81. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/agents-md-scoped.md +62 -0
  82. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/claude-rule.md +67 -0
  83. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/copilot-instruction.md +70 -0
  84. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/copilot-shim.md +35 -0
  85. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/frontmatter/cursor-rule.md +84 -0
  86. package/assets/skills/oat-agent-instructions-apply/references/instruction-file-templates/glob-scoped-rule.md +59 -0
  87. package/assets/skills/oat-docs/SKILL.md +214 -0
  88. package/assets/skills/oat-docs-analyze/SKILL.md +355 -0
  89. package/assets/skills/oat-docs-analyze/references/analysis-artifact-template.md +192 -0
  90. package/assets/skills/oat-docs-analyze/references/directory-assessment-criteria.md +46 -0
  91. package/assets/skills/oat-docs-analyze/references/quality-checklist.md +48 -0
  92. package/assets/skills/oat-docs-apply/SKILL.md +339 -0
  93. package/assets/skills/oat-docs-apply/references/apply-plan-template.md +69 -0
  94. package/assets/skills/oat-doctor/SKILL.md +293 -0
  95. package/assets/skills/oat-idea-ideate/SKILL.md +187 -0
  96. package/assets/skills/oat-idea-new/SKILL.md +152 -0
  97. package/assets/skills/oat-idea-scratchpad/SKILL.md +115 -0
  98. package/assets/skills/oat-idea-summarize/SKILL.md +172 -0
  99. package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +155 -0
  100. package/assets/skills/oat-pjm-review-backlog/SKILL.md +171 -0
  101. package/assets/skills/oat-pjm-review-backlog/references/backlog-review-template.md +172 -0
  102. package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +128 -0
  103. package/assets/skills/oat-project-capture/SKILL.md +306 -0
  104. package/assets/skills/oat-project-clear-active/SKILL.md +50 -0
  105. package/assets/skills/oat-project-complete/SKILL.md +461 -0
  106. package/assets/skills/oat-project-design/SKILL.md +461 -0
  107. package/assets/skills/oat-project-discover/SKILL.md +395 -0
  108. package/assets/skills/oat-project-document/SKILL.md +468 -0
  109. package/assets/skills/oat-project-implement/SKILL.md +736 -0
  110. package/assets/skills/oat-project-import-plan/SKILL.md +228 -0
  111. package/assets/skills/oat-project-import-plan/scripts/find-recent-provider-plans.sh +149 -0
  112. package/assets/skills/oat-project-new/SKILL.md +74 -0
  113. package/assets/skills/oat-project-next/SKILL.md +345 -0
  114. package/assets/skills/oat-project-open/SKILL.md +47 -0
  115. package/assets/skills/oat-project-plan/SKILL.md +415 -0
  116. package/assets/skills/oat-project-plan-writing/SKILL.md +116 -0
  117. package/assets/skills/oat-project-pr-final/SKILL.md +391 -0
  118. package/assets/skills/oat-project-pr-progress/SKILL.md +354 -0
  119. package/assets/skills/oat-project-progress/SKILL.md +342 -0
  120. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +155 -0
  121. package/assets/skills/oat-project-quick-start/SKILL.md +363 -0
  122. package/assets/skills/oat-project-reconcile/SKILL.md +738 -0
  123. package/assets/skills/oat-project-review-provide/SKILL.md +728 -0
  124. package/assets/skills/oat-project-review-receive/SKILL.md +641 -0
  125. package/assets/skills/oat-project-review-receive-remote/SKILL.md +235 -0
  126. package/assets/skills/oat-project-revise/SKILL.md +316 -0
  127. package/assets/skills/oat-project-spec/SKILL.md +471 -0
  128. package/assets/skills/oat-project-subagent-implement/SKILL.md +549 -0
  129. package/assets/skills/oat-project-subagent-implement/examples/pattern-hill-checkpoint.md +110 -0
  130. package/assets/skills/oat-project-subagent-implement/examples/pattern-parallel-phases.md +118 -0
  131. package/assets/skills/oat-project-subagent-implement/scripts/dispatch.sh +133 -0
  132. package/assets/skills/oat-project-subagent-implement/scripts/reconcile.sh +182 -0
  133. package/assets/skills/oat-project-subagent-implement/scripts/review-gate.sh +187 -0
  134. package/assets/skills/oat-project-subagent-implement/tests/fixtures/sample-plan.md +234 -0
  135. package/assets/skills/oat-project-subagent-implement/tests/test-dry-run.sh +126 -0
  136. package/assets/skills/oat-project-subagent-implement/tests/test-hill-checkpoint.sh +127 -0
  137. package/assets/skills/oat-project-subagent-implement/tests/test-reconcile.sh +254 -0
  138. package/assets/skills/oat-project-subagent-implement/tests/test-review-gate.sh +220 -0
  139. package/assets/skills/oat-project-summary/SKILL.md +227 -0
  140. package/assets/skills/oat-repo-knowledge-index/SKILL.md +724 -0
  141. package/assets/skills/oat-repo-knowledge-index/references/templates/architecture.md +83 -0
  142. package/assets/skills/oat-repo-knowledge-index/references/templates/concerns.md +97 -0
  143. package/assets/skills/oat-repo-knowledge-index/references/templates/conventions.md +100 -0
  144. package/assets/skills/oat-repo-knowledge-index/references/templates/integrations.md +91 -0
  145. package/assets/skills/oat-repo-knowledge-index/references/templates/stack.md +86 -0
  146. package/assets/skills/oat-repo-knowledge-index/references/templates/structure.md +88 -0
  147. package/assets/skills/oat-repo-knowledge-index/references/templates/testing.md +137 -0
  148. package/assets/skills/oat-repo-maintainability-review/SKILL.md +198 -0
  149. package/assets/skills/oat-repo-maintainability-review/references/dx-checklist.md +33 -0
  150. package/assets/skills/oat-repo-maintainability-review/references/repo-review-artifact-template.md +72 -0
  151. package/assets/skills/oat-repo-maintainability-review/references/repo-review-rubric.md +66 -0
  152. package/assets/skills/oat-repo-maintainability-review/scripts/resolve-analysis-output.sh +162 -0
  153. package/assets/skills/oat-review-provide/SKILL.md +231 -0
  154. package/assets/skills/oat-review-provide/references/review-artifact-template.md +55 -0
  155. package/assets/skills/oat-review-provide/scripts/resolve-review-output.sh +124 -0
  156. package/assets/skills/oat-review-receive/SKILL.md +238 -0
  157. package/assets/skills/oat-review-receive-remote/SKILL.md +250 -0
  158. package/assets/skills/oat-worktree-bootstrap/SKILL.md +208 -0
  159. package/assets/skills/oat-worktree-bootstrap/references/worktree-conventions.md +58 -0
  160. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +245 -0
  161. package/assets/skills/oat-worktree-bootstrap-auto/scripts/bootstrap.sh +194 -0
  162. package/assets/skills/skeptic/SKILL.md +261 -0
  163. package/assets/skills/synthesize/SKILL.md +361 -0
  164. package/assets/templates/backlog-item.md +24 -0
  165. package/assets/templates/design.md +315 -0
  166. package/assets/templates/discovery.md +135 -0
  167. package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +30 -0
  168. package/assets/templates/docs-app-fuma/app/api/search/route.ts +8 -0
  169. package/assets/templates/docs-app-fuma/app/globals.css +69 -0
  170. package/assets/templates/docs-app-fuma/app/layout.tsx +26 -0
  171. package/assets/templates/docs-app-fuma/docs/contributing.md +71 -0
  172. package/assets/templates/docs-app-fuma/docs/getting-started.md +40 -0
  173. package/assets/templates/docs-app-fuma/docs/index.md +13 -0
  174. package/assets/templates/docs-app-fuma/lib/source.ts +8 -0
  175. package/assets/templates/docs-app-fuma/next.config.js +6 -0
  176. package/assets/templates/docs-app-fuma/package.json.template +38 -0
  177. package/assets/templates/docs-app-fuma/postcss.config.mjs +7 -0
  178. package/assets/templates/docs-app-fuma/source.config.ts +14 -0
  179. package/assets/templates/docs-app-fuma/tsconfig.json +25 -0
  180. package/assets/templates/docs-app-mkdocs/docs/contributing.md +122 -0
  181. package/assets/templates/docs-app-mkdocs/docs/getting-started.md +28 -0
  182. package/assets/templates/docs-app-mkdocs/docs/index.md +8 -0
  183. package/assets/templates/docs-app-mkdocs/mkdocs.yml +47 -0
  184. package/assets/templates/docs-app-mkdocs/package.json.template +19 -0
  185. package/assets/templates/docs-app-mkdocs/requirements.txt +6 -0
  186. package/assets/templates/docs-app-mkdocs/setup-docs.sh +18 -0
  187. package/assets/templates/ideas/idea-discovery.md +39 -0
  188. package/assets/templates/ideas/idea-summary.md +42 -0
  189. package/assets/templates/ideas/ideas-backlog.md +21 -0
  190. package/assets/templates/ideas/ideas-scratchpad.md +10 -0
  191. package/assets/templates/implementation.md +207 -0
  192. package/assets/templates/plan.md +171 -0
  193. package/assets/templates/roadmap.md +24 -0
  194. package/assets/templates/spec.md +138 -0
  195. package/assets/templates/state.md +49 -0
  196. package/assets/templates/summary.md +82 -0
  197. package/dist/agents/canonical/index.d.ts +4 -0
  198. package/dist/agents/canonical/index.d.ts.map +1 -0
  199. package/dist/agents/canonical/index.js +2 -0
  200. package/dist/agents/canonical/parse.d.ts +4 -0
  201. package/dist/agents/canonical/parse.d.ts.map +1 -0
  202. package/dist/agents/canonical/parse.js +97 -0
  203. package/dist/agents/canonical/render.d.ts +3 -0
  204. package/dist/agents/canonical/render.d.ts.map +1 -0
  205. package/dist/agents/canonical/render.js +17 -0
  206. package/dist/agents/canonical/types.d.ts +22 -0
  207. package/dist/agents/canonical/types.d.ts.map +1 -0
  208. package/dist/agents/canonical/types.js +1 -0
  209. package/dist/app/command-context.d.ts +21 -0
  210. package/dist/app/command-context.d.ts.map +1 -0
  211. package/dist/app/command-context.js +18 -0
  212. package/dist/app/create-program.d.ts +3 -0
  213. package/dist/app/create-program.d.ts.map +1 -0
  214. package/dist/app/create-program.js +17 -0
  215. package/dist/commands/__tests__/helpers.d.ts +12 -0
  216. package/dist/commands/__tests__/helpers.d.ts.map +1 -0
  217. package/dist/commands/__tests__/helpers.js +36 -0
  218. package/dist/commands/backlog/index.d.ts +14 -0
  219. package/dist/commands/backlog/index.d.ts.map +1 -0
  220. package/dist/commands/backlog/index.js +80 -0
  221. package/dist/commands/backlog/init.d.ts +2 -0
  222. package/dist/commands/backlog/init.d.ts.map +1 -0
  223. package/dist/commands/backlog/init.js +66 -0
  224. package/dist/commands/backlog/regenerate-index.d.ts +2 -0
  225. package/dist/commands/backlog/regenerate-index.d.ts.map +1 -0
  226. package/dist/commands/backlog/regenerate-index.js +78 -0
  227. package/dist/commands/backlog/shared/generate-id.d.ts +4 -0
  228. package/dist/commands/backlog/shared/generate-id.d.ts.map +1 -0
  229. package/dist/commands/backlog/shared/generate-id.js +65 -0
  230. package/dist/commands/cleanup/artifacts/artifacts.d.ts +44 -0
  231. package/dist/commands/cleanup/artifacts/artifacts.d.ts.map +1 -0
  232. package/dist/commands/cleanup/artifacts/artifacts.js +381 -0
  233. package/dist/commands/cleanup/artifacts/artifacts.types.d.ts +13 -0
  234. package/dist/commands/cleanup/artifacts/artifacts.types.d.ts.map +1 -0
  235. package/dist/commands/cleanup/artifacts/artifacts.types.js +1 -0
  236. package/dist/commands/cleanup/artifacts/artifacts.utils.d.ts +14 -0
  237. package/dist/commands/cleanup/artifacts/artifacts.utils.d.ts.map +1 -0
  238. package/dist/commands/cleanup/artifacts/artifacts.utils.js +74 -0
  239. package/dist/commands/cleanup/cleanup.types.d.ts +26 -0
  240. package/dist/commands/cleanup/cleanup.types.d.ts.map +1 -0
  241. package/dist/commands/cleanup/cleanup.types.js +1 -0
  242. package/dist/commands/cleanup/cleanup.utils.d.ts +17 -0
  243. package/dist/commands/cleanup/cleanup.utils.d.ts.map +1 -0
  244. package/dist/commands/cleanup/cleanup.utils.js +44 -0
  245. package/dist/commands/cleanup/index.d.ts +3 -0
  246. package/dist/commands/cleanup/index.d.ts.map +1 -0
  247. package/dist/commands/cleanup/index.js +9 -0
  248. package/dist/commands/cleanup/project/project.d.ts +20 -0
  249. package/dist/commands/cleanup/project/project.d.ts.map +1 -0
  250. package/dist/commands/cleanup/project/project.js +263 -0
  251. package/dist/commands/cleanup/project/project.utils.d.ts +8 -0
  252. package/dist/commands/cleanup/project/project.utils.d.ts.map +1 -0
  253. package/dist/commands/cleanup/project/project.utils.js +48 -0
  254. package/dist/commands/config/index.d.ts +16 -0
  255. package/dist/commands/config/index.d.ts.map +1 -0
  256. package/dist/commands/config/index.js +700 -0
  257. package/dist/commands/docs/analyze.d.ts +8 -0
  258. package/dist/commands/docs/analyze.d.ts.map +1 -0
  259. package/dist/commands/docs/analyze.js +45 -0
  260. package/dist/commands/docs/apply.d.ts +8 -0
  261. package/dist/commands/docs/apply.d.ts.map +1 -0
  262. package/dist/commands/docs/apply.js +45 -0
  263. package/dist/commands/docs/index-generate/generator.d.ts +9 -0
  264. package/dist/commands/docs/index-generate/generator.d.ts.map +1 -0
  265. package/dist/commands/docs/index-generate/generator.js +114 -0
  266. package/dist/commands/docs/index-generate/index.d.ts +16 -0
  267. package/dist/commands/docs/index-generate/index.d.ts.map +1 -0
  268. package/dist/commands/docs/index-generate/index.js +72 -0
  269. package/dist/commands/docs/index.d.ts +3 -0
  270. package/dist/commands/docs/index.d.ts.map +1 -0
  271. package/dist/commands/docs/index.js +17 -0
  272. package/dist/commands/docs/init/index.d.ts +18 -0
  273. package/dist/commands/docs/init/index.d.ts.map +1 -0
  274. package/dist/commands/docs/init/index.js +129 -0
  275. package/dist/commands/docs/init/resolve-options.d.ts +41 -0
  276. package/dist/commands/docs/init/resolve-options.d.ts.map +1 -0
  277. package/dist/commands/docs/init/resolve-options.js +120 -0
  278. package/dist/commands/docs/init/scaffold.d.ts +18 -0
  279. package/dist/commands/docs/init/scaffold.d.ts.map +1 -0
  280. package/dist/commands/docs/init/scaffold.js +233 -0
  281. package/dist/commands/docs/migrate/codemod.d.ts +6 -0
  282. package/dist/commands/docs/migrate/codemod.d.ts.map +1 -0
  283. package/dist/commands/docs/migrate/codemod.js +62 -0
  284. package/dist/commands/docs/migrate/frontmatter.d.ts +12 -0
  285. package/dist/commands/docs/migrate/frontmatter.d.ts.map +1 -0
  286. package/dist/commands/docs/migrate/frontmatter.js +55 -0
  287. package/dist/commands/docs/migrate/index.d.ts +18 -0
  288. package/dist/commands/docs/migrate/index.d.ts.map +1 -0
  289. package/dist/commands/docs/migrate/index.js +138 -0
  290. package/dist/commands/docs/nav/contents.d.ts +14 -0
  291. package/dist/commands/docs/nav/contents.d.ts.map +1 -0
  292. package/dist/commands/docs/nav/contents.js +106 -0
  293. package/dist/commands/docs/nav/index.d.ts +3 -0
  294. package/dist/commands/docs/nav/index.d.ts.map +1 -0
  295. package/dist/commands/docs/nav/index.js +7 -0
  296. package/dist/commands/docs/nav/sync.d.ts +20 -0
  297. package/dist/commands/docs/nav/sync.d.ts.map +1 -0
  298. package/dist/commands/docs/nav/sync.js +92 -0
  299. package/dist/commands/doctor/index.d.ts +32 -0
  300. package/dist/commands/doctor/index.d.ts.map +1 -0
  301. package/dist/commands/doctor/index.js +373 -0
  302. package/dist/commands/index-cmd/index.d.ts +11 -0
  303. package/dist/commands/index-cmd/index.d.ts.map +1 -0
  304. package/dist/commands/index-cmd/index.js +62 -0
  305. package/dist/commands/index-cmd/thin-index.d.ts +19 -0
  306. package/dist/commands/index-cmd/thin-index.d.ts.map +1 -0
  307. package/dist/commands/index-cmd/thin-index.js +330 -0
  308. package/dist/commands/index.d.ts +3 -0
  309. package/dist/commands/index.d.ts.map +1 -0
  310. package/dist/commands/index.js +38 -0
  311. package/dist/commands/init/detect-docs.d.ts +11 -0
  312. package/dist/commands/init/detect-docs.d.ts.map +1 -0
  313. package/dist/commands/init/detect-docs.js +51 -0
  314. package/dist/commands/init/gitignore.d.ts +6 -0
  315. package/dist/commands/init/gitignore.d.ts.map +1 -0
  316. package/dist/commands/init/gitignore.js +41 -0
  317. package/dist/commands/init/index.d.ts +70 -0
  318. package/dist/commands/init/index.d.ts.map +1 -0
  319. package/dist/commands/init/index.js +570 -0
  320. package/dist/commands/init/tools/core/index.d.ts +12 -0
  321. package/dist/commands/init/tools/core/index.d.ts.map +1 -0
  322. package/dist/commands/init/tools/core/index.js +67 -0
  323. package/dist/commands/init/tools/core/install-core.d.ts +30 -0
  324. package/dist/commands/init/tools/core/install-core.d.ts.map +1 -0
  325. package/dist/commands/init/tools/core/install-core.js +50 -0
  326. package/dist/commands/init/tools/docs/index.d.ts +17 -0
  327. package/dist/commands/init/tools/docs/index.d.ts.map +1 -0
  328. package/dist/commands/init/tools/docs/index.js +110 -0
  329. package/dist/commands/init/tools/docs/install-docs.d.ts +23 -0
  330. package/dist/commands/init/tools/docs/install-docs.d.ts.map +1 -0
  331. package/dist/commands/init/tools/docs/install-docs.js +58 -0
  332. package/dist/commands/init/tools/ideas/index.d.ts +16 -0
  333. package/dist/commands/init/tools/ideas/index.d.ts.map +1 -0
  334. package/dist/commands/init/tools/ideas/index.js +94 -0
  335. package/dist/commands/init/tools/ideas/install-ideas.d.ts +25 -0
  336. package/dist/commands/init/tools/ideas/install-ideas.d.ts.map +1 -0
  337. package/dist/commands/init/tools/ideas/install-ideas.js +78 -0
  338. package/dist/commands/init/tools/index.d.ts +51 -0
  339. package/dist/commands/init/tools/index.d.ts.map +1 -0
  340. package/dist/commands/init/tools/index.js +387 -0
  341. package/dist/commands/init/tools/project-management/index.d.ts +12 -0
  342. package/dist/commands/init/tools/project-management/index.d.ts.map +1 -0
  343. package/dist/commands/init/tools/project-management/index.js +61 -0
  344. package/dist/commands/init/tools/project-management/install-project-management.d.ts +22 -0
  345. package/dist/commands/init/tools/project-management/install-project-management.d.ts.map +1 -0
  346. package/dist/commands/init/tools/project-management/install-project-management.js +52 -0
  347. package/dist/commands/init/tools/research/index.d.ts +17 -0
  348. package/dist/commands/init/tools/research/index.d.ts.map +1 -0
  349. package/dist/commands/init/tools/research/index.js +110 -0
  350. package/dist/commands/init/tools/research/install-research.d.ts +23 -0
  351. package/dist/commands/init/tools/research/install-research.d.ts.map +1 -0
  352. package/dist/commands/init/tools/research/install-research.js +52 -0
  353. package/dist/commands/init/tools/shared/copy-helpers.d.ts +12 -0
  354. package/dist/commands/init/tools/shared/copy-helpers.d.ts.map +1 -0
  355. package/dist/commands/init/tools/shared/copy-helpers.js +52 -0
  356. package/dist/commands/init/tools/shared/skill-manifest.d.ts +22 -0
  357. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -0
  358. package/dist/commands/init/tools/shared/skill-manifest.js +102 -0
  359. package/dist/commands/init/tools/shared/version.d.ts +3 -0
  360. package/dist/commands/init/tools/shared/version.d.ts.map +1 -0
  361. package/dist/commands/init/tools/shared/version.js +27 -0
  362. package/dist/commands/init/tools/utility/index.d.ts +17 -0
  363. package/dist/commands/init/tools/utility/index.d.ts.map +1 -0
  364. package/dist/commands/init/tools/utility/index.js +109 -0
  365. package/dist/commands/init/tools/utility/install-utility.d.ts +20 -0
  366. package/dist/commands/init/tools/utility/install-utility.d.ts.map +1 -0
  367. package/dist/commands/init/tools/utility/install-utility.js +35 -0
  368. package/dist/commands/init/tools/workflows/index.d.ts +14 -0
  369. package/dist/commands/init/tools/workflows/index.d.ts.map +1 -0
  370. package/dist/commands/init/tools/workflows/index.js +84 -0
  371. package/dist/commands/init/tools/workflows/install-workflows.d.ts +32 -0
  372. package/dist/commands/init/tools/workflows/install-workflows.d.ts.map +1 -0
  373. package/dist/commands/init/tools/workflows/install-workflows.js +135 -0
  374. package/dist/commands/instructions/index.d.ts +3 -0
  375. package/dist/commands/instructions/index.d.ts.map +1 -0
  376. package/dist/commands/instructions/index.js +9 -0
  377. package/dist/commands/instructions/instructions.types.d.ts +52 -0
  378. package/dist/commands/instructions/instructions.types.d.ts.map +1 -0
  379. package/dist/commands/instructions/instructions.types.js +1 -0
  380. package/dist/commands/instructions/instructions.utils.d.ts +13 -0
  381. package/dist/commands/instructions/instructions.utils.d.ts.map +1 -0
  382. package/dist/commands/instructions/instructions.utils.js +211 -0
  383. package/dist/commands/instructions/sync/sync.d.ts +4 -0
  384. package/dist/commands/instructions/sync/sync.d.ts.map +1 -0
  385. package/dist/commands/instructions/sync/sync.js +142 -0
  386. package/dist/commands/instructions/validate/validate.d.ts +4 -0
  387. package/dist/commands/instructions/validate/validate.d.ts.map +1 -0
  388. package/dist/commands/instructions/validate/validate.js +53 -0
  389. package/dist/commands/internal/index.d.ts +3 -0
  390. package/dist/commands/internal/index.d.ts.map +1 -0
  391. package/dist/commands/internal/index.js +7 -0
  392. package/dist/commands/internal/validate-oat-skills.d.ts +10 -0
  393. package/dist/commands/internal/validate-oat-skills.d.ts.map +1 -0
  394. package/dist/commands/internal/validate-oat-skills.js +66 -0
  395. package/dist/commands/local/apply.d.ts +6 -0
  396. package/dist/commands/local/apply.d.ts.map +1 -0
  397. package/dist/commands/local/apply.js +56 -0
  398. package/dist/commands/local/expand.d.ts +8 -0
  399. package/dist/commands/local/expand.d.ts.map +1 -0
  400. package/dist/commands/local/expand.js +83 -0
  401. package/dist/commands/local/index.d.ts +3 -0
  402. package/dist/commands/local/index.d.ts.map +1 -0
  403. package/dist/commands/local/index.js +248 -0
  404. package/dist/commands/local/manage.d.ts +18 -0
  405. package/dist/commands/local/manage.d.ts.map +1 -0
  406. package/dist/commands/local/manage.js +66 -0
  407. package/dist/commands/local/status.d.ts +7 -0
  408. package/dist/commands/local/status.d.ts.map +1 -0
  409. package/dist/commands/local/status.js +46 -0
  410. package/dist/commands/local/sync.d.ts +20 -0
  411. package/dist/commands/local/sync.d.ts.map +1 -0
  412. package/dist/commands/local/sync.js +40 -0
  413. package/dist/commands/project/archive/archive-utils.d.ts +70 -0
  414. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -0
  415. package/dist/commands/project/archive/archive-utils.js +236 -0
  416. package/dist/commands/project/archive/index.d.ts +20 -0
  417. package/dist/commands/project/archive/index.d.ts.map +1 -0
  418. package/dist/commands/project/archive/index.js +217 -0
  419. package/dist/commands/project/index.d.ts +3 -0
  420. package/dist/commands/project/index.d.ts.map +1 -0
  421. package/dist/commands/project/index.js +15 -0
  422. package/dist/commands/project/new/index.d.ts +17 -0
  423. package/dist/commands/project/new/index.d.ts.map +1 -0
  424. package/dist/commands/project/new/index.js +76 -0
  425. package/dist/commands/project/new/scaffold.d.ts +24 -0
  426. package/dist/commands/project/new/scaffold.d.ts.map +1 -0
  427. package/dist/commands/project/new/scaffold.js +177 -0
  428. package/dist/commands/project/open/index.d.ts +26 -0
  429. package/dist/commands/project/open/index.d.ts.map +1 -0
  430. package/dist/commands/project/open/index.js +139 -0
  431. package/dist/commands/project/pause/index.d.ts +27 -0
  432. package/dist/commands/project/pause/index.d.ts.map +1 -0
  433. package/dist/commands/project/pause/index.js +120 -0
  434. package/dist/commands/project/set-mode/index.d.ts +14 -0
  435. package/dist/commands/project/set-mode/index.d.ts.map +1 -0
  436. package/dist/commands/project/set-mode/index.js +115 -0
  437. package/dist/commands/providers/index.d.ts +4 -0
  438. package/dist/commands/providers/index.d.ts.map +1 -0
  439. package/dist/commands/providers/index.js +11 -0
  440. package/dist/commands/providers/inspect/inspect.d.ts +4 -0
  441. package/dist/commands/providers/inspect/inspect.d.ts.map +1 -0
  442. package/dist/commands/providers/inspect/inspect.js +156 -0
  443. package/dist/commands/providers/list/list.d.ts +4 -0
  444. package/dist/commands/providers/list/list.d.ts.map +1 -0
  445. package/dist/commands/providers/list/list.js +163 -0
  446. package/dist/commands/providers/providers.types.d.ts +63 -0
  447. package/dist/commands/providers/providers.types.d.ts.map +1 -0
  448. package/dist/commands/providers/providers.types.js +1 -0
  449. package/dist/commands/providers/set/index.d.ts +4 -0
  450. package/dist/commands/providers/set/index.d.ts.map +1 -0
  451. package/dist/commands/providers/set/index.js +138 -0
  452. package/dist/commands/remove/index.d.ts +3 -0
  453. package/dist/commands/remove/index.d.ts.map +1 -0
  454. package/dist/commands/remove/index.js +9 -0
  455. package/dist/commands/remove/skill/index.d.ts +2 -0
  456. package/dist/commands/remove/skill/index.d.ts.map +1 -0
  457. package/dist/commands/remove/skill/index.js +1 -0
  458. package/dist/commands/remove/skill/remove-skill.d.ts +23 -0
  459. package/dist/commands/remove/skill/remove-skill.d.ts.map +1 -0
  460. package/dist/commands/remove/skill/remove-skill.js +231 -0
  461. package/dist/commands/remove/skills/index.d.ts +2 -0
  462. package/dist/commands/remove/skills/index.d.ts.map +1 -0
  463. package/dist/commands/remove/skills/index.js +1 -0
  464. package/dist/commands/remove/skills/remove-skills.d.ts +14 -0
  465. package/dist/commands/remove/skills/remove-skills.d.ts.map +1 -0
  466. package/dist/commands/remove/skills/remove-skills.js +98 -0
  467. package/dist/commands/repo/index.d.ts +3 -0
  468. package/dist/commands/repo/index.d.ts.map +1 -0
  469. package/dist/commands/repo/index.js +7 -0
  470. package/dist/commands/repo/pr-comments/collect/collect-comments.d.ts +9 -0
  471. package/dist/commands/repo/pr-comments/collect/collect-comments.d.ts.map +1 -0
  472. package/dist/commands/repo/pr-comments/collect/collect-comments.js +284 -0
  473. package/dist/commands/repo/pr-comments/collect/graphql-queries.d.ts +3 -0
  474. package/dist/commands/repo/pr-comments/collect/graphql-queries.d.ts.map +1 -0
  475. package/dist/commands/repo/pr-comments/collect/graphql-queries.js +56 -0
  476. package/dist/commands/repo/pr-comments/collect/index.d.ts +4 -0
  477. package/dist/commands/repo/pr-comments/collect/index.d.ts.map +1 -0
  478. package/dist/commands/repo/pr-comments/collect/index.js +25 -0
  479. package/dist/commands/repo/pr-comments/collect/pr-comments.types.d.ts +62 -0
  480. package/dist/commands/repo/pr-comments/collect/pr-comments.types.d.ts.map +1 -0
  481. package/dist/commands/repo/pr-comments/collect/pr-comments.types.js +1 -0
  482. package/dist/commands/repo/pr-comments/index.d.ts +3 -0
  483. package/dist/commands/repo/pr-comments/index.d.ts.map +1 -0
  484. package/dist/commands/repo/pr-comments/index.js +9 -0
  485. package/dist/commands/repo/pr-comments/triage-collection/index.d.ts +4 -0
  486. package/dist/commands/repo/pr-comments/triage-collection/index.d.ts.map +1 -0
  487. package/dist/commands/repo/pr-comments/triage-collection/index.js +21 -0
  488. package/dist/commands/repo/pr-comments/triage-collection/triage-comments.d.ts +13 -0
  489. package/dist/commands/repo/pr-comments/triage-collection/triage-comments.d.ts.map +1 -0
  490. package/dist/commands/repo/pr-comments/triage-collection/triage-comments.js +81 -0
  491. package/dist/commands/shared/adopt-stray.d.ts +22 -0
  492. package/dist/commands/shared/adopt-stray.d.ts.map +1 -0
  493. package/dist/commands/shared/adopt-stray.js +135 -0
  494. package/dist/commands/shared/agents-md.d.ts +18 -0
  495. package/dist/commands/shared/agents-md.d.ts.map +1 -0
  496. package/dist/commands/shared/agents-md.js +81 -0
  497. package/dist/commands/shared/codex-strays.d.ts +16 -0
  498. package/dist/commands/shared/codex-strays.d.ts.map +1 -0
  499. package/dist/commands/shared/codex-strays.js +116 -0
  500. package/dist/commands/shared/frontmatter-write.d.ts +8 -0
  501. package/dist/commands/shared/frontmatter-write.d.ts.map +1 -0
  502. package/dist/commands/shared/frontmatter-write.js +27 -0
  503. package/dist/commands/shared/frontmatter.d.ts +6 -0
  504. package/dist/commands/shared/frontmatter.d.ts.map +1 -0
  505. package/dist/commands/shared/frontmatter.js +35 -0
  506. package/dist/commands/shared/messages.d.ts +2 -0
  507. package/dist/commands/shared/messages.d.ts.map +1 -0
  508. package/dist/commands/shared/messages.js +1 -0
  509. package/dist/commands/shared/oat-paths.d.ts +2 -0
  510. package/dist/commands/shared/oat-paths.d.ts.map +1 -0
  511. package/dist/commands/shared/oat-paths.js +13 -0
  512. package/dist/commands/shared/shared.prompts.d.ts +21 -0
  513. package/dist/commands/shared/shared.prompts.d.ts.map +1 -0
  514. package/dist/commands/shared/shared.prompts.js +107 -0
  515. package/dist/commands/shared/shared.utils.d.ts +6 -0
  516. package/dist/commands/shared/shared.utils.d.ts.map +1 -0
  517. package/dist/commands/shared/shared.utils.js +9 -0
  518. package/dist/commands/state/generate.d.ts +21 -0
  519. package/dist/commands/state/generate.d.ts.map +1 -0
  520. package/dist/commands/state/generate.js +440 -0
  521. package/dist/commands/state/index.d.ts +11 -0
  522. package/dist/commands/state/index.d.ts.map +1 -0
  523. package/dist/commands/state/index.js +58 -0
  524. package/dist/commands/status/index.d.ts +44 -0
  525. package/dist/commands/status/index.d.ts.map +1 -0
  526. package/dist/commands/status/index.js +340 -0
  527. package/dist/commands/sync/apply.d.ts +4 -0
  528. package/dist/commands/sync/apply.d.ts.map +1 -0
  529. package/dist/commands/sync/apply.js +100 -0
  530. package/dist/commands/sync/dry-run.d.ts +4 -0
  531. package/dist/commands/sync/dry-run.d.ts.map +1 -0
  532. package/dist/commands/sync/dry-run.js +74 -0
  533. package/dist/commands/sync/index.d.ts +4 -0
  534. package/dist/commands/sync/index.d.ts.map +1 -0
  535. package/dist/commands/sync/index.js +225 -0
  536. package/dist/commands/sync/sync.types.d.ts +80 -0
  537. package/dist/commands/sync/sync.types.d.ts.map +1 -0
  538. package/dist/commands/sync/sync.types.js +1 -0
  539. package/dist/commands/sync/sync.utils.d.ts +3 -0
  540. package/dist/commands/sync/sync.utils.d.ts.map +1 -0
  541. package/dist/commands/sync/sync.utils.js +8 -0
  542. package/dist/commands/tools/index.d.ts +3 -0
  543. package/dist/commands/tools/index.d.ts.map +1 -0
  544. package/dist/commands/tools/index.js +17 -0
  545. package/dist/commands/tools/info/index.d.ts +4 -0
  546. package/dist/commands/tools/info/index.d.ts.map +1 -0
  547. package/dist/commands/tools/info/index.js +74 -0
  548. package/dist/commands/tools/info/info-tool.d.ts +21 -0
  549. package/dist/commands/tools/info/info-tool.d.ts.map +1 -0
  550. package/dist/commands/tools/info/info-tool.js +52 -0
  551. package/dist/commands/tools/install/index.d.ts +4 -0
  552. package/dist/commands/tools/install/index.d.ts.map +1 -0
  553. package/dist/commands/tools/install/index.js +34 -0
  554. package/dist/commands/tools/list/index.d.ts +4 -0
  555. package/dist/commands/tools/list/index.d.ts.map +1 -0
  556. package/dist/commands/tools/list/index.js +25 -0
  557. package/dist/commands/tools/list/list-tools.d.ts +13 -0
  558. package/dist/commands/tools/list/list-tools.d.ts.map +1 -0
  559. package/dist/commands/tools/list/list-tools.js +43 -0
  560. package/dist/commands/tools/outdated/index.d.ts +4 -0
  561. package/dist/commands/tools/outdated/index.d.ts.map +1 -0
  562. package/dist/commands/tools/outdated/index.js +25 -0
  563. package/dist/commands/tools/outdated/outdated-tools.d.ts +13 -0
  564. package/dist/commands/tools/outdated/outdated-tools.d.ts.map +1 -0
  565. package/dist/commands/tools/outdated/outdated-tools.js +43 -0
  566. package/dist/commands/tools/remove/index.d.ts +5 -0
  567. package/dist/commands/tools/remove/index.d.ts.map +1 -0
  568. package/dist/commands/tools/remove/index.js +122 -0
  569. package/dist/commands/tools/remove/remove-tools.d.ts +31 -0
  570. package/dist/commands/tools/remove/remove-tools.d.ts.map +1 -0
  571. package/dist/commands/tools/remove/remove-tools.js +41 -0
  572. package/dist/commands/tools/shared/auto-sync.d.ts +16 -0
  573. package/dist/commands/tools/shared/auto-sync.d.ts.map +1 -0
  574. package/dist/commands/tools/shared/auto-sync.js +17 -0
  575. package/dist/commands/tools/shared/scan-tools.d.ts +18 -0
  576. package/dist/commands/tools/shared/scan-tools.d.ts.map +1 -0
  577. package/dist/commands/tools/shared/scan-tools.js +128 -0
  578. package/dist/commands/tools/shared/types.d.ts +12 -0
  579. package/dist/commands/tools/shared/types.d.ts.map +1 -0
  580. package/dist/commands/tools/shared/types.js +1 -0
  581. package/dist/commands/tools/update/index.d.ts +8 -0
  582. package/dist/commands/tools/update/index.d.ts.map +1 -0
  583. package/dist/commands/tools/update/index.js +149 -0
  584. package/dist/commands/tools/update/update-tools.d.ts +29 -0
  585. package/dist/commands/tools/update/update-tools.d.ts.map +1 -0
  586. package/dist/commands/tools/update/update-tools.js +148 -0
  587. package/dist/config/index.d.ts +4 -0
  588. package/dist/config/index.d.ts.map +1 -0
  589. package/dist/config/index.js +2 -0
  590. package/dist/config/oat-config.d.ts +61 -0
  591. package/dist/config/oat-config.d.ts.map +1 -0
  592. package/dist/config/oat-config.js +319 -0
  593. package/dist/config/runtime.d.ts +2 -0
  594. package/dist/config/runtime.d.ts.map +1 -0
  595. package/dist/config/runtime.js +3 -0
  596. package/dist/config/sync-config.d.ts +49 -0
  597. package/dist/config/sync-config.d.ts.map +1 -0
  598. package/dist/config/sync-config.js +94 -0
  599. package/dist/drift/detector.d.ts +4 -0
  600. package/dist/drift/detector.d.ts.map +1 -0
  601. package/dist/drift/detector.js +69 -0
  602. package/dist/drift/drift.types.d.ts +17 -0
  603. package/dist/drift/drift.types.d.ts.map +1 -0
  604. package/dist/drift/drift.types.js +1 -0
  605. package/dist/drift/index.d.ts +4 -0
  606. package/dist/drift/index.d.ts.map +1 -0
  607. package/dist/drift/index.js +2 -0
  608. package/dist/drift/strays.d.ts +7 -0
  609. package/dist/drift/strays.d.ts.map +1 -0
  610. package/dist/drift/strays.js +153 -0
  611. package/dist/engine/compute-plan.d.ts +16 -0
  612. package/dist/engine/compute-plan.d.ts.map +1 -0
  613. package/dist/engine/compute-plan.js +234 -0
  614. package/dist/engine/engine.types.d.ts +28 -0
  615. package/dist/engine/engine.types.d.ts.map +1 -0
  616. package/dist/engine/engine.types.js +8 -0
  617. package/dist/engine/execute-plan.d.ts +5 -0
  618. package/dist/engine/execute-plan.d.ts.map +1 -0
  619. package/dist/engine/execute-plan.js +141 -0
  620. package/dist/engine/hook.d.ts +23 -0
  621. package/dist/engine/hook.d.ts.map +1 -0
  622. package/dist/engine/hook.js +254 -0
  623. package/dist/engine/index.d.ts +9 -0
  624. package/dist/engine/index.d.ts.map +1 -0
  625. package/dist/engine/index.js +6 -0
  626. package/dist/engine/markers.d.ts +6 -0
  627. package/dist/engine/markers.d.ts.map +1 -0
  628. package/dist/engine/markers.js +24 -0
  629. package/dist/engine/scanner.d.ts +11 -0
  630. package/dist/engine/scanner.d.ts.map +1 -0
  631. package/dist/engine/scanner.js +65 -0
  632. package/dist/engine/test-helpers.d.ts +3 -0
  633. package/dist/engine/test-helpers.d.ts.map +1 -0
  634. package/dist/engine/test-helpers.js +31 -0
  635. package/dist/errors/cli-error.d.ts +5 -0
  636. package/dist/errors/cli-error.d.ts.map +1 -0
  637. package/dist/errors/cli-error.js +8 -0
  638. package/dist/errors/index.d.ts +2 -0
  639. package/dist/errors/index.d.ts.map +1 -0
  640. package/dist/errors/index.js +1 -0
  641. package/dist/fs/assets.d.ts +2 -0
  642. package/dist/fs/assets.d.ts.map +1 -0
  643. package/dist/fs/assets.js +22 -0
  644. package/dist/fs/index.d.ts +4 -0
  645. package/dist/fs/index.d.ts.map +1 -0
  646. package/dist/fs/index.js +3 -0
  647. package/dist/fs/io.d.ts +9 -0
  648. package/dist/fs/io.d.ts.map +1 -0
  649. package/dist/fs/io.js +74 -0
  650. package/dist/fs/paths.d.ts +9 -0
  651. package/dist/fs/paths.d.ts.map +1 -0
  652. package/dist/fs/paths.js +42 -0
  653. package/dist/index.d.ts +4 -0
  654. package/dist/index.d.ts.map +1 -0
  655. package/dist/index.js +48 -0
  656. package/dist/manifest/hash.d.ts +5 -0
  657. package/dist/manifest/hash.d.ts.map +1 -0
  658. package/dist/manifest/hash.js +75 -0
  659. package/dist/manifest/index.d.ts +5 -0
  660. package/dist/manifest/index.d.ts.map +1 -0
  661. package/dist/manifest/index.js +3 -0
  662. package/dist/manifest/manager.d.ts +8 -0
  663. package/dist/manifest/manager.d.ts.map +1 -0
  664. package/dist/manifest/manager.js +86 -0
  665. package/dist/manifest/manifest.types.d.ts +157 -0
  666. package/dist/manifest/manifest.types.d.ts.map +1 -0
  667. package/dist/manifest/manifest.types.js +56 -0
  668. package/dist/providers/claude/adapter.d.ts +3 -0
  669. package/dist/providers/claude/adapter.d.ts.map +1 -0
  670. package/dist/providers/claude/adapter.js +20 -0
  671. package/dist/providers/claude/index.d.ts +3 -0
  672. package/dist/providers/claude/index.d.ts.map +1 -0
  673. package/dist/providers/claude/index.js +2 -0
  674. package/dist/providers/claude/paths.d.ts +4 -0
  675. package/dist/providers/claude/paths.d.ts.map +1 -0
  676. package/dist/providers/claude/paths.js +38 -0
  677. package/dist/providers/claude/rule-transform.d.ts +3 -0
  678. package/dist/providers/claude/rule-transform.d.ts.map +1 -0
  679. package/dist/providers/claude/rule-transform.js +22 -0
  680. package/dist/providers/codex/adapter.d.ts +3 -0
  681. package/dist/providers/codex/adapter.d.ts.map +1 -0
  682. package/dist/providers/codex/adapter.js +20 -0
  683. package/dist/providers/codex/codec/config-merge.d.ts +17 -0
  684. package/dist/providers/codex/codec/config-merge.d.ts.map +1 -0
  685. package/dist/providers/codex/codec/config-merge.js +61 -0
  686. package/dist/providers/codex/codec/export-to-codex.d.ts +9 -0
  687. package/dist/providers/codex/codec/export-to-codex.d.ts.map +1 -0
  688. package/dist/providers/codex/codec/export-to-codex.js +45 -0
  689. package/dist/providers/codex/codec/import-from-codex.d.ts +9 -0
  690. package/dist/providers/codex/codec/import-from-codex.d.ts.map +1 -0
  691. package/dist/providers/codex/codec/import-from-codex.js +52 -0
  692. package/dist/providers/codex/codec/shared.d.ts +7 -0
  693. package/dist/providers/codex/codec/shared.d.ts.map +1 -0
  694. package/dist/providers/codex/codec/shared.js +21 -0
  695. package/dist/providers/codex/codec/sync-extension.d.ts +32 -0
  696. package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -0
  697. package/dist/providers/codex/codec/sync-extension.js +227 -0
  698. package/dist/providers/codex/index.d.ts +6 -0
  699. package/dist/providers/codex/index.d.ts.map +1 -0
  700. package/dist/providers/codex/index.js +5 -0
  701. package/dist/providers/codex/paths.d.ts +4 -0
  702. package/dist/providers/codex/paths.d.ts.map +1 -0
  703. package/dist/providers/codex/paths.js +28 -0
  704. package/dist/providers/copilot/adapter.d.ts +3 -0
  705. package/dist/providers/copilot/adapter.d.ts.map +1 -0
  706. package/dist/providers/copilot/adapter.js +30 -0
  707. package/dist/providers/copilot/index.d.ts +3 -0
  708. package/dist/providers/copilot/index.d.ts.map +1 -0
  709. package/dist/providers/copilot/index.js +2 -0
  710. package/dist/providers/copilot/paths.d.ts +4 -0
  711. package/dist/providers/copilot/paths.d.ts.map +1 -0
  712. package/dist/providers/copilot/paths.js +38 -0
  713. package/dist/providers/copilot/rule-transform.d.ts +3 -0
  714. package/dist/providers/copilot/rule-transform.d.ts.map +1 -0
  715. package/dist/providers/copilot/rule-transform.js +58 -0
  716. package/dist/providers/cursor/adapter.d.ts +3 -0
  717. package/dist/providers/cursor/adapter.d.ts.map +1 -0
  718. package/dist/providers/cursor/adapter.js +20 -0
  719. package/dist/providers/cursor/index.d.ts +3 -0
  720. package/dist/providers/cursor/index.d.ts.map +1 -0
  721. package/dist/providers/cursor/index.js +2 -0
  722. package/dist/providers/cursor/paths.d.ts +4 -0
  723. package/dist/providers/cursor/paths.d.ts.map +1 -0
  724. package/dist/providers/cursor/paths.js +38 -0
  725. package/dist/providers/cursor/rule-transform.d.ts +3 -0
  726. package/dist/providers/cursor/rule-transform.d.ts.map +1 -0
  727. package/dist/providers/cursor/rule-transform.js +48 -0
  728. package/dist/providers/gemini/adapter.d.ts +3 -0
  729. package/dist/providers/gemini/adapter.d.ts.map +1 -0
  730. package/dist/providers/gemini/adapter.js +20 -0
  731. package/dist/providers/gemini/index.d.ts +3 -0
  732. package/dist/providers/gemini/index.d.ts.map +1 -0
  733. package/dist/providers/gemini/index.js +2 -0
  734. package/dist/providers/gemini/paths.d.ts +4 -0
  735. package/dist/providers/gemini/paths.d.ts.map +1 -0
  736. package/dist/providers/gemini/paths.js +28 -0
  737. package/dist/providers/shared/adapter.types.d.ts +21 -0
  738. package/dist/providers/shared/adapter.types.d.ts.map +1 -0
  739. package/dist/providers/shared/adapter.types.js +1 -0
  740. package/dist/providers/shared/adapter.utils.d.ts +12 -0
  741. package/dist/providers/shared/adapter.utils.d.ts.map +1 -0
  742. package/dist/providers/shared/adapter.utils.js +57 -0
  743. package/dist/providers/shared/agent-codec.types.d.ts +13 -0
  744. package/dist/providers/shared/agent-codec.types.d.ts.map +1 -0
  745. package/dist/providers/shared/agent-codec.types.js +1 -0
  746. package/dist/providers/shared/index.d.ts +6 -0
  747. package/dist/providers/shared/index.d.ts.map +1 -0
  748. package/dist/providers/shared/index.js +2 -0
  749. package/dist/providers/shared/markdown-agent-codec.d.ts +5 -0
  750. package/dist/providers/shared/markdown-agent-codec.d.ts.map +1 -0
  751. package/dist/providers/shared/markdown-agent-codec.js +12 -0
  752. package/dist/release/public-package-contract.d.ts +14 -0
  753. package/dist/release/public-package-contract.d.ts.map +1 -0
  754. package/dist/release/public-package-contract.js +97 -0
  755. package/dist/rules/canonical/index.d.ts +6 -0
  756. package/dist/rules/canonical/index.d.ts.map +1 -0
  757. package/dist/rules/canonical/index.js +4 -0
  758. package/dist/rules/canonical/parse.d.ts +9 -0
  759. package/dist/rules/canonical/parse.d.ts.map +1 -0
  760. package/dist/rules/canonical/parse.js +103 -0
  761. package/dist/rules/canonical/provider-filenames.d.ts +3 -0
  762. package/dist/rules/canonical/provider-filenames.d.ts.map +1 -0
  763. package/dist/rules/canonical/provider-filenames.js +13 -0
  764. package/dist/rules/canonical/render.d.ts +5 -0
  765. package/dist/rules/canonical/render.d.ts.map +1 -0
  766. package/dist/rules/canonical/render.js +32 -0
  767. package/dist/rules/canonical/types.d.ts +16 -0
  768. package/dist/rules/canonical/types.d.ts.map +1 -0
  769. package/dist/rules/canonical/types.js +6 -0
  770. package/dist/shared/index.d.ts +3 -0
  771. package/dist/shared/index.d.ts.map +1 -0
  772. package/dist/shared/index.js +1 -0
  773. package/dist/shared/types.d.ts +10 -0
  774. package/dist/shared/types.d.ts.map +1 -0
  775. package/dist/shared/types.js +14 -0
  776. package/dist/ui/ansi.d.ts +2 -0
  777. package/dist/ui/ansi.d.ts.map +1 -0
  778. package/dist/ui/ansi.js +19 -0
  779. package/dist/ui/index.d.ts +7 -0
  780. package/dist/ui/index.d.ts.map +1 -0
  781. package/dist/ui/index.js +3 -0
  782. package/dist/ui/logger.d.ts +15 -0
  783. package/dist/ui/logger.d.ts.map +1 -0
  784. package/dist/ui/logger.js +52 -0
  785. package/dist/ui/output.d.ts +16 -0
  786. package/dist/ui/output.d.ts.map +1 -0
  787. package/dist/ui/output.js +135 -0
  788. package/dist/ui/spinner.d.ts +16 -0
  789. package/dist/ui/spinner.d.ts.map +1 -0
  790. package/dist/ui/spinner.js +46 -0
  791. package/dist/validation/index.d.ts +3 -0
  792. package/dist/validation/index.d.ts.map +1 -0
  793. package/dist/validation/index.js +1 -0
  794. package/dist/validation/skills.d.ts +10 -0
  795. package/dist/validation/skills.d.ts.map +1 -0
  796. package/dist/validation/skills.js +166 -0
  797. package/package.json +62 -0
@@ -0,0 +1,738 @@
1
+ ---
2
+ name: oat-project-reconcile
3
+ version: 1.0.0
4
+ description: Use when human-implemented commits need to be mapped back to planned tasks. Reconciles implementation.md and state.md after manual work outside the OAT workflow.
5
+ disable-model-invocation: true
6
+ user-invocable: true
7
+ allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
8
+ ---
9
+
10
+ # Reconcile Manual Implementation
11
+
12
+ Bridge the gap between human implementation and OAT's artifact-driven workflow. Analyzes commits made outside the structured OAT flow, maps them to planned tasks, and updates tracking artifacts after human confirmation.
13
+
14
+ ## Prerequisites
15
+
16
+ **Required:**
17
+
18
+ - Active OAT project with a `plan.md` containing task definitions
19
+ - Project must be in `implement` phase (or `plan` phase with `oat_phase_status: complete`)
20
+ - At least one commit exists that is not tracked in `implementation.md`
21
+
22
+ ## Mode Assertion
23
+
24
+ **OAT MODE: Reconciliation**
25
+
26
+ **Purpose:** Analyze manual/human commits, map them to planned tasks, and reconcile tracking artifacts with user confirmation.
27
+
28
+ ## Progress Indicators (User-Facing)
29
+
30
+ - Print a phase banner once at start:
31
+
32
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
33
+ OAT ▸ RECONCILE
34
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
35
+
36
+ - For each step, announce a compact header:
37
+ - `OAT ▸ RECONCILE — Step N: {step_name}`
38
+ - Before multi-step bookkeeping:
39
+ - `[1/N] {action}…`
40
+ - Keep it concise; don't print a line for every shell command.
41
+
42
+ **BLOCKED Activities:**
43
+
44
+ - No modifying code files
45
+ - No rewriting git history
46
+ - No deleting or overwriting existing implementation.md entries
47
+ - No silent assumptions on uncertain mappings
48
+
49
+ **ALLOWED Activities:**
50
+
51
+ - Reading git log, diffs, and file lists
52
+ - Reading plan.md, implementation.md, state.md
53
+ - Appending new entries to implementation.md
54
+ - Updating frontmatter pointers in implementation.md and state.md
55
+ - Asking user for confirmation on mappings
56
+ - Creating a single bookkeeping commit
57
+
58
+ **Self-Correction Protocol:**
59
+ If you catch yourself:
60
+
61
+ - Modifying code files → STOP (reconciliation is tracking-only)
62
+ - Assuming a mapping without user confirmation → STOP (present options)
63
+ - Overwriting existing entries → STOP (append only)
64
+
65
+ **Recovery:**
66
+
67
+ 1. Acknowledge the deviation
68
+ 2. Return to current step
69
+ 3. Ask user for guidance
70
+
71
+ ## Process
72
+
73
+ ### Step 0: Resolve Active Project
74
+
75
+ OAT stores active project context in `.oat/config.local.json` (`activeProject`, local-only).
76
+
77
+ ```bash
78
+ PROJECT_PATH=$(oat config get activeProject 2>/dev/null || true)
79
+ PROJECTS_ROOT="${OAT_PROJECTS_ROOT:-$(oat config get projects.root 2>/dev/null || echo ".oat/projects/shared")}"
80
+ PROJECTS_ROOT="${PROJECTS_ROOT%/}"
81
+ ```
82
+
83
+ **If `PROJECT_PATH` is missing/invalid:**
84
+
85
+ - Ask the user for `{project-name}`
86
+ - Set `PROJECT_PATH` to `${PROJECTS_ROOT}/{project-name}`
87
+ - Write it for future phases:
88
+ ```bash
89
+ mkdir -p .oat
90
+ oat config set activeProject "$PROJECT_PATH"
91
+ ```
92
+
93
+ **If `PROJECT_PATH` is valid:** derive `{project-name}` as the directory name (basename of the path).
94
+
95
+ ### Step 0.5: Prerequisite Check
96
+
97
+ Verify the project is ready for reconciliation:
98
+
99
+ 1. **Check `plan.md` exists:**
100
+
101
+ ```bash
102
+ test -f "$PROJECT_PATH/plan.md" || { echo "ERROR: plan.md not found. Run oat-project-plan first."; exit 1; }
103
+ ```
104
+
105
+ 2. **Check project phase:**
106
+
107
+ ```bash
108
+ PHASE=$(grep "^oat_phase:" "$PROJECT_PATH/state.md" 2>/dev/null | awk '{print $2}')
109
+ PHASE_STATUS=$(grep "^oat_phase_status:" "$PROJECT_PATH/state.md" 2>/dev/null | awk '{print $2}')
110
+ ```
111
+
112
+ - If `PHASE` is `implement`: proceed
113
+ - If `PHASE` is `plan` and `PHASE_STATUS` is `complete`: proceed (plan just finished, implementation starting)
114
+ - Otherwise: STOP — tell user the project is not in implementation phase
115
+
116
+ 3. **Check for untracked commits:**
117
+ - Read `implementation.md` if it exists — find the last recorded commit SHA
118
+ - If all recent commits are already tracked, inform user: "No untracked commits found. Nothing to reconcile."
119
+
120
+ ### Step 1: Find Checkpoint
121
+
122
+ Identify the last commit that OAT has already tracked. Everything after this commit is "untracked human work" that needs reconciliation.
123
+
124
+ **Priority 1 — Last tracked commit in `implementation.md`:**
125
+
126
+ Read `implementation.md` and find the last task entry with a commit SHA (look for `**Commit:** {sha}` patterns where sha is not `-` or empty). This is the most reliable checkpoint because it's exactly what OAT already recorded.
127
+
128
+ ```bash
129
+ LAST_TRACKED_SHA=$(grep -oP '\*\*Commit:\*\*\s+\K[0-9a-f]{7,40}' "$PROJECT_PATH/implementation.md" | tail -1)
130
+ ```
131
+
132
+ **Priority 2 — Last OAT-convention commit in git log:**
133
+
134
+ If `implementation.md` has no tracked commits, scan git log for the last commit matching OAT patterns:
135
+
136
+ ```bash
137
+ # Task commits: feat(p01-t01): ..., fix(p02-t03): ...
138
+ OAT_TASK_SHA=$(git log --oneline --grep='(p[0-9]*-t[0-9]*)' --extended-regexp -n 1 --format='%H')
139
+
140
+ # Bookkeeping commits: chore(oat): update tracking artifacts ...
141
+ OAT_BOOK_SHA=$(git log --oneline --grep='chore(oat):' -n 1 --format='%H')
142
+
143
+ # Use whichever is more recent (closer to HEAD)
144
+ if [ -n "$OAT_TASK_SHA" ] && [ -n "$OAT_BOOK_SHA" ]; then
145
+ # Compare: is OAT_TASK_SHA an ancestor of OAT_BOOK_SHA?
146
+ if git merge-base --is-ancestor "$OAT_TASK_SHA" "$OAT_BOOK_SHA" 2>/dev/null; then
147
+ CHECKPOINT="$OAT_BOOK_SHA"
148
+ else
149
+ CHECKPOINT="$OAT_TASK_SHA"
150
+ fi
151
+ elif [ -n "$OAT_TASK_SHA" ]; then
152
+ CHECKPOINT="$OAT_TASK_SHA"
153
+ elif [ -n "$OAT_BOOK_SHA" ]; then
154
+ CHECKPOINT="$OAT_BOOK_SHA"
155
+ fi
156
+ ```
157
+
158
+ **Priority 3 — Merge-base fallback:**
159
+
160
+ If no OAT commits are found at all, fall back to the merge-base with the default branch:
161
+
162
+ ```bash
163
+ DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@')
164
+ DEFAULT_BRANCH="${DEFAULT_BRANCH:-main}"
165
+ CHECKPOINT=$(git merge-base HEAD "$DEFAULT_BRANCH" 2>/dev/null)
166
+ ```
167
+
168
+ If merge-base also fails (e.g., orphan branch), use the first commit on the branch:
169
+
170
+ ```bash
171
+ CHECKPOINT=$(git rev-list --max-parents=0 HEAD | tail -1)
172
+ ```
173
+
174
+ **Report checkpoint to user:**
175
+
176
+ ```
177
+ OAT ▸ RECONCILE — Step 1: Checkpoint
178
+
179
+ Last tracked commit: {CHECKPOINT_SHA} ({date})
180
+ Source: {implementation.md | git log pattern | merge-base}
181
+ Task: {last_tracked_task_id or "pre-project"}
182
+
183
+ Commits since checkpoint: {count}
184
+ ```
185
+
186
+ Count commits in range:
187
+
188
+ ```bash
189
+ COMMIT_COUNT=$(git rev-list --count "$CHECKPOINT"..HEAD)
190
+ ```
191
+
192
+ **User confirmation gate:**
193
+
194
+ Ask user: "Use this as the checkpoint? Or provide a different commit SHA."
195
+
196
+ If user provides an alternative SHA, validate it:
197
+
198
+ ```bash
199
+ git cat-file -t "$USER_SHA" 2>/dev/null | grep -q commit
200
+ ```
201
+
202
+ Store the confirmed checkpoint as `$CHECKPOINT` for use in subsequent steps.
203
+
204
+ ### Step 2: Collect and Analyze Commits
205
+
206
+ Gather all commits between the checkpoint and HEAD, filter out noise, and extract metadata for mapping.
207
+
208
+ **Collect commits in range:**
209
+
210
+ ```bash
211
+ git log --format='%H|%s|%an|%ai' "$CHECKPOINT"..HEAD --reverse
212
+ ```
213
+
214
+ This gives oldest-first ordering (matches plan execution order). Parse each line into: `SHA`, `message`, `author`, `date`.
215
+
216
+ **Gather per-commit details:**
217
+
218
+ For each commit SHA, collect:
219
+
220
+ 1. Changed files:
221
+
222
+ ```bash
223
+ git diff-tree --no-commit-id -r --name-only "$SHA"
224
+ ```
225
+
226
+ 2. Diff stats (insertions/deletions):
227
+ ```bash
228
+ git diff --stat "$SHA"~1.."$SHA" 2>/dev/null || git diff --stat "$(git hash-object -t tree /dev/null)".."$SHA"
229
+ ```
230
+ (The fallback handles the case where `$SHA` is the first commit on the branch.)
231
+
232
+ **Filter out non-implementation commits:**
233
+
234
+ Remove from the analysis set:
235
+
236
+ 1. **Merge commits:**
237
+
238
+ ```bash
239
+ git rev-list --merges "$CHECKPOINT"..HEAD
240
+ ```
241
+
242
+ Any SHA in this list is excluded.
243
+
244
+ 2. **Bookkeeping-only commits** — commits where ALL changed files match OAT tracking patterns:
245
+ - Files ending in `implementation.md`, `state.md`, or `plan.md` within any `.oat/` path
246
+ - Files ending in `state.md` within any `.oat/` path
247
+ - Commit message starts with `chore(oat):`
248
+
249
+ Rule: if every file in the commit is under a `.oat/` subdirectory and matches one of `implementation.md`, `state.md`, `plan.md`, or `discovery.md` — then it's bookkeeping and should be excluded.
250
+
251
+ 3. **Already-tracked commits** — commits whose SHA already appears in `implementation.md` task entries (from Step 0.5 check).
252
+
253
+ **Present commit summary to user:**
254
+
255
+ ```
256
+ OAT ▸ RECONCILE — Step 2: Commit Analysis
257
+
258
+ Range: {CHECKPOINT_SHORT}..HEAD ({total_count} commits, {filtered_count} after filtering)
259
+ Filtered out: {merge_count} merges, {bookkeeping_count} bookkeeping, {tracked_count} already tracked
260
+
261
+ | # | SHA (short) | Message (first 60 chars) | Files | Insertions | Deletions |
262
+ |----|-------------|-----------------------------------|-------|------------|-----------|
263
+ | 1 | abc1234 | add auth endpoint | 3 | +120 | -5 |
264
+ | 2 | def5678 | fix validation logic | 1 | +15 | -8 |
265
+ | .. | ... | ... | ... | ... | ... |
266
+ ```
267
+
268
+ **Extract plan tasks for mapping:**
269
+
270
+ Read `plan.md` and extract all tasks:
271
+
272
+ 1. Parse `### Task pNN-tNN: {Name}` headers to get task IDs and names
273
+ 2. Parse `**Files:**` blocks under each task to get expected file lists (both `Create:` and `Modify:` entries)
274
+ 3. Parse task descriptions/steps for keyword extraction (used in Step 3 for message matching)
275
+ 4. Note which tasks already have `completed` status in `implementation.md` (skip these during mapping)
276
+
277
+ Store as a structured list:
278
+
279
+ ```
280
+ TASKS = [
281
+ { id: "p01-t01", name: "...", files: ["path/a.ts", "path/b.ts"], keywords: ["auth", "endpoint"] },
282
+ { id: "p01-t02", name: "...", files: [...], keywords: [...] },
283
+ ...
284
+ ]
285
+ ```
286
+
287
+ Only include tasks that are **not yet completed** in `implementation.md`.
288
+
289
+ ### Step 3: Map Commits to Tasks
290
+
291
+ For each filtered commit from Step 2, attempt to map it to a planned task using signals in priority order. Once a commit is mapped via a higher-priority signal, skip lower-priority signals for that commit.
292
+
293
+ **Signal A — Task ID in commit message (→ High confidence):**
294
+
295
+ Check if the commit message contains a task ID pattern:
296
+
297
+ ```bash
298
+ # Match patterns like: feat(p01-t03): ..., fix(p02-t01): ..., (p01-t02)
299
+ TASK_ID=$(echo "$COMMIT_MSG" | grep -oP 'p[0-9]+-t[0-9]+' | head -1)
300
+ ```
301
+
302
+ If `$TASK_ID` matches a pending task in the plan: map with `confidence=high`.
303
+
304
+ **Signal B — File overlap (→ High/Medium/Low confidence):**
305
+
306
+ For each unmatched commit, compare its changed files against each pending task's file list:
307
+
308
+ ```
309
+ For each pending task T:
310
+ task_files = set of files listed in plan for T
311
+ commit_files = set of files changed in this commit
312
+ intersection = commit_files ∩ task_files
313
+ overlap_ratio = |intersection| / |task_files| (if task_files is non-empty)
314
+
315
+ Classification:
316
+ overlap_ratio ≥ 0.8 AND only one task matches at this level → confidence=high
317
+ overlap_ratio ≥ 0.4 → confidence=medium
318
+ overlap_ratio > 0 → confidence=low
319
+ ```
320
+
321
+ Pick the best match (highest `overlap_ratio`). Break ties by plan order (earlier task wins).
322
+
323
+ If a commit's files don't appear in any task's file list, proceed to Signal C.
324
+
325
+ **Signal C — Message keyword match (→ Medium confidence):**
326
+
327
+ For each still-unmatched commit:
328
+
329
+ 1. Tokenize the commit message: split on spaces/punctuation, lowercase, remove stop words (a, the, and, or, to, in, for, of, with, is, this, that)
330
+ 2. Tokenize each pending task's name and description similarly
331
+ 3. Count matching significant tokens (≥3 chars)
332
+
333
+ ```
334
+ If matching_tokens ≥ 2 with a single task → confidence=medium
335
+ If matching_tokens ≥ 2 with multiple tasks → confidence=low (ambiguous)
336
+ ```
337
+
338
+ **Signal D — Temporal ordering (→ Low confidence):**
339
+
340
+ For each still-unmatched commit, use its position in the commit sequence as a tiebreaker:
341
+
342
+ ```
343
+ Sort remaining unmatched commits by commit date (oldest first).
344
+ Sort remaining pending tasks by plan order (p01-t01, p01-t02, ...).
345
+
346
+ For each unmatched commit (in date order):
347
+ candidate_task = first pending task (in plan order) that has no commits mapped yet
348
+ If candidate_task exists:
349
+ map commit → candidate_task with confidence=low
350
+ Remove candidate_task from pending list
351
+ Else:
352
+ classify as unmapped
353
+ ```
354
+
355
+ This signal is intentionally conservative (low confidence) — it only applies when no stronger signal matched. It is most useful for ambiguous manual ranges where commit order is the only remaining signal that correlates with plan task order.
356
+
357
+ **Signal E — No match (→ Unmapped):**
358
+
359
+ Any commits still unmatched after all signals: classify as `unmapped`.
360
+
361
+ **Multi-commit grouping:**
362
+
363
+ After individual mapping, group commits that map to the same task:
364
+
365
+ ```
366
+ For each task with multiple mapped commits:
367
+ - representative_sha = latest commit SHA (most recent)
368
+ - combined_files = union of all commit file lists
369
+ - combined_message = concatenation of commit messages (for outcome generation)
370
+ - confidence = lowest confidence among grouped commits (conservative)
371
+ ```
372
+
373
+ **Present mapping report:**
374
+
375
+ ```
376
+ OAT ▸ RECONCILE — Step 3: Mapping Report
377
+
378
+ Mapped to tasks:
379
+ | Task | Task Name | Commits | Confidence | Files |
380
+ |-----------|--------------------------|------------------|------------|-------|
381
+ | p01-t03 | Add validation logic | abc1234, def5678 | high | 4 |
382
+ | p02-t01 | Implement API endpoint | ghi9012 | medium | 2 |
383
+
384
+ Unmapped commits:
385
+ | SHA (short) | Message | Files |
386
+ |-------------|----------------------------|-------|
387
+ | jkl3456 | update readme | 1 |
388
+ | mno7890 | fix typo in config | 1 |
389
+
390
+ Tasks still pending (no commits matched):
391
+ | Task | Task Name |
392
+ |-----------|--------------------------|
393
+ | p02-t02 | Add integration tests |
394
+
395
+ Summary: {mapped_task_count}/{total_pending_tasks} tasks addressed,
396
+ {mapped_commit_count}/{total_commits} commits mapped,
397
+ {unmapped_count} unmapped
398
+ ```
399
+
400
+ ### Step 4: Confirm Mappings (Human-in-the-Loop)
401
+
402
+ Present mappings to the user for confirmation. No artifact writes happen in this step — only building the confirmed mapping set.
403
+
404
+ **4a. High-confidence batch approval:**
405
+
406
+ Present all high-confidence mappings as a batch:
407
+
408
+ ```
409
+ The following high-confidence mappings were detected:
410
+
411
+ p01-t03 "Add validation logic"
412
+ ← abc1234: "add input validation" (file overlap 90%)
413
+ ← def5678: "fix validation edge case" (file overlap 85%)
414
+
415
+ p02-t01 "Implement API endpoint"
416
+ ← ghi9012: "add /api/users endpoint" (task ID in message)
417
+
418
+ Accept all high-confidence mappings?
419
+ 1. Yes, accept all
420
+ 2. Review individually
421
+ ```
422
+
423
+ If user chooses "Review individually", fall through to the per-mapping flow below.
424
+
425
+ **4b. Medium/Low-confidence individual review:**
426
+
427
+ For each medium or low confidence mapping, present individually:
428
+
429
+ ```
430
+ Commit ghi9012: "fix validation logic" (2 files changed: src/validate.ts, src/utils.ts)
431
+ Best match: p02-t01 "Add input validation" (confidence: medium, file overlap 60%)
432
+
433
+ What should we do with this commit?
434
+ 1. Accept mapping to p02-t01
435
+ 2. Assign to a different task
436
+ 3. Mark as unplanned work (log in implementation.md)
437
+ 4. Skip (don't log this commit)
438
+ ```
439
+
440
+ If user chooses "Assign to a different task", present the list of unmatched pending tasks and let them pick.
441
+
442
+ **4c. Unmapped commits:**
443
+
444
+ For each unmapped commit:
445
+
446
+ ```
447
+ Commit jkl3456: "update readme" (1 file changed: README.md)
448
+ No matching task found.
449
+
450
+ What should we do with this commit?
451
+ 1. Assign to a task: [list pending tasks]
452
+ 2. Log as unplanned work in implementation.md
453
+ 3. Skip (don't log)
454
+ ```
455
+
456
+ **4d. Task completion status:**
457
+
458
+ For each task that has confirmed mapped commits, ask about completion:
459
+
460
+ ```
461
+ Task p02-t01 "Add input validation" — 1 commit mapped.
462
+ Mark this task as:
463
+ 1. Completed (all work for this task is done)
464
+ 2. In Progress (partial — more work still needed)
465
+ ```
466
+
467
+ Default to "Completed" for high-confidence mappings; default to "In Progress" for medium/low.
468
+
469
+ **4e. Final confirmation:**
470
+
471
+ Present the complete confirmed mapping before proceeding:
472
+
473
+ ```
474
+ OAT ▸ RECONCILE — Step 4: Confirmed Mappings
475
+
476
+ Tasks to update:
477
+ | Task | Status | Commits | Confidence |
478
+ |-----------|-------------|------------------|------------|
479
+ | p01-t03 | completed | abc1234, def5678 | high |
480
+ | p02-t01 | in_progress | ghi9012 | medium |
481
+
482
+ Unplanned work to log:
483
+ | SHA | Summary |
484
+ |-----------|--------------------------|
485
+ | jkl3456 | update readme |
486
+
487
+ Skipped commits: mno7890
488
+
489
+ Proceed with artifact updates?
490
+ 1. Yes, update artifacts
491
+ 2. Go back and revise mappings
492
+ ```
493
+
494
+ Only proceed to Step 5 after user confirms "Yes, update artifacts".
495
+
496
+ ### Step 5: Update Artifacts
497
+
498
+ Apply the confirmed mappings to OAT tracking artifacts. This is the only step that writes files.
499
+
500
+ **5a. Read existing `implementation.md`:**
501
+
502
+ Read the full file. Identify:
503
+
504
+ - Existing task entries (preserve all — never overwrite or delete)
505
+ - The insertion point for each task entry (find the `### Task pNN-tNN:` section)
506
+ - Current progress table values
507
+ - Current frontmatter values
508
+
509
+ **5b. Write task entries in `implementation.md`:**
510
+
511
+ For each confirmed task mapping, check whether a `### Task {task_id}:` section already exists in `implementation.md`:
512
+
513
+ - **If the section does NOT exist:** Insert a new task entry at the correct position (in plan task order within the appropriate phase section).
514
+ - **If the section ALREADY exists:** Do NOT replace or overwrite it. Instead, append a `**Reconciliation Update:**` block below the existing entry to augment it with the reconciled data.
515
+
516
+ **New entry template** (when no existing section):
517
+
518
+ ```markdown
519
+ ### Task {task_id}: {Task Name}
520
+
521
+ **Status:** {completed | in_progress}
522
+ **Commit:** {representative_sha} (reconciled)
523
+
524
+ **Outcome (reconciled from manual implementation):**
525
+
526
+ - {2-5 bullets derived from commit messages and diff summary}
527
+ - {Use git show --stat and commit messages to infer what changed}
528
+
529
+ **Files changed:**
530
+
531
+ - `{path}` - {inferred purpose from diff context}
532
+
533
+ **Verification:**
534
+
535
+ - Run: `{verification command from plan task, if available}`
536
+ - Result: not verified — reconciled entry
537
+
538
+ **Notes / Decisions:**
539
+
540
+ - Reconciled from manual implementation on {today's date}
541
+ - Original commits: {comma-separated SHA list}
542
+ - Mapping confidence: {high|medium|low}
543
+ - Mapping signal: {task ID in message | file overlap N% | keyword match}
544
+ ```
545
+
546
+ **Augmentation template** (when section already exists — append below existing content):
547
+
548
+ ```markdown
549
+ **Reconciliation Update ({today's date}):**
550
+
551
+ - Additional commits mapped: {comma-separated SHA list}
552
+ - Mapping confidence: {high|medium|low}
553
+ - Mapping signal: {task ID in message | file overlap N% | keyword match}
554
+ - Additional files: {files not already listed, if any}
555
+ - Status updated: {if status changed, e.g., in_progress → completed}
556
+ ```
557
+
558
+ **Important:** Never delete, replace, or overwrite existing task entry content. Existing notes, decisions, and outcomes represent logged history that must be preserved.
559
+
560
+ To generate the **Outcome** bullets:
561
+
562
+ 1. Read each commit's message and diff stats
563
+ 2. Summarize what changed at a behavior level (not "edited file X" but "added validation for user input")
564
+ 3. Use `git show --stat {sha}` and `git log --format='%s' {sha} -1` as source material
565
+
566
+ To generate **Files changed**:
567
+
568
+ 1. Use the combined file list from all grouped commits
569
+ 2. For each file, infer purpose from the file path and diff context
570
+
571
+ **5c. Add unplanned work entries:**
572
+
573
+ For each commit the user chose to log as unplanned work, append after the last task entry in the relevant phase (or at the end of the last phase):
574
+
575
+ ```markdown
576
+ ### Unplanned: {commit message summary (first 60 chars)}
577
+
578
+ **Status:** completed
579
+ **Commit:** {sha} (unplanned)
580
+
581
+ **Outcome:**
582
+
583
+ - {1-3 bullets derived from commit message and diff}
584
+
585
+ **Files changed:**
586
+
587
+ - `{path}` - {inferred from diff}
588
+
589
+ **Notes:**
590
+
591
+ - Not part of original plan. Logged during reconciliation on {today's date}.
592
+ ```
593
+
594
+ **5d. Update progress table:**
595
+
596
+ Recalculate the `## Progress Overview` table dynamically from the project's actual data:
597
+
598
+ 1. Enumerate all phases from `plan.md` by scanning `## Phase N:` headings
599
+ 2. For each phase, count tasks by matching `### Task pNN-tNN:` headers where `NN` is the phase number
600
+ 3. For each phase, count completed tasks from `implementation.md` entries with `**Status:** completed`
601
+ 4. Regenerate the table with actual counts:
602
+
603
+ ```markdown
604
+ | Phase | Status | Tasks | Completed |
605
+ | ----- | ------ | ----- | --------- |
606
+
607
+ {for each phase from plan.md:}
608
+ | Phase {N} | {status} | {task_count} | {completed_count}/{task_count} |
609
+
610
+ **Total:** {total_completed}/{total_tasks} tasks completed
611
+ ```
612
+
613
+ A phase is `complete` when all its tasks are `completed`. A phase is `in_progress` when at least one task is `completed` or `in_progress`. Otherwise `pending`.
614
+
615
+ Do not hardcode phase counts or task totals — always derive them from the current project's plan and implementation artifacts.
616
+
617
+ **5e. Update frontmatter:**
618
+
619
+ In `implementation.md`:
620
+
621
+ ```yaml
622
+ oat_current_task_id: { next_pending_task_id } # or null if all complete
623
+ oat_last_updated: { today }
624
+ ```
625
+
626
+ Find the next pending task by scanning plan order: first task with status not `completed`.
627
+
628
+ In `state.md`:
629
+
630
+ ```yaml
631
+ oat_current_task: { same as oat_current_task_id above }
632
+ oat_last_commit: { most recent reconciled commit SHA }
633
+ oat_phase: implement
634
+ oat_phase_status: in_progress
635
+ oat_project_state_updated: '{ISO 8601 UTC timestamp}'
636
+ # Always in_progress after reconciliation — only oat-project-review-receive
637
+ # may advance to complete after the final review passes.
638
+ ```
639
+
640
+ **5f. Append to Implementation Log:**
641
+
642
+ Add a reconciliation session entry to the `## Implementation Log` section:
643
+
644
+ ```markdown
645
+ ### {today's date}
646
+
647
+ **Session Start:** reconciliation
648
+
649
+ {For each reconciled task:}
650
+
651
+ - [x] {task_id}: {task_name} - {sha} (reconciled, confidence: {level})
652
+
653
+ {For each unplanned entry:}
654
+
655
+ - [x] unplanned: {summary} - {sha}
656
+
657
+ **What changed (high level):**
658
+
659
+ - Reconciled {N} manually-implemented tasks from {M} commits
660
+ - Logged {K} unplanned work entries
661
+
662
+ **Decisions:**
663
+
664
+ - Mapping confidence breakdown: {high_count} high, {medium_count} medium, {low_count} low
665
+ - Skipped commits: {skip_count}
666
+
667
+ **Session End:** reconciliation complete
668
+ ```
669
+
670
+ ### Step 6: Commit and Report
671
+
672
+ Create a single bookkeeping commit for all artifact updates and present a final summary.
673
+
674
+ **6a. Stage only tracking files:**
675
+
676
+ ```bash
677
+ git add "$PROJECT_PATH/implementation.md" "$PROJECT_PATH/state.md"
678
+ # Only add plan.md if it was modified
679
+ git diff --name-only "$PROJECT_PATH/plan.md" 2>/dev/null | grep -q . && git add "$PROJECT_PATH/plan.md"
680
+ ```
681
+
682
+ **Important:** Do NOT use `git add -A` or glob patterns. Only stage the specific OAT tracking files listed above.
683
+
684
+ **6b. Commit with reconciliation message:**
685
+
686
+ ```bash
687
+ git diff --cached --quiet || git commit -m "chore(oat): reconcile manual implementation ({first_task_id}..{last_task_id})"
688
+ ```
689
+
690
+ Example: `chore(oat): reconcile manual implementation (p01-t03..p02-t01)`
691
+
692
+ If only unplanned work was logged (no task mappings): `chore(oat): reconcile unplanned manual implementation`
693
+
694
+ **6c. Refresh dashboard (optional):**
695
+
696
+ ```bash
697
+ oat state refresh 2>/dev/null || pnpm run cli -- state refresh 2>/dev/null || true
698
+ ```
699
+
700
+ Dashboard refresh is best-effort; do not fail the reconciliation if it's unavailable.
701
+
702
+ **6d. Print final summary:**
703
+
704
+ ```
705
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
706
+ OAT ▸ RECONCILE — Complete
707
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
708
+
709
+ Reconciled: {N} tasks from {M} commits
710
+ High confidence: {high_count}
711
+ Medium confidence: {medium_count}
712
+ Low confidence: {low_count}
713
+
714
+ Unplanned work logged: {K} entries
715
+ Commits skipped: {skip_count}
716
+ Tasks still pending: {pending_count}
717
+
718
+ Next task: {next_task_id} "{next_task_name}" (or "all tasks complete")
719
+
720
+ Tracking commit: {bookkeeping_sha}
721
+
722
+ Recommended next steps:
723
+ - oat-project-implement → continue with remaining tasks
724
+ - oat-project-review-provide → review all changes (including reconciled)
725
+ - oat-project-progress → check overall project status
726
+ ```
727
+
728
+ ## Success Criteria
729
+
730
+ - Checkpoint correctly identified from implementation.md, git log, or merge-base
731
+ - All post-checkpoint commits collected and filtered (merges, bookkeeping, already-tracked excluded)
732
+ - Commit→task mapping uses all five signal types in priority order (task ID, file overlap, keywords, temporal, unmapped)
733
+ - Every uncertain mapping (medium/low/unmapped) confirmed by user before any writes
734
+ - Generated implementation.md entries match the template format exactly
735
+ - Existing implementation.md entries are preserved (append-only)
736
+ - Frontmatter pointers (`oat_current_task_id`, `oat_current_task`) are consistent across artifacts
737
+ - Single bookkeeping commit with only tracking files staged
738
+ - Downstream skills (`oat-project-progress`, `oat-project-review-provide`) produce correct results after reconciliation