@isaacriehm/cairn-core 0.1.10 → 0.3.0

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 (399) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/claude/runner.d.ts +1 -1
  3. package/dist/claude/runner.js +62 -1
  4. package/dist/claude/runner.js.map +1 -1
  5. package/dist/claude/types.d.ts +14 -7
  6. package/dist/claude/types.js +5 -7
  7. package/dist/claude/types.js.map +1 -1
  8. package/dist/context/index.d.ts +4 -4
  9. package/dist/context/index.js +3 -4
  10. package/dist/context/index.js.map +1 -1
  11. package/dist/context/spec-delta.js +3 -4
  12. package/dist/context/spec-delta.js.map +1 -1
  13. package/dist/context/task-summary.d.ts +18 -0
  14. package/dist/context/task-summary.js +89 -0
  15. package/dist/context/task-summary.js.map +1 -0
  16. package/dist/decision-capture/id.d.ts +21 -4
  17. package/dist/decision-capture/id.js +56 -5
  18. package/dist/decision-capture/id.js.map +1 -1
  19. package/dist/decision-capture/index.d.ts +7 -22
  20. package/dist/decision-capture/index.js +7 -17
  21. package/dist/decision-capture/index.js.map +1 -1
  22. package/dist/doctor/index.d.ts +2 -2
  23. package/dist/doctor/index.js +5 -60
  24. package/dist/doctor/index.js.map +1 -1
  25. package/dist/events/index.d.ts +1 -1
  26. package/dist/events/index.js +1 -1
  27. package/dist/events/writer.d.ts +1 -1
  28. package/dist/events/writer.js +1 -1
  29. package/dist/gc/canary.d.ts +13 -23
  30. package/dist/gc/canary.js +36 -92
  31. package/dist/gc/canary.js.map +1 -1
  32. package/dist/gc/citation-integrity.d.ts +6 -6
  33. package/dist/gc/citation-integrity.js +64 -20
  34. package/dist/gc/citation-integrity.js.map +1 -1
  35. package/dist/gc/frontmatter.js +1 -1
  36. package/dist/gc/generator-drift.js +1 -1
  37. package/dist/gc/generator-drift.js.map +1 -1
  38. package/dist/gc/index.d.ts +2 -2
  39. package/dist/gc/index.js +1 -1
  40. package/dist/gc/index.js.map +1 -1
  41. package/dist/gc/quality-update.d.ts +4 -4
  42. package/dist/gc/quality-update.js +5 -5
  43. package/dist/gc/quality-update.js.map +1 -1
  44. package/dist/gc/types.d.ts +1 -30
  45. package/dist/ground/index.d.ts +2 -2
  46. package/dist/ground/index.js +1 -1
  47. package/dist/ground/index.js.map +1 -1
  48. package/dist/ground/ledgers.d.ts +0 -4
  49. package/dist/ground/ledgers.js +10 -8
  50. package/dist/ground/ledgers.js.map +1 -1
  51. package/dist/ground/manifest.js +0 -4
  52. package/dist/ground/manifest.js.map +1 -1
  53. package/dist/ground/paths.js +0 -1
  54. package/dist/ground/paths.js.map +1 -1
  55. package/dist/ground/quality-grades.js +3 -1
  56. package/dist/ground/quality-grades.js.map +1 -1
  57. package/dist/ground/schemas.d.ts +2 -7
  58. package/dist/ground/schemas.js +7 -2
  59. package/dist/ground/schemas.js.map +1 -1
  60. package/dist/ground/scope-index.d.ts +62 -14
  61. package/dist/ground/scope-index.js +215 -45
  62. package/dist/ground/scope-index.js.map +1 -1
  63. package/dist/hooks/bypass-detection.js +14 -17
  64. package/dist/hooks/bypass-detection.js.map +1 -1
  65. package/dist/hooks/defer.d.ts +50 -0
  66. package/dist/hooks/defer.js +87 -0
  67. package/dist/hooks/defer.js.map +1 -0
  68. package/dist/hooks/post-tool-use/citation-scanner.d.ts +7 -5
  69. package/dist/hooks/post-tool-use/citation-scanner.js +15 -9
  70. package/dist/hooks/post-tool-use/citation-scanner.js.map +1 -1
  71. package/dist/hooks/post-tool-use/copy-scanner.js +1 -1
  72. package/dist/hooks/post-tool-use/copy-scanner.js.map +1 -1
  73. package/dist/hooks/post-tool-use/ledger-cache.d.ts +10 -2
  74. package/dist/hooks/post-tool-use/ledger-cache.js +58 -4
  75. package/dist/hooks/post-tool-use/ledger-cache.js.map +1 -1
  76. package/dist/hooks/post-tool-use/legend-builder.d.ts +3 -3
  77. package/dist/hooks/post-tool-use/legend-builder.js +30 -8
  78. package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
  79. package/dist/hooks/post-tool-use/read-enricher.d.ts +1 -1
  80. package/dist/hooks/post-tool-use/read-enricher.js +68 -21
  81. package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
  82. package/dist/hooks/post-tool-use/write-guardian.js +148 -18
  83. package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
  84. package/dist/hooks/runners/index.d.ts +3 -0
  85. package/dist/hooks/runners/index.js +2 -0
  86. package/dist/hooks/runners/index.js.map +1 -1
  87. package/dist/hooks/runners/payload.d.ts +1 -1
  88. package/dist/hooks/runners/payload.js +27 -12
  89. package/dist/hooks/runners/payload.js.map +1 -1
  90. package/dist/hooks/runners/session-start.js +250 -75
  91. package/dist/hooks/runners/session-start.js.map +1 -1
  92. package/dist/hooks/runners/stop.d.ts +9 -12
  93. package/dist/hooks/runners/stop.js +129 -41
  94. package/dist/hooks/runners/stop.js.map +1 -1
  95. package/dist/hooks/runners/user-prompt-submit.d.ts +15 -0
  96. package/dist/hooks/runners/user-prompt-submit.js +149 -0
  97. package/dist/hooks/runners/user-prompt-submit.js.map +1 -0
  98. package/dist/hooks/seed-attested.d.ts +25 -0
  99. package/dist/hooks/seed-attested.js +84 -0
  100. package/dist/hooks/seed-attested.js.map +1 -0
  101. package/dist/hooks/user-prompt-submit.d.ts +7 -0
  102. package/dist/hooks/user-prompt-submit.js +12 -0
  103. package/dist/hooks/user-prompt-submit.js.map +1 -0
  104. package/dist/index.d.ts +3 -6
  105. package/dist/index.js +14 -12
  106. package/dist/index.js.map +1 -1
  107. package/dist/init/baseline-audit.d.ts +5 -1
  108. package/dist/init/baseline-audit.js +25 -2
  109. package/dist/init/baseline-audit.js.map +1 -1
  110. package/dist/init/glob-inference.d.ts +16 -0
  111. package/dist/init/glob-inference.js +108 -0
  112. package/dist/init/glob-inference.js.map +1 -0
  113. package/dist/init/index.d.ts +4 -0
  114. package/dist/init/index.js +2 -0
  115. package/dist/init/index.js.map +1 -1
  116. package/dist/init/ingest-docs.d.ts +1 -1
  117. package/dist/init/ingest-docs.js +19 -6
  118. package/dist/init/ingest-docs.js.map +1 -1
  119. package/dist/init/init.js +17 -94
  120. package/dist/init/init.js.map +1 -1
  121. package/dist/init/mapper-merge.d.ts +8 -2
  122. package/dist/init/mapper-merge.js +50 -32
  123. package/dist/init/mapper-merge.js.map +1 -1
  124. package/dist/init/mapper-parallel.d.ts +2 -3
  125. package/dist/init/mapper-parallel.js +9 -38
  126. package/dist/init/mapper-parallel.js.map +1 -1
  127. package/dist/init/mapper-prompts.js +1 -1
  128. package/dist/init/mapper-prompts.js.map +1 -1
  129. package/dist/init/mapper.d.ts +7 -128
  130. package/dist/init/mapper.js +30 -7
  131. package/dist/init/mapper.js.map +1 -1
  132. package/dist/init/module-slicer.d.ts +1 -1
  133. package/dist/init/module-slicer.js +1 -1
  134. package/dist/init/multi-dev/install.d.ts +9 -10
  135. package/dist/init/multi-dev/install.js +15 -84
  136. package/dist/init/multi-dev/install.js.map +1 -1
  137. package/dist/init/overlay.d.ts +14 -0
  138. package/dist/init/overlay.js +65 -0
  139. package/dist/init/overlay.js.map +1 -0
  140. package/dist/init/phases/1-detect.d.ts +10 -0
  141. package/dist/init/phases/1-detect.js +36 -0
  142. package/dist/init/phases/1-detect.js.map +1 -0
  143. package/dist/init/phases/10-strip.d.ts +11 -0
  144. package/dist/init/phases/10-strip.js +79 -0
  145. package/dist/init/phases/10-strip.js.map +1 -0
  146. package/dist/init/phases/12-multidev.d.ts +6 -0
  147. package/dist/init/phases/12-multidev.js +34 -0
  148. package/dist/init/phases/12-multidev.js.map +1 -0
  149. package/dist/init/phases/2-walker.d.ts +8 -0
  150. package/dist/init/phases/2-walker.js +34 -0
  151. package/dist/init/phases/2-walker.js.map +1 -0
  152. package/dist/init/phases/3-mapper.d.ts +14 -0
  153. package/dist/init/phases/3-mapper.js +56 -0
  154. package/dist/init/phases/3-mapper.js.map +1 -0
  155. package/dist/init/phases/3b-seed.d.ts +18 -0
  156. package/dist/init/phases/3b-seed.js +140 -0
  157. package/dist/init/phases/3b-seed.js.map +1 -0
  158. package/dist/init/phases/4-pilot.d.ts +10 -0
  159. package/dist/init/phases/4-pilot.js +108 -0
  160. package/dist/init/phases/4-pilot.js.map +1 -0
  161. package/dist/init/phases/5-brand.d.ts +10 -0
  162. package/dist/init/phases/5-brand.js +66 -0
  163. package/dist/init/phases/5-brand.js.map +1 -0
  164. package/dist/init/phases/6-docs-ingest.d.ts +11 -0
  165. package/dist/init/phases/6-docs-ingest.js +39 -0
  166. package/dist/init/phases/6-docs-ingest.js.map +1 -0
  167. package/dist/init/phases/7b-source-comments.d.ts +6 -0
  168. package/dist/init/phases/7b-source-comments.js +34 -0
  169. package/dist/init/phases/7b-source-comments.js.map +1 -0
  170. package/dist/init/phases/7c-rules-merge.d.ts +6 -0
  171. package/dist/init/phases/7c-rules-merge.js +34 -0
  172. package/dist/init/phases/7c-rules-merge.js.map +1 -0
  173. package/dist/init/phases/8-baseline.d.ts +10 -0
  174. package/dist/init/phases/8-baseline.js +52 -0
  175. package/dist/init/phases/8-baseline.js.map +1 -0
  176. package/dist/init/phases/index.d.ts +15 -0
  177. package/dist/init/phases/index.js +16 -0
  178. package/dist/init/phases/index.js.map +1 -0
  179. package/dist/init/phases/orchestrator.d.ts +49 -0
  180. package/dist/init/phases/orchestrator.js +85 -0
  181. package/dist/init/phases/orchestrator.js.map +1 -0
  182. package/dist/init/phases/state-io.d.ts +19 -0
  183. package/dist/init/phases/state-io.js +73 -0
  184. package/dist/init/phases/state-io.js.map +1 -0
  185. package/dist/init/phases/types.d.ts +93 -0
  186. package/dist/init/phases/types.js +30 -0
  187. package/dist/init/phases/types.js.map +1 -0
  188. package/dist/init/prompts.d.ts +6 -8
  189. package/dist/init/prompts.js +3 -6
  190. package/dist/init/prompts.js.map +1 -1
  191. package/dist/init/rules-merge/ingest.js +1 -1
  192. package/dist/init/seed.js +11 -2
  193. package/dist/init/seed.js.map +1 -1
  194. package/dist/init/source-comments/classify.d.ts +1 -41
  195. package/dist/init/source-comments/classify.js +68 -37
  196. package/dist/init/source-comments/classify.js.map +1 -1
  197. package/dist/init/source-comments/index.d.ts +2 -2
  198. package/dist/init/source-comments/index.js +2 -2
  199. package/dist/init/source-comments/index.js.map +1 -1
  200. package/dist/init/source-comments/ingest.d.ts +38 -2
  201. package/dist/init/source-comments/ingest.js +237 -4
  202. package/dist/init/source-comments/ingest.js.map +1 -1
  203. package/dist/init/source-comments/strip-replace.d.ts +10 -19
  204. package/dist/init/source-comments/strip-replace.js +26 -2
  205. package/dist/init/source-comments/strip-replace.js.map +1 -1
  206. package/dist/init/source-comments/walker.d.ts +9 -2
  207. package/dist/init/source-comments/walker.js +38 -19
  208. package/dist/init/source-comments/walker.js.map +1 -1
  209. package/dist/init/submodules.d.ts +3 -2
  210. package/dist/init/types.d.ts +3 -5
  211. package/dist/init/types.js +3 -5
  212. package/dist/init/types.js.map +1 -1
  213. package/dist/init/visual.d.ts +4 -9
  214. package/dist/init/visual.js +1 -16
  215. package/dist/init/visual.js.map +1 -1
  216. package/dist/init/walker.d.ts +0 -6
  217. package/dist/init/walker.js +2 -3
  218. package/dist/init/walker.js.map +1 -1
  219. package/dist/join/index.js +49 -2
  220. package/dist/join/index.js.map +1 -1
  221. package/dist/logger.d.ts +1 -2
  222. package/dist/logger.js +5 -6
  223. package/dist/logger.js.map +1 -1
  224. package/dist/mcp/context.d.ts +2 -3
  225. package/dist/mcp/context.js.map +1 -1
  226. package/dist/mcp/errors.d.ts +1 -1
  227. package/dist/mcp/errors.js.map +1 -1
  228. package/dist/mcp/history/prompt.d.ts +2 -1
  229. package/dist/mcp/history/walker.js +1 -1
  230. package/dist/mcp/history/walker.js.map +1 -1
  231. package/dist/mcp/path-allowlist.d.ts +0 -6
  232. package/dist/mcp/path-allowlist.js +0 -10
  233. package/dist/mcp/path-allowlist.js.map +1 -1
  234. package/dist/mcp/schemas.d.ts +34 -72
  235. package/dist/mcp/schemas.js +40 -70
  236. package/dist/mcp/schemas.js.map +1 -1
  237. package/dist/mcp/serve.d.ts +1 -1
  238. package/dist/mcp/serve.js +2 -5
  239. package/dist/mcp/serve.js.map +1 -1
  240. package/dist/mcp/server.js +10 -4
  241. package/dist/mcp/server.js.map +1 -1
  242. package/dist/mcp/telemetry.d.ts +8 -1
  243. package/dist/mcp/telemetry.js +16 -0
  244. package/dist/mcp/telemetry.js.map +1 -1
  245. package/dist/mcp/tools/decision-get.js +37 -29
  246. package/dist/mcp/tools/decision-get.js.map +1 -1
  247. package/dist/mcp/tools/decisions-in-scope.js +22 -3
  248. package/dist/mcp/tools/decisions-in-scope.js.map +1 -1
  249. package/dist/mcp/tools/ground-get.js +2 -2
  250. package/dist/mcp/tools/ground-get.js.map +1 -1
  251. package/dist/mcp/tools/index.js +6 -2
  252. package/dist/mcp/tools/index.js.map +1 -1
  253. package/dist/mcp/tools/init-phases.d.ts +24 -0
  254. package/dist/mcp/tools/init-phases.js +140 -0
  255. package/dist/mcp/tools/init-phases.js.map +1 -0
  256. package/dist/mcp/tools/invariant-get.js +1 -1
  257. package/dist/mcp/tools/invariant-get.js.map +1 -1
  258. package/dist/mcp/tools/invariants-in-scope.js +26 -7
  259. package/dist/mcp/tools/invariants-in-scope.js.map +1 -1
  260. package/dist/mcp/tools/query-history.js +3 -3
  261. package/dist/mcp/tools/query-history.js.map +1 -1
  262. package/dist/mcp/tools/resolve-attention.d.ts +6 -4
  263. package/dist/mcp/tools/resolve-attention.js +253 -24
  264. package/dist/mcp/tools/resolve-attention.js.map +1 -1
  265. package/dist/mcp/tools/search.js +3 -4
  266. package/dist/mcp/tools/search.js.map +1 -1
  267. package/dist/mcp/tools/task-create.d.ts +15 -0
  268. package/dist/mcp/tools/task-create.js +96 -0
  269. package/dist/mcp/tools/task-create.js.map +1 -0
  270. package/dist/mcp/tools/timeline.js +3 -7
  271. package/dist/mcp/tools/timeline.js.map +1 -1
  272. package/dist/profiles/types.d.ts +2 -2
  273. package/dist/profiles/types.js +1 -1
  274. package/dist/sensors/catalog.js +8 -3
  275. package/dist/sensors/catalog.js.map +1 -1
  276. package/dist/session/id.d.ts +1 -3
  277. package/dist/session/id.js +1 -1
  278. package/dist/session/id.js.map +1 -1
  279. package/dist/session-start/build.d.ts +7 -11
  280. package/dist/session-start/build.js +62 -34
  281. package/dist/session-start/build.js.map +1 -1
  282. package/dist/session-start/index.d.ts +2 -2
  283. package/dist/session-start/index.js +2 -2
  284. package/dist/session-start/index.js.map +1 -1
  285. package/dist/session-start/templates.d.ts +20 -4
  286. package/dist/session-start/templates.js +45 -35
  287. package/dist/session-start/templates.js.map +1 -1
  288. package/dist/status-line/format.d.ts +20 -9
  289. package/dist/status-line/format.js +45 -35
  290. package/dist/status-line/format.js.map +1 -1
  291. package/dist/status-line/index.d.ts +3 -4
  292. package/dist/status-line/index.js +1 -1
  293. package/dist/status-line/index.js.map +1 -1
  294. package/dist/status-line/reader.d.ts +9 -6
  295. package/dist/status-line/reader.js +50 -18
  296. package/dist/status-line/reader.js.map +1 -1
  297. package/dist/status-line/writer.d.ts +6 -9
  298. package/dist/status-line/writer.js +10 -12
  299. package/dist/status-line/writer.js.map +1 -1
  300. package/dist/trace/index.d.ts +44 -0
  301. package/dist/trace/index.js +51 -0
  302. package/dist/trace/index.js.map +1 -0
  303. package/package.json +2 -3
  304. package/templates/.archive/README.md +3 -3
  305. package/templates/.cairn/JOIN.md +3 -9
  306. package/templates/.cairn/config/sensors.yaml +16 -19
  307. package/templates/.cairn/config/stub-patterns.yaml +4 -4
  308. package/templates/.cairn/config/trust-policy.yaml +3 -35
  309. package/templates/.cairn/config/workflow.md +13 -194
  310. package/templates/.cairn/git-hooks/commit-msg +15 -4
  311. package/templates/.cairn/git-hooks/pre-commit +22 -13
  312. package/templates/.cairn/ground/canonical-map/topics.yaml +3 -26
  313. package/templates/.cairn/ground/capabilities/snippets.yaml +0 -1
  314. package/templates/.cairn/ground/manifest.yaml +5 -8
  315. package/templates/.cairn/ground/product/personas.yaml +0 -1
  316. package/dist/context/checkpoint.d.ts +0 -10
  317. package/dist/context/checkpoint.js +0 -29
  318. package/dist/context/checkpoint.js.map +0 -1
  319. package/dist/decision-capture/capture.d.ts +0 -57
  320. package/dist/decision-capture/capture.js +0 -186
  321. package/dist/decision-capture/capture.js.map +0 -1
  322. package/dist/decision-capture/extractor.d.ts +0 -20
  323. package/dist/decision-capture/extractor.js +0 -103
  324. package/dist/decision-capture/extractor.js.map +0 -1
  325. package/dist/decision-capture/prompt.d.ts +0 -15
  326. package/dist/decision-capture/prompt.js +0 -68
  327. package/dist/decision-capture/prompt.js.map +0 -1
  328. package/dist/decision-capture/refinement-prompt.d.ts +0 -25
  329. package/dist/decision-capture/refinement-prompt.js +0 -146
  330. package/dist/decision-capture/refinement-prompt.js.map +0 -1
  331. package/dist/decision-capture/refinement-schema.d.ts +0 -52
  332. package/dist/decision-capture/refinement-schema.js +0 -61
  333. package/dist/decision-capture/refinement-schema.js.map +0 -1
  334. package/dist/decision-capture/refinement.d.ts +0 -60
  335. package/dist/decision-capture/refinement.js +0 -439
  336. package/dist/decision-capture/refinement.js.map +0 -1
  337. package/dist/decision-capture/schema.d.ts +0 -70
  338. package/dist/decision-capture/schema.js +0 -71
  339. package/dist/decision-capture/schema.js.map +0 -1
  340. package/dist/decision-capture/types.d.ts +0 -201
  341. package/dist/decision-capture/types.js +0 -20
  342. package/dist/decision-capture/types.js.map +0 -1
  343. package/dist/decision-capture/writer.d.ts +0 -90
  344. package/dist/decision-capture/writer.js +0 -267
  345. package/dist/decision-capture/writer.js.map +0 -1
  346. package/dist/frontend-types.d.ts +0 -243
  347. package/dist/frontend-types.js +0 -15
  348. package/dist/frontend-types.js.map +0 -1
  349. package/dist/hooks/index.d.ts +0 -12
  350. package/dist/hooks/index.js +0 -13
  351. package/dist/hooks/index.js.map +0 -1
  352. package/dist/inbox.d.ts +0 -17
  353. package/dist/inbox.js +0 -30
  354. package/dist/inbox.js.map +0 -1
  355. package/dist/mcp/tools/append-run-note.d.ts +0 -18
  356. package/dist/mcp/tools/append-run-note.js +0 -47
  357. package/dist/mcp/tools/append-run-note.js.map +0 -1
  358. package/dist/mcp/tools/append.d.ts +0 -8
  359. package/dist/mcp/tools/append.js +0 -37
  360. package/dist/mcp/tools/append.js.map +0 -1
  361. package/dist/mcp/tools/ask-operator.d.ts +0 -34
  362. package/dist/mcp/tools/ask-operator.js +0 -97
  363. package/dist/mcp/tools/ask-operator.js.map +0 -1
  364. package/dist/mcp/tools/drop-task.d.ts +0 -12
  365. package/dist/mcp/tools/drop-task.js +0 -68
  366. package/dist/mcp/tools/drop-task.js.map +0 -1
  367. package/dist/mcp/tools/record-run-event.d.ts +0 -10
  368. package/dist/mcp/tools/record-run-event.js +0 -32
  369. package/dist/mcp/tools/record-run-event.js.map +0 -1
  370. package/dist/prompt.d.ts +0 -19
  371. package/dist/prompt.js +0 -50
  372. package/dist/prompt.js.map +0 -1
  373. package/dist/tier0/classify.d.ts +0 -10
  374. package/dist/tier0/classify.js +0 -110
  375. package/dist/tier0/classify.js.map +0 -1
  376. package/dist/tier0/index.d.ts +0 -2
  377. package/dist/tier0/index.js +0 -2
  378. package/dist/tier0/index.js.map +0 -1
  379. package/dist/tier0/types.d.ts +0 -24
  380. package/dist/tier0/types.js +0 -9
  381. package/dist/tier0/types.js.map +0 -1
  382. package/dist/tightener/index.d.ts +0 -4
  383. package/dist/tightener/index.js +0 -4
  384. package/dist/tightener/index.js.map +0 -1
  385. package/dist/tightener/prompt.d.ts +0 -3
  386. package/dist/tightener/prompt.js +0 -67
  387. package/dist/tightener/prompt.js.map +0 -1
  388. package/dist/tightener/schema.d.ts +0 -68
  389. package/dist/tightener/schema.js +0 -44
  390. package/dist/tightener/schema.js.map +0 -1
  391. package/dist/tightener/tighten.d.ts +0 -2
  392. package/dist/tightener/tighten.js +0 -66
  393. package/dist/tightener/tighten.js.map +0 -1
  394. package/dist/tightener/types.d.ts +0 -74
  395. package/dist/tightener/types.js +0 -6
  396. package/dist/tightener/types.js.map +0 -1
  397. package/templates/.claude/settings.json +0 -57
  398. package/templates/.mcp.json +0 -8
  399. package/templates/README.md +0 -24
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Phase 3b-seed — write `.cairn/` skeleton + project overlay +
3
+ * grandfather pre-adoption commits.
4
+ *
5
+ * Steps:
6
+ * 1. seedCairnLayout (templates → .cairn/)
7
+ * 2. updateWorkflowSlugBlock (mapper output → workflow.md)
8
+ * 3. write .cairn/config.yaml + .cairn/ground/scope-index.yaml
9
+ * 4. seed .cairn/.attested-commits with every reachable HEAD SHA
10
+ * so the Stop-hook bypass detector grandfathers pre-adoption
11
+ * history.
12
+ *
13
+ * No operator input. Always advances. Idempotent — re-running on a
14
+ * project that already has .cairn/ keeps existing files (collisions
15
+ * recorded in seed.collisions but not fatal).
16
+ */
17
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
18
+ import { join } from "node:path";
19
+ import { stringify as stringifyYaml } from "yaml";
20
+ import { scopeIndexPath, writeScopeIndex, } from "../../ground/scope-index.js";
21
+ import { seedAttestedCommits } from "../../hooks/seed-attested.js";
22
+ import { buildProjectOverlay } from "../overlay.js";
23
+ import { seedCairnLayout } from "../seed.js";
24
+ import { updateWorkflowSlugBlock } from "../workflow-block.js";
25
+ import { advancePhase } from "./orchestrator.js";
26
+ export async function runPhase3bSeed(state) {
27
+ const detection = state.outputs["1-detect"];
28
+ const mapperResult = state.outputs["3-mapper"];
29
+ if (detection === undefined) {
30
+ return {
31
+ status: "error",
32
+ error: {
33
+ code: "missing-prereqs",
34
+ message: "Phase 3b-seed needs phase 1-detect output",
35
+ },
36
+ state,
37
+ };
38
+ }
39
+ const projectSlug = detection.project_slug;
40
+ const mapperOutput = mapperResult?.output;
41
+ try {
42
+ // Step 1 — seed templates into .cairn/.
43
+ const seed = seedCairnLayout({ repoRoot: state.repoRoot, projectSlug });
44
+ // Step 2 — patch <slug>: workflow.md block when workflow.md was
45
+ // freshly seeded (existing workflow stays untouched on re-run).
46
+ const wfRel = ".cairn/config/workflow.md";
47
+ const wfWasSeeded = seed.written_files.includes(wfRel);
48
+ let workflowSlugPatched = false;
49
+ let workflowPatchError = null;
50
+ if (mapperOutput !== undefined && wfWasSeeded) {
51
+ try {
52
+ updateWorkflowSlugBlock({
53
+ workflowMdPath: join(state.repoRoot, wfRel),
54
+ slug: projectSlug,
55
+ update: {
56
+ pilot_module: mapperOutput.pilot_module,
57
+ route_handler_globs: mapperOutput.route_handler_globs,
58
+ dto_globs: mapperOutput.dto_globs,
59
+ generator_source_globs: mapperOutput.generator_source_globs,
60
+ high_stakes_globs: mapperOutput.high_stakes_globs,
61
+ off_limits_append: mapperOutput.off_limits_globs,
62
+ },
63
+ });
64
+ workflowSlugPatched = true;
65
+ }
66
+ catch (err) {
67
+ // Soft fail — record the error and continue. config.yaml +
68
+ // scope-index still get written below; the operator can
69
+ // hand-edit workflow.md after init if needed.
70
+ workflowPatchError =
71
+ err instanceof Error ? err.stack ?? err.message : String(err);
72
+ }
73
+ }
74
+ // Step 3 — write .cairn/config.yaml.
75
+ const configPath = join(state.repoRoot, ".cairn", "config.yaml");
76
+ mkdirSync(join(state.repoRoot, ".cairn"), { recursive: true });
77
+ if (!existsSync(configPath)) {
78
+ const config = buildProjectOverlay({
79
+ detection,
80
+ decidedSlug: projectSlug,
81
+ ...(mapperOutput !== undefined ? { mapperOutput } : {}),
82
+ });
83
+ writeFileSync(configPath, stringifyYaml(config), "utf8");
84
+ }
85
+ // Step 4 — write .cairn/ground/scope-index.yaml from mapper.
86
+ const scopeFile = scopeIndexPath(state.repoRoot);
87
+ if (!existsSync(scopeFile)) {
88
+ const seedFiles = {};
89
+ const mapperFiles = mapperOutput?.scope_index?.files ?? {};
90
+ for (const [path, e] of Object.entries(mapperFiles)) {
91
+ const entry = {
92
+ decisions: e.decisions,
93
+ invariants: e.invariants,
94
+ };
95
+ if (e.unscoped === true)
96
+ entry.unscoped = true;
97
+ seedFiles[path] = entry;
98
+ }
99
+ writeScopeIndex(state.repoRoot, {
100
+ generated: new Date().toISOString(),
101
+ files: seedFiles,
102
+ });
103
+ }
104
+ // Step 5 — grandfather pre-adoption commits in
105
+ // `.cairn/.attested-commits` so the Stop-hook bypass detector
106
+ // doesn't flag every pre-existing SHA on the next turn.
107
+ const attestedSeed = seedAttestedCommits(state.repoRoot);
108
+ const out = {
109
+ written_files: seed.written_files,
110
+ collisions: seed.collisions,
111
+ config_path: ".cairn/config.yaml",
112
+ scope_index_path: ".cairn/ground/scope-index.yaml",
113
+ workflow_slug_patched: workflowSlugPatched,
114
+ workflow_patch_error: workflowPatchError,
115
+ attested_seeded: attestedSeed.count ?? 0,
116
+ attested_seed_status: attestedSeed.status,
117
+ };
118
+ const next = {
119
+ ...state,
120
+ outputs: { ...state.outputs, "3b-seed": out },
121
+ };
122
+ return {
123
+ status: "complete",
124
+ nextPhase: "4-pilot",
125
+ state: advancePhase(next),
126
+ };
127
+ }
128
+ catch (err) {
129
+ return {
130
+ status: "error",
131
+ error: {
132
+ code: "seed-failed",
133
+ message: "Failed to seed .cairn/ skeleton",
134
+ detail: err instanceof Error ? err.stack ?? err.message : String(err),
135
+ },
136
+ state,
137
+ };
138
+ }
139
+ }
140
+ //# sourceMappingURL=3b-seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3b-seed.js","sourceRoot":"","sources":["../../../src/init/phases/3b-seed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Phase 4-pilot — operator picks the seed module.
3
+ *
4
+ * The mapper's `pilot_module` field is the model's first guess; this
5
+ * phase surfaces it alongside the next 2 strongest `key_modules` so
6
+ * the operator can override. Picking the pilot determines which
7
+ * module's globs flow into `.cairn/config.yaml.project_globs` first.
8
+ */
9
+ import type { PhaseResult, PhaseState } from "./types.js";
10
+ export declare function runPhase4Pilot(state: PhaseState): Promise<PhaseResult>;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Phase 4-pilot — operator picks the seed module.
3
+ *
4
+ * The mapper's `pilot_module` field is the model's first guess; this
5
+ * phase surfaces it alongside the next 2 strongest `key_modules` so
6
+ * the operator can override. Picking the pilot determines which
7
+ * module's globs flow into `.cairn/config.yaml.project_globs` first.
8
+ */
9
+ import { advancePhase } from "./orchestrator.js";
10
+ const MAX_OPTIONS = 3;
11
+ export async function runPhase4Pilot(state) {
12
+ const mapper = state.outputs["3-mapper"];
13
+ if (mapper === undefined) {
14
+ return {
15
+ status: "error",
16
+ error: {
17
+ code: "missing-prereqs",
18
+ message: "Phase 4 needs phase 3-mapper output",
19
+ },
20
+ state,
21
+ };
22
+ }
23
+ // Operator already picked → consume + advance.
24
+ if (state.answer !== undefined && state.answer.length > 0) {
25
+ const next = {
26
+ ...state,
27
+ outputs: { ...state.outputs, "4-pilot": { picked: state.answer } },
28
+ answer: undefined,
29
+ };
30
+ return {
31
+ status: "complete",
32
+ nextPhase: "5-brand",
33
+ state: advancePhase(next),
34
+ };
35
+ }
36
+ const out = mapper.output;
37
+ const candidates = [];
38
+ // Canonicalize repo-root forms — mapper can emit "" (key_module),
39
+ // "." (Haiku merge override), or "ALL" (mapper-merge fallback) for
40
+ // the same logical "whole repo" pick. Collapse them so dedup works.
41
+ const canonId = (p) => {
42
+ const trimmed = p.trim();
43
+ if (trimmed.length === 0 || trimmed === "ALL")
44
+ return ".";
45
+ return trimmed;
46
+ };
47
+ // Render the repo-root canonical id with a contextual label so the
48
+ // operator doesn't see a bare dot or the literal "ALL" between
49
+ // backticks.
50
+ const labelFor = (p) => (canonId(p) === "." ? "Repo root (.)" : p);
51
+ const seen = new Set();
52
+ const pushUnique = (opt) => {
53
+ if (seen.has(opt.id))
54
+ return;
55
+ seen.add(opt.id);
56
+ candidates.push(opt);
57
+ };
58
+ // Pilot first (always at least repo-root, even when empty).
59
+ pushUnique({
60
+ id: canonId(out.pilot_module),
61
+ label: labelFor(out.pilot_module),
62
+ detail: "Mapper's first pick",
63
+ });
64
+ // Top 2 key_modules other than pilot — dedup by canonical id so a
65
+ // key_module pointing at the same path as the pilot doesn't surface
66
+ // as a phantom second option.
67
+ for (const km of out.key_modules) {
68
+ if (candidates.length >= MAX_OPTIONS)
69
+ break;
70
+ pushUnique({
71
+ id: canonId(km.path),
72
+ label: labelFor(km.path),
73
+ detail: km.purpose,
74
+ });
75
+ }
76
+ // Fallback if mapper produced nothing.
77
+ if (candidates.length === 0) {
78
+ pushUnique({
79
+ id: ".",
80
+ label: "Repo root (.)",
81
+ detail: "Whole repo as the pilot scope",
82
+ });
83
+ }
84
+ // Single candidate → no real choice for the operator. Auto-pick and
85
+ // skip the prompt rather than burning an interaction on a one-option
86
+ // AskUserQuestion.
87
+ if (candidates.length === 1) {
88
+ const picked = candidates[0].id;
89
+ const next = {
90
+ ...state,
91
+ outputs: { ...state.outputs, "4-pilot": { picked } },
92
+ answer: undefined,
93
+ };
94
+ return {
95
+ status: "complete",
96
+ nextPhase: "5-brand",
97
+ state: advancePhase(next),
98
+ };
99
+ }
100
+ const question = {
101
+ id: "4-pilot",
102
+ prompt: "Which module should Cairn seed first?",
103
+ options: candidates,
104
+ default: candidates[0].id,
105
+ };
106
+ return { status: "needs_input", question, state };
107
+ }
108
+ //# sourceMappingURL=4-pilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"4-pilot.js","sourceRoot":"","sources":["../../../src/init/phases/4-pilot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Phase 5-brand — adopt brand DEC drafts inline.
3
+ *
4
+ * Emits ONE A/B/C choice. `auto-fill` substitutes positioning + voice
5
+ * from the mapper's domain summary; `skip` leaves status: draft for
6
+ * later editing; `manual` hands off to the operator (drafts stay
7
+ * draft, summary surfaces the file paths to edit).
8
+ */
9
+ import type { PhaseResult, PhaseState } from "./types.js";
10
+ export declare function runPhase5Brand(state: PhaseState): Promise<PhaseResult>;
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Phase 5-brand — adopt brand DEC drafts inline.
3
+ *
4
+ * Emits ONE A/B/C choice. `auto-fill` substitutes positioning + voice
5
+ * from the mapper's domain summary; `skip` leaves status: draft for
6
+ * later editing; `manual` hands off to the operator (drafts stay
7
+ * draft, summary surfaces the file paths to edit).
8
+ */
9
+ import { applyBrandAnswers } from "../brand-setup.js";
10
+ import { advancePhase } from "./orchestrator.js";
11
+ export async function runPhase5Brand(state) {
12
+ // Pending operator answer → execute the chosen path.
13
+ if (state.answer !== undefined && state.answer.length > 0) {
14
+ const choice = state.answer;
15
+ let result = null;
16
+ if (choice === "auto-fill") {
17
+ const mapper = state.outputs["3-mapper"];
18
+ if (mapper !== undefined) {
19
+ const answers = {
20
+ whatItDoes: mapper.output.domain_summary,
21
+ mainUsers: "",
22
+ voice: "",
23
+ avoid: "",
24
+ };
25
+ result = applyBrandAnswers(state.repoRoot, answers);
26
+ }
27
+ }
28
+ const next = {
29
+ ...state,
30
+ outputs: {
31
+ ...state.outputs,
32
+ "5-brand": { choice, applied: result },
33
+ },
34
+ answer: undefined,
35
+ };
36
+ return {
37
+ status: "complete",
38
+ nextPhase: "6-docs-ingest",
39
+ state: advancePhase(next),
40
+ };
41
+ }
42
+ const question = {
43
+ id: "5-brand",
44
+ prompt: "Auto-fill brand text (positioning + voice)?",
45
+ options: [
46
+ {
47
+ id: "auto-fill",
48
+ label: "yes, auto-fill",
49
+ detail: "Use the mapper's domain summary; mark brand files current",
50
+ },
51
+ {
52
+ id: "skip",
53
+ label: "skip for now",
54
+ detail: "Brand files stay as drafts; populate later when ready",
55
+ },
56
+ {
57
+ id: "manual",
58
+ label: "I'll edit the drafts myself",
59
+ detail: "Open .cairn/ground/brand/* after adoption to fill in",
60
+ },
61
+ ],
62
+ default: "auto-fill",
63
+ };
64
+ return { status: "needs_input", question, state };
65
+ }
66
+ //# sourceMappingURL=5-brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5-brand.js","sourceRoot":"","sources":["../../../src/init/phases/5-brand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAqB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAiB;IACpD,qDAAqD;IACrD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,GAAqD,IAAI,CAAC;QACpE,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAA6B,CAAC;YACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAiB;oBAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;oBACxC,SAAS,EAAE,EAAE;oBACb,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,EAAE;iBACV,CAAC;gBACF,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE;gBACP,GAAG,KAAK,CAAC,OAAO;gBAChB,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;aACvC;YACD,MAAM,EAAE,SAAS;SAClB,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,eAAe;YAC1B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAkB;QAC9B,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,6CAA6C;QACrD,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,WAAW;gBACf,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,2DAA2D;aACpE;YACD;gBACE,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,uDAAuD;aAChE;YACD;gBACE,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,6BAA6B;gBACpC,MAAM,EAAE,sDAAsD;aAC/D;SACF;QACD,OAAO,EAAE,WAAW;KACrB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACpD,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Phase 6-docs-ingest — Haiku batch over README + docs/ → DEC drafts
3
+ * + canonical-map topics + voice rewrites.
4
+ *
5
+ * Wraps `runDocsIngestion`; no operator input. The skill driver
6
+ * surfaces the resulting `decDraftsWritten` count in the post-init
7
+ * summary so the operator knows how much pending attention they
8
+ * have.
9
+ */
10
+ import type { PhaseResult, PhaseState } from "./types.js";
11
+ export declare function runPhase6DocsIngest(state: PhaseState): Promise<PhaseResult>;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Phase 6-docs-ingest — Haiku batch over README + docs/ → DEC drafts
3
+ * + canonical-map topics + voice rewrites.
4
+ *
5
+ * Wraps `runDocsIngestion`; no operator input. The skill driver
6
+ * surfaces the resulting `decDraftsWritten` count in the post-init
7
+ * summary so the operator knows how much pending attention they
8
+ * have.
9
+ */
10
+ import { runDocsIngestion } from "../ingest-docs.js";
11
+ import { advancePhase } from "./orchestrator.js";
12
+ export async function runPhase6DocsIngest(state) {
13
+ try {
14
+ const result = await runDocsIngestion({
15
+ repoRoot: state.repoRoot,
16
+ });
17
+ const next = {
18
+ ...state,
19
+ outputs: { ...state.outputs, "6-docs-ingest": result },
20
+ };
21
+ return {
22
+ status: "complete",
23
+ nextPhase: "7b-source-comments",
24
+ state: advancePhase(next),
25
+ };
26
+ }
27
+ catch (err) {
28
+ return {
29
+ status: "error",
30
+ error: {
31
+ code: "docs-ingest-failed",
32
+ message: "Docs ingestion pipeline failed",
33
+ detail: err instanceof Error ? err.stack ?? err.message : String(err),
34
+ },
35
+ state,
36
+ };
37
+ }
38
+ }
39
+ //# sourceMappingURL=6-docs-ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6-docs-ingest.js","sourceRoot":"","sources":["../../../src/init/phases/6-docs-ingest.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAiB;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAoB,MAAM,gBAAgB,CAAC;YACrD,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE;SACvD,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,oBAAoB;YAC/B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,gCAAgC;gBACzC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Phase 7b-source-comments — walk every source file's docblock-class
3
+ * comment, classify via Haiku, write DEC drafts / invariant proposals.
4
+ */
5
+ import type { PhaseResult, PhaseState } from "./types.js";
6
+ export declare function runPhase7bSourceComments(state: PhaseState): Promise<PhaseResult>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Phase 7b-source-comments — walk every source file's docblock-class
3
+ * comment, classify via Haiku, write DEC drafts / invariant proposals.
4
+ */
5
+ import { runSourceCommentsIngestion, } from "../source-comments/index.js";
6
+ import { advancePhase } from "./orchestrator.js";
7
+ export async function runPhase7bSourceComments(state) {
8
+ try {
9
+ const result = await runSourceCommentsIngestion({
10
+ repoRoot: state.repoRoot,
11
+ });
12
+ const next = {
13
+ ...state,
14
+ outputs: { ...state.outputs, "7b-source-comments": result },
15
+ };
16
+ return {
17
+ status: "complete",
18
+ nextPhase: "7c-rules-merge",
19
+ state: advancePhase(next),
20
+ };
21
+ }
22
+ catch (err) {
23
+ return {
24
+ status: "error",
25
+ error: {
26
+ code: "source-comments-failed",
27
+ message: "Source-comment ingestion failed",
28
+ detail: err instanceof Error ? err.stack ?? err.message : String(err),
29
+ },
30
+ state,
31
+ };
32
+ }
33
+ }
34
+ //# sourceMappingURL=7b-source-comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7b-source-comments.js","sourceRoot":"","sources":["../../../src/init/phases/7b-source-comments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAAiB;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAA+B,MAAM,0BAA0B,CAAC;YAC1E,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE;SAC5D,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,iCAAiC;gBAC1C,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Phase 7c-rules-merge — walk CLAUDE.md / AGENTS.md / .claude/rules/*
3
+ * sections, classify via Haiku, propose net-new rules + flag conflicts.
4
+ */
5
+ import type { PhaseResult, PhaseState } from "./types.js";
6
+ export declare function runPhase7cRulesMerge(state: PhaseState): Promise<PhaseResult>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Phase 7c-rules-merge — walk CLAUDE.md / AGENTS.md / .claude/rules/*
3
+ * sections, classify via Haiku, propose net-new rules + flag conflicts.
4
+ */
5
+ import { runRulesMerge, } from "../rules-merge/index.js";
6
+ import { advancePhase } from "./orchestrator.js";
7
+ export async function runPhase7cRulesMerge(state) {
8
+ try {
9
+ const result = await runRulesMerge({
10
+ repoRoot: state.repoRoot,
11
+ });
12
+ const next = {
13
+ ...state,
14
+ outputs: { ...state.outputs, "7c-rules-merge": result },
15
+ };
16
+ return {
17
+ status: "complete",
18
+ nextPhase: "8-baseline",
19
+ state: advancePhase(next),
20
+ };
21
+ }
22
+ catch (err) {
23
+ return {
24
+ status: "error",
25
+ error: {
26
+ code: "rules-merge-failed",
27
+ message: "Rules merge failed",
28
+ detail: err instanceof Error ? err.stack ?? err.message : String(err),
29
+ },
30
+ state,
31
+ };
32
+ }
33
+ }
34
+ //# sourceMappingURL=7c-rules-merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7c-rules-merge.js","sourceRoot":"","sources":["../../../src/init/phases/7c-rules-merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAiB;IAC1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAwB,MAAM,aAAa,CAAC;YACtD,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;QACH,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE;SACxD,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,oBAAoB;gBAC7B,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Phase 8-baseline — first sensor sweep against the synthetic
3
+ * full-tree diff. Stamps the audit row counts under outputs so the
4
+ * skill driver can summarize "N findings across M sensors".
5
+ *
6
+ * Reads the mapper's globs (route handlers, DTOs, etc.) from phase 3
7
+ * if available. Falls back to baseline-audit's defaults otherwise.
8
+ */
9
+ import type { PhaseResult, PhaseState } from "./types.js";
10
+ export declare function runPhase8Baseline(state: PhaseState): Promise<PhaseResult>;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Phase 8-baseline — first sensor sweep against the synthetic
3
+ * full-tree diff. Stamps the audit row counts under outputs so the
4
+ * skill driver can summarize "N findings across M sensors".
5
+ *
6
+ * Reads the mapper's globs (route handlers, DTOs, etc.) from phase 3
7
+ * if available. Falls back to baseline-audit's defaults otherwise.
8
+ */
9
+ import { defaultBaselineLanguages, runBaselineAudit, } from "../baseline-audit.js";
10
+ import { advancePhase } from "./orchestrator.js";
11
+ export async function runPhase8Baseline(state) {
12
+ const detection = state.outputs["1-detect"];
13
+ const mapper = state.outputs["3-mapper"];
14
+ const globs = mapper
15
+ ? {
16
+ route_handler_globs: mapper.output.route_handler_globs,
17
+ dto_globs: mapper.output.dto_globs,
18
+ generator_source_globs: mapper.output.generator_source_globs,
19
+ high_stakes_globs: mapper.output.high_stakes_globs,
20
+ off_limits: mapper.output.off_limits_globs,
21
+ }
22
+ : {};
23
+ const languages = defaultBaselineLanguages((detection?.stack_signatures ?? []).map((s) => s.kind));
24
+ try {
25
+ const result = await runBaselineAudit({
26
+ repoRoot: state.repoRoot,
27
+ projectGlobs: globs,
28
+ languages,
29
+ });
30
+ const next = {
31
+ ...state,
32
+ outputs: { ...state.outputs, "8-baseline": result },
33
+ };
34
+ return {
35
+ status: "complete",
36
+ nextPhase: "10-strip",
37
+ state: advancePhase(next),
38
+ };
39
+ }
40
+ catch (err) {
41
+ return {
42
+ status: "error",
43
+ error: {
44
+ code: "baseline-failed",
45
+ message: "Baseline sensor sweep failed",
46
+ detail: err instanceof Error ? err.stack ?? err.message : String(err),
47
+ },
48
+ state,
49
+ };
50
+ }
51
+ }
52
+ //# sourceMappingURL=8-baseline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"8-baseline.js","sourceRoot":"","sources":["../../../src/init/phases/8-baseline.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,wBAAwB,EACxB,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAiB;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAgC,CAAC;IAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAA6B,CAAC;IACrE,MAAM,KAAK,GAAiB,MAAM;QAChC,CAAC,CAAC;YACE,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB;YACtD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;YAClC,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB;YAC5D,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB;YAClD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB;SAC3C;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,wBAAwB,CACxC,CAAC,SAAS,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC,CACjE,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAwB,MAAM,gBAAgB,CAAC;YACzD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK;YACnB,SAAS;SACV,CAAC,CAAC;QACH,MAAM,IAAI,GAAe;YACvB,GAAG,KAAK;YACR,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE;SACpD,CAAC;QACF,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;SAC1B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,8BAA8B;gBACvC,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtE;YACD,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { PHASE_IDS, type PhaseId, type PhaseState, type PhaseOutputs, type PhaseResult, type PhaseQuestion, type PhaseOption, type PhaseError, type ResumeReport, } from "./types.js";
2
+ export { INIT_STATE_PATH, phaseStateAbsPath, readPhaseState, writePhaseState, clearPhaseState, } from "./state-io.js";
3
+ export { freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, } from "./orchestrator.js";
4
+ export { runPhase1Detect } from "./1-detect.js";
5
+ export { runPhase2Walker } from "./2-walker.js";
6
+ export { runPhase3Mapper } from "./3-mapper.js";
7
+ export { runPhase3bSeed } from "./3b-seed.js";
8
+ export { runPhase4Pilot } from "./4-pilot.js";
9
+ export { runPhase5Brand } from "./5-brand.js";
10
+ export { runPhase6DocsIngest } from "./6-docs-ingest.js";
11
+ export { runPhase7bSourceComments } from "./7b-source-comments.js";
12
+ export { runPhase7cRulesMerge } from "./7c-rules-merge.js";
13
+ export { runPhase8Baseline } from "./8-baseline.js";
14
+ export { runPhase10Strip } from "./10-strip.js";
15
+ export { runPhase12Multidev } from "./12-multidev.js";
@@ -0,0 +1,16 @@
1
+ export { PHASE_IDS, } from "./types.js";
2
+ export { INIT_STATE_PATH, phaseStateAbsPath, readPhaseState, writePhaseState, clearPhaseState, } from "./state-io.js";
3
+ export { freshPhaseState, resumePhases, nextPhaseAfter, advancePhase, } from "./orchestrator.js";
4
+ export { runPhase1Detect } from "./1-detect.js";
5
+ export { runPhase2Walker } from "./2-walker.js";
6
+ export { runPhase3Mapper } from "./3-mapper.js";
7
+ export { runPhase3bSeed } from "./3b-seed.js";
8
+ export { runPhase4Pilot } from "./4-pilot.js";
9
+ export { runPhase5Brand } from "./5-brand.js";
10
+ export { runPhase6DocsIngest } from "./6-docs-ingest.js";
11
+ export { runPhase7bSourceComments } from "./7b-source-comments.js";
12
+ export { runPhase7cRulesMerge } from "./7c-rules-merge.js";
13
+ export { runPhase8Baseline } from "./8-baseline.js";
14
+ export { runPhase10Strip } from "./10-strip.js";
15
+ export { runPhase12Multidev } from "./12-multidev.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/init/phases/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GASV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}