@milehimikey/em 1.19.6 → 1.20.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 (102) hide show
  1. package/.claude/skills/event-modeling/SKILL.md +1 -1
  2. package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
  3. package/.claude/skills/event-modeling-conform/reference/conform.md +32 -4
  4. package/.claude/skills/event-modeling-design/SKILL.md +14 -3
  5. package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
  6. package/.claude/skills/event-modeling-discover/reference/extract.md +8 -0
  7. package/.claude/skills/event-modeling-engagement/SKILL.md +1 -1
  8. package/.claude/skills/event-modeling-implement/SKILL.md +7 -2
  9. package/.claude/skills/event-modeling-implement/reference/implement.md +73 -6
  10. package/.claude/skills/event-modeling-review/SKILL.md +1 -1
  11. package/.claude/skills/event-modeling-shared/reference/em-dsl.md +24 -4
  12. package/.claude/skills/event-modeling-shared/reference/methodology.md +16 -0
  13. package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +1 -1
  14. package/.claude/skills/event-modeling-shared/templates/slice.md +6 -1
  15. package/.claude-plugin/marketplace.json +2 -2
  16. package/README.md +11 -1
  17. package/dist/catalog/docBadge.d.ts +16 -0
  18. package/dist/catalog/docBadge.js +50 -0
  19. package/dist/catalog/docBadge.js.map +1 -0
  20. package/dist/catalog/docModelConsistencyValidate.js +9 -2
  21. package/dist/catalog/docModelConsistencyValidate.js.map +1 -1
  22. package/dist/catalog/invTokens.d.ts +49 -0
  23. package/dist/catalog/invTokens.js +94 -0
  24. package/dist/catalog/invTokens.js.map +1 -0
  25. package/dist/catalog/pages.js +48 -1
  26. package/dist/catalog/pages.js.map +1 -1
  27. package/dist/catalog/scenarios.d.ts +4 -0
  28. package/dist/catalog/scenarios.js +4 -1
  29. package/dist/catalog/scenarios.js.map +1 -1
  30. package/dist/catalog/sliceDoc.d.ts +46 -1
  31. package/dist/catalog/sliceDoc.js +90 -2
  32. package/dist/catalog/sliceDoc.js.map +1 -1
  33. package/dist/catalog/sliceDocRender.d.ts +3 -0
  34. package/dist/catalog/sliceDocRender.js +295 -0
  35. package/dist/catalog/sliceDocRender.js.map +1 -0
  36. package/dist/cli/conformSupersede.js +13 -3
  37. package/dist/cli/conformSupersede.js.map +1 -1
  38. package/dist/cli/coverage.d.ts +13 -23
  39. package/dist/cli/coverage.js +51 -91
  40. package/dist/cli/coverage.js.map +1 -1
  41. package/dist/cli/markImplemented.js +21 -3
  42. package/dist/cli/markImplemented.js.map +1 -1
  43. package/dist/cli/refsCheck.d.ts +52 -0
  44. package/dist/cli/refsCheck.js +127 -1
  45. package/dist/cli/refsCheck.js.map +1 -1
  46. package/dist/cli/sliceConform.d.ts +100 -1
  47. package/dist/cli/sliceConform.js +182 -9
  48. package/dist/cli/sliceConform.js.map +1 -1
  49. package/dist/cli/status.js +4 -3
  50. package/dist/cli/status.js.map +1 -1
  51. package/dist/cli/watchStoryline.d.ts +27 -0
  52. package/dist/cli/watchStoryline.js +55 -0
  53. package/dist/cli/watchStoryline.js.map +1 -0
  54. package/dist/cli.js +184 -24
  55. package/dist/cli.js.map +1 -1
  56. package/dist/emit/docJson.d.ts +99 -0
  57. package/dist/emit/docJson.js +197 -0
  58. package/dist/emit/docJson.js.map +1 -0
  59. package/dist/emit/refsJson.d.ts +5 -3
  60. package/dist/emit/refsJson.js +5 -2
  61. package/dist/emit/refsJson.js.map +1 -1
  62. package/dist/mcp/server.js +23 -3
  63. package/dist/mcp/server.js.map +1 -1
  64. package/dist/model/continuation.d.ts +9 -0
  65. package/dist/model/continuation.js +30 -0
  66. package/dist/model/continuation.js.map +1 -1
  67. package/dist/model/rules.d.ts +8 -0
  68. package/dist/model/rules.js +8 -0
  69. package/dist/model/rules.js.map +1 -1
  70. package/dist/model/shapeLint.js +48 -0
  71. package/dist/model/shapeLint.js.map +1 -1
  72. package/dist/model/validate.js +119 -0
  73. package/dist/model/validate.js.map +1 -1
  74. package/dist/parser/ast.d.ts +8 -0
  75. package/dist/parser/parser.js +51 -1
  76. package/dist/parser/parser.js.map +1 -1
  77. package/dist/render/render.js +1 -1
  78. package/dist/render/render.js.map +1 -1
  79. package/dist/render/sliceOverlay.d.ts +7 -2
  80. package/dist/render/sliceOverlay.js +28 -3
  81. package/dist/render/sliceOverlay.js.map +1 -1
  82. package/dist/render/storylinePicker.d.ts +9 -0
  83. package/dist/render/storylinePicker.js +17 -0
  84. package/dist/render/storylinePicker.js.map +1 -0
  85. package/dist/render/viewerHtml.js +1 -1
  86. package/dist/render/viewerHtml.js.map +1 -1
  87. package/package.json +1 -1
  88. package/plugin/.claude-plugin/plugin.json +2 -2
  89. package/plugin/shared/reference/em-dsl.md +24 -4
  90. package/plugin/shared/reference/methodology.md +16 -0
  91. package/plugin/shared/reference/slice-doc-schema.md +1 -1
  92. package/plugin/shared/templates/slice.md +6 -1
  93. package/plugin/skills/conform/SKILL.md +1 -1
  94. package/plugin/skills/conform/reference/conform.md +32 -4
  95. package/plugin/skills/design/SKILL.md +14 -3
  96. package/plugin/skills/discover/SKILL.md +1 -1
  97. package/plugin/skills/discover/reference/extract.md +8 -0
  98. package/plugin/skills/engagement/SKILL.md +1 -1
  99. package/plugin/skills/event-modeling/SKILL.md +1 -1
  100. package/plugin/skills/implement/SKILL.md +7 -2
  101. package/plugin/skills/implement/reference/implement.md +73 -6
  102. package/plugin/skills/review/SKILL.md +1 -1
