@milehimikey/em 1.19.7 → 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.
- package/.claude/skills/event-modeling/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/reference/conform.md +29 -1
- package/.claude/skills/event-modeling-design/SKILL.md +14 -3
- package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
- package/.claude/skills/event-modeling-discover/reference/extract.md +8 -0
- package/.claude/skills/event-modeling-engagement/SKILL.md +1 -1
- package/.claude/skills/event-modeling-implement/SKILL.md +7 -2
- package/.claude/skills/event-modeling-implement/reference/implement.md +73 -6
- package/.claude/skills/event-modeling-review/SKILL.md +1 -1
- package/.claude/skills/event-modeling-shared/reference/em-dsl.md +22 -2
- package/.claude/skills/event-modeling-shared/reference/methodology.md +16 -0
- package/.claude/skills/event-modeling-shared/templates/slice.md +6 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/dist/catalog/docBadge.d.ts +16 -0
- package/dist/catalog/docBadge.js +50 -0
- package/dist/catalog/docBadge.js.map +1 -0
- package/dist/catalog/docModelConsistencyValidate.js +9 -2
- package/dist/catalog/docModelConsistencyValidate.js.map +1 -1
- package/dist/catalog/invTokens.d.ts +49 -0
- package/dist/catalog/invTokens.js +94 -0
- package/dist/catalog/invTokens.js.map +1 -0
- package/dist/catalog/pages.js +48 -1
- package/dist/catalog/pages.js.map +1 -1
- package/dist/catalog/scenarios.d.ts +4 -0
- package/dist/catalog/scenarios.js +4 -1
- package/dist/catalog/scenarios.js.map +1 -1
- package/dist/catalog/sliceDoc.d.ts +46 -1
- package/dist/catalog/sliceDoc.js +90 -2
- package/dist/catalog/sliceDoc.js.map +1 -1
- package/dist/catalog/sliceDocRender.d.ts +3 -0
- package/dist/catalog/sliceDocRender.js +295 -0
- package/dist/catalog/sliceDocRender.js.map +1 -0
- package/dist/cli/coverage.d.ts +13 -23
- package/dist/cli/coverage.js +51 -91
- package/dist/cli/coverage.js.map +1 -1
- package/dist/cli/refsCheck.d.ts +52 -0
- package/dist/cli/refsCheck.js +127 -1
- package/dist/cli/refsCheck.js.map +1 -1
- package/dist/cli/sliceConform.d.ts +57 -1
- package/dist/cli/sliceConform.js +109 -9
- package/dist/cli/sliceConform.js.map +1 -1
- package/dist/cli/watchStoryline.d.ts +27 -0
- package/dist/cli/watchStoryline.js +55 -0
- package/dist/cli/watchStoryline.js.map +1 -0
- package/dist/cli.js +161 -7
- package/dist/cli.js.map +1 -1
- package/dist/emit/docJson.d.ts +99 -0
- package/dist/emit/docJson.js +197 -0
- package/dist/emit/docJson.js.map +1 -0
- package/dist/emit/refsJson.d.ts +5 -3
- package/dist/emit/refsJson.js +5 -2
- package/dist/emit/refsJson.js.map +1 -1
- package/dist/mcp/server.js +23 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/continuation.d.ts +9 -0
- package/dist/model/continuation.js +30 -0
- package/dist/model/continuation.js.map +1 -1
- package/dist/model/rules.d.ts +8 -0
- package/dist/model/rules.js +8 -0
- package/dist/model/rules.js.map +1 -1
- package/dist/model/shapeLint.js +48 -0
- package/dist/model/shapeLint.js.map +1 -1
- package/dist/model/validate.js +119 -0
- package/dist/model/validate.js.map +1 -1
- package/dist/parser/ast.d.ts +8 -0
- package/dist/parser/parser.js +51 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/render/render.js +1 -1
- package/dist/render/render.js.map +1 -1
- package/dist/render/sliceOverlay.d.ts +7 -2
- package/dist/render/sliceOverlay.js +28 -3
- package/dist/render/sliceOverlay.js.map +1 -1
- package/dist/render/storylinePicker.d.ts +9 -0
- package/dist/render/storylinePicker.js +17 -0
- package/dist/render/storylinePicker.js.map +1 -0
- package/dist/render/viewerHtml.js +1 -1
- package/dist/render/viewerHtml.js.map +1 -1
- package/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/shared/reference/em-dsl.md +22 -2
- package/plugin/shared/reference/methodology.md +16 -0
- package/plugin/shared/templates/slice.md +6 -1
- package/plugin/skills/conform/SKILL.md +1 -1
- package/plugin/skills/conform/reference/conform.md +29 -1
- package/plugin/skills/design/SKILL.md +14 -3
- package/plugin/skills/discover/SKILL.md +1 -1
- package/plugin/skills/discover/reference/extract.md +8 -0
- package/plugin/skills/engagement/SKILL.md +1 -1
- package/plugin/skills/event-modeling/SKILL.md +1 -1
- package/plugin/skills/implement/SKILL.md +7 -2
- package/plugin/skills/implement/reference/implement.md +73 -6
- package/plugin/skills/review/SKILL.md +1 -1
package/dist/cli/refsCheck.d.ts
CHANGED
|
@@ -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
|
package/dist/cli/refsCheck.js
CHANGED
|
@@ -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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"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { NormalizedModel } from "../model/model.js";
|
|
2
2
|
import { RefsResult } from "../model/refs.js";
|
|
3
|
-
import { FindingsDoc } from "./findings.js";
|
|
3
|
+
import { Finding, FindingsDoc } from "./findings.js";
|
|
4
|
+
/**
|
|
5
|
+
* `--at`'s shape check (GH #261's `<kind>:<id>` carve-out), factored out of
|
|
6
|
+
* `applyConformFrontmatter` below so GH #400's non-writing `--preview` path
|
|
7
|
+
* (`runSliceConformPreview`) validates the exact same way rather than keeping two copies of this
|
|
8
|
+
* regex in sync by hand — "kinded values supported as today" stays true by construction.
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateAtRevision(at: string): {
|
|
11
|
+
ok: true;
|
|
12
|
+
value: string;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
4
17
|
export type ApplyConformResult = {
|
|
5
18
|
ok: true;
|
|
6
19
|
content: string;
|
|
@@ -102,3 +115,46 @@ export type RunSliceConformResult = {
|
|
|
102
115
|
* every doc/note path in `em` uses.
|
|
103
116
|
*/
|
|
104
117
|
export declare function runSliceConform(model: NormalizedModel, refs: RefsResult, baseDir: string, sliceKey: string, at: string, on: string, skipFindingsCheck?: boolean): RunSliceConformResult;
|
|
118
|
+
export type RunSliceConformPreviewResult = {
|
|
119
|
+
ok: true;
|
|
120
|
+
path: string;
|
|
121
|
+
status: string | null;
|
|
122
|
+
version: number | null;
|
|
123
|
+
at: string;
|
|
124
|
+
/** GH #385-style: every `conformance/<date>[-<name>]-findings.json` whose `revision`
|
|
125
|
+
* matched `--at` — same lookup `runSliceConform`'s findings-check gate uses, reused
|
|
126
|
+
* read-only here (empty when none match, same "note, not a refusal" shape). */
|
|
127
|
+
findingsFiles: string[];
|
|
128
|
+
/** The unruled (`locus: null`), in-scope-for-this-slice findings across `findingsFiles`,
|
|
129
|
+
* flattened — what a real certify at this `--at` would currently refuse on. `--preview`
|
|
130
|
+
* never refuses on this; it's reported for the human/agent to act on. */
|
|
131
|
+
unruledFindings: Finding[];
|
|
132
|
+
} | {
|
|
133
|
+
ok: false;
|
|
134
|
+
message: string;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* GH #400: `em slice conform --preview` — the same doc-resolution and findings-check-gate READ
|
|
138
|
+
* `runSliceConform` performs, but legal for a slice that hasn't shipped (the shipped-status and
|
|
139
|
+
* `implementedIn:` preconditions are waived — there's no code to certify yet, which is exactly
|
|
140
|
+
* the pre-ship use this mode exists for) and NEVER writes anything: no `applyConformFrontmatter`
|
|
141
|
+
* call, no `conformedVersion`/`conformedAt`/`conformedOn`, ever. `status`/`version` come straight
|
|
142
|
+
* off the already-parsed doc join (`resolveSliceDocJoin`) rather than a second frontmatter read.
|
|
143
|
+
*/
|
|
144
|
+
export declare function runSliceConformPreview(model: NormalizedModel, refs: RefsResult, baseDir: string, sliceKey: string, at: string): RunSliceConformPreviewResult;
|
|
145
|
+
/**
|
|
146
|
+
* GH #400's `--write-findings` opt-in: persists a preview run's own `unruledFindings` as a
|
|
147
|
+
* normal, schema-`1.0` `conformance/<on>-<sliceKey>-preview-findings.json` — the one write this
|
|
148
|
+
* command is allowed to make, and never on the slice doc. Ids are renumbered `1..N` in the order
|
|
149
|
+
* `runSliceConformPreview` returned them (deterministic: file order from `findFindingsForRevision`,
|
|
150
|
+
* each file's own ascending order) rather than kept from their source file, since several source
|
|
151
|
+
* files' ids are only unique WITHIN that file — this is its own, fresh findings record, not an
|
|
152
|
+
* edit to the files it read from. By default (no `--write-findings`) a preview run touches no
|
|
153
|
+
* file at all — "ephemeral" — so it can never add anything for `em state set-conformance` or
|
|
154
|
+
* `em status` to trip over; writing this file is what makes that gate interaction deliberate: a
|
|
155
|
+
* reserved `-preview-findings.json` suffix a hand-authored conform sweep never collides with, but
|
|
156
|
+
* still a `conformance/<date>[-<name>]-findings.json` like any other for every existing reader
|
|
157
|
+
* (`listAllFindingsFiles`, `em conform-findings check`, ...). Idempotent-by-recompute: always
|
|
158
|
+
* overwrites with freshly-derived content rather than refusing on an existing file of its own.
|
|
159
|
+
*/
|
|
160
|
+
export declare function writePreviewFindings(baseDir: string, modelFile: string, sliceKey: string, at: string, on: string, unruledFindings: Finding[]): string;
|
package/dist/cli/sliceConform.js
CHANGED
|
@@ -39,21 +39,20 @@
|
|
|
39
39
|
// the whole point (docs the code was never fully certified, so bumping/certifying past it
|
|
40
40
|
// would be exactly the sequencing bug MIL-214 exists to close). `--skip-findings-check`
|
|
41
41
|
// escapes with a loud notice, never silently.
|
|
42
|
-
import { readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
43
|
-
import { join } from "node:path";
|
|
42
|
+
import { mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
43
|
+
import { basename, join } from "node:path";
|
|
44
44
|
import { continuationOf } from "../model/continuation.js";
|
|
45
45
|
import { resolveSliceDocJoin } from "../catalog/docJoin.js";
|
|
46
46
|
import { fieldLineRegex, locateFrontmatterInner, normalizeFieldValue } from "./frontmatterSurgery.js";
|
|
47
47
|
import { isValidDateString } from "./stateFile.js";
|
|
48
|
-
import { FINDINGS_FILE_NAME_RE, listAllFindingsFiles, lookupFindingsBesideReport, unruledFindingsInScope } from "./findings.js";
|
|
48
|
+
import { FINDINGS_FILE_NAME_RE, FINDINGS_SCHEMA_VERSION, listAllFindingsFiles, lookupFindingsBesideReport, serializeFindingsDoc, unruledFindingsInScope, } from "./findings.js";
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* see `runSliceConform` below.
|
|
50
|
+
* `--at`'s shape check (GH #261's `<kind>:<id>` carve-out), factored out of
|
|
51
|
+
* `applyConformFrontmatter` below so GH #400's non-writing `--preview` path
|
|
52
|
+
* (`runSliceConformPreview`) validates the exact same way rather than keeping two copies of this
|
|
53
|
+
* regex in sync by hand — "kinded values supported as today" stays true by construction.
|
|
55
54
|
*/
|
|
56
|
-
export function
|
|
55
|
+
export function validateAtRevision(at) {
|
|
57
56
|
const trimmedAt = at.trim();
|
|
58
57
|
if (!trimmedAt)
|
|
59
58
|
return { ok: false, message: "a target-repo revision is required (--at)" };
|
|
@@ -69,6 +68,20 @@ export function applyConformFrontmatter(raw, sliceKey, at, on) {
|
|
|
69
68
|
message: `--at "${trimmedAt}" is neither a git revision nor \`<kind>:<id>\` (kind = lowercase letters, digits, dashes — e.g. build:1234, deploy:eu-1-2026-10-15)`,
|
|
70
69
|
};
|
|
71
70
|
}
|
|
71
|
+
return { ok: true, value: trimmedAt };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Pure text transform: reads the SHIPPED version (`shippedVersion:`, else the doc's `version:`
|
|
75
|
+
* for a pre-1.15 `implemented` doc — the same read-both rule as `shippedRecordOf`; never writes
|
|
76
|
+
* either) and writes `conformedVersion:`/`conformedAt:`/`conformedOn:` in `raw`'s frontmatter block. See module
|
|
77
|
+
* header for the full precondition/idempotency contract. No fs access — the caller reads/writes;
|
|
78
|
+
* see `runSliceConform` below.
|
|
79
|
+
*/
|
|
80
|
+
export function applyConformFrontmatter(raw, sliceKey, at, on) {
|
|
81
|
+
const atResult = validateAtRevision(at);
|
|
82
|
+
if (!atResult.ok)
|
|
83
|
+
return atResult;
|
|
84
|
+
const trimmedAt = atResult.value;
|
|
72
85
|
if (!isValidDateString(on)) {
|
|
73
86
|
return { ok: false, message: `invalid date "${on}" — expected YYYY-MM-DD` };
|
|
74
87
|
}
|
|
@@ -311,4 +324,91 @@ export function runSliceConform(model, refs, baseDir, sliceKey, at, on, skipFind
|
|
|
311
324
|
}
|
|
312
325
|
return { ok: true, path: doc.path, changed: result.changed, version: result.version, skippedFindingsCheck, findingsFiles: found.map((f) => f.path) };
|
|
313
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* GH #400: `em slice conform --preview` — the same doc-resolution and findings-check-gate READ
|
|
329
|
+
* `runSliceConform` performs, but legal for a slice that hasn't shipped (the shipped-status and
|
|
330
|
+
* `implementedIn:` preconditions are waived — there's no code to certify yet, which is exactly
|
|
331
|
+
* the pre-ship use this mode exists for) and NEVER writes anything: no `applyConformFrontmatter`
|
|
332
|
+
* call, no `conformedVersion`/`conformedAt`/`conformedOn`, ever. `status`/`version` come straight
|
|
333
|
+
* off the already-parsed doc join (`resolveSliceDocJoin`) rather than a second frontmatter read.
|
|
334
|
+
*/
|
|
335
|
+
export function runSliceConformPreview(model, refs, baseDir, sliceKey, at) {
|
|
336
|
+
const sliceIndex = refs.sliceKeys.indexOf(sliceKey);
|
|
337
|
+
if (sliceIndex === -1) {
|
|
338
|
+
return { ok: false, message: `no slice with export key "${sliceKey}" in this model` };
|
|
339
|
+
}
|
|
340
|
+
const slice = model.slices[sliceIndex];
|
|
341
|
+
const { doc, continuationOf: continuationOfKey } = resolveSliceDocJoin(model, refs, slice, sliceKey, baseDir, (id) => refs.refById.get(id));
|
|
342
|
+
// Same continuation refusal as runSliceConform — MIL-208: an again-view-only slice has no doc
|
|
343
|
+
// of its own to preview-conform either.
|
|
344
|
+
if (continuationOfKey) {
|
|
345
|
+
const continuation = continuationOf(model, refs, sliceIndex);
|
|
346
|
+
const viewName = model.byId.get(continuation.viewLogicalId).name;
|
|
347
|
+
return {
|
|
348
|
+
ok: false,
|
|
349
|
+
message: `"${sliceKey}" is a continuation of "${continuationOfKey}" (view "${viewName}" again) — ` +
|
|
350
|
+
`it has no doc of its own; preview-conform "${continuationOfKey}" instead`,
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
if (doc.reason === "no-doc-bound") {
|
|
354
|
+
return {
|
|
355
|
+
ok: false,
|
|
356
|
+
message: `slice "${sliceKey}" has no doc bound via \`note "slices/${sliceKey}.md"\` — bind a slice doc before previewing conformance`,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
if (doc.reason === "binding-missing-file") {
|
|
360
|
+
return { ok: false, message: `slice "${sliceKey}" notes "${doc.path}" but no such file exists` };
|
|
361
|
+
}
|
|
362
|
+
if (doc.reason === "frontmatter-invalid") {
|
|
363
|
+
return {
|
|
364
|
+
ok: false,
|
|
365
|
+
message: `slice doc "${doc.path}" has missing or invalid frontmatter — run \`em validate\` for details`,
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
const atResult = validateAtRevision(at);
|
|
369
|
+
if (!atResult.ok)
|
|
370
|
+
return atResult;
|
|
371
|
+
const trimmedAt = atResult.value;
|
|
372
|
+
// Deliberately NO shipped-status / implementedIn precondition here (GH #400's whole point) and
|
|
373
|
+
// NO call to applyConformFrontmatter / writeFileSync anywhere in this function.
|
|
374
|
+
const found = findFindingsForRevision(baseDir, trimmedAt);
|
|
375
|
+
const unruledFindings = found.flatMap((f) => unruledFindingsInScope(f.doc.findings, new Set([sliceKey])));
|
|
376
|
+
return {
|
|
377
|
+
ok: true,
|
|
378
|
+
path: doc.path,
|
|
379
|
+
status: doc.status,
|
|
380
|
+
version: doc.version,
|
|
381
|
+
at: trimmedAt,
|
|
382
|
+
findingsFiles: found.map((f) => f.path),
|
|
383
|
+
unruledFindings,
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* GH #400's `--write-findings` opt-in: persists a preview run's own `unruledFindings` as a
|
|
388
|
+
* normal, schema-`1.0` `conformance/<on>-<sliceKey>-preview-findings.json` — the one write this
|
|
389
|
+
* command is allowed to make, and never on the slice doc. Ids are renumbered `1..N` in the order
|
|
390
|
+
* `runSliceConformPreview` returned them (deterministic: file order from `findFindingsForRevision`,
|
|
391
|
+
* each file's own ascending order) rather than kept from their source file, since several source
|
|
392
|
+
* files' ids are only unique WITHIN that file — this is its own, fresh findings record, not an
|
|
393
|
+
* edit to the files it read from. By default (no `--write-findings`) a preview run touches no
|
|
394
|
+
* file at all — "ephemeral" — so it can never add anything for `em state set-conformance` or
|
|
395
|
+
* `em status` to trip over; writing this file is what makes that gate interaction deliberate: a
|
|
396
|
+
* reserved `-preview-findings.json` suffix a hand-authored conform sweep never collides with, but
|
|
397
|
+
* still a `conformance/<date>[-<name>]-findings.json` like any other for every existing reader
|
|
398
|
+
* (`listAllFindingsFiles`, `em conform-findings check`, ...). Idempotent-by-recompute: always
|
|
399
|
+
* overwrites with freshly-derived content rather than refusing on an existing file of its own.
|
|
400
|
+
*/
|
|
401
|
+
export function writePreviewFindings(baseDir, modelFile, sliceKey, at, on, unruledFindings) {
|
|
402
|
+
const relPath = `conformance/${on}-${sliceKey}-preview-findings.json`;
|
|
403
|
+
const doc = {
|
|
404
|
+
findingsSchemaVersion: FINDINGS_SCHEMA_VERSION,
|
|
405
|
+
model: basename(modelFile),
|
|
406
|
+
report: `em slice conform --preview ${sliceKey} --at ${at}`,
|
|
407
|
+
revision: at,
|
|
408
|
+
findings: unruledFindings.map((f, i) => ({ ...f, id: i + 1 })),
|
|
409
|
+
};
|
|
410
|
+
mkdirSync(join(baseDir, "conformance"), { recursive: true });
|
|
411
|
+
writeFileSync(join(baseDir, relPath), serializeFindingsDoc(doc), "utf8");
|
|
412
|
+
return relPath;
|
|
413
|
+
}
|
|
314
414
|
//# sourceMappingURL=sliceConform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sliceConform.js","sourceRoot":"","sources":["../../src/cli/sliceConform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sliceConform.js","sourceRoot":"","sources":["../../src/cli/sliceConform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NormalizedModel, Storyline } from "../model/model.js";
|
|
2
|
+
import { StorylineVariant } from "../render/storylinePicker.js";
|
|
3
|
+
/** Flat (no subdirectory) filename for a storyline's live-serve subset SVG, written alongside
|
|
4
|
+
* the full model's own output file. Flat, unlike `em render --storyline`'s `storylines/`
|
|
5
|
+
* convention, because the live viewer's `?svg=` allowlist (serve.ts / viewer.html) accepts a
|
|
6
|
+
* bare filename only — never a path with a separator. */
|
|
7
|
+
export declare function storylineFileFor(name: string): string;
|
|
8
|
+
/** The live viewer's storyline-picker entries (GH #309): "Full model" plus one per declared
|
|
9
|
+
* storyline, `current` marking whichever file THIS render is — so the same list, computed
|
|
10
|
+
* once per build, embeds into every output file with only `current` differing. `[]` (no
|
|
11
|
+
* picker) when the model declares none. */
|
|
12
|
+
export declare function storylineVariants(model: NormalizedModel, outFile: string, currentFile: string): StorylineVariant[];
|
|
13
|
+
export type StorylineResolution = {
|
|
14
|
+
storyline: Storyline;
|
|
15
|
+
} | {
|
|
16
|
+
error: string;
|
|
17
|
+
} | {
|
|
18
|
+
none: true;
|
|
19
|
+
};
|
|
20
|
+
/** Resolve `--storyline <name>` against the model — `{ none: true }` when the flag wasn't
|
|
21
|
+
* given at all. Same validation `em render --storyline` reports on an unknown name: lists
|
|
22
|
+
* every declared storyline, so a typo is correctable without opening the .em file. Uses
|
|
23
|
+
* findStoryline directly (not render/storylineDiagram.ts's resolveStorylineArg) only because
|
|
24
|
+
* that helper's error text is hardcoded to "em render --storyline" — the lookup itself (GH
|
|
25
|
+
* #348's case/whitespace-insensitive match) is the one `em render`, `em engagement
|
|
26
|
+
* --storyline` and this all share; this is not a second resolution. */
|
|
27
|
+
export declare function resolveWatchStoryline(model: NormalizedModel, name: string | undefined): StorylineResolution;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Testable core of `em watch --serve --storyline <name>` (GH #309, deferred from #277):
|
|
3
|
+
// resolving the --storyline argument against the model (the exact same resolution `em render
|
|
4
|
+
// --storyline` and `em engagement`'s own `--storyline` selector use — findStoryline, GH #348's
|
|
5
|
+
// case/whitespace-insensitive match) and the live viewer's storyline-picker entries. Factored
|
|
6
|
+
// out of cli.ts's `watch` action, which starts a long-running file watcher and isn't itself
|
|
7
|
+
// unit-testable, mirroring src/cli/render-inputs.ts's existing split for `em render`'s own
|
|
8
|
+
// `--slice`/`--storyline`.
|
|
9
|
+
import { kebabSlug } from "../util/slug.js";
|
|
10
|
+
import { findStoryline } from "../model/storylines.js";
|
|
11
|
+
/** Flat (no subdirectory) filename for a storyline's live-serve subset SVG, written alongside
|
|
12
|
+
* the full model's own output file. Flat, unlike `em render --storyline`'s `storylines/`
|
|
13
|
+
* convention, because the live viewer's `?svg=` allowlist (serve.ts / viewer.html) accepts a
|
|
14
|
+
* bare filename only — never a path with a separator. */
|
|
15
|
+
export function storylineFileFor(name) {
|
|
16
|
+
return `storyline-${kebabSlug(name)}.svg`;
|
|
17
|
+
}
|
|
18
|
+
/** The live viewer's storyline-picker entries (GH #309): "Full model" plus one per declared
|
|
19
|
+
* storyline, `current` marking whichever file THIS render is — so the same list, computed
|
|
20
|
+
* once per build, embeds into every output file with only `current` differing. `[]` (no
|
|
21
|
+
* picker) when the model declares none. */
|
|
22
|
+
export function storylineVariants(model, outFile, currentFile) {
|
|
23
|
+
const declared = model.storylines ?? [];
|
|
24
|
+
if (declared.length === 0)
|
|
25
|
+
return [];
|
|
26
|
+
return [
|
|
27
|
+
{ name: "Full model", file: outFile, current: currentFile === outFile },
|
|
28
|
+
...declared.map((st) => {
|
|
29
|
+
const file = storylineFileFor(st.name);
|
|
30
|
+
return { name: st.name, file, current: currentFile === file };
|
|
31
|
+
}),
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
/** Resolve `--storyline <name>` against the model — `{ none: true }` when the flag wasn't
|
|
35
|
+
* given at all. Same validation `em render --storyline` reports on an unknown name: lists
|
|
36
|
+
* every declared storyline, so a typo is correctable without opening the .em file. Uses
|
|
37
|
+
* findStoryline directly (not render/storylineDiagram.ts's resolveStorylineArg) only because
|
|
38
|
+
* that helper's error text is hardcoded to "em render --storyline" — the lookup itself (GH
|
|
39
|
+
* #348's case/whitespace-insensitive match) is the one `em render`, `em engagement
|
|
40
|
+
* --storyline` and this all share; this is not a second resolution. */
|
|
41
|
+
export function resolveWatchStoryline(model, name) {
|
|
42
|
+
if (name === undefined)
|
|
43
|
+
return { none: true };
|
|
44
|
+
const storyline = findStoryline(model, name);
|
|
45
|
+
if (storyline)
|
|
46
|
+
return { storyline };
|
|
47
|
+
const declared = model.storylines ?? [];
|
|
48
|
+
const known = declared.map((s) => `"${s.name}"`).join(", ");
|
|
49
|
+
return {
|
|
50
|
+
error: declared.length === 0
|
|
51
|
+
? `em watch --storyline: this model declares no storylines`
|
|
52
|
+
: `em watch --storyline: no storyline "${name}" (declared: ${known})`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=watchStoryline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watchStoryline.js","sourceRoot":"","sources":["../../src/cli/watchStoryline.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,wFAAwF;AACxF,6FAA6F;AAC7F,+FAA+F;AAC/F,8FAA8F;AAC9F,4FAA4F;AAC5F,2FAA2F;AAC3F,2BAA2B;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;;0DAG0D;AAC1D,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,aAAa,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5C,CAAC;AAED;;;4CAG4C;AAC5C,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,OAAe,EAAE,WAAmB;IAC5F,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO;QACL,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,EAAE;QACvE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;QAChE,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAID;;;;;;wEAMwE;AACxE,MAAM,UAAU,qBAAqB,CAAC,KAAsB,EAAE,IAAwB;IACpF,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO;QACL,KAAK,EACH,QAAQ,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,yDAAyD;YAC3D,CAAC,CAAC,uCAAuC,IAAI,gBAAgB,KAAK,GAAG;KAC1E,CAAC;AACJ,CAAC"}
|