@isaacriehm/cairn 0.3.8 → 0.4.1

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.
@@ -0,0 +1,467 @@
1
+ /**
2
+ * `cairn fix` — retroactive repair subcommands for projects adopted
3
+ * before a feature landed.
4
+ *
5
+ * Subcommands:
6
+ *
7
+ * - `cairn fix brand` — re-run the Phase 5 Haiku brand derivation
8
+ * against the mapper output already on disk and rewrite the 4
9
+ * brand files (overview, voice, positioning, personas). Useful
10
+ * for projects adopted under v0.3.8 or earlier when the
11
+ * brand-derive Haiku call was timing out and the mapper picked
12
+ * mechanical defaults instead.
13
+ *
14
+ * - `cairn fix dec-strip` — replay source-comment strip-replace for
15
+ * accepted DECs whose original essay block is still in source.
16
+ * For projects adopted under v0.4.0 builds before the dirty-file
17
+ * overwrite fix landed: their accepted DECs sit in
18
+ * `.cairn/ground/decisions/<id>.md` but the originating source
19
+ * file still carries the prose instead of `// §DEC-NNNN`.
20
+ *
21
+ * - `cairn fix confidence` — pointer to `cairn attention bulk-accept
22
+ * --threshold high --dry-run`, which already scores + stamps
23
+ * `capture_confidence` on every draft + invariant. Documented
24
+ * here so operators don't hunt for it; this subcommand defers
25
+ * to the existing tool.
26
+ *
27
+ * - `cairn fix duration_ms` — pointer-only. Phase durations are
28
+ * recorded going forward; pre-v0.4.0 init runs cannot be
29
+ * retroactively backfilled because the trace doesn't carry
30
+ * phase boundaries.
31
+ */
32
+ import { execFileSync } from "node:child_process";
33
+ import { existsSync, readFileSync, readdirSync, rmSync, writeFileSync, } from "node:fs";
34
+ import { dirname, join, resolve } from "node:path";
35
+ import { fileURLToPath } from "node:url";
36
+ import { parse as parseYaml } from "yaml";
37
+ import { applyBrandAnswers, deriveBrandFromProject, derivedToBrandAnswers, parseDraftMeta, readMapperOutputFile, runDecSourceStrip, } from "@isaacriehm/cairn-core";
38
+ import { fixCli as doctorFixCli } from "./doctor.js";
39
+ function parseRepoFlag(argv) {
40
+ const idx = argv.indexOf("--repo");
41
+ if (idx === -1)
42
+ return process.cwd();
43
+ const candidate = argv[idx + 1];
44
+ if (candidate === undefined || candidate.startsWith("--")) {
45
+ console.error("--repo requires a path argument");
46
+ process.exit(2);
47
+ }
48
+ return resolve(candidate);
49
+ }
50
+ function ensureAdopted(repoRoot) {
51
+ if (!existsSync(repoRoot)) {
52
+ console.error(`cairn fix: repo root does not exist: ${repoRoot}`);
53
+ process.exit(2);
54
+ }
55
+ if (!existsSync(join(repoRoot, ".cairn"))) {
56
+ console.error(`cairn fix: ${repoRoot} is not cairn-adopted (no .cairn/). Run \`cairn init\` first.`);
57
+ process.exit(2);
58
+ }
59
+ }
60
+ function readProjectSlug(repoRoot) {
61
+ const cfgPath = join(repoRoot, ".cairn", "config.yaml");
62
+ if (!existsSync(cfgPath))
63
+ return "this-project";
64
+ try {
65
+ const parsed = parseYaml(readFileSync(cfgPath, "utf8"));
66
+ if (parsed === null || typeof parsed !== "object")
67
+ return "this-project";
68
+ const slug = parsed["project_slug"];
69
+ return typeof slug === "string" && slug.length > 0 ? slug : "this-project";
70
+ }
71
+ catch {
72
+ return "this-project";
73
+ }
74
+ }
75
+ async function fixBrand(repoRoot, dryRun) {
76
+ const mapper = readMapperOutputFile(repoRoot);
77
+ if (mapper === null) {
78
+ console.error(`cairn fix brand: no mapper output at .cairn/init/mapper-output.json. ` +
79
+ `Re-run \`cairn init\` first so the mapper can produce a domain summary.`);
80
+ process.exit(2);
81
+ }
82
+ const domainSummary = mapper.output.domain_summary;
83
+ const projectSlug = readProjectSlug(repoRoot);
84
+ process.stdout.write(` ⬡ cairn fix brand — ${repoRoot}\n` +
85
+ ` project_slug: ${projectSlug}\n` +
86
+ ` domain_summary: ${domainSummary.slice(0, 80)}${domainSummary.length > 80 ? "…" : ""}\n` +
87
+ `\n Calling Haiku for brand-derive (60s timeout, 2-attempt retry)…\n`);
88
+ const derived = await deriveBrandFromProject({
89
+ repoRoot,
90
+ projectSlug,
91
+ domainSummary,
92
+ });
93
+ if (derived === null) {
94
+ console.error(`cairn fix brand: Haiku call returned no usable brand. ` +
95
+ `Check the trace for the underlying error and retry.`);
96
+ process.exit(2);
97
+ }
98
+ const answers = derivedToBrandAnswers(derived);
99
+ if (dryRun) {
100
+ process.stdout.write(" [dry-run] would rewrite 4 brand files:\n");
101
+ process.stdout.write(` overview: ${answers.whatItDoes.slice(0, 60)}…\n`);
102
+ process.stdout.write(` voice: ${answers.voice.slice(0, 60)}…\n`);
103
+ process.stdout.write(` avoid: ${answers.avoid.slice(0, 60)}…\n`);
104
+ process.stdout.write(` personas: ${answers.mainUsers.slice(0, 60)}…\n`);
105
+ process.exit(0);
106
+ }
107
+ const result = applyBrandAnswers(repoRoot, answers);
108
+ process.stdout.write(` Updated ${result.updated.length} file(s):\n`);
109
+ for (const f of result.updated) {
110
+ process.stdout.write(` • ${f}\n`);
111
+ }
112
+ if (result.warnings.length > 0) {
113
+ process.stdout.write(" Warnings:\n");
114
+ for (const w of result.warnings) {
115
+ process.stdout.write(` ! ${w}\n`);
116
+ }
117
+ }
118
+ process.exit(0);
119
+ }
120
+ async function fixDecStrip(repoRoot, dryRun) {
121
+ const decisionsDir = join(repoRoot, ".cairn", "ground", "decisions");
122
+ if (!existsSync(decisionsDir)) {
123
+ console.error(`cairn fix dec-strip: no decisions dir at ${decisionsDir}. Run \`cairn init\` first.`);
124
+ process.exit(2);
125
+ }
126
+ let entries;
127
+ try {
128
+ entries = readdirSync(decisionsDir, { encoding: "utf8" });
129
+ }
130
+ catch (err) {
131
+ console.error(`cairn fix dec-strip: cannot read decisions dir: ${err instanceof Error ? err.message : String(err)}`);
132
+ process.exit(2);
133
+ }
134
+ const decFiles = entries.filter((n) => /^DEC-\d{4,}\.md$/.test(n) && !n.endsWith(".draft.md"));
135
+ process.stdout.write(` ⬡ cairn fix dec-strip${dryRun ? " --dry-run" : ""} — ${repoRoot}\n` +
136
+ ` Scanning ${decFiles.length} accepted DEC(s) under .cairn/ground/decisions/\n\n`);
137
+ let scanned = 0;
138
+ let candidates = 0;
139
+ let attempted = 0;
140
+ let applied = 0;
141
+ let alreadyStripped = 0;
142
+ let skipped = 0;
143
+ const skipReasons = [];
144
+ for (const name of decFiles) {
145
+ scanned += 1;
146
+ const abs = join(decisionsDir, name);
147
+ let body;
148
+ try {
149
+ body = readFileSync(abs, "utf8");
150
+ }
151
+ catch {
152
+ continue;
153
+ }
154
+ const meta = parseDraftMeta(body);
155
+ if (meta === null ||
156
+ meta.captureSource !== "init-source-comments" ||
157
+ meta.blockId === null) {
158
+ continue;
159
+ }
160
+ candidates += 1;
161
+ const decId = name.replace(/\.md$/, "");
162
+ if (dryRun) {
163
+ process.stdout.write(` [dry-run] ${decId} — would strip block ${meta.blockId} in ${meta.sourceFile ?? "?"}\n`);
164
+ continue;
165
+ }
166
+ const outcome = runDecSourceStrip({ repoRoot, decId, meta });
167
+ attempted += outcome.attempted ? 1 : 0;
168
+ applied += outcome.items_applied;
169
+ if (outcome.reason === "already-stripped") {
170
+ alreadyStripped += 1;
171
+ process.stdout.write(` · ${decId} — already stripped (no-op)\n`);
172
+ continue;
173
+ }
174
+ if (outcome.items_applied === 0) {
175
+ skipped += 1;
176
+ skipReasons.push({ id: decId, reason: outcome.reason ?? "unknown" });
177
+ process.stdout.write(` ✗ ${decId} — skipped (${outcome.reason ?? "unknown"})\n`);
178
+ }
179
+ else {
180
+ process.stdout.write(` ✓ ${decId} — replaced ${outcome.items_applied} block(s) in ${outcome.files_modified} file(s)\n`);
181
+ }
182
+ }
183
+ process.stdout.write(`\n Scanned ${scanned}, candidates ${candidates}, attempted ${attempted}, applied ${applied}, already-stripped ${alreadyStripped}, skipped ${skipped}\n`);
184
+ if (!dryRun && skipReasons.length > 0) {
185
+ process.stdout.write("\n Skip reason breakdown:\n");
186
+ const counts = new Map();
187
+ for (const r of skipReasons) {
188
+ counts.set(r.reason, (counts.get(r.reason) ?? 0) + 1);
189
+ }
190
+ for (const [reason, n] of counts) {
191
+ process.stdout.write(` ${reason}: ${n}\n`);
192
+ }
193
+ process.stdout.write(`\n Common reasons:\n` +
194
+ ` no-audit-found — Phase 7b audit YAML missing (re-run \`cairn init\` or restore baseline)\n` +
195
+ ` block-not-found — block id not in audit (DEC was edited or audit predates block)\n` +
196
+ ` range-mismatch — audit offset + content-search both stale; source file edited post-init\n` +
197
+ ` raw-not-in-file — original essay text not in current source (file edited post-init)\n` +
198
+ ` strip-failed — source file moved or content drifted\n`);
199
+ }
200
+ process.exit(0);
201
+ }
202
+ async function fixClaudeRules(repoRoot, dryRun) {
203
+ const targetRel = ".claude/rules/cairn.md";
204
+ const targetAbs = join(repoRoot, targetRel);
205
+ // Locate the bundled template alongside the gitignore template.
206
+ const here = dirname(fileURLToPath(import.meta.url));
207
+ const candidates = [
208
+ join(here, "..", "..", "..", "cairn-core", "templates", ".claude", "rules", "cairn.md"),
209
+ join(here, "..", "..", "..", "..", "cairn-core", "templates", ".claude", "rules", "cairn.md"),
210
+ join(here, "..", "..", "templates", ".claude", "rules", "cairn.md"),
211
+ join(here, "..", "templates", ".claude", "rules", "cairn.md"),
212
+ ];
213
+ const templatePath = candidates.find((p) => existsSync(p));
214
+ if (templatePath === undefined) {
215
+ console.error(`cairn fix claude-rules: cannot locate bundled .claude/rules/cairn.md template (looked in ${candidates.join(", ")})`);
216
+ process.exit(2);
217
+ }
218
+ const templateContent = readFileSync(templatePath, "utf8");
219
+ process.stdout.write(` ⬡ cairn fix claude-rules${dryRun ? " --dry-run" : ""} — ${repoRoot}\n` +
220
+ ` template: ${templatePath}\n target: ${targetRel}\n\n`);
221
+ if (existsSync(targetAbs)) {
222
+ const current = readFileSync(targetAbs, "utf8");
223
+ if (current === templateContent) {
224
+ process.stdout.write(" · already matches template (no-op)\n");
225
+ process.exit(0);
226
+ }
227
+ process.stdout.write(" ! existing file differs from template\n");
228
+ if (dryRun) {
229
+ process.stdout.write(` [dry-run] would overwrite ${targetRel}\n`);
230
+ process.exit(0);
231
+ }
232
+ writeFileSync(targetAbs, templateContent, "utf8");
233
+ process.stdout.write(` ✓ ${targetRel} overwritten with current template\n`);
234
+ process.exit(0);
235
+ }
236
+ if (dryRun) {
237
+ process.stdout.write(` [dry-run] would write ${targetRel}\n`);
238
+ process.exit(0);
239
+ }
240
+ // mkdir -p .claude/rules/
241
+ const targetDir = dirname(targetAbs);
242
+ if (!existsSync(targetDir)) {
243
+ const { mkdirSync } = await import("node:fs");
244
+ mkdirSync(targetDir, { recursive: true });
245
+ }
246
+ writeFileSync(targetAbs, templateContent, "utf8");
247
+ process.stdout.write(` ✓ ${targetRel} written\n` +
248
+ `\n Teammates without the Cairn plugin will now see install\n` +
249
+ ` instructions on session start. Commit the file:\n` +
250
+ ` git add ${targetRel}\n` +
251
+ ` git commit -m "cairn: add .claude/rules/cairn.md for plugin-absent onboarding"\n`);
252
+ process.exit(0);
253
+ }
254
+ async function fixScrubCache(repoRoot, dryRun) {
255
+ const cacheDir = join(repoRoot, ".cairn", "cache", "haiku");
256
+ if (!existsSync(cacheDir)) {
257
+ process.stdout.write(` ⬡ cairn fix scrub-cache — ${repoRoot}\n` +
258
+ ` · no cache at ${cacheDir} (nothing to scrub)\n`);
259
+ process.exit(0);
260
+ }
261
+ let entries;
262
+ try {
263
+ entries = readdirSync(cacheDir, { encoding: "utf8" });
264
+ }
265
+ catch (err) {
266
+ console.error(`cairn fix scrub-cache: cannot read cache dir: ${err instanceof Error ? err.message : String(err)}`);
267
+ process.exit(2);
268
+ }
269
+ const cacheFiles = entries.filter((n) => n.endsWith(".json"));
270
+ process.stdout.write(` ⬡ cairn fix scrub-cache${dryRun ? " --dry-run" : ""} — ${repoRoot}\n` +
271
+ ` Found ${cacheFiles.length} cache entr(y/ies) at ${cacheDir}\n\n`);
272
+ if (cacheFiles.length === 0) {
273
+ process.stdout.write(" · cache dir is empty (nothing to scrub)\n");
274
+ process.exit(0);
275
+ }
276
+ if (dryRun) {
277
+ process.stdout.write(` [dry-run] would delete ${cacheFiles.length} entr(y/ies)\n`);
278
+ process.exit(0);
279
+ }
280
+ let removed = 0;
281
+ for (const name of cacheFiles) {
282
+ try {
283
+ rmSync(join(cacheDir, name), { force: true });
284
+ removed += 1;
285
+ }
286
+ catch {
287
+ /* best-effort */
288
+ }
289
+ }
290
+ process.stdout.write(` ✓ Scrubbed ${removed} entr(y/ies). Next Haiku call will re-populate.\n` +
291
+ `\n Recommended next step: re-run \`cairn fix brand\` to regenerate the\n` +
292
+ ` brand text from a clean run (use this if the prior brand text picked\n` +
293
+ ` up content from your user-global ~/.claude/CLAUDE.md or other ambient\n` +
294
+ ` context — v0.4.0 added isolation that prevents this going forward).\n`);
295
+ process.exit(0);
296
+ }
297
+ async function fixGitignore(repoRoot, dryRun) {
298
+ const cairnGitignorePath = join(repoRoot, ".cairn", ".gitignore");
299
+ if (!existsSync(cairnGitignorePath)) {
300
+ console.error(`cairn fix gitignore: missing ${cairnGitignorePath}. Re-run \`cairn init\`.`);
301
+ process.exit(2);
302
+ }
303
+ // Resolve the bundled template via the cli's own location. In the
304
+ // npm-published layout dist/cli/index.js sits next to the cairn-core
305
+ // package; the templates live under cairn-core/templates/. In the
306
+ // Claude Code plugin bundle layout, the template is shipped under
307
+ // dist/templates/. Try both — fail loudly if neither exists.
308
+ const here = dirname(fileURLToPath(import.meta.url));
309
+ const candidates = [
310
+ join(here, "..", "..", "..", "cairn-core", "templates", ".cairn", ".gitignore"),
311
+ join(here, "..", "..", "..", "..", "cairn-core", "templates", ".cairn", ".gitignore"),
312
+ join(here, "..", "..", "templates", ".cairn", ".gitignore"),
313
+ join(here, "..", "templates", ".cairn", ".gitignore"),
314
+ ];
315
+ const templatePath = candidates.find((p) => existsSync(p));
316
+ if (templatePath === undefined) {
317
+ console.error(`cairn fix gitignore: cannot locate bundled .cairn/.gitignore template (looked in ${candidates.join(", ")})`);
318
+ process.exit(2);
319
+ }
320
+ const templateContent = readFileSync(templatePath, "utf8");
321
+ const currentContent = readFileSync(cairnGitignorePath, "utf8");
322
+ process.stdout.write(` ⬡ cairn fix gitignore${dryRun ? " --dry-run" : ""} — ${repoRoot}\n` +
323
+ ` template: ${templatePath}\n\n`);
324
+ if (templateContent === currentContent) {
325
+ process.stdout.write(" ✓ .cairn/.gitignore already matches template — no changes needed\n");
326
+ process.exit(0);
327
+ }
328
+ // Compute newly-ignored top-level entries by diffing entry lines (any
329
+ // non-comment, non-blank line). Only entries the OLD file lacked but
330
+ // the NEW one adds get the `git rm --cached` treatment — entries the
331
+ // operator added themselves stay alone.
332
+ const lineEntries = (text) => new Set(text
333
+ .split("\n")
334
+ .map((l) => l.trim())
335
+ .filter((l) => l.length > 0 && !l.startsWith("#")));
336
+ const before = lineEntries(currentContent);
337
+ const after = lineEntries(templateContent);
338
+ const newlyIgnored = [...after].filter((e) => !before.has(e));
339
+ process.stdout.write(` Newly-ignored entries (${newlyIgnored.length}):\n`);
340
+ for (const e of newlyIgnored) {
341
+ process.stdout.write(` + ${e}\n`);
342
+ }
343
+ if (dryRun) {
344
+ process.stdout.write(`\n [dry-run] would rewrite .cairn/.gitignore from template\n`);
345
+ if (newlyIgnored.length > 0) {
346
+ process.stdout.write(` [dry-run] would run \`git rm --cached -r --ignore-unmatch\` against newly-ignored entries\n`);
347
+ }
348
+ process.exit(0);
349
+ }
350
+ writeFileSync(cairnGitignorePath, templateContent, "utf8");
351
+ process.stdout.write("\n ✓ .cairn/.gitignore rewritten from template\n");
352
+ if (newlyIgnored.length === 0) {
353
+ process.exit(0);
354
+ }
355
+ // Untrack newly-ignored paths so they actually drop out of the index.
356
+ // Paths in .cairn/.gitignore are relative to .cairn/, so prefix.
357
+ const targets = newlyIgnored.map((e) => join(".cairn", e));
358
+ process.stdout.write(`\n Running \`git rm --cached -r --ignore-unmatch\` for ${targets.length} path(s)…\n`);
359
+ try {
360
+ const out = execFileSync("git", ["rm", "--cached", "-r", "--ignore-unmatch", "--", ...targets], { cwd: repoRoot, encoding: "utf8" });
361
+ if (out.trim().length > 0) {
362
+ for (const line of out.trim().split("\n")) {
363
+ process.stdout.write(` ${line}\n`);
364
+ }
365
+ }
366
+ else {
367
+ process.stdout.write(" (nothing to untrack — paths weren't committed)\n");
368
+ }
369
+ }
370
+ catch (err) {
371
+ console.error(`cairn fix gitignore: git rm --cached failed: ${err instanceof Error ? err.message : String(err)}`);
372
+ process.exit(2);
373
+ }
374
+ process.stdout.write("\n Untracked. Commit the .gitignore + index changes when you're ready:\n" +
375
+ " git status\n" +
376
+ " git add .cairn/.gitignore\n" +
377
+ ' git commit -m "cairn: tighten .cairn/.gitignore (untrack transient state)"\n');
378
+ process.exit(0);
379
+ }
380
+ const RETROACTIVE_SUBCOMMANDS = new Set([
381
+ "brand",
382
+ "dec-strip",
383
+ "gitignore",
384
+ "scrub-cache",
385
+ "claude-rules",
386
+ "confidence",
387
+ "duration_ms",
388
+ ]);
389
+ export async function fixCli(argv) {
390
+ if (argv[0] === "--help" || argv[0] === "-h") {
391
+ process.stdout.write("Usage: cairn fix [<subcommand>] [--repo <path>] [--dry-run]\n" +
392
+ " No subcommand: runs the doctor auto-fix pass (rebuild ledgers,\n" +
393
+ " scope-index, etc.).\n" +
394
+ " Subcommands (retroactive — for projects adopted on older versions):\n" +
395
+ " brand re-run the Haiku brand-derive call against the\n" +
396
+ " mapper output already on disk; rewrite the 4 brand\n" +
397
+ " files. For projects adopted under v0.3.8 or earlier\n" +
398
+ " where the Haiku timeout caused mechanical defaults.\n" +
399
+ " dec-strip replay source-comment strip-replace for accepted\n" +
400
+ " DECs whose original essay block is still in source.\n" +
401
+ " For projects adopted under v0.4.0 builds before the\n" +
402
+ " dirty-file overwrite fix landed.\n" +
403
+ " gitignore rewrite .cairn/.gitignore from the bundled template\n" +
404
+ " and `git rm --cached` newly-ignored paths. For\n" +
405
+ " projects adopted before the v0.4.0 gitignore additions\n" +
406
+ " (init-state.json, init/, staleness/, backups/, cache/).\n" +
407
+ " scrub-cache wipe .cairn/cache/haiku/ entries. For projects adopted\n" +
408
+ " before v0.4.0 ambient-context isolation; cached Haiku\n" +
409
+ " responses captured user-global CLAUDE.md content and\n" +
410
+ " should be re-issued under the new isolated transport.\n" +
411
+ " claude-rules write .claude/rules/cairn.md so teammates whose Claude\n" +
412
+ " Code lacks the Cairn plugin still see install\n" +
413
+ " instructions on session start. Auto-loaded by Claude\n" +
414
+ " Code regardless of plugin install state.\n" +
415
+ " confidence alias for `cairn attention bulk-accept --threshold high`\n" +
416
+ " which scores + stamps capture_confidence on every\n" +
417
+ " draft + invariant. Run with --dry-run first.\n" +
418
+ " duration_ms not implemented — phase durations are recorded\n" +
419
+ " going forward (v0.4.0+); the trace doesn't carry\n" +
420
+ " pre-existing phase boundaries.\n");
421
+ process.exit(0);
422
+ }
423
+ const sub = argv[0];
424
+ if (sub === undefined || !RETROACTIVE_SUBCOMMANDS.has(sub)) {
425
+ // No subcommand or unrecognized first arg — fall through to the
426
+ // doctor auto-fix flow with the original argv (so `--repo <path>`
427
+ // etc. still routes correctly).
428
+ await doctorFixCli(argv);
429
+ return;
430
+ }
431
+ const rest = argv.slice(1);
432
+ const repoRoot = parseRepoFlag(rest);
433
+ ensureAdopted(repoRoot);
434
+ const dryRun = rest.includes("--dry-run");
435
+ switch (sub) {
436
+ case "brand":
437
+ await fixBrand(repoRoot, dryRun);
438
+ return;
439
+ case "dec-strip":
440
+ await fixDecStrip(repoRoot, dryRun);
441
+ return;
442
+ case "gitignore":
443
+ await fixGitignore(repoRoot, dryRun);
444
+ return;
445
+ case "scrub-cache":
446
+ await fixScrubCache(repoRoot, dryRun);
447
+ return;
448
+ case "claude-rules":
449
+ await fixClaudeRules(repoRoot, dryRun);
450
+ return;
451
+ case "confidence":
452
+ process.stdout.write(" cairn fix confidence is an alias for `cairn attention bulk-accept`.\n" +
453
+ " Run: cairn attention bulk-accept --threshold high --dry-run\n" +
454
+ " to score + stamp capture_confidence without auto-accepting,\n" +
455
+ " then re-run without --dry-run when ready.\n");
456
+ process.exit(0);
457
+ return;
458
+ case "duration_ms":
459
+ process.stdout.write(" cairn fix duration_ms is not implemented.\n" +
460
+ " Phase durations are recorded going forward (v0.4.0+);\n" +
461
+ " pre-existing phase boundaries are not in the trace and cannot\n" +
462
+ " be retroactively backfilled.\n");
463
+ process.exit(0);
464
+ return;
465
+ }
466
+ }
467
+ //# sourceMappingURL=fix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { readStatusForCLI, VERSION } from "../index.js";
3
3
  import { attentionCli } from "./attention.js";