@@ -16,54 +16,20 @@
16
16
  // export document. Checks that an ID is *cited*, nothing about whether the citing test is good
17
17
  // or passing — that stays with review and CI respectively; no judgment mechanized here.
18
18
  //
19
- // Token format: `INV-<KEY>-n` where `<KEY>` is present in nothing textually — the actual convention
20
- // found in the codebase (templates/slice.md's own Invariants section, reference/conform.md's
21
- // worked example `INV-CHK-4`) uses either a bare running number (`INV-1`, `INV-2`) or a per-slice
22
- // mnemonic prefix (`INV-CHK-3`, `INV-CHK-3a` for a rename) — IDs are hand-authored per
23
- // docs/slice-doc-schema.md, "give each a stable ID", not machine-generated, so no single fixed
24
- // shape is enforced by any `em` command. INV_TOKEN_RE below matches both: `INV-` followed by a
25
- // greedy run of alphanumeric/hyphen segments. Greedy is what keeps `INV-KEY-1` from partially
26
- // matching inside `INV-KEY-12` during *extraction* (`\d+` inside the run always consumes the full
27
- // digit sequence); citation *scanning* below re-anchors with `\b` on the exact ID string for the
28
- // same reason, since that direction is a substring search rather than a token match.
19
+ // Token format and the ownership-section extraction live in catalog/invTokens.ts since GH #402 —
20
+ // a leaf module, so the section-aware doc renderer (catalog/sliceDocRender.ts) can read the same
21
+ // grammar without importing this module (which would close an import cycle through
22
+ // catalog/sliceDoc.ts). Re-exported below so this module's public surface is unchanged.
29
23
  import { readFileSync } from "node:fs";
30
24
  import { join } from "node:path";
31
25
  import { collectModelInvariants } from "../model/model.js";
32
26
  import { continuationOf } from "../model/continuation.js";
33
27
  import { resolveSliceDocJoin } from "../catalog/docJoin.js";
34
28
  import { readSliceDoc } from "../catalog/readSliceDoc.js";
29
+ import { extractInvariantIds, OWNERSHIP_HEADING_RE, ownershipStructuralLines, STRUCTURAL_LINE_RE } from "../catalog/invTokens.js";
30
+ import { isContinuationLine } from "../catalog/sliceDoc.js";
35
31
  import { walkDir } from "../util/walkDir.js";
