@isaacriehm/cairn-core 0.2.0 → 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 (336) 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 +2 -3
  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 +1 -1
  23. package/dist/doctor/index.js +1 -1
  24. package/dist/events/index.d.ts +1 -1
  25. package/dist/events/index.js +1 -1
  26. package/dist/events/writer.d.ts +1 -1
  27. package/dist/events/writer.js +1 -1
  28. package/dist/gc/canary.d.ts +13 -23
  29. package/dist/gc/canary.js +36 -92
  30. package/dist/gc/canary.js.map +1 -1
  31. package/dist/gc/citation-integrity.d.ts +6 -6
  32. package/dist/gc/citation-integrity.js +64 -20
  33. package/dist/gc/citation-integrity.js.map +1 -1
  34. package/dist/gc/frontmatter.js +1 -1
  35. package/dist/gc/generator-drift.js +1 -1
  36. package/dist/gc/generator-drift.js.map +1 -1
  37. package/dist/gc/index.d.ts +2 -2
  38. package/dist/gc/index.js +1 -1
  39. package/dist/gc/index.js.map +1 -1
  40. package/dist/gc/quality-update.js +1 -1
  41. package/dist/gc/quality-update.js.map +1 -1
  42. package/dist/gc/types.d.ts +1 -30
  43. package/dist/ground/index.d.ts +2 -2
  44. package/dist/ground/index.js +1 -1
  45. package/dist/ground/index.js.map +1 -1
  46. package/dist/ground/ledgers.d.ts +0 -4
  47. package/dist/ground/ledgers.js +10 -8
  48. package/dist/ground/ledgers.js.map +1 -1
  49. package/dist/ground/manifest.js +0 -2
  50. package/dist/ground/manifest.js.map +1 -1
  51. package/dist/ground/quality-grades.js +3 -1
  52. package/dist/ground/quality-grades.js.map +1 -1
  53. package/dist/ground/schemas.d.ts +2 -7
  54. package/dist/ground/schemas.js +7 -2
  55. package/dist/ground/schemas.js.map +1 -1
  56. package/dist/ground/scope-index.d.ts +59 -12
  57. package/dist/ground/scope-index.js +212 -43
  58. package/dist/ground/scope-index.js.map +1 -1
  59. package/dist/hooks/bypass-detection.js +4 -2
  60. package/dist/hooks/bypass-detection.js.map +1 -1
  61. package/dist/hooks/post-tool-use/citation-scanner.d.ts +7 -5
  62. package/dist/hooks/post-tool-use/citation-scanner.js +15 -9
  63. package/dist/hooks/post-tool-use/citation-scanner.js.map +1 -1
  64. package/dist/hooks/post-tool-use/copy-scanner.js +1 -1
  65. package/dist/hooks/post-tool-use/copy-scanner.js.map +1 -1
  66. package/dist/hooks/post-tool-use/ledger-cache.d.ts +8 -0
  67. package/dist/hooks/post-tool-use/ledger-cache.js +53 -0
  68. package/dist/hooks/post-tool-use/ledger-cache.js.map +1 -1
  69. package/dist/hooks/post-tool-use/legend-builder.d.ts +3 -3
  70. package/dist/hooks/post-tool-use/legend-builder.js +30 -8
  71. package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
  72. package/dist/hooks/post-tool-use/read-enricher.d.ts +1 -1
  73. package/dist/hooks/post-tool-use/read-enricher.js +68 -21
  74. package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
  75. package/dist/hooks/post-tool-use/write-guardian.js +148 -18
  76. package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
  77. package/dist/hooks/runners/index.d.ts +1 -0
  78. package/dist/hooks/runners/index.js +1 -0
  79. package/dist/hooks/runners/index.js.map +1 -1
  80. package/dist/hooks/runners/payload.d.ts +1 -1
  81. package/dist/hooks/runners/payload.js +27 -12
  82. package/dist/hooks/runners/payload.js.map +1 -1
  83. package/dist/hooks/runners/session-start.js +212 -66
  84. package/dist/hooks/runners/session-start.js.map +1 -1
  85. package/dist/hooks/runners/stop.d.ts +9 -12
  86. package/dist/hooks/runners/stop.js +67 -36
  87. package/dist/hooks/runners/stop.js.map +1 -1
  88. package/dist/hooks/runners/user-prompt-submit.d.ts +15 -0
  89. package/dist/hooks/runners/user-prompt-submit.js +149 -0
  90. package/dist/hooks/runners/user-prompt-submit.js.map +1 -0
  91. package/dist/hooks/user-prompt-submit.d.ts +7 -0
  92. package/dist/hooks/user-prompt-submit.js +12 -0
  93. package/dist/hooks/user-prompt-submit.js.map +1 -0
  94. package/dist/index.d.ts +1 -6
  95. package/dist/index.js +1 -5
  96. package/dist/index.js.map +1 -1
  97. package/dist/init/baseline-audit.d.ts +5 -1
  98. package/dist/init/baseline-audit.js +25 -2
  99. package/dist/init/baseline-audit.js.map +1 -1
  100. package/dist/init/glob-inference.d.ts +16 -0
  101. package/dist/init/glob-inference.js +108 -0
  102. package/dist/init/glob-inference.js.map +1 -0
  103. package/dist/init/index.d.ts +2 -0
  104. package/dist/init/index.js +1 -0
  105. package/dist/init/index.js.map +1 -1
  106. package/dist/init/ingest-docs.d.ts +1 -1
  107. package/dist/init/ingest-docs.js +19 -6
  108. package/dist/init/ingest-docs.js.map +1 -1
  109. package/dist/init/init.js +12 -7
  110. package/dist/init/init.js.map +1 -1
  111. package/dist/init/mapper-merge.d.ts +8 -2
  112. package/dist/init/mapper-merge.js +50 -32
  113. package/dist/init/mapper-merge.js.map +1 -1
  114. package/dist/init/mapper-parallel.d.ts +2 -3
  115. package/dist/init/mapper-parallel.js +9 -38
  116. package/dist/init/mapper-parallel.js.map +1 -1
  117. package/dist/init/mapper-prompts.js +1 -1
  118. package/dist/init/mapper-prompts.js.map +1 -1
  119. package/dist/init/mapper.d.ts +6 -127
  120. package/dist/init/mapper.js +30 -7
  121. package/dist/init/mapper.js.map +1 -1
  122. package/dist/init/module-slicer.d.ts +1 -1
  123. package/dist/init/module-slicer.js +1 -1
  124. package/dist/init/multi-dev/install.d.ts +5 -11
  125. package/dist/init/multi-dev/install.js +4 -6
  126. package/dist/init/multi-dev/install.js.map +1 -1
  127. package/dist/init/overlay.d.ts +2 -2
  128. package/dist/init/overlay.js +1 -1
  129. package/dist/init/overlay.js.map +1 -1
  130. package/dist/init/phases/10-strip.js +1 -2
  131. package/dist/init/phases/10-strip.js.map +1 -1
  132. package/dist/init/phases/12-multidev.d.ts +1 -6
  133. package/dist/init/phases/12-multidev.js +1 -6
  134. package/dist/init/phases/12-multidev.js.map +1 -1
  135. package/dist/init/phases/3b-seed.d.ts +1 -10
  136. package/dist/init/phases/3b-seed.js +1 -10
  137. package/dist/init/phases/3b-seed.js.map +1 -1
  138. package/dist/init/phases/4-pilot.js +53 -15
  139. package/dist/init/phases/4-pilot.js.map +1 -1
  140. package/dist/init/phases/5-brand.js +10 -10
  141. package/dist/init/phases/5-brand.js.map +1 -1
  142. package/dist/init/prompts.d.ts +6 -8
  143. package/dist/init/prompts.js +3 -6
  144. package/dist/init/prompts.js.map +1 -1
  145. package/dist/init/rules-merge/ingest.js +1 -1
  146. package/dist/init/source-comments/classify.d.ts +1 -41
  147. package/dist/init/source-comments/classify.js +68 -37
  148. package/dist/init/source-comments/classify.js.map +1 -1
  149. package/dist/init/source-comments/index.d.ts +2 -2
  150. package/dist/init/source-comments/index.js +2 -2
  151. package/dist/init/source-comments/index.js.map +1 -1
  152. package/dist/init/source-comments/ingest.d.ts +38 -2
  153. package/dist/init/source-comments/ingest.js +237 -4
  154. package/dist/init/source-comments/ingest.js.map +1 -1
  155. package/dist/init/source-comments/strip-replace.d.ts +10 -19
  156. package/dist/init/source-comments/strip-replace.js +26 -2
  157. package/dist/init/source-comments/strip-replace.js.map +1 -1
  158. package/dist/init/source-comments/walker.d.ts +9 -2
  159. package/dist/init/source-comments/walker.js +38 -19
  160. package/dist/init/source-comments/walker.js.map +1 -1
  161. package/dist/init/submodules.d.ts +3 -2
  162. package/dist/init/types.d.ts +3 -5
  163. package/dist/init/types.js +3 -5
  164. package/dist/init/types.js.map +1 -1
  165. package/dist/init/visual.d.ts +4 -9
  166. package/dist/init/visual.js +1 -16
  167. package/dist/init/visual.js.map +1 -1
  168. package/dist/logger.d.ts +0 -1
  169. package/dist/logger.js +0 -1
  170. package/dist/logger.js.map +1 -1
  171. package/dist/mcp/context.d.ts +2 -3
  172. package/dist/mcp/context.js.map +1 -1
  173. package/dist/mcp/errors.d.ts +1 -1
  174. package/dist/mcp/errors.js.map +1 -1
  175. package/dist/mcp/history/prompt.d.ts +2 -1
  176. package/dist/mcp/history/walker.js +1 -1
  177. package/dist/mcp/history/walker.js.map +1 -1
  178. package/dist/mcp/path-allowlist.d.ts +0 -6
  179. package/dist/mcp/path-allowlist.js +0 -10
  180. package/dist/mcp/path-allowlist.js.map +1 -1
  181. package/dist/mcp/schemas.d.ts +15 -72
  182. package/dist/mcp/schemas.js +21 -70
  183. package/dist/mcp/schemas.js.map +1 -1
  184. package/dist/mcp/serve.d.ts +1 -1
  185. package/dist/mcp/serve.js +2 -5
  186. package/dist/mcp/serve.js.map +1 -1
  187. package/dist/mcp/server.js +10 -4
  188. package/dist/mcp/server.js.map +1 -1
  189. package/dist/mcp/telemetry.d.ts +8 -1
  190. package/dist/mcp/telemetry.js +16 -0
  191. package/dist/mcp/telemetry.js.map +1 -1
  192. package/dist/mcp/tools/decision-get.js +37 -29
  193. package/dist/mcp/tools/decision-get.js.map +1 -1
  194. package/dist/mcp/tools/decisions-in-scope.js +22 -3
  195. package/dist/mcp/tools/decisions-in-scope.js.map +1 -1
  196. package/dist/mcp/tools/index.js +2 -2
  197. package/dist/mcp/tools/index.js.map +1 -1
  198. package/dist/mcp/tools/invariant-get.js +1 -1
  199. package/dist/mcp/tools/invariant-get.js.map +1 -1
  200. package/dist/mcp/tools/invariants-in-scope.js +26 -7
  201. package/dist/mcp/tools/invariants-in-scope.js.map +1 -1
  202. package/dist/mcp/tools/query-history.js +3 -3
  203. package/dist/mcp/tools/query-history.js.map +1 -1
  204. package/dist/mcp/tools/resolve-attention.d.ts +3 -3
  205. package/dist/mcp/tools/resolve-attention.js +40 -28
  206. package/dist/mcp/tools/resolve-attention.js.map +1 -1
  207. package/dist/mcp/tools/search.js +3 -4
  208. package/dist/mcp/tools/search.js.map +1 -1
  209. package/dist/mcp/tools/task-create.d.ts +15 -0
  210. package/dist/mcp/tools/task-create.js +96 -0
  211. package/dist/mcp/tools/task-create.js.map +1 -0
  212. package/dist/mcp/tools/timeline.js +3 -7
  213. package/dist/mcp/tools/timeline.js.map +1 -1
  214. package/dist/profiles/types.d.ts +1 -1
  215. package/dist/profiles/types.js +1 -1
  216. package/dist/session/id.d.ts +1 -3
  217. package/dist/session/id.js +1 -1
  218. package/dist/session/id.js.map +1 -1
  219. package/dist/session-start/build.d.ts +3 -11
  220. package/dist/session-start/build.js +55 -34
  221. package/dist/session-start/build.js.map +1 -1
  222. package/dist/session-start/index.d.ts +2 -2
  223. package/dist/session-start/index.js +2 -2
  224. package/dist/session-start/index.js.map +1 -1
  225. package/dist/session-start/templates.d.ts +20 -4
  226. package/dist/session-start/templates.js +45 -35
  227. package/dist/session-start/templates.js.map +1 -1
  228. package/dist/status-line/format.d.ts +19 -11
  229. package/dist/status-line/format.js +44 -36
  230. package/dist/status-line/format.js.map +1 -1
  231. package/dist/status-line/index.d.ts +3 -1
  232. package/dist/status-line/index.js +1 -1
  233. package/dist/status-line/index.js.map +1 -1
  234. package/dist/status-line/reader.d.ts +9 -6
  235. package/dist/status-line/reader.js +50 -15
  236. package/dist/status-line/reader.js.map +1 -1
  237. package/dist/status-line/writer.d.ts +5 -0
  238. package/dist/status-line/writer.js +9 -0
  239. package/dist/status-line/writer.js.map +1 -1
  240. package/dist/trace/index.d.ts +44 -0
  241. package/dist/trace/index.js +51 -0
  242. package/dist/trace/index.js.map +1 -0
  243. package/package.json +2 -3
  244. package/templates/.archive/README.md +3 -3
  245. package/templates/.cairn/config/sensors.yaml +16 -19
  246. package/templates/.cairn/config/stub-patterns.yaml +4 -4
  247. package/templates/.cairn/config/trust-policy.yaml +3 -35
  248. package/templates/.cairn/config/workflow.md +13 -194
  249. package/templates/.cairn/git-hooks/commit-msg +1 -1
  250. package/templates/.cairn/ground/canonical-map/topics.yaml +3 -26
  251. package/templates/.cairn/ground/capabilities/snippets.yaml +0 -1
  252. package/templates/.cairn/ground/manifest.yaml +5 -8
  253. package/templates/.cairn/ground/product/personas.yaml +0 -1
  254. package/dist/context/checkpoint.d.ts +0 -11
  255. package/dist/context/checkpoint.js +0 -30
  256. package/dist/context/checkpoint.js.map +0 -1
  257. package/dist/decision-capture/capture.d.ts +0 -57
  258. package/dist/decision-capture/capture.js +0 -186
  259. package/dist/decision-capture/capture.js.map +0 -1
  260. package/dist/decision-capture/extractor.d.ts +0 -20
  261. package/dist/decision-capture/extractor.js +0 -103
  262. package/dist/decision-capture/extractor.js.map +0 -1
  263. package/dist/decision-capture/prompt.d.ts +0 -15
  264. package/dist/decision-capture/prompt.js +0 -68
  265. package/dist/decision-capture/prompt.js.map +0 -1
  266. package/dist/decision-capture/refinement-prompt.d.ts +0 -25
  267. package/dist/decision-capture/refinement-prompt.js +0 -146
  268. package/dist/decision-capture/refinement-prompt.js.map +0 -1
  269. package/dist/decision-capture/refinement-schema.d.ts +0 -52
  270. package/dist/decision-capture/refinement-schema.js +0 -61
  271. package/dist/decision-capture/refinement-schema.js.map +0 -1
  272. package/dist/decision-capture/refinement.d.ts +0 -60
  273. package/dist/decision-capture/refinement.js +0 -439
  274. package/dist/decision-capture/refinement.js.map +0 -1
  275. package/dist/decision-capture/schema.d.ts +0 -70
  276. package/dist/decision-capture/schema.js +0 -71
  277. package/dist/decision-capture/schema.js.map +0 -1
  278. package/dist/decision-capture/types.d.ts +0 -201
  279. package/dist/decision-capture/types.js +0 -20
  280. package/dist/decision-capture/types.js.map +0 -1
  281. package/dist/decision-capture/writer.d.ts +0 -90
  282. package/dist/decision-capture/writer.js +0 -267
  283. package/dist/decision-capture/writer.js.map +0 -1
  284. package/dist/frontend-types.d.ts +0 -243
  285. package/dist/frontend-types.js +0 -15
  286. package/dist/frontend-types.js.map +0 -1
  287. package/dist/hooks/index.d.ts +0 -14
  288. package/dist/hooks/index.js +0 -14
  289. package/dist/hooks/index.js.map +0 -1
  290. package/dist/inbox.d.ts +0 -17
  291. package/dist/inbox.js +0 -30
  292. package/dist/inbox.js.map +0 -1
  293. package/dist/mcp/tools/append-run-note.d.ts +0 -18
  294. package/dist/mcp/tools/append-run-note.js +0 -54
  295. package/dist/mcp/tools/append-run-note.js.map +0 -1
  296. package/dist/mcp/tools/append.d.ts +0 -8
  297. package/dist/mcp/tools/append.js +0 -37
  298. package/dist/mcp/tools/append.js.map +0 -1
  299. package/dist/mcp/tools/ask-operator.d.ts +0 -34
  300. package/dist/mcp/tools/ask-operator.js +0 -97
  301. package/dist/mcp/tools/ask-operator.js.map +0 -1
  302. package/dist/mcp/tools/drop-task.d.ts +0 -12
  303. package/dist/mcp/tools/drop-task.js +0 -68
  304. package/dist/mcp/tools/drop-task.js.map +0 -1
  305. package/dist/mcp/tools/record-run-event.d.ts +0 -10
  306. package/dist/mcp/tools/record-run-event.js +0 -32
  307. package/dist/mcp/tools/record-run-event.js.map +0 -1
  308. package/dist/prompt.d.ts +0 -19
  309. package/dist/prompt.js +0 -50
  310. package/dist/prompt.js.map +0 -1
  311. package/dist/tier0/classify.d.ts +0 -10
  312. package/dist/tier0/classify.js +0 -110
  313. package/dist/tier0/classify.js.map +0 -1
  314. package/dist/tier0/index.d.ts +0 -2
  315. package/dist/tier0/index.js +0 -2
  316. package/dist/tier0/index.js.map +0 -1
  317. package/dist/tier0/types.d.ts +0 -24
  318. package/dist/tier0/types.js +0 -9
  319. package/dist/tier0/types.js.map +0 -1
  320. package/dist/tightener/index.d.ts +0 -4
  321. package/dist/tightener/index.js +0 -4
  322. package/dist/tightener/index.js.map +0 -1
  323. package/dist/tightener/prompt.d.ts +0 -3
  324. package/dist/tightener/prompt.js +0 -67
  325. package/dist/tightener/prompt.js.map +0 -1
  326. package/dist/tightener/schema.d.ts +0 -68
  327. package/dist/tightener/schema.js +0 -44
  328. package/dist/tightener/schema.js.map +0 -1
  329. package/dist/tightener/tighten.d.ts +0 -2
  330. package/dist/tightener/tighten.js +0 -66
  331. package/dist/tightener/tighten.js.map +0 -1
  332. package/dist/tightener/types.d.ts +0 -74
  333. package/dist/tightener/types.js +0 -6
  334. package/dist/tightener/types.js.map +0 -1
  335. package/templates/.claude/settings.json +0 -57
  336. package/templates/.mcp.json +0 -8
