@isaacriehm/cairn-core 0.22.5 → 0.23.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 (122) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/attention/index.d.ts +0 -1
  3. package/dist/attention/index.js +0 -1
  4. package/dist/attention/index.js.map +1 -1
  5. package/dist/cites/expand.d.ts +75 -0
  6. package/dist/cites/expand.js +197 -0
  7. package/dist/cites/expand.js.map +1 -0
  8. package/dist/doctor/index.d.ts +10 -4
  9. package/dist/doctor/index.js +25 -97
  10. package/dist/doctor/index.js.map +1 -1
  11. package/dist/gc/apply.d.ts +1 -1
  12. package/dist/gc/apply.js +1 -1
  13. package/dist/gc/classify.d.ts +4 -8
  14. package/dist/gc/classify.js +6 -12
  15. package/dist/gc/classify.js.map +1 -1
  16. package/dist/gc/completion-integrity.d.ts +0 -1
  17. package/dist/gc/completion-integrity.js +0 -6
  18. package/dist/gc/completion-integrity.js.map +1 -1
  19. package/dist/gc/index.d.ts +1 -1
  20. package/dist/gc/index.js +1 -1
  21. package/dist/gc/sweep.d.ts +1 -3
  22. package/dist/gc/sweep.js +2 -7
  23. package/dist/gc/sweep.js.map +1 -1
  24. package/dist/gc/types.d.ts +5 -6
  25. package/dist/gc/types.js +4 -5
  26. package/dist/gc/types.js.map +1 -1
  27. package/dist/hooks/post-tool-use/index.d.ts +1 -1
  28. package/dist/hooks/post-tool-use/index.js +1 -1
  29. package/dist/hooks/post-tool-use/index.js.map +1 -1
  30. package/dist/hooks/post-tool-use/sot-align.js +52 -21
  31. package/dist/hooks/post-tool-use/sot-align.js.map +1 -1
  32. package/dist/hooks/sot-align-common.d.ts +13 -0
  33. package/dist/hooks/sot-align-common.js +69 -0
  34. package/dist/hooks/sot-align-common.js.map +1 -1
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.js +3 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/init/baseline-audit.js +3 -16
  39. package/dist/init/baseline-audit.js.map +1 -1
  40. package/dist/init/claude-rule.d.ts +1 -0
  41. package/dist/init/claude-rule.js +1 -1
  42. package/dist/init/claude-rule.js.map +1 -1
  43. package/dist/init/index.d.ts +0 -2
  44. package/dist/init/index.js +0 -1
  45. package/dist/init/index.js.map +1 -1
  46. package/dist/init/init.d.ts +2 -2
  47. package/dist/init/init.js +12 -27
  48. package/dist/init/init.js.map +1 -1
  49. package/dist/init/mapper-merge.d.ts +1 -4
  50. package/dist/init/mapper-merge.js +6 -22
  51. package/dist/init/mapper-merge.js.map +1 -1
  52. package/dist/init/mapper-parallel.d.ts +0 -4
  53. package/dist/init/mapper-parallel.js +3 -69
  54. package/dist/init/mapper-parallel.js.map +1 -1
  55. package/dist/init/mapper-prompts.d.ts +1 -25
  56. package/dist/init/mapper-prompts.js +2 -20
  57. package/dist/init/mapper-prompts.js.map +1 -1
  58. package/dist/init/mapper.d.ts +0 -4
  59. package/dist/init/mapper.js +2 -9
  60. package/dist/init/mapper.js.map +1 -1
  61. package/dist/init/overlay.js +6 -8
  62. package/dist/init/overlay.js.map +1 -1
  63. package/dist/init/phases/11-baseline.js +0 -10
  64. package/dist/init/phases/11-baseline.js.map +1 -1
  65. package/dist/init/phases/4-seed.js +0 -4
  66. package/dist/init/phases/4-seed.js.map +1 -1
  67. package/dist/init/source-comments/ingest.d.ts +0 -8
  68. package/dist/init/source-comments/ingest.js +11 -8
  69. package/dist/init/source-comments/ingest.js.map +1 -1
  70. package/dist/init/walker.d.ts +2 -3
  71. package/dist/init/walker.js +2 -3
  72. package/dist/init/walker.js.map +1 -1
  73. package/dist/init/workflow-block.d.ts +0 -4
  74. package/dist/init/workflow-block.js +0 -16
  75. package/dist/init/workflow-block.js.map +1 -1
  76. package/dist/invariants/prune.d.ts +50 -0
  77. package/dist/invariants/prune.js +113 -0
  78. package/dist/invariants/prune.js.map +1 -0
  79. package/dist/mcp/schemas.d.ts +8 -8
  80. package/dist/mcp/tools/mission-set-exit-gate.d.ts +1 -1
  81. package/dist/migrate/migrations/0004-drop-glob-settings.d.ts +16 -0
  82. package/dist/migrate/migrations/0004-drop-glob-settings.js +34 -0
  83. package/dist/migrate/migrations/0004-drop-glob-settings.js.map +1 -0
  84. package/dist/migrate/registry.js +2 -0
  85. package/dist/migrate/registry.js.map +1 -1
  86. package/dist/profiles/types.d.ts +0 -2
  87. package/dist/profiles/unknown.d.ts +2 -2
  88. package/dist/profiles/unknown.js +2 -3
  89. package/dist/profiles/unknown.js.map +1 -1
  90. package/dist/sensors/diff.d.ts +1 -1
  91. package/dist/sensors/diff.js +1 -1
  92. package/dist/sensors/index.d.ts +2 -3
  93. package/dist/sensors/index.js +1 -2
  94. package/dist/sensors/index.js.map +1 -1
  95. package/dist/sensors/runner.d.ts +7 -10
  96. package/dist/sensors/runner.js +6 -39
  97. package/dist/sensors/runner.js.map +1 -1
  98. package/dist/sensors/types.d.ts +0 -13
  99. package/dist/uninstall/index.d.ts +44 -0
  100. package/dist/uninstall/index.js +185 -0
  101. package/dist/uninstall/index.js.map +1 -0
  102. package/package.json +2 -2
  103. package/templates/.cairn/config/sensors.yaml +12 -91
  104. package/templates/.cairn/config/workflow.md +2 -5
  105. package/dist/attention/scoring.d.ts +0 -47
  106. package/dist/attention/scoring.js +0 -87
  107. package/dist/attention/scoring.js.map +0 -1
  108. package/dist/hooks/read-enrich.d.ts +0 -6
  109. package/dist/hooks/read-enrich.js +0 -11
  110. package/dist/hooks/read-enrich.js.map +0 -1
  111. package/dist/hooks/write-guard.d.ts +0 -6
  112. package/dist/hooks/write-guard.js +0 -11
  113. package/dist/hooks/write-guard.js.map +0 -1
  114. package/dist/init/glob-inference.d.ts +0 -16
  115. package/dist/init/glob-inference.js +0 -132
  116. package/dist/init/glob-inference.js.map +0 -1
  117. package/dist/init/phases/12-strip.d.ts +0 -10
  118. package/dist/init/phases/12-strip.js +0 -88
  119. package/dist/init/phases/12-strip.js.map +0 -1
  120. package/dist/sensors/structural.d.ts +0 -31
  121. package/dist/sensors/structural.js +0 -196
  122. package/dist/sensors/structural.js.map +0 -1