36
- /** The stable INV token format. `INV-` then one or more alphanumeric/hyphen segments — matches
37
- * both `INV-1`/`INV-2` (the template's bare numbering) and `INV-CHK-4`/`INV-CHK-3a` (the
38
- * per-slice mnemonic style reference/conform.md's own example uses). Exported so tests can
39
- * assert against the exact grammar. */
40
- export const INV_TOKEN_RE = /\bINV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*\b/g;
41
- /** Headings whose content *defines* (or, for `## Delta`, legitimately re-declares) an invariant
42
- * ID for the slice doc it appears in — `## Invariants / Business Rules` itself, and `## Delta`'s
43
- * Added/Modified/Renamed requirement subsections, which introduce/rename IDs "from Invariants
44
- * below" on re-ratification (see templates/slice.md). Every other section — Intent, Scenarios,
45
- * Trigger & Actor, Dependencies & Read Models Affected, Open Questions, ... — is prose that may
46
- * narratively *cite* another slice's ID without this doc owning it (MIL-149: such a mention was
47
- * being cross-credited to the citing slice's own coverage ledger). */
48
- const OWNERSHIP_HEADING_RE = /^##\s+(?:Invariants(?:\s*\/\s*Business Rules)?|Delta)\s*$/i;
49
- /** A line contributes INV tokens only when it's *structural* — a top-level bullet/list item
50
- * (`- ...` / `* ...`, no leading indentation) or a subheading (`### ...` and deeper, since only
51
- * `#`/`##` toggles `inOwnershipSection` above) — never an indented continuation line wrapping a
52
- * multi-line bullet, nor a standalone prose paragraph with no bullet marker (MIL-155). Every
53
- * cross-credit MIL-149 missed turned out to have exactly this shape: a slice's own Invariants
54
- * bullet legitimately explains its rule across several wrapped lines, and a later wrapped line
55
- * names a sibling slice's ID for context — e.g. `request-payment`'s `INV-RP-1` bullet wraps onto
56
- * a line citing `payments-to-request`'s `INV-PTR-2` by way of explaining the exactly-once
57
- * mechanism. The bullet's own *opening* line is structural and trusted for every ID it mentions
58
- * (this also covers `## Delta`'s Renamed bullets, which legitimately declare two IDs — old and
59
- * new — on one line, and its `**MODIFIED (...):** INV-X — ...` bullets, whose bold label isn't
60
- * itself an ID); each wrapped continuation line is prose and contributes nothing. The indentation
61
- * test also covers MIL-156's blessed nested-elaboration-bullet shape: `templates/slice.md`'s
62
- * Invariants section now suggests a rule statement's optional rationale/edge-case detail go on
63
- * its own indented sub-bullet (` - {{...}}`) rather than run on into the rule sentence, purely
64
- * for HTML-render readability — that sub-bullet is indented, so it's already excluded here the
65
- * same as any other continuation line, and never contributes (or steals) an ID. */
66
- const STRUCTURAL_LINE_RE = /^(?:[-*]\s|#{3,6}\s)/;
32
+ export { INV_TOKEN_RE, extractInvariantIds } from "../catalog/invTokens.js";
67
33
  /** Statuses `reference/implement.md`'s coverage gate applies to, by default (MIL-207). Doc
68
34
  * ratification (`draft` -> `reviewed` -> `ready-to-implement`) is the hand-off *before*
69
35
  * implementation, not a claim that implementing code exists yet — a `ready-to-implement` doc
@@ -83,48 +49,6 @@ const IN_SCOPE_STATUSES_WITH_READY = new Set(["ready-to-implement"]);
83
49
  function inScopeStatuses(includeReady) {
84
50
  return includeReady ? IN_SCOPE_STATUSES_WITH_READY : IN_SCOPE_STATUSES_DEFAULT;
85
51
  }
86
- /**
87
- * Extract every distinct `INV-*` token this slice doc *defines*, in first-occurrence order (a
88
- * rule stated once in `## Invariants` and re-declared in a later `## Delta` section dedupes to
89
- * its first appearance — order is for stable, readable output, not a claim about which mention is
90
- * canonical). Scoped to `OWNERSHIP_HEADING_RE`'s sections only, so a doc's prose narratively
91
- * citing another slice's ID elsewhere (Dependencies, Open Questions, ...) doesn't cross-credit
92
- * that ID as this slice's own (MIL-149) — the section ends at the next `#`/`##` heading or EOF,
93
- * same boundary rule sliceDoc.ts's countOpenQuestions() uses, so a `### Added`/`#### Requirement`
94
- * subheading under `## Delta` stays in scope while a sibling `## Scenarios` does not. Within that
95
- * scope, only `STRUCTURAL_LINE_RE`'s bullet/subheading lines contribute — MIL-155 — so a wrapped
96
- * continuation line that legitimately *cites* a sibling slice's ID while explaining this doc's own
97
- * (e.g. an Invariants bullet's exactly-once rule wrapping onto a line naming another slice's
98
- * queue-draining ID) doesn't cross-credit that citation just because it sits inside the ownership
99
- * section too.
100
- */
101
- export function extractInvariantIds(body) {
102
- const seen = new Set();
103
- const ids = [];
104
- for (const line of ownershipStructuralLines(body)) {
105
- for (const m of line.matchAll(INV_TOKEN_RE)) {
106
- if (!seen.has(m[0])) {
107
- seen.add(m[0]);
108
- ids.push(m[0]);
109
- }
110
- }
111
- }
112
- return ids;
113
- }
114
- /** The lines `extractInvariantIds` reads: structural lines inside an ownership section. */
115
- function ownershipStructuralLines(body) {
116
- const out = [];
117
- let inOwnershipSection = false;
118
- for (const line of body.split(/\r?\n/)) {
119
- if (/^#{1,2}\s/.test(line)) {
120
- inOwnershipSection = OWNERSHIP_HEADING_RE.test(line);
121
- continue;
122
- }
123
- if (inOwnershipSection && STRUCTURAL_LINE_RE.test(line))
124
- out.push(line);
125
- }
126
- return out;
127
- }
128
52
  /** A doc's rule-statement label for an id: `**INV-X:**` or `**INV-X**:` — the template's
129
53
  * declaring bullet shape (`- **INV-ORD-1:** rule`). */
130
54
  const DECLARATION_LABEL_RE = /\*\*(INV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)(?::\*\*|\*\*:)/g;
@@ -149,21 +73,57 @@ export function extractDeclaredInvariantLabels(body) {
149
73
  }
150
74
  return ids;
151
75
  }