@@ -6,6 +6,6 @@ export declare function claudeIsAvailable(): boolean;
6
6
  *
7
7
  * Auth path: relies on the operator's existing Claude Code login (OAuth /
8
8
  * keychain). No `--bare`, no `ANTHROPIC_API_KEY`. The whole point is to use
9
- * the operator's coding-plan subscription quota per L42.
9
+ * the operator's Claude Code coding-plan subscription quota.
10
10
  */
11
11
  export declare function runClaude(opts: RunClaudeOptions): Promise<RunClaudeResult>;
@@ -1,7 +1,15 @@
1
1
  import { spawn, spawnSync } from "node:child_process";
2
2
  import { logger } from "../logger.js";
3
+ import { appendTrace } from "../trace/index.js";
3
4
  import { ClaudeError, classifyClaudeError } from "./error.js";
4
5
  const log = logger("claude.runner");
6
+ /** Cap previewed text in trace so payloads stay scannable (full body still in stderr/stdout if needed). */
7
+ const TRACE_PREVIEW_CHARS = 600;
8
+ function preview(s) {
9
+ if (s.length <= TRACE_PREVIEW_CHARS)
10
+ return s;
11
+ return `${s.slice(0, TRACE_PREVIEW_CHARS)}…(+${s.length - TRACE_PREVIEW_CHARS} chars)`;
12
+ }
5
13
  /** Tier → model alias passed to `claude --model`. */