@@ -1,4 +1,3 @@
1
- export { scoreDecDraft, scoreInvariant, type DraftConfidence, type DraftScoreInput, } from "./scoring.js";
2
1
  export { findDuplicateClusters, DEFAULT_THRESHOLD_DEFINITE, DEFAULT_THRESHOLD_FLOOR, type DraftRef, type DuplicateCluster, type DedupResult, } from "./dedup.js";
3
2
  export { parseDraftMeta, findLatestSourceCommentsAudit, runDecSourceStrip, type DraftMeta, type StripOutcomeSummary, } from "./source-strip.js";
4
3
  export { restoreDec, type RestoreArgs, type RestoreResult, type RestoreState, } from "./restore.js";
@@ -1,4 +1,3 @@
1
- export { scoreDecDraft, scoreInvariant, } from "./scoring.js";
2
1
  export { findDuplicateClusters, DEFAULT_THRESHOLD_DEFINITE, DEFAULT_THRESHOLD_FLOOR, } from "./dedup.js";
3
2
  export { parseDraftMeta, findLatestSourceCommentsAudit, runDecSourceStrip, } from "./source-strip.js";
4
3
  export { restoreDec, } from "./restore.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attention/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,GAGf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GAIxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,GAIX,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/attention/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GAIxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,GAIX,MAAM,cAAc,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Inline cite expander — the inverse of sot-align's strip-replace.