76
+ /** A declaring label with its rule text: `**INV-X:**` / `**INV-X**:` (an optional parenthesised
77
+ * qualifier tolerated, `**INV-CAP-1 (idempotency):**`), capturing the rest of the line. */
78
+ const DECLARING_RULE_RE = /\*\*(INV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)(?:\s+\([^)]*\))?(?::\*\*|\*\*:)\s*([^\n]*)/g;
152
79
  /**
153
80
  * GH #286: like `extractDeclaredInvariantLabels`, but also returns the rule text after the label
154
- * (`- **INV-X:** If `parentId` is set, ...`), trimmed. Used only by the advisory
155
- * `command-second-intent` lint (catalog/invariantsValidate.ts).
81
+ * (`- **INV-X:** If `parentId` is set, ...`), trimmed. Since GH #401 (round 3) a soft-wrapped
82
+ * declaring bullet's indented continuation lines are joined into its text with single spaces
83
+ * (`isContinuationLine` — nested elaboration bullets stay excluded, as does everything MIL-155
84
+ * excludes from ID extraction): real docs wrap their rule sentences
85
+ * (examples/order-fulfillment/slices/capture-payment.md's INV-CAP-1), and a single-line capture
86
+ * exported 4 of that estate's 7 catalog entries mid-sentence. Walks the ownership sections
87
+ * line-by-line itself — `ownershipStructuralLines` drops the continuation lines on purpose
88
+ * (MIL-155, so a wrapped line's cross-citation never contributes an ID) and must stay that way
89
+ * for `extractInvariantIds`. Consumers: the advisory `command-second-intent` lint
90
+ * (catalog/invariantsValidate.ts) — unaffected by the join, since `conditionalField` matches
91
+ * patterns anchored at `^` and the join only appends tail text — and `em export --doc-json`'s
92
+ * doc-declared invariant fallback (emit/docJson.ts), which needs the full sentence.
156
93
  */