4
- import { doctorCli, fixCli } from "./doctor.js";
4
+ import { baselineCli } from "./baseline.js";
5
+ import { doctorCli } from "./doctor.js";
6
+ import { fixCli } from "./fix.js";
5
7
  import { gcCli } from "./gc.js";
6
8
  import { hookCli } from "./hook.js";
7
9
  import { initCli } from "./init.js";
@@ -80,6 +82,9 @@ switch (subcommand) {
80
82
  case "attention":
81
83
  await attentionCli(rest);
82
84
  break;
85
+ case "baseline":
86
+ await baselineCli(rest);
87
+ break;
83
88
  case "hook":
84
89
  await hookCli(rest);
85
90
  break;
@@ -142,6 +147,8 @@ switch (subcommand) {
142
147
  " (--repo <path>?)\n" +
143
148
  " attention list pending DEC drafts + baseline sensor findings\n" +
144
149
  " (--repo <path>?)\n" +
150
+ " baseline re-run the synthetic-diff sensor sweep post-adoption\n" +
151
+ " (--force? --repo <path>?)\n" +
145
152
  " hook Claude Code hook runner (stdin = hook payload JSON)\n" +
146
153
  " (subcommands: session-start | read-enrich | write-guard)\n" +
147
154
  " sensor-run git-hook sensor sweep (--staged | --commit-msg <path>)\n" +
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isaacriehm/cairn",
3
- "version": "0.3.8",
3
+ "version": "0.4.1",
4
4
  "description": "Cairn — state + context-loading layer for AI coding agents.",
5
5
  "author": "Isaac Riehm",
6
6
  "license": "MIT",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "simple-git": "^3.36.0",
39
39
  "yaml": "^2.8.4",
40
- "@isaacriehm/cairn-core": "0.3.8"
40
+ "@isaacriehm/cairn-core": "0.4.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^25.6.0",
@@ -75,6 +75,7 @@
75
75
  "smoke:init-phases-state": "tsx scripts/smoke-init-phases-state.ts",
76
76
  "smoke:init-phases-all": "tsx scripts/smoke-init-phases-all.ts",
77
77
  "smoke:init-mcp-tools": "tsx scripts/smoke-init-mcp-tools.ts",
78
+ "smoke:init-progress-heartbeat": "tsx scripts/smoke-init-progress-heartbeat.ts",
78
79
  "smoke:stop-debounce": "tsx scripts/smoke-stop-debounce.ts"
79
80
  }
80
81
  }