3
+ *
4
+ * sot-align replaces a prose block with a bare `// §DEC-<hash>` /
5
+ * `// §INV-<hash>` citation. This expands such a citation back into the
6
+ * entity's body, rendered as a plain comment in the file's own comment
7
+ * style. Two uses:
8
+ *
9
+ * 1. Uninstall — un-cite a repo so removing `.cairn/` leaves the source
10
+ * self-documenting, with no dangling `§DEC-/§INV-` references.
11
+ * 2. General "expand cites" tooling.
12
+ *
13
+ * Only a PURE cite line — one whose entire content (after the comment
14
+ * leader) is citation tokens — is expanded. A citation that shares a line
15
+ * with code is left untouched (counted as `inlineSkipped`); a citation
16
+ * whose entity is missing on disk is left as-is (`danglingSkipped`).
17
+ */
18
+ export interface ExpandResult {
19
+ text: string;
20
+ /** Citations replaced with their entity body. */
21
+ expanded: number;
22
+ /** Citation ids with no entity on disk — left in place. */
23
+ danglingSkipped: number;
24
+ /** Citations sharing a line with code — left in place. */
25
+ inlineSkipped: number;
26
+ }
27
+ /**
28
+ * Pure transform: expand every pure-cite line in `text`. `resolve` returns
29
+ * an entity body (post-frontmatter) by id, or null when it doesn't exist.
30
+ */
31
+ export declare function expandCitesInText(text: string, resolve: (id: string) => string | null): ExpandResult;
32
+ export interface ExpandCitesFileOptions {
33
+ repoRoot: string;
34
+ /** Repo-relative path. */
35
+ filePath: string;
36
+ /** When true, compute the result but don't write. */
37
+ dryRun?: boolean;
38
+ }
39
+ export interface ExpandCitesFileResult extends ExpandResult {
40
+ filePath: string;
41
+ changed: boolean;
42
+ }
43
+ /**
44
+ * Expand every pure-cite line in one source file, resolving ids against the
45
+ * live `.cairn/ground/{decisions,invariants}/` store. Writes in place unless
46
+ * `dryRun`.
47
+ */
48
+ export declare function expandCitesInFile(opts: ExpandCitesFileOptions): ExpandCitesFileResult;
49
+ /**
50
+ * Walk the working tree for files that contain a `§DEC-/§INV-` token. The
51
+ * source of truth for un-citing is the source itself, NOT the scope-index —
52
+ * a stale/missing scope-index would silently leave dangling cites behind.
53
+ */
54
+ export declare function findCitedFiles(repoRoot: string): string[];
55
+ export interface ExpandCitesRepoOptions {
56
+ repoRoot: string;
57
+ /**
58
+ * Explicit repo-relative files to expand. When omitted, the working tree
59
+ * is scanned for every file carrying a `§DEC-/§INV-` token.
60
+ */
61
+ files?: string[];
62
+ dryRun?: boolean;
63
+ }
64
+ export interface ExpandCitesRepoResult {
65
+ files: ExpandCitesFileResult[];
66
+ filesChanged: number;
67
+ expanded: number;
68
+ danglingSkipped: number;
69
+ inlineSkipped: number;
70
+ }
71
+ /**
72
+ * Expand cites across many files. Defaults to the scope-index's cited-file
73
+ * set; pass `files` to target a subset (or when the scope-index is absent).
74
+ */
75
+ export declare function expandCitesInRepo(opts: ExpandCitesRepoOptions): ExpandCitesRepoResult;
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Inline cite expander — the inverse of sot-align's strip-replace.
3
+ *
4
+ * sot-align replaces a prose block with a bare `// §DEC-<hash>` /
5
+ * `// §INV-<hash>` citation. This expands such a citation back into the
6
+ * entity's body, rendered as a plain comment in the file's own comment
7
+ * style. Two uses:
8
+ *
9
+ * 1. Uninstall — un-cite a repo so removing `.cairn/` leaves the source
10
+ * self-documenting, with no dangling `§DEC-/§INV-` references.
11
+ * 2. General "expand cites" tooling.
12
+ *
13
+ * Only a PURE cite line — one whose entire content (after the comment
14
+ * leader) is citation tokens — is expanded. A citation that shares a line
15
+ * with code is left untouched (counted as `inlineSkipped`); a citation
16
+ * whose entity is missing on disk is left as-is (`danglingSkipped`).
17
+ */
18
+ import { existsSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs";
19
+ import { join } from "node:path";
20
+ import { readEntityBody } from "../hooks/sot-align-common.js";
21
+ const CITE_RE = /§(DEC|INV)-([0-9a-f]{7,})/g;
22
+ /** A line that, with all cite tokens removed, is only indent + comment leader. */
23
+ const PURE_CITE_LEADER_RE = /^(\s*)(\/\/+|#+|;+|--+|\*)?\s*$/;
24
+ /**
25
+ * Pure transform: expand every pure-cite line in `text`. `resolve` returns
26
+ * an entity body (post-frontmatter) by id, or null when it doesn't exist.
27
+ */
28
+ export function expandCitesInText(text, resolve) {
29
+ let expanded = 0;
30
+ let danglingSkipped = 0;
31
+ let inlineSkipped = 0;
32
+ const eol = text.includes("\r\n") ? "\r\n" : "\n";
33
+ const lines = text.split(/\r?\n/);
34
+ const out = [];
35
+ for (const line of lines) {
36
+ const cites = [...line.matchAll(CITE_RE)];
37
+ if (cites.length === 0) {
38
+ out.push(line);
39
+ continue;
40
+ }
41
+ const stripped = line.replace(CITE_RE, "").replace(/\s+$/, "");
42
+ const leaderMatch = stripped.match(PURE_CITE_LEADER_RE);
43
+ if (leaderMatch === null) {
44
+ // Citation shares the line with code — don't touch it.
45
+ inlineSkipped += cites.length;
46
+ out.push(line);
47
+ continue;
48
+ }
49
+ const indent = leaderMatch[1] ?? "";
50
+ const leader = leaderMatch[2] ?? "//";
51
+ const replacement = [];
52
+ let expandedAny = false;
53
+ cites.forEach((m, idx) => {
54
+ const id = `${m[1]}-${m[2]}`;
55
+ const body = resolve(id);
56
+ if (body === null) {
57
+ danglingSkipped += 1;
58
+ replacement.push(`${indent}${leader} §${id}`); // keep dangling cite verbatim
59
+ return;
60
+ }
61
+ if (expandedAny)
62
+ replacement.push(`${indent}${leader}`); // separator between bodies
63
+ for (const bl of body.split(/\r?\n/)) {
64
+ replacement.push(bl.length > 0 ? `${indent}${leader} ${bl}` : `${indent}${leader}`);
65
+ }
66
+ expanded += 1;
67
+ expandedAny = true;
68
+ void idx;
69
+ });
70
+ out.push(...replacement);
71
+ }
72
+ return { text: out.join(eol), expanded, danglingSkipped, inlineSkipped };
73
+ }
74
+ /**
75
+ * Expand every pure-cite line in one source file, resolving ids against the
76
+ * live `.cairn/ground/{decisions,invariants}/` store. Writes in place unless
77
+ * `dryRun`.
78
+ */
79
+ export function expandCitesInFile(opts) {
80
+ const abs = join(opts.repoRoot, opts.filePath);
81
+ const empty = {
82
+ filePath: opts.filePath,
83
+ text: "",
84
+ expanded: 0,
85
+ danglingSkipped: 0,
86
+ inlineSkipped: 0,
87
+ changed: false,
88
+ };
89
+ if (!existsSync(abs))
90
+ return empty;
91
+ let source;
92
+ try {
93
+ source = readFileSync(abs, "utf8");
94
+ }
95
+ catch {
96
+ return empty;
97
+ }
98
+ const result = expandCitesInText(source, (id) => readEntityBody(opts.repoRoot, id));
99
+ const changed = result.text !== source;
100
+ if (changed && opts.dryRun !== true) {
101
+ writeFileSync(abs, result.text, "utf8");
102
+ }
103
+ return { ...result, filePath: opts.filePath, changed };
104
+ }
105
+ /** Dirs the cited-file scan never descends into. */
106
+ const SCAN_SKIP_DIRS = new Set([
107
+ ".git",
108
+ ".cairn",
109
+ "node_modules",
110
+ "dist",
111
+ "build",
112
+ "out",
113
+ "coverage",
114
+ ".next",
115
+ ".turbo",
116
+ ".vercel",
117
+ ]);
118
+ const CITE_SCAN_RE = /§(?:DEC|INV)-[0-9a-f]{7,}/;
119
+ const SCAN_SKIP_EXT = new Set([
120
+ ".png", ".jpg", ".jpeg", ".gif", ".webp", ".ico", ".pdf", ".zip", ".gz",
121
+ ".woff", ".woff2", ".ttf", ".eot", ".mp4", ".mov", ".wasm", ".lock", ".map",
122
+ ]);
123
+ const SCAN_MAX_BYTES = 2_000_000;
124
+ /**
125
+ * Walk the working tree for files that contain a `§DEC-/§INV-` token. The
126
+ * source of truth for un-citing is the source itself, NOT the scope-index —
127
+ * a stale/missing scope-index would silently leave dangling cites behind.
128
+ */
129
+ export function findCitedFiles(repoRoot) {
130
+ const out = [];
131
+ const walk = (absDir, relDir) => {
132
+ let entries;
133
+ try {
134
+ entries = readdirSync(absDir, { withFileTypes: true });
135
+ }
136
+ catch {
137
+ return;
138
+ }
139
+ for (const e of entries) {
140
+ const rel = relDir.length > 0 ? `${relDir}/${e.name}` : e.name;
141
+ if (e.isDirectory()) {
142
+ if (SCAN_SKIP_DIRS.has(e.name))
143
+ continue;
144
+ walk(join(absDir, e.name), rel);
145
+ }
146
+ else if (e.isFile()) {
147
+ const dot = e.name.lastIndexOf(".");
148
+ if (dot !== -1 && SCAN_SKIP_EXT.has(e.name.slice(dot).toLowerCase()))
149
+ continue;
150
+ const abs = join(absDir, e.name);
151
+ try {
152
+ if (statSync(abs).size > SCAN_MAX_BYTES)
153
+ continue;
154
+ if (CITE_SCAN_RE.test(readFileSync(abs, "utf8")))
155
+ out.push(rel);
156
+ }
157
+ catch {
158
+ /* unreadable — skip */
159
+ }
160
+ }
161
+ }
162
+ };
163
+ walk(repoRoot, "");
164
+ return out;
165
+ }
166
+ /**
167
+ * Expand cites across many files. Defaults to the scope-index's cited-file
168
+ * set; pass `files` to target a subset (or when the scope-index is absent).
169
+ */
170
+ export function expandCitesInRepo(opts) {
171
+ const targets = opts.files ?? findCitedFiles(opts.repoRoot);
172
+ const out = {
173
+ files: [],
174
+ filesChanged: 0,
175
+ expanded: 0,
176
+ danglingSkipped: 0,
177
+ inlineSkipped: 0,
178
+ };
179
+ for (const filePath of targets) {
180
+ const r = expandCitesInFile({
181
+ repoRoot: opts.repoRoot,
182
+ filePath,
183
+ ...(opts.dryRun !== undefined ? { dryRun: opts.dryRun } : {}),
184
+ });
185
+ if (r.expanded === 0 && r.danglingSkipped === 0 && r.inlineSkipped === 0) {
186
+ continue; // no cites in this file
187
+ }
188
+ out.files.push(r);
189
+ if (r.changed)
190
+ out.filesChanged += 1;
191
+ out.expanded += r.expanded;
192
+ out.danglingSkipped += r.danglingSkipped;
193
+ out.inlineSkipped += r.inlineSkipped;
194
+ }
195
+ return out;
196
+ }
197
+ //# sourceMappingURL=expand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/cites/expand.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,16 @@
2
2
  * `cairn doctor` — verify the adoption is healthy.
3
3
  *
4
4
  * Pure filesystem reads + a status.json check. No LLM. No subprocess fan-out.
5
- * Returns a structured `DoctorReport` the CLI renders. Exit-code mapping:
6
- * 0 — all checks OK
7
- * 1 at least one error
8
- * 2at least one warning (but no errors)
5
+ * Returns a structured `DoctorReport` the CLI renders.
6
+ *
7
+ * Status semantics:
8
+ * errorbroken adoption; the CLI exits 1.
9
+ * warn — advisory; the CLI prints it but exits 0 (use `--strict` to fail).
10
+ * info — expected/benign state, never counted toward warnings. Used for an
11
+ * ABSENT rebuildable cache (scope-index, *.ledger): those are
12
+ * gitignored by design, so a clean checkout legitimately lacks them.
13
+ * Reserve `warn` for a cache that is present-but-broken (empty /
14
+ * unreadable), which is a real problem.
9
15
  */
10
16
  export type DoctorStatus = "ok" | "warn" | "error" | "info";
11
17
  export interface DoctorCheck {
@@ -2,16 +2,22 @@
2
2
  * `cairn doctor` — verify the adoption is healthy.
3
3
  *
4
4
  * Pure filesystem reads + a status.json check. No LLM. No subprocess fan-out.
5
- * Returns a structured `DoctorReport` the CLI renders. Exit-code mapping:
6
- * 0 — all checks OK
7
- * 1 at least one error
8
- * 2at least one warning (but no errors)
5
+ * Returns a structured `DoctorReport` the CLI renders.
6
+ *
7
+ * Status semantics:
8
+ * errorbroken adoption; the CLI exits 1.
9
+ * warn — advisory; the CLI prints it but exits 0 (use `--strict` to fail).
10
+ * info — expected/benign state, never counted toward warnings. Used for an
11
+ * ABSENT rebuildable cache (scope-index, *.ledger): those are
12
+ * gitignored by design, so a clean checkout legitimately lacks them.
13
+ * Reserve `warn` for a cache that is present-but-broken (empty /
14
+ * unreadable), which is a real problem.
9
15
  */
10
16
  import { existsSync, readFileSync } from "node:fs";
11
17
  import { join } from "node:path";
12
18
  import { which } from "../sensors/shell.js";
13
19
  import { parse as parseYaml } from "yaml";
14
- import { cairnDir, buildDecisionsLedger, buildInvariantsLedger, hasComponentConfig, loadCairnConfig, loadComponentsConfig, matchGlob, walkFs, } from "@isaacriehm/cairn-state";
20
+ import { cairnDir, buildDecisionsLedger, buildInvariantsLedger, hasComponentConfig, loadComponentsConfig, } from "@isaacriehm/cairn-state";
15
21
  import { runComponentCheck } from "../components/check.js";
16
22
  import { semverCmp } from "../migrate/semver.js";
17
23
  import { VERSION } from "../index.js";
@@ -37,7 +43,6 @@ export function runDoctor(opts) {
37
43
  checks.push(checkCairnVersion(opts.repoRoot));
38
44
  // 2. Ground state
39
45
  checks.push(checkScopeIndex(opts.repoRoot));
40
- checks.push(...checkConfigGlobs(opts.repoRoot));
41
46
  checks.push(checkLedger(opts.repoRoot, "decisions"));
42
47
  checks.push(checkLedger(opts.repoRoot, "invariants"));
43
48
  // 3. Sensors
@@ -154,11 +159,12 @@ function checkWorkflowMd(repoRoot) {
154
159
  function checkScopeIndex(repoRoot) {
155
160
  const path = cairnDir(repoRoot, "ground", "scope-index.yaml");
156
161
  if (!existsSync(path)) {
162
+ // Rebuildable, gitignored cache — absent on a clean checkout is benign.
157
163
  return {
158
164
  group: "ground",
159
165
  label: "scope-index",
160
- status: "warn",
161
- detail: "missing — run cairn scope rebuild",
166
+ status: "info",
167
+ detail: "absent (rebuildable) — run cairn scope rebuild to populate",
162
168
  fixCommand: "cairn scope rebuild",
163
169
  };
164
170
  }
@@ -200,98 +206,15 @@ function checkScopeIndex(repoRoot) {
200
206
  };
201
207
  }
202
208
  /** Dirs the config-glob walk never descends into. */
203
- const GLOB_WALK_SKIP_DIRS = new Set([
204
- ".git",
205
- "node_modules",
206
- ".pnpm-store",
207
- "dist",
208
- "build",
209
- ".next",
210
- ".turbo",
211
- ".cache",
212
- ".archive",
213
- "coverage",
214
- ".cairn",
215
- ]);
216
- /**
217
- * Config-glob staleness — warn when a `config.yaml` scope glob matches zero
218
- * files in the working tree. These globs (`high_stakes_globs`,
219
- * `project_globs.{route_handler,dto,generator_source,high_stakes}_globs`) are
220
- * written once at adoption and never reconciled to the tree, so a later
221
- * directory refactor silently neuters high-stakes weighting + the
222
- * route/DTO sensors (they resolve to zero matches with no signal).
223
- *
224
- * Returns [] when the project declares no scope globs (nothing to validate)
225
- * or the tree walk yields nothing. Stale globs collapse into a single warn
226
- * check so the report stays readable; the detail lists a sample.
227
- */
228
- function checkConfigGlobs(repoRoot) {
229
- const cfg = loadCairnConfig(repoRoot);
230
- const pairs = [];
231
- const collect = (source, raw) => {
232
- if (!Array.isArray(raw))
233
- return;
234
- for (const g of raw) {
235
- if (typeof g === "string" && g.length > 0)
236
- pairs.push({ source, glob: g });
237
- }
238
- };
239
- collect("high_stakes_globs", cfg["high_stakes_globs"]);
240
- const projectGlobs = cfg["project_globs"];
241
- if (typeof projectGlobs === "object" && projectGlobs !== null) {
242
- const pg = projectGlobs;
243
- collect("project_globs.route_handler_globs", pg["route_handler_globs"]);
244
- collect("project_globs.dto_globs", pg["dto_globs"]);
245
- collect("project_globs.generator_source_globs", pg["generator_source_globs"]);
246
- collect("project_globs.high_stakes_globs", pg["high_stakes_globs"]);
247
- }
248
- if (pairs.length === 0)
249
- return [];
250
- const files = [];
251
- walkFs({
252
- dir: repoRoot,
253
- skipDirs: GLOB_WALK_SKIP_DIRS,
254
- onFile: (rel) => {
255
- files.push(rel);
256
- },
257
- });
258
- if (files.length === 0)
259
- return [];
260
- const stale = pairs.filter((p) => !files.some((f) => matchGlob(f, p.glob)));
261
- if (stale.length === 0) {
262
- return [
263
- {
264
- group: "ground",
265
- label: "config globs",
266
- status: "ok",
267
- detail: `${pairs.length} scope glob${pairs.length === 1 ? "" : "s"} all match tree files`,
268
- },
269
- ];
270
- }
271
- const sample = stale
272
- .slice(0, 3)
273
- .map((p) => `${p.glob} (${p.source})`)
274
- .join("; ");
275
- const more = stale.length > 3 ? ` (+${stale.length - 3} more)` : "";
276
- return [
277
- {
278
- group: "ground",
279
- label: "config globs",
280
- status: "warn",
281
- detail: `${stale.length} of ${pairs.length} scope glob(s) match zero tree files — ` +
282
- `stale after a directory refactor? high-stakes weighting + route/DTO sensors silently skip these: ${sample}${more}`,
283
- fixCommand: "cairn init --force",
284
- },
285
- ];
286
- }
287
209
  function checkLedger(repoRoot, kind) {
288
210
  const path = cairnDir(repoRoot, "ground", kind, `${kind}.ledger.yaml`);
289
211
  if (!existsSync(path)) {
212
+ // Rebuildable, gitignored cache — absent on a clean checkout is benign.
290
213
  return {
291
214
  group: "ground",
292
215
  label: `${kind}.ledger`,
293
- status: "warn",
294
- detail: "missingrebuilding...",
216
+ status: "info",
217
+ detail: "absent (rebuildable) run cairn fix to populate",
295
218
  fixCommand: "cairn fix",
296
219
  };
297
220
  }
@@ -474,9 +397,12 @@ export async function runFix(opts) {
474
397
  const applied = [];
475
398
  const manual = [];
476
399
  for (const c of report.checks) {
477
- if (c.status !== "warn" && c.status !== "error")
478
- continue;
479
- if (c.label === "scope-index" && opts.rebuildScopeIndexFn !== undefined) {
400
+ // Scope-index is a rebuildable cache: rebuild whenever it is not OK,
401
+ // including the `info` (absent-on-clean-tree) state — `cairn fix` is the
402
+ // one path that should still materialize it.
403
+ if (c.label === "scope-index" &&
404
+ c.status !== "ok" &&
405
+ opts.rebuildScopeIndexFn !== undefined) {
480
406
  try {
481
407
  const r = await opts.rebuildScopeIndexFn(opts.repoRoot);
482
408
  applied.push(`scope-index → ${r.filesClassified} file${r.filesClassified === 1 ? "" : "s"} classified`);
@@ -490,6 +416,8 @@ export async function runFix(opts) {
490
416
  }
491
417
  continue;
492
418
  }
419
+ if (c.status !== "warn" && c.status !== "error")
420
+ continue;
493
421
  manual.push({
494
422
  check: c.label,
495
423
  command: c.fixCommand ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,QAAQ,EACf,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EAEpB,SAAS,EACT,MAAM,GACP,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IACzC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC,WAAW,EAAE,CAAC;AAsBjB,MAAM,UAAU,SAAS,CAAC,IAA0B;IAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,kCAAkC;IAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,kBAAkB;IAClB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAEtD,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvD,wEAAwE;IACxE,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAElE,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7C,MAAM;QACN,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,wEAAwE;AAExE,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,8CAA8C;YACtD,UAAU,EAAE,YAAY;SACzB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,wDAAwD;YAChE,UAAU,EAAE,oBAAoB;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,eAAe,IAAI,MAAM,EACzB,CAAC;YACD,MAAM,CAAC,GAAI,MAAkC,CAAC,eAAe,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,cAAc,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,2DAA2D;SACpE,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,4DAA4D;YACpE,UAAU,EAAE,oBAAoB;SACjC,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/B,yEAAyE;QACzE,qEAAqE;QACrE,2EAA2E;QAC3E,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS;gBACf,CAAC,CAAC,qBAAqB,cAAc,mBAAmB,OAAO,sDAAsD;gBACrH,CAAC,CAAC,qBAAqB,cAAc,wBAAwB,OAAO,qBAAqB;YAC3F,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,yCAAyC;SACpF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,OAAO,sBAAsB;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,6BAA6B;YACrC,UAAU,EAAE,oBAAoB;SACjC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,mCAAmC;YAC3C,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,GAAY,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,yCAAyC;YACjD,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iCAAiC;YACzC,UAAU,EAAE,qBAAqB;SAClC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa;KAC5D,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,MAAM;IACN,cAAc;IACd,aAAa;IACb,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,QAAQ;CACT,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,GAAY,EAAQ,EAAE;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO;QAChC,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,EAAE,GAAG,YAAuC,CAAC;QACnD,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,sCAAsC,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,CAAC;QACL,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,uBAAuB;aAC1F;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK;SACjB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,OAAO;QACL;YACE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,MAAM;YACd,MAAM,EACJ,GAAG,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,yCAAyC;gBAC3E,oGAAoG,MAAM,GAAG,IAAI,EAAE;YACrH,UAAU,EAAE,oBAAoB;SACjC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,QAAgB,EAChB,IAAgC;IAEhC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,IAAI,SAAS;YACvB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,yBAAyB;YACjC,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,KAAK,GAAG,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG,IAAI,SAAS;YACvB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,eAAe,OAAO,EAAE;YAChC,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,GAAG,IAAI,SAAS;QACvB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,GAAG,KAAK,mBAAmB;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,6BAA6B;gBACrC,UAAU,EAAE,oBAAoB;aACjC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL;gBACE,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,YAAY;aACrB;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,QAAQ,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;QACxB,IAAI,EAAE,KAAK,IAAI;YAAE,SAAS;QAC1B,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,sBAAsB;aAC/B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC;QAC/C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QAClC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBAClD,MAAM,EAAE,GAAG,OAAO,mDAAmD;iBACtE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;SAC1E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;aACpC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,YAAY,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO;YACL;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,qBAAqB,MAAM,GAAG,IAAI,EAAE;gBAClE,UAAU,EAAE,wBAAwB;aACrC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,kBAAkB,MAAM,CAAC,YAAY,aAAa;gBACzE,UAAU,EAAE,wBAAwB;aACrC;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL;YACE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,wBAAwB,MAAM,CAAC,UAAU,eAAe;SAChF;KACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AAExE,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAsB,CAAC;YACxE,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC,CAAC;AAC3E,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAmB;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAgD,EAAE,CAAC;IAE/D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;YAAE,SAAS;QAE1D,IAAI,CAAC,CAAC,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CACV,iBAAiB,CAAC,CAAC,eAAe,QAAQ,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,CAC1F,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;iBAC9B,CAAC,CAAC;gBACH,KAAK,GAAG,CAAC;YACX,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/doctor/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * files, run `git add` + `git commit`, return the resulting SHA.
4
4
  *
5
5
  * The caller is responsible for filtering proposals by `class` (only safe is
6
- * auto-applied in v1; code / high-stakes are surfaced for confirm).
6
+ * auto-applied in v1; code is surfaced for confirm).
7
7
  *
8
8
  * No push happens here — the GC sweep + canary verification + push policy is
9
9
  * orchestrated by `runGcBatch` (sweep.ts).
package/dist/gc/apply.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * files, run `git add` + `git commit`, return the resulting SHA.
4
4
  *
5
5
  * The caller is responsible for filtering proposals by `class` (only safe is
6
- * auto-applied in v1; code / high-stakes are surfaced for confirm).
6
+ * auto-applied in v1; code is surfaced for confirm).
7
7
  *
8
8
  * No push happens here — the GC sweep + canary verification + push policy is
9
9
  * orchestrated by `runGcBatch` (sweep.ts).
@@ -2,20 +2,16 @@
2
2
  * Auto-merge classification.
3
3
  *
4
4
  * Given a set of repo-relative paths a commit will touch, return one of:
5
- * safe — formatting, doc regen, frontmatter refresh, generated content,
6
- * archive moves, stub-catalog additions, .cairn/ground/* writes
7
- * code — touches *.ts / *.tsx / *.js outside generator-managed files
8
- * high-stakes — any path matches projectGlobs.high_stakes_globs
5
+ * safe — formatting, doc regen, frontmatter refresh, generated content,
6
+ * archive moves, stub-catalog additions, .cairn/ground/* writes
7
+ * code — touches *.ts / *.tsx / *.js outside generator-managed files
9
8
  *
10
9
  * The classifier is deliberately conservative: when in doubt, escalate. A
11
- * single high-stakes hit dominates the result. A single code hit dominates
12
- * over safe.
10
+ * single code hit dominates over safe.
13
11
  */
14
- import type { ProjectGlobs } from "../sensors/types.js";
15
12
  import type { GcAutoMergeClass } from "./types.js";
16
13
  export interface ClassifyArgs {
17
14
  paths: readonly string[];
18
- projectGlobs?: ProjectGlobs;
19
15
  /**
20
16
  * Globs of paths the cairn considers generator-managed — touching these
21
17
  * stays safe-class even when the extension is .ts. Default: empty.
@@ -2,14 +2,12 @@
2
2
  * Auto-merge classification.
3
3
  *
4
4
  * Given a set of repo-relative paths a commit will touch, return one of:
5
- * safe — formatting, doc regen, frontmatter refresh, generated content,
6
- * archive moves, stub-catalog additions, .cairn/ground/* writes
7
- * code — touches *.ts / *.tsx / *.js outside generator-managed files
8
- * high-stakes — any path matches projectGlobs.high_stakes_globs
5
+ * safe — formatting, doc regen, frontmatter refresh, generated content,
6
+ * archive moves, stub-catalog additions, .cairn/ground/* writes
7
+ * code — touches *.ts / *.tsx / *.js outside generator-managed files
9
8
  *
10
9
  * The classifier is deliberately conservative: when in doubt, escalate. A
11
- * single high-stakes hit dominates the result. A single code hit dominates
12
- * over safe.
10
+ * single code hit dominates over safe.
13
11
  */
14
12
  import { knownExtensions, matchAnyGlob } from "@isaacriehm/cairn-state";
15
13
  /** Patterns the classifier always treats as safe regardless of file type. */
@@ -24,15 +22,11 @@ const DOC_LIKE_EXTS = [".md", ".yaml", ".yml", ".json", ".txt"];
24
22
  /** Source-code extensions that escalate to code-class — the shared registry. */
25
23
  const CODE_EXTS = knownExtensions();
26
24
  export function classifyAutoMerge(args) {
27
- const highStakes = args.projectGlobs?.high_stakes_globs ?? [];
28
- const generated = args.generatorManagedGlobs ?? args.projectGlobs?.generator_source_globs ?? [];
25
+ const generated = args.generatorManagedGlobs ?? [];
29
26
  let cls = "safe";
30
27
  for (const path of args.paths) {
31
- if (highStakes.length > 0 && matchAnyGlob(path, highStakes)) {
32
- return "high-stakes";
33
- }
34
28
  if (cls === "code")
35
- continue; // already escalated; only high-stakes upgrade further
29
+ continue; // already escalated
36
30
  if (isSafePath(path, generated))
37
31
  continue;
38
32
  if (isCodePath(path)) {