6
14
  const TIER_MODEL = {
7
15
  haiku: "haiku",
@@ -23,7 +31,7 @@ export function claudeIsAvailable() {
23
31
  *
24
32
  * Auth path: relies on the operator's existing Claude Code login (OAuth /
25
33
  * keychain). No `--bare`, no `ANTHROPIC_API_KEY`. The whole point is to use
26
- * the operator's coding-plan subscription quota per L42.
34
+ * the operator's Claude Code coding-plan subscription quota.
27
35
  */
28
36
  export async function runClaude(opts) {
29
37
  const model = TIER_MODEL[opts.tier];
@@ -48,6 +56,23 @@ export async function runClaude(opts) {
48
56
  const ctrl = new AbortController();
49
57
  const timeoutMs = opts.timeoutMs ?? 120_000;
50
58
  const timer = setTimeout(() => ctrl.abort(), timeoutMs);
59
+ appendTrace({
60
+ ts: new Date().toISOString(),
61
+ source: "claude",
62
+ kind: "request",
63
+ repo_root: opts.repoRoot ?? null,
64
+ session_id: opts.sessionId ?? null,
65
+ payload: {
66
+ tier: opts.tier,
67
+ model,
68
+ purpose: opts.purpose ?? null,
69
+ prompt_chars: opts.prompt.length,
70
+ system_chars: opts.system?.length ?? 0,
71
+ json_schema: opts.jsonSchema !== undefined,
72
+ prompt_preview: preview(opts.prompt),
73
+ ...(opts.system !== undefined ? { system_preview: preview(opts.system) } : {}),
74
+ },
75
+ });
51
76
  return new Promise((resolve, reject) => {
52
77
  const child = spawn("claude", args, {
53
78
  cwd: opts.cwd ?? process.cwd(),
@@ -69,6 +94,23 @@ export async function runClaude(opts) {
69
94
  if (code !== 0) {
70
95
  const message = `claude exited ${code}${stderr ? `: ${stderr.trim()}` : ""}`;
71
96
  const kind = classifyClaudeError({ message, exitCode: code, stderr });
97
+ appendTrace({
98
+ ts: new Date().toISOString(),
99
+ source: "claude",
100
+ kind: "response",
101
+ repo_root: opts.repoRoot ?? null,
102
+ session_id: opts.sessionId ?? null,
103
+ duration_ms: Date.now() - startedAt,
104
+ ok: false,
105
+ payload: {
106
+ tier: opts.tier,
107
+ model,
108
+ purpose: opts.purpose ?? null,
109
+ error_kind: kind,
110
+ exit_code: code,
111
+ stderr_preview: preview(stderr),
112
+ },
113
+ });
72
114
  reject(new ClaudeError({ message, kind, exitCode: code, stderr }));
73
115
  return;
74
116
  }
@@ -115,6 +157,25 @@ export async function runClaude(opts) {
115
157
  input_tokens: usage?.["input_tokens"],
116
158
  output_tokens: usage?.["output_tokens"],
117
159
  }, "claude call complete");
160
+ appendTrace({
161
+ ts: new Date().toISOString(),
162
+ source: "claude",
163
+ kind: "response",
164
+ repo_root: opts.repoRoot ?? null,
165
+ session_id: opts.sessionId ?? null,
166
+ duration_ms: durationMs,
167
+ ok: true,
168
+ payload: {
169
+ tier: opts.tier,
170
+ model,
171
+ purpose: opts.purpose ?? null,
172
+ input_tokens: usage?.["input_tokens"] ?? null,
173
+ output_tokens: usage?.["output_tokens"] ?? null,
174
+ response_chars: text.length,
175
+ response_preview: preview(text),
176
+ parsed_present: parsed !== undefined,
177
+ },
178
+ });
118
179
  resolve({
119
180
  text,
120
181
  ...(parsed !== undefined ? { parsed } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/claude/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/claude/runner.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,12 @@
1
1
  /**
2
2
  * Subprocess wrapper for the `claude` CLI.
3
3
  *
4
- * Per WORKFLOW_GUIDE §2.2 budget metric (operator answer T1): every Tier-1/2/3 LLM call goes through the
5
- * operator's Claude Code coding-plan subscription via `claude --print
6
- * --model <tier> --output-format json`. No direct Anthropic SDK calls.
4
+ * Every LLM call goes through the operator's Claude Code coding-plan
5
+ * subscription via `claude --print --model <tier> --output-format json`.
6
+ * No direct Anthropic SDK calls.
7
7
  *
8
- * Tier mapping is hardcoded (no env vars per operator profile). The CLI's
9
- * model alias resolution maps `haiku|sonnet|opus` to the latest model id
10
- * for that family — we don't pin specific snapshots here so the wrapper
11
- * keeps tracking newer models as Anthropic ships them.
8
+ * Tier mapping is hardcoded (no env vars). The CLI's model alias resolution
9
+ * maps `haiku|sonnet|opus` to the latest model for that family.
12
10
  */
13
11
  export type ClaudeTier = "haiku" | "sonnet" | "opus";
14
12
  export interface RunClaudeOptions {
@@ -31,6 +29,15 @@ export interface RunClaudeOptions {
31
29
  * etc. when the caller knows what they want.
32
30
  */
33
31
  extraArgs?: string[];
32
+ /**
33
+ * Free-form purpose tag (e.g. "init.mapper", "decision-extractor",
34
+ * "tier0.classify") for trace logs. Helps the operator find which
35
+ * call surface emitted a given subprocess invocation.
36
+ */
37
+ purpose?: string;
38
+ /** Repo root + Claude Code session id for trace correlation, when known. */
39
+ repoRoot?: string;
40
+ sessionId?: string;
34
41
  }
35
42
  export interface ClaudeUsage {
36
43
  input_tokens?: number;
@@ -1,14 +1,12 @@
1
1
  /**
2
2
  * Subprocess wrapper for the `claude` CLI.
3
3
  *
4
- * Per WORKFLOW_GUIDE §2.2 budget metric (operator answer T1): every Tier-1/2/3 LLM call goes through the
5
- * operator's Claude Code coding-plan subscription via `claude --print
6
- * --model <tier> --output-format json`. No direct Anthropic SDK calls.
4
+ * Every LLM call goes through the operator's Claude Code coding-plan
5
+ * subscription via `claude --print --model <tier> --output-format json`.
6
+ * No direct Anthropic SDK calls.
7
7
  *
8
- * Tier mapping is hardcoded (no env vars per operator profile). The CLI's
9
- * model alias resolution maps `haiku|sonnet|opus` to the latest model id
10
- * for that family — we don't pin specific snapshots here so the wrapper
11
- * keeps tracking newer models as Anthropic ships them.
8
+ * Tier mapping is hardcoded (no env vars). The CLI's model alias resolution
9
+ * maps `haiku|sonnet|opus` to the latest model for that family.
12
10
  */
13
11
  export {};
14
12
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Context module — handoff builder, checkpoint writer, and spec-delta
3
- * computation. Consumed by the SessionStart Section-0 injector + the
4
- * Stop hook checkpoint pass.
2
+ * Context module — handoff builder, spec-delta computation, active-task
3
+ * summary. Consumed by the SessionStart Section-0 injector + statusline.
5
4
  *
6
5
  * Spec: docs/CONTEXT_CONTINUITY_SPEC.md §2.2 (handoff) + §10 (spec delta).
7
6
  */
8
7
  export { buildHandoffBlock } from "./handoff-builder.js";
9
- export { writeCheckpoint } from "./checkpoint.js";
10
8
  export { buildSpecDelta } from "./spec-delta.js";
11
9
  export type { SpecDelta } from "./spec-delta.js";
10
+ export { readActiveTaskSummary } from "./task-summary.js";
11
+ export type { ActiveTaskSummary } from "./task-summary.js";
@@ -1,11 +1,10 @@
1
1
  /**
2
- * Context module — handoff builder, checkpoint writer, and spec-delta
3
- * computation. Consumed by the SessionStart Section-0 injector + the
4
- * Stop hook checkpoint pass.
2
+ * Context module — handoff builder, spec-delta computation, active-task
3
+ * summary. Consumed by the SessionStart Section-0 injector + statusline.
5
4
  *
6
5
  * Spec: docs/CONTEXT_CONTINUITY_SPEC.md §2.2 (handoff) + §10 (spec delta).
7
6
  */
8
7
  export { buildHandoffBlock } from "./handoff-builder.js";
9
- export { writeCheckpoint } from "./checkpoint.js";
10
8
  export { buildSpecDelta } from "./spec-delta.js";
9
+ export { readActiveTaskSummary } from "./task-summary.js";
11
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -143,9 +143,9 @@ export async function buildSpecDelta(repoRoot, taskScopePaths) {
143
143
  // Scope via the cutoff inv's source_decision → look up in HEAD decisions.
144
144
  const invariantsSuperseded = [];
145
145
  for (const inv of cutoffInvariants) {
146
+ const headEntry = headInvariants.find((h) => h.id === inv.id);
146
147
  const droppedFromHead = !headInvariantIds.has(inv.id);
147
- const supersededInHead = headInvariants.find((h) => h.id === inv.id)?.superseded_by !== undefined &&
148
- headInvariants.find((h) => h.id === inv.id)?.superseded_by !== null;
148
+ const supersededInHead = headEntry?.superseded_by !== undefined && headEntry?.superseded_by !== null;
149
149
  if (!droppedFromHead && !supersededInHead)
150
150
  continue;
151
151
  const sourceDecision = inv.source_decision ?? null;
@@ -158,7 +158,6 @@ export async function buildSpecDelta(repoRoot, taskScopePaths) {
158
158
  const overlaps = paths.some((p) => matchAnyGlob(p, scope));
159
159
  if (!overlaps)
160
160
  continue;
161
- const headEntry = headInvariants.find((h) => h.id === inv.id);
162
161
  invariantsSuperseded.push({
163
162
  id: inv.id,
164
163
  supersededBy: headEntry?.superseded_by ?? "",
@@ -1 +1 @@
1
- {"version":3,"file":"spec-delta.js","sourceRoot":"","sources":["../../src/context/spec-delta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-delta.js","sourceRoot":"","sources":["../../src/context/spec-delta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Active-task summary reader for the per-session statusline + Section-0
3
+ * resume payload. Walks `.cairn/tasks/active/` and returns the first
4
+ * task whose `status.yaml` is in flight.
5
+ *
6
+ * Phase mapping aligns `status.yaml`'s vocabulary with the StatusJson
7
+ * `task_state` enum. Terminal phases (succeeded/failed/aborted) and
8
+ * unrecognized values collapse to `idle` so the surface stays quiet
9
+ * when nothing is actually in flight.
10
+ */
11
+ import type { TaskState } from "../status-line/index.js";
12
+ export interface ActiveTaskSummary {
13
+ taskId: string;
14
+ taskState: TaskState;
15
+ /** Title pulled from spec.tightened.md `# Heading`; falls back to taskId. */
16
+ taskModule: string;
17
+ }
18
+ export declare function readActiveTaskSummary(repoRoot: string): ActiveTaskSummary | null;
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Active-task summary reader for the per-session statusline + Section-0
3
+ * resume payload. Walks `.cairn/tasks/active/` and returns the first
4
+ * task whose `status.yaml` is in flight.
5
+ *
6
+ * Phase mapping aligns `status.yaml`'s vocabulary with the StatusJson
7
+ * `task_state` enum. Terminal phases (succeeded/failed/aborted) and
8
+ * unrecognized values collapse to `idle` so the surface stays quiet
9
+ * when nothing is actually in flight.
10
+ */
11
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
12
+ import { join } from "node:path";
13
+ import { parse as parseYaml } from "yaml";
14
+ import { parseFrontmatter } from "../ground/index.js";
15
+ const ACTIVE_PHASES = new Set([
16
+ "queued",
17
+ "tightening",
18
+ "running",
19
+ "sensor_check",
20
+ "reviewing",
21
+ "backprop",
22
+ ]);
23
+ function mapPhase(phase) {
24
+ switch (phase) {
25
+ case "queued":
26
+ case "tightening":
27
+ case "running":
28
+ case "reviewing":
29
+ case "backprop":
30
+ return phase;
31
+ case "sensor_check":
32
+ return "sensing";
33
+ default:
34
+ return "idle";
35
+ }
36
+ }
37
+ export function readActiveTaskSummary(repoRoot) {
38
+ const activeDir = join(repoRoot, ".cairn", "tasks", "active");
39
+ if (!existsSync(activeDir))
40
+ return null;
41
+ let dirents;
42
+ try {
43
+ dirents = readdirSync(activeDir, { withFileTypes: true, encoding: "utf8" });
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ for (const e of dirents) {
49
+ if (!e.isDirectory())
50
+ continue;
51
+ const taskDir = join(activeDir, e.name);
52
+ const statusPath = join(taskDir, "status.yaml");
53
+ if (!existsSync(statusPath))
54
+ continue;
55
+ let parsed;
56
+ try {
57
+ parsed = parseYaml(readFileSync(statusPath, "utf8"));
58
+ }
59
+ catch {
60
+ continue;
61
+ }
62
+ if (typeof parsed !== "object" || parsed === null)
63
+ continue;
64
+ const phase = parsed.phase;
65
+ if (typeof phase !== "string" || !ACTIVE_PHASES.has(phase))
66
+ continue;
67
+ let title = e.name;
68
+ const specPath = join(taskDir, "spec.tightened.md");
69
+ if (existsSync(specPath)) {
70
+ try {
71
+ const specText = readFileSync(specPath, "utf8");
72
+ const body = parseFrontmatter(specText).body;
73
+ const m = body.match(/^#\s+(.+)$/m);
74
+ if (m && m[1])
75
+ title = m[1].trim();
76
+ }
77
+ catch {
78
+ // fall through to taskId
79
+ }
80
+ }
81
+ return {
82
+ taskId: e.name,
83
+ taskState: mapPhase(phase),
84
+ taskModule: title,
85
+ };
86
+ }
87
+ return null;
88
+ }
89
+ //# sourceMappingURL=task-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-summary.js","sourceRoot":"","sources":["../../src/context/task-summary.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
1
  /**
2
- * Decision id allocator. DEC-NNNN, monotonic, never reused.
2
+ * Decision + invariant id allocators. Monotonic, never reused.
3
3
  *
4
- * Scans `.cairn/ground/decisions/` for accepted decisions AND
4
+ * Decisions: scan `.cairn/ground/decisions/` for accepted decisions AND
5
5
  * `.cairn/ground/decisions/_inbox/` for outstanding drafts. Either counts
6
6
  * toward the high-water mark — a draft that's pending operator confirmation
7
7
  * still owns its id; rejecting a draft does NOT recycle the id.
8
8
  *
9
- * Single source of truth for DEC-id allocation. The MCP `record_decision`
10
- * tool calls these helpers; do NOT re-implement the scan elsewhere.
9
+ * Invariants: scan `.cairn/ground/invariants/INV-<NNNN>.md`. Phase 7b writes
10
+ * invariants directly to ground state (no `_inbox/` flow they auto-promote
11
+ * from the constraint classifier; operator edits / supersedes after the
12
+ * fact).
13
+ *
14
+ * Single source of truth for id allocation. The MCP write tools and the
15
+ * init pipeline call these helpers; do NOT re-implement the scan elsewhere.
11
16
  */
12
17
  /**
13
18
  * Scan both the canonical decisions dir and the `_inbox/` for
@@ -19,3 +24,15 @@ export declare function scanExistingDecisionIds(repoRoot: string): Set<string>;
19
24
  * caller-supplied set (e.g. ids the MCP tool just validated against).
20
25
  */
21
26
  export declare function allocateDecisionId(repoRoot: string, existing?: Set<string>): string;
27
+ /**
28
+ * Scan `.cairn/ground/invariants/` for INV-<NNNN>-prefixed files; return the
29
+ * set of ids found.
30
+ */
31
+ export declare function scanExistingInvariantIds(repoRoot: string): Set<string>;
32
+ /**
33
+ * Return the next free `INV-<NNNN>` id — matches the schema regex
34
+ * at packages/cairn-core/src/ground/schemas.ts. Optionally factor in
35
+ * a caller-supplied set so a batch of allocations doesn't collide on
36
+ * disk before any are written.
37
+ */
38
+ export declare function allocateInvariantId(repoRoot: string, existing?: Set<string>): string;
@@ -1,18 +1,26 @@
1
1
  /**
2
- * Decision id allocator. DEC-NNNN, monotonic, never reused.
2
+ * Decision + invariant id allocators. Monotonic, never reused.
3
3
  *
4
- * Scans `.cairn/ground/decisions/` for accepted decisions AND
4
+ * Decisions: scan `.cairn/ground/decisions/` for accepted decisions AND
5
5
  * `.cairn/ground/decisions/_inbox/` for outstanding drafts. Either counts
6
6
  * toward the high-water mark — a draft that's pending operator confirmation
7
7
  * still owns its id; rejecting a draft does NOT recycle the id.
8
8
  *
9
- * Single source of truth for DEC-id allocation. The MCP `record_decision`
10
- * tool calls these helpers; do NOT re-implement the scan elsewhere.
9
+ * Invariants: scan `.cairn/ground/invariants/INV-<NNNN>.md`. Phase 7b writes
10
+ * invariants directly to ground state (no `_inbox/` flow they auto-promote
11
+ * from the constraint classifier; operator edits / supersedes after the
12
+ * fact).
13
+ *
14
+ * Single source of truth for id allocation. The MCP write tools and the
15
+ * init pipeline call these helpers; do NOT re-implement the scan elsewhere.
11
16
  */
12
17
  import { existsSync, readdirSync } from "node:fs";
13
18
  import { join } from "node:path";
14
- import { decisionsDir } from "../ground/paths.js";
19
+ import { decisionsDir, invariantsDir } from "../ground/paths.js";
15
20
  const FILENAME_RE = /^DEC-(\d{4,})(?:\.draft|\.rejected)?\.md$/;
21
+ // Invariant filename: `INV-<NNNN>.md` — matches the schema id
22
+ // regex /^INV-\d{4,}$/ at packages/cairn-core/src/ground/schemas.ts.
23
+ const INVARIANT_FILENAME_RE = /^INV-(\d{4,})\.md$/;
16
24
  /**
17
25
  * Scan both the canonical decisions dir and the `_inbox/` for
18
26
  * DEC-NNNN-prefixed files; return the set of ids found.
@@ -57,4 +65,47 @@ export function allocateDecisionId(repoRoot, existing) {
57
65
  }
58
66
  return `DEC-${(max + 1).toString().padStart(4, "0")}`;
59
67
  }
68
+ /**
69
+ * Scan `.cairn/ground/invariants/` for INV-<NNNN>-prefixed files; return the
70
+ * set of ids found.
71
+ */
72
+ export function scanExistingInvariantIds(repoRoot) {
73
+ const dir = invariantsDir(repoRoot);
74
+ const ids = new Set();
75
+ if (!existsSync(dir))
76
+ return ids;
77
+ let entries;
78
+ try {
79
+ entries = readdirSync(dir, { encoding: "utf8" });
80
+ }
81
+ catch {
82
+ return ids;
83
+ }
84
+ for (const name of entries) {
85
+ const match = name.match(INVARIANT_FILENAME_RE);
86
+ if (!match || !match[1])
87
+ continue;
88
+ ids.add(`INV-${match[1].padStart(4, "0")}`);
89
+ }
90
+ return ids;
91
+ }
92
+ /**
93
+ * Return the next free `INV-<NNNN>` id — matches the schema regex
94
+ * at packages/cairn-core/src/ground/schemas.ts. Optionally factor in
95
+ * a caller-supplied set so a batch of allocations doesn't collide on
96
+ * disk before any are written.
97
+ */
98
+ export function allocateInvariantId(repoRoot, existing) {
99
+ const ids = existing ?? scanExistingInvariantIds(repoRoot);
100
+ let max = 0;
101
+ for (const id of ids) {
102
+ const m = id.match(/^INV-(\d+)$/);
103
+ if (!m?.[1])
104
+ continue;
105
+ const n = Number.parseInt(m[1], 10);
106
+ if (Number.isFinite(n) && n > max)
107
+ max = n;
108
+ }
109
+ return `INV-${(max + 1).toString().padStart(4, "0")}`;
110
+ }
60
111
  //# sourceMappingURL=id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/decision-capture/id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAEhE;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAS;QACxC,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,SAAS;YAClC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,QAAsB;IAEtB,MAAM,GAAG,GAAG,QAAQ,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAAE,SAAS;QACtB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG;YAAE,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/decision-capture/id.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,10 @@
1
1
  /**
2
- * Phase 14 — decision capture flow.
2
+ * Decision-capture surface.
3
3
  *
4
- * Public surface:
5
- * - runDecisionCapture(args) → end-to-end (extract draft → confirm → ledger)
6
- * - runDecisionExtractor(input) standalone Tier-1 call
7
- * - allocateDecisionId(repoRoot) → next monotonic DEC-id
8
- * - writeDecisionDraft, acceptDraft, rejectDraft — mechanical persistence
9
- * - DECISION_EXTRACTOR_OUTPUT_SCHEMA, DECISION_EXTRACTOR_SYSTEM_PROMPT — for
10
- * consumers that want to call `runClaude` directly
4
+ * Only the monotonic id allocators remain — the Tier-1 LLM extractor +
5
+ * refinement pipeline was orchestrator-era code (auto-extract DECs from
6
+ * sessions) that is no longer wired into the plugin flow. Operator-driven
7
+ * DEC creation lives in the `cairn-direction` skill + the
8
+ * `cairn_record_decision` MCP tool now.
11
9
  */
12
- export type { CandidateAssertion, DecisionCaptureResult, DecisionDraft, DecisionExtractorInput, DecisionExtractorOutput, DraftConfirmDecision, ConfirmResult, RefinementProposal, RefinementResult, RefinerInput, RefinerOutput, } from "./types.js";
13
- export { allocateDecisionId, scanExistingDecisionIds } from "./id.js";
14
- export { DECISION_EXTRACTOR_SYSTEM_PROMPT, buildDecisionExtractorUserPrompt, } from "./prompt.js";
15
- export { DECISION_EXTRACTOR_OUTPUT_SCHEMA } from "./schema.js";
16
- export { runDecisionExtractor } from "./extractor.js";
17
- export type { ExtractorResult } from "./extractor.js";
18
- export { acceptDraft, liftCandidatesToAssertions, rejectDraft, writeDecisionDraft, } from "./writer.js";
19
- export type { AcceptDraftResult, LiftResult, LiftVerdict, WriteDecisionDraftArgs, } from "./writer.js";
20
- export { runDecisionCapture } from "./capture.js";
21
- export type { RunDecisionCaptureArgs } from "./capture.js";
22
- export { REFINEMENT_PROPOSER_SYSTEM_PROMPT, buildRefinementProposerUserPrompt, } from "./refinement-prompt.js";
23
- export { REFINEMENT_PROPOSER_OUTPUT_SCHEMA } from "./refinement-schema.js";
24
- export { proposeStrictAssertions, runDecisionRefinement, } from "./refinement.js";
25
- export type { ProposerResult, RunDecisionRefinementArgs, } from "./refinement.js";
10
+ export { allocateDecisionId, allocateInvariantId, scanExistingDecisionIds, scanExistingInvariantIds, } from "./id.js";
@@ -1,21 +1,11 @@
1
1
  /**
2
- * Phase 14 — decision capture flow.
2
+ * Decision-capture surface.
3
3
  *
4
- * Public surface:
5
- * - runDecisionCapture(args) → end-to-end (extract draft → confirm → ledger)
6
- * - runDecisionExtractor(input) standalone Tier-1 call
7
- * - allocateDecisionId(repoRoot) → next monotonic DEC-id
8
- * - writeDecisionDraft, acceptDraft, rejectDraft — mechanical persistence
9
- * - DECISION_EXTRACTOR_OUTPUT_SCHEMA, DECISION_EXTRACTOR_SYSTEM_PROMPT — for
10
- * consumers that want to call `runClaude` directly
4
+ * Only the monotonic id allocators remain — the Tier-1 LLM extractor +
5
+ * refinement pipeline was orchestrator-era code (auto-extract DECs from
6
+ * sessions) that is no longer wired into the plugin flow. Operator-driven
7
+ * DEC creation lives in the `cairn-direction` skill + the
8
+ * `cairn_record_decision` MCP tool now.
11
9
  */
12
- export { allocateDecisionId, scanExistingDecisionIds } from "./id.js";
13
- export { DECISION_EXTRACTOR_SYSTEM_PROMPT, buildDecisionExtractorUserPrompt, } from "./prompt.js";
14
- export { DECISION_EXTRACTOR_OUTPUT_SCHEMA } from "./schema.js";
15
- export { runDecisionExtractor } from "./extractor.js";
16
- export { acceptDraft, liftCandidatesToAssertions, rejectDraft, writeDecisionDraft, } from "./writer.js";
17
- export { runDecisionCapture } from "./capture.js";
18
- export { REFINEMENT_PROPOSER_SYSTEM_PROMPT, buildRefinementProposerUserPrompt, } from "./refinement-prompt.js";
19
- export { REFINEMENT_PROPOSER_OUTPUT_SCHEMA } from "./refinement-schema.js";
20
- export { proposeStrictAssertions, runDecisionRefinement, } from "./refinement.js";
10
+ export { allocateDecisionId, allocateInvariantId, scanExistingDecisionIds, scanExistingInvariantIds, } from "./id.js";
21
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decision-capture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgBH,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EACL,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,WAAW,EACX,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EACL,iCAAiC,EACjC,iCAAiC,GAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decision-capture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,SAAS,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * 1 — at least one error (missing core file, broken layout)
8
8
  * 2 — at least one warning (drafty brand, empty scope, GC overdue, …)
9
9
  *
10
- * Spec: BUILD_REPORT.md "Task D — cairn doctor command".
10
+ * Spec: docs/PLUGIN_ARCHITECTURE.md §6 (adoption output).
11
11
  */
12
12
  export type DoctorStatus = "ok" | "warn" | "error" | "info";
13
13
  export interface DoctorCheck {