157
94
  export function extractDeclaredInvariantRules(body) {
158
95
  const seen = new Set();
159
96
  const out = [];
160
- for (const line of ownershipStructuralLines(body)) {
161
- for (const m of line.matchAll(/\*\*(INV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)(?:\s+\([^)]*\))?(?::\*\*|\*\*:)\s*([^\n]*)/g)) {
162
- if (seen.has(m[1]))
163
- continue;
164
- seen.add(m[1]);
165
- out.push({ id: m[1], text: m[2].trim() });
97
+ let inOwnershipSection = false;
98
+ let open = null; // the entry still accepting continuation lines
99
+ const byId = new Map();
100
+ for (const line of body.split(/\r?\n/)) {
101
+ if (/^#{1,2}\s/.test(line)) {
102
+ inOwnershipSection = OWNERSHIP_HEADING_RE.test(line);
103
+ open = null;
104
+ continue;
105
+ }
106
+ if (!inOwnershipSection)
107
+ continue;
108
+ if (STRUCTURAL_LINE_RE.test(line)) {
109
+ open = null;
110
+ for (const m of line.matchAll(DECLARING_RULE_RE)) {
111
+ if (seen.has(m[1]))
112
+ continue;
113
+ seen.add(m[1]);
114
+ const entry = { id: m[1], text: m[2].trim() };
115
+ out.push(entry);
116
+ byId.set(m[1], entry);
117
+ open = { id: m[1] };
118
+ }
119
+ continue;
120
+ }
121
+ if (open && isContinuationLine(line)) {
122
+ const entry = byId.get(open.id);
123
+ entry.text = `${entry.text} ${line.trim()}`.trim();
124
+ continue;
166
125
  }
126
+ open = null; // a blank line, nested bullet, or column-0 prose ends the wrap
167
127
  }
168
128
  return out;
169
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/cli/coverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/cli/coverage.ts"],"names":[],"mappings":"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"}
@@ -63,7 +63,9 @@ const IMPLEMENTED_STATUS = "implemented";
63
63
  * MIL-284: the shipped record, written beside `implementedIn:` — `shippedVersion:` (the doc's
64
64
  * `version:` now), `shippedRef:` (its `ratifiedRef:`, when it has one) and `shippedOn:`
65
65
  * (`shippedOn`, the local date). Each key that already has a line is replaced in place; the rest
66
- * are inserted right after `implementedIn:`. Since MIL-283 this record, not `status`, is what
66
+ * are inserted right after `implementedIn:`. GH #392: when the doc has no `ratifiedRef:`, an existing
67
+ * `shippedRef:` line (the previous version's) is REMOVED instead, so the record reads as a `--no-ref`
68
+ * ship. Since MIL-283 this record, not `status`, is what
67
69
  * every lifecycle reader decides on (`shippedRecordOf` in catalog/sliceDoc.ts), so
68
70
  * `shippedVersion:`/`shippedRef:` are ALWAYS written on a real flip — a v2 merge that left a
69
71
  * stale `shippedVersion: 1` beside `version: 2` would read as an unshipped delta forever. Only
@@ -85,9 +87,25 @@ function withShippedRecord(inner, eol, shippedOn) {
85
87
  const edits = [];
86
88
  const fresh = [];
87
89
  for (const [key, value] of wanted) {
88
- if (value === null)
89
- continue;
90
90
  const m = fieldLineRegex(key).exec(inner);
91
+ if (value === null) {
92
+ // GH #392: a doc with no `ratifiedRef` must not keep the previous version's `shippedRef:`
93
+ // line -- remove it (line plus its eol) so the record reads as a `--no-ref` ship.
94
+ if (key === "shippedRef" && m) {
95
+ let start = m.index;
96
+ let end = m.index + m[0].length;
97
+ const tail = /^\r?\n/.exec(inner.slice(end));
98
+ if (tail)
99
+ end += tail[0].length;
100
+ else {
101
+ const head = /\r?\n$/.exec(inner.slice(0, start));
102
+ if (head)
103
+ start -= head[0].length;
104
+ }
105
+ edits.push({ index: start, oldLen: end - start, next: "" });
106
+ }
107
+ continue;
108
+ }
91
109
  if (m)
92
110
  edits.push({ index: m.index, oldLen: m[0].length, next: `${m[1]}${value}` });
93
111
  else
@@ -1 +1 @@
1
- {"version":3,"file":"markImplemented.js","sourceRoot":"","sources":["../../src/cli/markImplemented.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markImplemented.js","sourceRoot":"","sources":["../../src/cli/markImplemented.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,58 @@ export declare function classifyRef(run: GitRunner, baseDir: string, ref: string
60
60
  status: RefStatus;
61
61
  detail: string | null;
62
62
  };
63
+ export type OrderStatus = "ratified-first" | "code-before-ratification" | "undecidable";
64
+ export interface OrderResult {
65
+ sliceKey: string;
66
+ /** Same convention as `RefResult.path`: the doc the ratification was read from. */
67
+ path: string;
68
+ ratifiedRef: string;
69
+ /** The earliest commit found to touch something other than the slice's own doc before
70
+ * `ratifiedRef`, when `status` is `code-before-ratification`; otherwise `null`. */
71
+ commit: string | null;
72
+ status: OrderStatus;
73
+ detail: string | null;
74
+ }
75
+ /**
76
+ * Walk from `target`'s merge-base with `ratifiedRef` up to `ratifiedRef` itself, looking for a
77
+ * commit that already touched a path other than `docPath` (the slice's own doc) — evidence that
78
+ * implementation work predates the sign-off it should follow. Commits strictly between the fork
79
+ * point and `ratifiedRef` are "before ratification" by construction (`ratifiedRef` is excluded
80
+ * from that scan and checked separately, below, since a single commit that bundles the doc edit
81
+ * with code has no decidable order *within itself*).
82
+ *
83
+ * `docPath` must be REPO-ROOT-relative (forward slashes), because that is what
84
+ * `git diff-tree --name-only` prints — for a model directory nested in a larger repository
85
+ * (`models/shop/model.em`), the slice doc shows up as `models/shop/slices/pay.md`, never
86
+ * `slices/pay.md`. `checkRatificationOrder` below resolves it (`repoRelativeDocPath`); a caller
87
+ * handing in the model-dir-relative path would misread every doc-only commit of a nested model
88
+ * as touching code.
89
+ */
90
+ export declare function classifyRatificationOrder(run: GitRunner, baseDir: string, ratifiedRef: string, target: string, docPath: string, shallow: boolean): {
91
+ status: OrderStatus;
92
+ commit: string | null;
93
+ detail: string | null;
94
+ };
95
+ /** The repo-root-relative path of `docRelPath` (a path relative to the model's directory,
96
+ * `slices/<key>.md`), in the forward-slash form `git diff-tree --name-only` prints. `repoRoot`
97
+ * comes from `rev-parse --show-toplevel` and is already fully resolved; `baseDir` gets the same
98
+ * `realpathSync` treatment before `relative()` can compare the two meaningfully (macOS's
99
+ * `/tmp`/`$TMPDIR` are symlinks into `/private/...` — the exact discipline metrics.ts applies
100
+ * for its own repo-relative paths). */
101
+ export declare function repoRelativeDocPath(repoRoot: string, baseDir: string, docRelPath: string): string;
102
+ /**
103
+ * The GH #399 advisory ordering check, in `checkRefs`' own shape: one `OrderResult` per slice
104
+ * doc that carries a `ratifiedRef` (the same docs `checkRefs` already reads), run against the
105
+ * same `baseDir`/`reachableFrom`. Deliberately returns no `ok` field — nothing here is ever a
106
+ * pass/fail gate (R5); the CLI never derives an exit code from this list.
107
+ *
108
+ * The reported `path` stays model-dir-relative (`slices/<key>.md`), the `RefResult.path`
109
+ * convention; the path handed to `classifyRatificationOrder` for comparison against
110
+ * `git diff-tree` output is repo-root-relative (see `repoRelativeDocPath`) — for a model whose
111
+ * directory is nested in a larger repository the two differ, and comparing the wrong one
112
+ * misreads every doc-only commit as touching code.
113
+ */
114
+ export declare function checkRatificationOrder(model: NormalizedModel, refs: RefsResult, baseDir: string, target: string, shallow: boolean, run?: GitRunner): OrderResult[];
63
115
  /**
64
116
  * Check every recorded ref on every slice doc of `model` against `reachableFrom`. `baseDir` is the
65
117
  * `.em` file's directory (the docs' repository is located from it with `-C`, never the process
@@ -20,7 +20,8 @@
20
20
  //
21
21
  // Kinded `conformedAt:` values (`build:1234`, GH #261) are not git revisions and are skipped —
22
22
  // `parseConformedAt` decides. Docs with no ref fields are not reported.
23
- import { existsSync, readFileSync } from "node:fs";
23
+ import { existsSync, readFileSync, realpathSync } from "node:fs";
24
+ import { relative, resolve } from "node:path";
24
25
  import { readSliceDoc } from "../catalog/readSliceDoc.js";
25
26
  import { hasUsableFrontmatter, parseConformedAt } from "../catalog/sliceDoc.js";
26
27
  import { realGit } from "./diff-inputs.js";
@@ -43,6 +44,131 @@ export function classifyRef(run, baseDir, ref, target, shallow) {
43
44
  return { status: "not-ancestor", detail: `resolves but is not an ancestor of ${target.slice(0, 7)} — reachable only from a branch that was squash/rebase-merged and deleted` };
44
45
  return { status: "undecidable", detail: `git merge-base failed: ${anc.stderr.trim() || `exit ${anc.status}`}` };
45
46
  }
47
+ /**
48
+ * Walk from `target`'s merge-base with `ratifiedRef` up to `ratifiedRef` itself, looking for a
49
+ * commit that already touched a path other than `docPath` (the slice's own doc) — evidence that
50
+ * implementation work predates the sign-off it should follow. Commits strictly between the fork
51
+ * point and `ratifiedRef` are "before ratification" by construction (`ratifiedRef` is excluded
52
+ * from that scan and checked separately, below, since a single commit that bundles the doc edit
53
+ * with code has no decidable order *within itself*).
54
+ *
55
+ * `docPath` must be REPO-ROOT-relative (forward slashes), because that is what
56
+ * `git diff-tree --name-only` prints — for a model directory nested in a larger repository
57
+ * (`models/shop/model.em`), the slice doc shows up as `models/shop/slices/pay.md`, never
58
+ * `slices/pay.md`. `checkRatificationOrder` below resolves it (`repoRelativeDocPath`); a caller
59
+ * handing in the model-dir-relative path would misread every doc-only commit of a nested model
60
+ * as touching code.
61
+ */
62
+ export function classifyRatificationOrder(run, baseDir, ratifiedRef, target, docPath, shallow) {
63
+ if (shallow) {
64
+ return { status: "undecidable", commit: null, detail: "shallow clone — history is truncated, order cannot be decided (checkout with fetch-depth: 0)" };
65
+ }
66
+ const resolved = git(run, baseDir, ["cat-file", "-e", `${ratifiedRef}^{commit}`]);
67
+ if (resolved.status !== 0) {
68
+ return { status: "undecidable", commit: null, detail: "ratifiedRef does not resolve to a commit — see the ratifiedRef row above" };
69
+ }
70
+ const touchedFiles = (sha) => {
71
+ const diff = git(run, baseDir, ["diff-tree", "--no-commit-id", "--name-only", "-r", sha]);
72
+ if (diff.status !== 0)
73
+ return { ok: false, detail: `git diff-tree failed on ${sha.slice(0, 7)}: ${diff.stderr.trim() || `exit ${diff.status}`}` };
74
+ return { ok: true, files: diff.stdout.split("\n").map((l) => l.trim()).filter((l) => l.length > 0) };
75
+ };
76
+ const base = git(run, baseDir, ["merge-base", ratifiedRef, target]);
77
+ if (base.status !== 0) {
78
+ return { status: "undecidable", commit: null, detail: `git merge-base failed: ${base.stderr.trim() || `exit ${base.status}`}` };
79
+ }
80
+ const forkPoint = base.stdout.trim();
81
+ if (forkPoint !== ratifiedRef) {
82
+ const list = git(run, baseDir, ["rev-list", `${forkPoint}..${ratifiedRef}`]);
83
+ if (list.status !== 0) {
84
+ return { status: "undecidable", commit: null, detail: `git rev-list failed: ${list.stderr.trim() || `exit ${list.status}`}` };
85
+ }
86
+ // rev-list orders newest first; drop the first entry (ratifiedRef itself, checked separately
87
+ // below) and walk the rest oldest-relevant-first so a reported commit is the earliest offender.
88
+ const before = list.stdout.split("\n").map((l) => l.trim()).filter((l) => l.length > 0).slice(1).reverse();
89
+ for (const sha of before) {
90
+ const files = touchedFiles(sha);
91
+ if (!files.ok)
92
+ return { status: "undecidable", commit: null, detail: files.detail };
93
+ if (files.files.some((f) => f !== docPath)) {
94
+ return {
95
+ status: "code-before-ratification",
96
+ commit: sha,
97
+ detail: `commit ${sha.slice(0, 7)} touched code other than ${docPath} before ${ratifiedRef.slice(0, 7)} was ratified — the doc may describe code that already existed rather than the other way round`,
98
+ };
99
+ }
100
+ }
101
+ }
102
+ // No earlier commit touched anything but the doc. Last check: does the ratification commit
103
+ // itself bundle code alongside the doc edit? That commit has no decidable internal order.
104
+ const own = touchedFiles(ratifiedRef);
105
+ if (!own.ok)
106
+ return { status: "undecidable", commit: null, detail: own.detail };
107
+ if (own.files.some((f) => f !== docPath)) {
108
+ return {
109
+ status: "undecidable",
110
+ commit: null,
111
+ detail: `${ratifiedRef.slice(0, 7)} (the ratification commit) also touches code other than ${docPath} — a single commit has no decidable order within itself`,
112
+ };
113
+ }
114
+ return { status: "ratified-first", commit: null, detail: null };
115
+ }
116
+ /** The repo-root-relative path of `docRelPath` (a path relative to the model's directory,
117
+ * `slices/<key>.md`), in the forward-slash form `git diff-tree --name-only` prints. `repoRoot`
118
+ * comes from `rev-parse --show-toplevel` and is already fully resolved; `baseDir` gets the same
119
+ * `realpathSync` treatment before `relative()` can compare the two meaningfully (macOS's
120
+ * `/tmp`/`$TMPDIR` are symlinks into `/private/...` — the exact discipline metrics.ts applies
121
+ * for its own repo-relative paths). */
122
+ export function repoRelativeDocPath(repoRoot, baseDir, docRelPath) {
123
+ return relative(repoRoot, resolve(realpathSync(resolve(baseDir)), docRelPath)).split("\\").join("/");
124
+ }
125
+ /**
126
+ * The GH #399 advisory ordering check, in `checkRefs`' own shape: one `OrderResult` per slice
127
+ * doc that carries a `ratifiedRef` (the same docs `checkRefs` already reads), run against the
128
+ * same `baseDir`/`reachableFrom`. Deliberately returns no `ok` field — nothing here is ever a
129
+ * pass/fail gate (R5); the CLI never derives an exit code from this list.
130
+ *
131
+ * The reported `path` stays model-dir-relative (`slices/<key>.md`), the `RefResult.path`
132
+ * convention; the path handed to `classifyRatificationOrder` for comparison against
133
+ * `git diff-tree` output is repo-root-relative (see `repoRelativeDocPath`) — for a model whose
134
+ * directory is nested in a larger repository the two differ, and comparing the wrong one
135
+ * misreads every doc-only commit as touching code.
136
+ */
137
+ export function checkRatificationOrder(model, refs, baseDir, target, shallow, run = realGit) {
138
+ // One toplevel resolution per run, not per slice. Skipped on a shallow clone — classify
139
+ // short-circuits to `undecidable` before ever comparing paths. A toplevel failure (outside a
140
+ // work tree — checkRefs normally refuses first, but this function is exported on its own)
141
+ // makes every result `undecidable` rather than guessing at a root.
142
+ let repoRoot = null;
143
+ let toplevelError = null;
144
+ if (!shallow) {
145
+ const top = git(run, baseDir, ["rev-parse", "--show-toplevel"]);
146
+ if (top.status === 0 && top.stdout.trim() !== "")
147
+ repoRoot = top.stdout.trim();
148
+ else
149
+ toplevelError = `git rev-parse --show-toplevel failed: ${top.stderr.trim() || `exit ${top.status}`}`;
150
+ }
151
+ const results = [];
152
+ const seen = new Set();
153
+ model.slices.forEach((_slice, i) => {
154
+ const sliceKey = refs.sliceKeys[i];
155
+ if (seen.has(sliceKey))
156
+ return;
157
+ seen.add(sliceKey);
158
+ const doc = readSliceDoc(baseDir, sliceKey);
159
+ if (!doc || !hasUsableFrontmatter(doc) || doc.ratifiedRef === null)
160
+ return;
161
+ const path = `slices/${sliceKey}.md`;
162
+ if (toplevelError !== null) {
163
+ results.push({ sliceKey, path, ratifiedRef: doc.ratifiedRef, commit: null, status: "undecidable", detail: toplevelError });
164
+ return;
165
+ }
166
+ const docPath = repoRoot !== null ? repoRelativeDocPath(repoRoot, baseDir, path) : path; // shallow: unused by classify
167
+ const { status, commit, detail } = classifyRatificationOrder(run, baseDir, doc.ratifiedRef, target, docPath, shallow);
168
+ results.push({ sliceKey, path, ratifiedRef: doc.ratifiedRef, commit, status, detail });
169
+ });
170
+ return results;
171
+ }
46
172
  /**
47
173
  * Check every recorded ref on every slice doc of `model` against `reachableFrom`. `baseDir` is the
48
174
  * `.em` file's directory (the docs' repository is located from it with `-C`, never the process
@@ -1 +1 @@
1
- {"version":3,"file":"refsCheck.js","sourceRoot":"","sources":["../../src/cli/refsCheck.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,kGAAkG;AAClG,+FAA+F;AAC/F,iGAAiG;AACjG,6FAA6F;AAC7F,EAAE;AACF,+DAA+D;AAC/D,yFAAyF;AACzF,gGAAgG;AAChG,mEAAmE;AACnE,8EAA8E;AAC9E,8FAA8F;AAC9F,2EAA2E;AAC3E,2FAA2F;AAC3F,wFAAwF;AACxF,mFAAmF;AACnF,EAAE;AACF,+FAA+F;AAC/F,wEAAwE;AACxE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAa,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAoDtD,SAAS,GAAG,CAAC,GAAc,EAAE,OAAe,EAAE,IAAc;IAC1D,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,WAAW,CAAC,GAAc,EAAE,OAAe,EAAE,GAAW,EAAE,MAAc,EAAE,OAAgB;IACxG,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,qGAAqG,EAAE,CAAC;IAClJ,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,mHAAmH,EAAE,CAAC;IAC/J,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,sCAAsC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,2EAA2E,EAAE,CAAC;IACrM,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,0BAA0B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;AAClH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB,EAAE,IAAgB,EAAE,OAAe,EAAE,aAAqB,EAAE,MAAiB,OAAO;IAClI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAC3D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,4EAA4E,EAAE,CAAC;IACxH,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,aAAa,WAAW,CAAC,CAAC,CAAC;IACpG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,aAAa,4EAA4E,EAAE,CAAC;IAChJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;IAEnF,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/C,MAAM,IAAI,GAAG,UAAU,QAAQ,KAAK,CAAC;QACrC,MAAM,MAAM,GAAqC;YAC/C,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;YAChC,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC;YAC9B,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;SACvH,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,WAAW,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,aAAa;YACb,MAAM,EAAE,SAAS;YACjB,OAAO;YACP,WAAW;YACX,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,OAAO;YACP,MAAM,EAAE,EAAE;YACV,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;SAClD;KACF,CAAC;AACJ,CAAC;AAED;oEACoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;SAC9B,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;8FAC8F;AAC9F,MAAM,UAAU,eAAe,CAC7B,MAAuB,EACvB,QAAkB,EAClB,QAAkB,EAClB,QAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxG,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;IACrD,MAAM,cAAc,GAAuB,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,4FAA4F;IAC5F,mDAAmD;IACnD,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAE,MAAsB,EAAE,EAAE;QAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpD,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;iBAC/C,CAAC;gBACJ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACf,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,IAAI;QAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE9E,MAAM,MAAM,GAAsB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;;YAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9F,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE;QAC5F,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"refsCheck.js","sourceRoot":"","sources":["../../src/cli/refsCheck.ts"],"names":[],"mappings":"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"}