@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.
- 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 +32 -4
- 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 +24 -4
- package/.claude/skills/event-modeling-shared/reference/methodology.md +16 -0
- package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +1 -1
- package/.claude/skills/event-modeling-shared/templates/slice.md +6 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/README.md +11 -1
- 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/conformSupersede.js +13 -3
- package/dist/cli/conformSupersede.js.map +1 -1
- 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/markImplemented.js +21 -3
- package/dist/cli/markImplemented.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 +100 -1
- package/dist/cli/sliceConform.js +182 -9
- package/dist/cli/sliceConform.js.map +1 -1
- package/dist/cli/status.js +4 -3
- package/dist/cli/status.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 +184 -24
- 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 +24 -4
- package/plugin/shared/reference/methodology.md +16 -0
- package/plugin/shared/reference/slice-doc-schema.md +1 -1
- package/plugin/shared/templates/slice.md +6 -1
- package/plugin/skills/conform/SKILL.md +1 -1
- package/plugin/skills/conform/reference/conform.md +32 -4
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docModelConsistencyValidate.js","sourceRoot":"","sources":["../../src/catalog/docModelConsistencyValidate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docModelConsistencyValidate.js","sourceRoot":"","sources":["../../src/catalog/docModelConsistencyValidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** The stable INV token format. `INV-` then one or more alphanumeric/hyphen segments — matches
|
|
2
|
+
* both `INV-1`/`INV-2` (the template's bare numbering) and `INV-CHK-4`/`INV-CHK-3a` (the
|
|
3
|
+
* per-slice mnemonic style reference/conform.md's own example uses). Exported so tests can
|
|
4
|
+
* assert against the exact grammar. */
|
|
5
|
+
export declare const INV_TOKEN_RE: RegExp;
|
|
6
|
+
/** Headings whose content *defines* (or, for `## Delta`, legitimately re-declares) an invariant
|
|
7
|
+
* ID for the slice doc it appears in — `## Invariants / Business Rules` itself, and `## Delta`'s
|
|
8
|
+
* Added/Modified/Renamed requirement subsections, which introduce/rename IDs "from Invariants
|
|
9
|
+
* below" on re-ratification (see templates/slice.md). Every other section — Intent, Scenarios,
|
|
10
|
+
* Trigger & Actor, Dependencies & Read Models Affected, Open Questions, ... — is prose that may
|
|
11
|
+
* narratively *cite* another slice's ID without this doc owning it (MIL-149: such a mention was
|
|
12
|
+
* being cross-credited to the citing slice's own coverage ledger). */
|
|
13
|
+
export declare const OWNERSHIP_HEADING_RE: RegExp;
|
|
14
|
+
/** A line contributes INV tokens only when it's *structural* — a top-level bullet/list item
|
|
15
|
+
* (`- ...` / `* ...`, no leading indentation) or a subheading (`### ...` and deeper, since only
|
|
16
|
+
* `#`/`##` toggles `inOwnershipSection` above) — never an indented continuation line wrapping a
|
|
17
|
+
* multi-line bullet, nor a standalone prose paragraph with no bullet marker (MIL-155). Every
|
|
18
|
+
* cross-credit MIL-149 missed turned out to have exactly this shape: a slice's own Invariants
|
|
19
|
+
* bullet legitimately explains its rule across several wrapped lines, and a later wrapped line
|
|
20
|
+
* names a sibling slice's ID for context — e.g. `request-payment`'s `INV-RP-1` bullet wraps onto
|
|
21
|
+
* a line citing `payments-to-request`'s `INV-PTR-2` by way of explaining the exactly-once
|
|
22
|
+
* mechanism. The bullet's own *opening* line is structural and trusted for every ID it mentions
|
|
23
|
+
* (this also covers `## Delta`'s Renamed bullets, which legitimately declare two IDs — old and
|
|
24
|
+
* new — on one line, and its `**MODIFIED (...):** INV-X — ...` bullets, whose bold label isn't
|
|
25
|
+
* itself an ID); each wrapped continuation line is prose and contributes nothing. The indentation
|
|
26
|
+
* test also covers MIL-156's blessed nested-elaboration-bullet shape: `templates/slice.md`'s
|
|
27
|
+
* Invariants section now suggests a rule statement's optional rationale/edge-case detail go on
|
|
28
|
+
* its own indented sub-bullet (` - {{...}}`) rather than run on into the rule sentence, purely
|
|
29
|
+
* for HTML-render readability — that sub-bullet is indented, so it's already excluded here the
|
|
30
|
+
* same as any other continuation line, and never contributes (or steals) an ID. */
|
|
31
|
+
export declare const STRUCTURAL_LINE_RE: RegExp;
|
|
32
|
+
/** The lines `extractInvariantIds` reads: structural lines inside an ownership section. */
|
|
33
|
+
export declare function ownershipStructuralLines(body: string): string[];
|
|
34
|
+
/**
|
|
35
|
+
* Extract every distinct `INV-*` token this slice doc *defines*, in first-occurrence order (a
|
|
36
|
+
* rule stated once in `## Invariants` and re-declared in a later `## Delta` section dedupes to
|
|
37
|
+
* its first appearance — order is for stable, readable output, not a claim about which mention is
|
|
38
|
+
* canonical). Scoped to `OWNERSHIP_HEADING_RE`'s sections only, so a doc's prose narratively
|
|
39
|
+
* citing another slice's ID elsewhere (Dependencies, Open Questions, ...) doesn't cross-credit
|
|
40
|
+
* that ID as this slice's own (MIL-149) — the section ends at the next `#`/`##` heading or EOF,
|
|
41
|
+
* same boundary rule sliceDoc.ts's countOpenQuestions() uses, so a `### Added`/`#### Requirement`
|
|
42
|
+
* subheading under `## Delta` stays in scope while a sibling `## Scenarios` does not. Within that
|
|
43
|
+
* scope, only `STRUCTURAL_LINE_RE`'s bullet/subheading lines contribute — MIL-155 — so a wrapped
|
|
44
|
+
* continuation line that legitimately *cites* a sibling slice's ID while explaining this doc's own
|
|
45
|
+
* (e.g. an Invariants bullet's exactly-once rule wrapping onto a line naming another slice's
|
|
46
|
+
* queue-draining ID) doesn't cross-credit that citation just because it sits inside the ownership
|
|
47
|
+
* section too.
|
|
48
|
+
*/
|
|
49
|
+
export declare function extractInvariantIds(body: string): string[];
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// The INV-* token grammar and the ownership-section extraction — a LEAF module (no imports), so
|
|
3
|
+
// both `em coverage`'s doc-side extraction (cli/coverage.ts, where this logic lived through
|
|
4
|
+
// 1.19.x) and the section-aware doc renderer (catalog/sliceDocRender.ts, GH #402) can read the
|
|
5
|
+
// same grammar without the renderer importing cli/coverage.ts — which imports catalog/docJoin.ts
|
|
6
|
+
// and catalog/readSliceDoc.ts, which import catalog/sliceDoc.ts, which imports the renderer: a
|
|
7
|
+
// genuine import cycle this split exists to break. cli/coverage.ts re-exports everything here,
|
|
8
|
+
// so its public surface is unchanged.
|
|
9
|
+
//
|
|
10
|
+
// Token format: `INV-<KEY>-n` where `<KEY>` is present in nothing textually — the actual
|
|
11
|
+
// convention found in the codebase (templates/slice.md's own Invariants section,
|
|
12
|
+
// reference/conform.md's worked example `INV-CHK-4`) uses either a bare running number
|
|
13
|
+
// (`INV-1`, `INV-2`) or a per-slice mnemonic prefix (`INV-CHK-3`, `INV-CHK-3a` for a rename) —
|
|
14
|
+
// IDs are hand-authored per docs/slice-doc-schema.md, "give each a stable ID", not
|
|
15
|
+
// machine-generated, so no single fixed shape is enforced by any `em` command. INV_TOKEN_RE
|
|
16
|
+
// matches both: `INV-` followed by a greedy run of alphanumeric/hyphen segments. Greedy is what
|
|
17
|
+
// keeps `INV-KEY-1` from partially matching inside `INV-KEY-12` during *extraction* (`\d+`
|
|
18
|
+
// inside the run always consumes the full digit sequence); citation *scanning* (cli/coverage.ts)
|
|
19
|
+
// re-anchors with `\b` on the exact ID string for the same reason, since that direction is a
|
|
20
|
+
// substring search rather than a token match.
|
|
21
|
+
/** The stable INV token format. `INV-` then one or more alphanumeric/hyphen segments — matches
|
|
22
|
+
* both `INV-1`/`INV-2` (the template's bare numbering) and `INV-CHK-4`/`INV-CHK-3a` (the
|
|
23
|
+
* per-slice mnemonic style reference/conform.md's own example uses). Exported so tests can
|
|
24
|
+
* assert against the exact grammar. */
|
|
25
|
+
export const INV_TOKEN_RE = /\bINV-[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*\b/g;
|
|
26
|
+
/** Headings whose content *defines* (or, for `## Delta`, legitimately re-declares) an invariant
|
|
27
|
+
* ID for the slice doc it appears in — `## Invariants / Business Rules` itself, and `## Delta`'s
|
|
28
|
+
* Added/Modified/Renamed requirement subsections, which introduce/rename IDs "from Invariants
|
|
29
|
+
* below" on re-ratification (see templates/slice.md). Every other section — Intent, Scenarios,
|
|
30
|
+
* Trigger & Actor, Dependencies & Read Models Affected, Open Questions, ... — is prose that may
|
|
31
|
+
* narratively *cite* another slice's ID without this doc owning it (MIL-149: such a mention was
|
|
32
|
+
* being cross-credited to the citing slice's own coverage ledger). */
|
|
33
|
+
export const OWNERSHIP_HEADING_RE = /^##\s+(?:Invariants(?:\s*\/\s*Business Rules)?|Delta)\s*$/i;
|
|
34
|
+
/** A line contributes INV tokens only when it's *structural* — a top-level bullet/list item
|
|
35
|
+
* (`- ...` / `* ...`, no leading indentation) or a subheading (`### ...` and deeper, since only
|
|
36
|
+
* `#`/`##` toggles `inOwnershipSection` above) — never an indented continuation line wrapping a
|
|
37
|
+
* multi-line bullet, nor a standalone prose paragraph with no bullet marker (MIL-155). Every
|
|
38
|
+
* cross-credit MIL-149 missed turned out to have exactly this shape: a slice's own Invariants
|
|
39
|
+
* bullet legitimately explains its rule across several wrapped lines, and a later wrapped line
|
|
40
|
+
* names a sibling slice's ID for context — e.g. `request-payment`'s `INV-RP-1` bullet wraps onto
|
|
41
|
+
* a line citing `payments-to-request`'s `INV-PTR-2` by way of explaining the exactly-once
|
|
42
|
+
* mechanism. The bullet's own *opening* line is structural and trusted for every ID it mentions
|
|
43
|
+
* (this also covers `## Delta`'s Renamed bullets, which legitimately declare two IDs — old and
|
|
44
|
+
* new — on one line, and its `**MODIFIED (...):** INV-X — ...` bullets, whose bold label isn't
|
|
45
|
+
* itself an ID); each wrapped continuation line is prose and contributes nothing. The indentation
|
|
46
|
+
* test also covers MIL-156's blessed nested-elaboration-bullet shape: `templates/slice.md`'s
|
|
47
|
+
* Invariants section now suggests a rule statement's optional rationale/edge-case detail go on
|
|
48
|
+
* its own indented sub-bullet (` - {{...}}`) rather than run on into the rule sentence, purely
|
|
49
|
+
* for HTML-render readability — that sub-bullet is indented, so it's already excluded here the
|
|
50
|
+
* same as any other continuation line, and never contributes (or steals) an ID. */
|
|
51
|
+
export const STRUCTURAL_LINE_RE = /^(?:[-*]\s|#{3,6}\s)/;
|
|
52
|
+
/** The lines `extractInvariantIds` reads: structural lines inside an ownership section. */
|
|
53
|
+
export function ownershipStructuralLines(body) {
|
|
54
|
+
const out = [];
|
|
55
|
+
let inOwnershipSection = false;
|
|
56
|
+
for (const line of body.split(/\r?\n/)) {
|
|
57
|
+
if (/^#{1,2}\s/.test(line)) {
|
|
58
|
+
inOwnershipSection = OWNERSHIP_HEADING_RE.test(line);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (inOwnershipSection && STRUCTURAL_LINE_RE.test(line))
|
|
62
|
+
out.push(line);
|
|
63
|
+
}
|
|
64
|
+
return out;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Extract every distinct `INV-*` token this slice doc *defines*, in first-occurrence order (a
|
|
68
|
+
* rule stated once in `## Invariants` and re-declared in a later `## Delta` section dedupes to
|
|
69
|
+
* its first appearance — order is for stable, readable output, not a claim about which mention is
|
|
70
|
+
* canonical). Scoped to `OWNERSHIP_HEADING_RE`'s sections only, so a doc's prose narratively
|
|
71
|
+
* citing another slice's ID elsewhere (Dependencies, Open Questions, ...) doesn't cross-credit
|
|
72
|
+
* that ID as this slice's own (MIL-149) — the section ends at the next `#`/`##` heading or EOF,
|
|
73
|
+
* same boundary rule sliceDoc.ts's countOpenQuestions() uses, so a `### Added`/`#### Requirement`
|
|
74
|
+
* subheading under `## Delta` stays in scope while a sibling `## Scenarios` does not. Within that
|
|
75
|
+
* scope, only `STRUCTURAL_LINE_RE`'s bullet/subheading lines contribute — MIL-155 — so a wrapped
|
|
76
|
+
* continuation line that legitimately *cites* a sibling slice's ID while explaining this doc's own
|
|
77
|
+
* (e.g. an Invariants bullet's exactly-once rule wrapping onto a line naming another slice's
|
|
78
|
+
* queue-draining ID) doesn't cross-credit that citation just because it sits inside the ownership
|
|
79
|
+
* section too.
|
|
80
|
+
*/
|
|
81
|
+
export function extractInvariantIds(body) {
|
|
82
|
+
const seen = new Set();
|
|
83
|
+
const ids = [];
|
|
84
|
+
for (const line of ownershipStructuralLines(body)) {
|
|
85
|
+
for (const m of line.matchAll(INV_TOKEN_RE)) {
|
|
86
|
+
if (!seen.has(m[0])) {
|
|
87
|
+
seen.add(m[0]);
|
|
88
|
+
ids.push(m[0]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return ids;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=invTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invTokens.js","sourceRoot":"","sources":["../../src/catalog/invTokens.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,gGAAgG;AAChG,4FAA4F;AAC5F,+FAA+F;AAC/F,iGAAiG;AACjG,+FAA+F;AAC/F,+FAA+F;AAC/F,sCAAsC;AACtC,EAAE;AACF,yFAAyF;AACzF,iFAAiF;AACjF,uFAAuF;AACvF,+FAA+F;AAC/F,mFAAmF;AACnF,4FAA4F;AAC5F,gGAAgG;AAChG,2FAA2F;AAC3F,iGAAiG;AACjG,6FAA6F;AAC7F,8CAA8C;AAE9C;;;wCAGwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,yCAAyC,CAAC;AAEtE;;;;;;uEAMuE;AACvE,MAAM,CAAC,MAAM,oBAAoB,GAAG,4DAA4D,CAAC;AAEjG;;;;;;;;;;;;;;;;oFAgBoF;AACpF,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAEzD,2FAA2F;AAC3F,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,kBAAkB,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/catalog/pages.js
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
// src/render/viewer.html, shipped as a generated constant — because it is one
|
|
6
6
|
// static 600-line page; these stay literals since they vary per model/slice.)
|
|
7
7
|
import { slicePatternLabel } from "./classify.js";
|
|
8
|
+
import { classifyImplementationDrift } from "./driftSignal.js";
|
|
9
|
+
import { renderFrontmatterBadgeRow } from "./docBadge.js";
|
|
8
10
|
export function escapeHtml(s) {
|
|
9
11
|
return s
|
|
10
12
|
.replace(/&/g, "&")
|
|
@@ -23,6 +25,15 @@ function statusLabel(hasDoc, status) {
|
|
|
23
25
|
return "unknown";
|
|
24
26
|
return status;
|
|
25
27
|
}
|
|
28
|
+
/** GH #402: the frontmatter badge row above a resolved doc's rendered body — pattern, version,
|
|
29
|
+
* status, and implementation-drift signal, from catalog/docBadge.ts. Empty for a doc whose
|
|
30
|
+
* frontmatter fence isn't even present (a legacy freeform doc), so a 1.13-style page renders
|
|
31
|
+
* exactly as it did before this feature. */
|
|
32
|
+
function docBadgeRow(doc) {
|
|
33
|
+
if (!doc.frontmatterPresent)
|
|
34
|
+
return "";
|
|
35
|
+
return renderFrontmatterBadgeRow({ pattern: doc.pattern, version: doc.version, status: doc.status, driftSignal: classifyImplementationDrift(doc) });
|
|
36
|
+
}
|
|
26
37
|
/** MIME type for the diagram `<object>` — must match the actual file `buildCatalog` wrote
|
|
27
38
|
* (`diagram.svg` or `diagram.png`), or the browser won't render it. */
|
|
28
39
|
function diagramMimeType(format) {
|
|
@@ -75,6 +86,42 @@ function layout(title, bodyHtml, homeHref) {
|
|
|
75
86
|
.no-doc { color: #7b8794; font-style: italic; }
|
|
76
87
|
.covered-by { color: #52606d; font-style: italic; }
|
|
77
88
|
code { background: #eee; padding: .05rem .3rem; border-radius: 3px; }
|
|
89
|
+
/* GH #402: section-aware slice-doc rendering — the frontmatter badge row, Given/When/Then
|
|
90
|
+
scenario cards, INV-* chips, and field-table column styling catalog/sliceDocRender.ts and
|
|
91
|
+
catalog/docBadge.ts build; see render/viewer.html for the doc flyout's matching rules. */
|
|
92
|
+
.doc-badge-row { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.2rem; }
|
|
93
|
+
.doc-badge {
|
|
94
|
+
display: inline-block; padding: .15rem .55rem; border-radius: 999px; font-size: 11px;
|
|
95
|
+
font-weight: 600; letter-spacing: .01em; background: #e4e7eb; color: #3b4754;
|
|
96
|
+
}
|
|
97
|
+
.doc-badge--pattern { background: #e1ecff; color: #1d4ed8; }
|
|
98
|
+
.doc-badge--version { background: #eef0f3; color: #52606d; font-variant-numeric: tabular-nums; }
|
|
99
|
+
.doc-badge--status { background: #fef3cf; color: #8a6116; text-transform: capitalize; }
|
|
100
|
+
.doc-badge--drift-in-sync { background: #d8f3dc; color: #1b7a3d; }
|
|
101
|
+
.doc-badge--drift-uncertified, .doc-badge--drift-unpropagated-delta { background: #ffe9c7; color: #8a5300; }
|
|
102
|
+
.doc-badge--drift-implemented-without-link { background: #fbd8d4; color: #9b2c20; }
|
|
103
|
+
.doc-badge--drift-never-implemented { background: #e4e7eb; color: #52606d; }
|
|
104
|
+
.scenario-card { border: 1px solid #ddd; border-radius: 8px; margin: 1rem 0; overflow: hidden; background: #fff; }
|
|
105
|
+
.scenario-card-title { margin: 0; padding: .5rem .75rem; background: #f0f2f5; font-size: .95rem; border-bottom: 1px solid #ddd; }
|
|
106
|
+
.scenario-step { display: flex; gap: .6rem; padding: .45rem .75rem; border-top: 1px solid #eceef1; align-items: flex-start; }
|
|
107
|
+
.scenario-step:first-of-type { border-top: 0; }
|
|
108
|
+
.scenario-step-label {
|
|
109
|
+
flex: none; min-width: 4.2em; font-size: 11px; font-weight: 700; text-transform: uppercase;
|
|
110
|
+
letter-spacing: .04em; color: #52606d; padding-top: .15em;
|
|
111
|
+
}
|
|
112
|
+
.scenario-step--given .scenario-step-label { color: #1d4ed8; }
|
|
113
|
+
.scenario-step--when .scenario-step-label { color: #8a5300; }
|
|
114
|
+
.scenario-step--then .scenario-step-label { color: #1b7a3d; }
|
|
115
|
+
.scenario-step-body { flex: 1 1 auto; }
|
|
116
|
+
.scenario-step-body ul { margin: .2em 0; padding-left: 1.1em; }
|
|
117
|
+
.inv-chip { display: inline-block; padding: .05em .4em; border-radius: 4px; font-size: .85em; font-family: ui-monospace, Menlo, monospace; }
|
|
118
|
+
.inv-chip--def { background: #1f2933; color: #fff; scroll-margin-top: 1rem; }
|
|
119
|
+
.inv-chip--ref { background: #eef0f3; color: #1d4ed8; text-decoration: none; }
|
|
120
|
+
.inv-chip--ref:hover { text-decoration: underline; }
|
|
121
|
+
.inv-chip--external { background: #eef0f3; color: #52606d; }
|
|
122
|
+
table.field-table th.col-type, table.field-table td.col-type { font-family: ui-monospace, Menlo, monospace; font-size: .85em; color: #3b4754; white-space: nowrap; }
|
|
123
|
+
table.field-table th.col-notes, table.field-table td.col-notes { color: #52606d; }
|
|
124
|
+
table.field-table th.col-flag, table.field-table td.col-flag { text-align: center; white-space: nowrap; }
|
|
78
125
|
</style>
|
|
79
126
|
</head>
|
|
80
127
|
<body>
|
|
@@ -173,7 +220,7 @@ export function renderSlicePage(args) {
|
|
|
173
220
|
? ` <p class="covered-by">Continuation of <a href="${escapeHtml(coveredBy.key)}.html">${escapeHtml(coveredBy.name)}</a> — documented in <code>slices/${escapeHtml(coveredBy.key)}.md</code>.</p>`
|
|
174
221
|
: ` <p class="covered-by">Documented as part of <a href="${escapeHtml(coveredBy.key)}.html">${escapeHtml(coveredBy.name)}</a> — see <code>slices/${escapeHtml(coveredBy.key)}.md</code>.</p>`
|
|
175
222
|
: doc
|
|
176
|
-
? ` <div class="doc">${doc.html}</div>`
|
|
223
|
+
? ` <div class="doc">${docBadgeRow(doc)}${doc.html}</div>`
|
|
177
224
|
: ` <p class="no-doc">No slice doc found at <code>${escapeHtml(docExpectedPath)}</code>.</p>`;
|
|
178
225
|
return layout(`${slice.name} — ${modelName}`, ` <p><a href="../../index.html">← ${escapeHtml(modelName)}</a></p>
|
|
179
226
|
<h1>${escapeHtml(slice.name)}</h1>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/catalog/pages.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,6EAA6E;AAC7E,uEAAuE;AACvE,wEAAwE;AACxE,8EAA8E;AAC9E,8EAA8E;AAG9E,OAAO,EAAgB,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/catalog/pages.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,6EAA6E;AAC7E,uEAAuE;AACvE,wEAAwE;AACxE,8EAA8E;AAC9E,8EAA8E;AAG9E,OAAO,EAAgB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AAwBD;;uEAEuE;AACvE,SAAS,WAAW,CAAC,MAAe,EAAE,MAAqB;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC7B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;6CAG6C;AAC7C,SAAS,WAAW,CAAC,GAAa;IAChC,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,yBAAyB,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACtJ,CAAC;AAED;wEACwE;AACxE,SAAS,eAAe,CAAC,MAAqB;IAC5C,OAAO,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;AAC1D,CAAC;AAED;;;+BAG+B;AAC/B,SAAS,MAAM,CAAC,KAAa,EAAE,QAAgB,EAAE,QAAgB;IAC/D,OAAO;;;;WAIE,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6EP,UAAU,CAAC,QAAQ,CAAC;;EAEvC,QAAQ;;;;CAIT,CAAC;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA6B,EAAE,KAAa,EAAE,MAAqB;IACjG,MAAM,QAAQ,GAAG,MAAM;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM;aAClB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC;uBACM,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;8BAClE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;mCACnC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAClE,CACH;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,WAAW,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;QACxE,OAAO;YACD,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;WACnB,CAAC,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,WAAW;iEACjE,eAAe,CAAC,MAAM,CAAC,WAAW,WAAW;;;;EAI5G,IAAI;;;eAGS,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,MAAM,CACX,KAAK,EACL,WAAW,UAAU,CAAC,KAAK,CAAC;EAC9B,QAAQ,EAAE,EACR,YAAY,CACb,CAAC;AACJ,CAAC;AAiCD,SAAS,YAAY,CAAC,EAAW;IAC/B,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,aAAa,CAAC,EAAW;IAChC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,EAAE,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5E,IAAI,EAAE,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY,EAAE,WAAgC;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ;SACxB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACV,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,KAAK;YAAE,WAAW,CAAC,IAAI,CAAC,0CAA0C,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvG,IAAI,EAAE,CAAC,UAAU;YAAE,WAAW,CAAC,IAAI,CAAC,+CAA+C,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtH,OAAO,YAAY,MAAM;cACjB,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;cACnB,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;cACnB,aAAa,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC;IACT,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,IAAI;;aAEO,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAmB;IACjD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAExH,wFAAwF;IACxF,0FAA0F;IAC1F,yFAAyF;IACzF,0FAA0F;IAC1F,6FAA6F;IAC7F,0FAA0F;IAC1F,aAAa;IACb,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,cAAc;YACjC,CAAC,CAAC,sDAAsD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB;YACpM,CAAC,CAAC,4DAA4D,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB;QAClM,CAAC,CAAC,GAAG;YACH,CAAC,CAAC,wBAAwB,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,QAAQ;YAC7D,CAAC,CAAC,qDAAqD,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC;IAErG,OAAO,MAAM,CACX,GAAG,KAAK,CAAC,IAAI,MAAM,SAAS,EAAE,EAC9B,4CAA4C,UAAU,CAAC,SAAS,CAAC;UAC3D,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;yBACP,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,2BAA2B,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC;oFACzD,UAAU,CAAC,gBAAgB,CAAC;4CACpE,UAAU,CAAC,WAAW,CAAC;EACjE,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC;EACvC,UAAU,EAAE,EACV,kBAAkB,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -10,6 +10,10 @@ export interface ScenarioParseResult {
|
|
|
10
10
|
/** One human sentence per malformed block (missing or empty Given/When/Then), in order. */
|
|
11
11
|
problems: string[];
|
|
12
12
|
}
|
|
13
|
+
/** The strict grammar's section gate — a block counts only under a literal `## Scenarios…`
|
|
14
|
+
* heading (case-sensitive). Exported for the section-aware renderer (sliceDocRender.ts, GH
|
|
15
|
+
* #402), which must card-render exactly the blocks this module accepts, nothing laxer. */
|
|
16
|
+
export declare const SCENARIOS_SECTION_RE: RegExp;
|
|
13
17
|
/** Parse every `### Scenario:` block of a slice doc's body (or whole text — the frontmatter
|
|
14
18
|
* never holds a `## Scenarios` heading). */
|
|
15
19
|
export declare function parseScenarios(body: string): ScenarioParseResult;
|
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
// this grammar, never a malformed instance of it.
|
|
27
27
|
//
|
|
28
28
|
// Pure — text in, data out; CRLF tolerated.
|
|
29
|
-
|
|
29
|
+
/** The strict grammar's section gate — a block counts only under a literal `## Scenarios…`
|
|
30
|
+
* heading (case-sensitive). Exported for the section-aware renderer (sliceDocRender.ts, GH
|
|
31
|
+
* #402), which must card-render exactly the blocks this module accepts, nothing laxer. */
|
|
32
|
+
export const SCENARIOS_SECTION_RE = /^##\s+Scenarios\b/;
|
|
30
33
|
const SCENARIO_HEADING_RE = /^###\s+Scenario:\s*(.*?)\s*$/;
|
|
31
34
|
const HEADING_RE = /^#{1,3}\s/;
|
|
32
35
|
const LABEL_RE = /^[-*]\s+\*\*(Given|When|Then):\*\*\s*(.*?)\s*$/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../src/catalog/scenarios.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iGAAiG;AACjG,6FAA6F;AAC7F,yFAAyF;AACzF,mGAAmG;AACnG,EAAE;AACF,8FAA8F;AAC9F,qBAAqB;AACrB,EAAE;AACF,0BAA0B;AAC1B,wCAAwC;AACxC,eAAe;AACf,gBAAgB;AAChB,eAAe;AACf,gBAAgB;AAChB,eAAe;AACf,EAAE;AACF,kGAAkG;AAClG,gGAAgG;AAChG,mGAAmG;AACnG,6FAA6F;AAC7F,EAAE;AACF,+FAA+F;AAC/F,gGAAgG;AAChG,+FAA+F;AAC/F,kDAAkD;AAClD,EAAE;AACF,4CAA4C;AAgB5C,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"scenarios.js","sourceRoot":"","sources":["../../src/catalog/scenarios.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,7 +140,12 @@ export interface SliceDoc {
|
|
|
140
140
|
missingRequiredFields: string[];
|
|
141
141
|
/** The whole doc rendered to HTML, with any leading frontmatter block stripped
|
|
142
142
|
* first (otherwise its `---` fences render as stray <hr>s and the raw
|
|
143
|
-
* `key: value` lines leak into the body).
|
|
143
|
+
* `key: value` lines leak into the body). Section-aware since GH #402
|
|
144
|
+
* (catalog/sliceDocRender.ts): Given/When/Then blocks render as scenario cards, `INV-*`
|
|
145
|
+
* mentions as anchored/linked chips, and field tables get type/notes-column styling.
|
|
146
|
+
* Frontmatter facts (pattern/version/status/driftSignal) are NOT part of this string — the
|
|
147
|
+
* callers that render a frontmatter badge row (catalog/pages.ts, render/sliceOverlay.ts)
|
|
148
|
+
* build it themselves from the fields below, via catalog/docBadge.ts. */
|
|
144
149
|
html: string;
|
|
145
150
|
/** Count of GFM task-list items (`- [ ]` / `- [x]`) found under the `## Open Questions`
|
|
146
151
|
* heading (case-insensitive), up to the next `#`/`##` heading or EOF. Both 0 when the doc
|
|
@@ -279,6 +284,46 @@ export declare function isOldHashScope(scope: RatifiedHashScope): boolean;
|
|
|
279
284
|
/** True when the doc's body is a signed spec: `status: implemented`, or `status:
|
|
280
285
|
* ready-to-implement` with a `ratifiedBy:` — the parsed-doc twin of cli/defer.ts `isSignedDoc`. */
|
|
281
286
|
export declare function isSignedSliceDoc(doc: Pick<SliceDoc, "status" | "ratifiedBy">): boolean;
|
|
287
|
+
/** GH #401: one `## Open Questions` item exported for the structured doc export
|
|
288
|
+
* (`em export --doc-json`), carrying its deferral state. */
|
|
289
|
+
export interface OpenQuestionExport {
|
|
290
|
+
/** The item's text, with the `- [ ]`/`- [x]` checkbox marker stripped (document order). */
|
|
291
|
+
text: string;
|
|
292
|
+
/** `true` for a `- [x]` item, `false` for `- [ ]`. */
|
|
293
|
+
checked: boolean;
|
|
294
|
+
/** The `v<n>` a `deferred to v<n>` marker (`em slice defer`, `DEFERRED_ITEM`) names, or null
|
|
295
|
+
* for an item with no such marker. */
|
|
296
|
+
deferredToVersion: number | null;
|
|
297
|
+
}
|
|
298
|
+
/** A soft-wrapped bullet's continuation line: indented, non-empty, and not itself a bullet —
|
|
299
|
+
* the line a markdown renderer joins onto the bullet above it. Nested bullets (` - detail`)
|
|
300
|
+
* are their own items, never a continuation, and end the wrap. Shared (GH #401) by
|
|
301
|
+
* `openQuestions`/`errorFlows` below and coverage.ts's `extractDeclaredInvariantRules` so every
|
|
302
|
+
* wrapped-bullet reader joins on the one definition. */
|
|
303
|
+
export declare function isContinuationLine(line: string): boolean;
|
|
304
|
+
/**
|
|
305
|
+
* GH #401: the `## Open Questions` task-list items with their deferral state, in document order —
|
|
306
|
+
* the structured form `em export --doc-json` surfaces. Same section boundary (heading to the next
|
|
307
|
+
* `#`/`##` heading or EOF) and item grammar (`TASK_ITEM`) as `countOpenQuestions`/
|
|
308
|
+
* `countDeferredBeyond`; the deferral version is read from the same `DEFERRED_ITEM` marker `em
|
|
309
|
+
* slice defer` writes. A soft-wrapped item's indented continuation lines are joined into its
|
|
310
|
+
* `text` with single spaces — real docs wrap their sentences (see
|
|
311
|
+
* examples/order-fulfillment/slices/capture-payment.md). Empty when the doc has no
|
|
312
|
+
* `## Open Questions` heading.
|
|
313
|
+
*/
|
|
314
|
+
export declare function openQuestions(body: string): OpenQuestionExport[];
|
|
315
|
+
/**
|
|
316
|
+
* GH #401: the top-level bullet items under the slice doc's `## … Error Flows` section (the
|
|
317
|
+
* template's `## Alternate & Error Flows`), in document order, the `- `/`* ` marker stripped —
|
|
318
|
+
* the authored failure-path list `em export --doc-json` surfaces. Section boundary is the next
|
|
319
|
+
* `#`/`##` heading or EOF, the same boundary `countOpenQuestions` uses. Only column-0 bullets are
|
|
320
|
+
* items; a soft-wrapped bullet's indented continuation lines are joined into it with single
|
|
321
|
+
* spaces (real docs wrap — see examples/order-fulfillment/slices/checkout.md), while nested
|
|
322
|
+
* detail bullets and standalone prose are skipped. Empty when the doc has no such heading or
|
|
323
|
+
* the section has no bullets (unfilled template placeholders are kept verbatim, like every other
|
|
324
|
+
* authored section). Pure; CRLF tolerated.
|
|
325
|
+
*/
|
|
326
|
+
export declare function errorFlows(body: string): string[];
|
|
282
327
|
/** GH #253: how many `## Open Questions` items are deferred to a version later than `version` —
|
|
283
328
|
* the known work waiting on a later version that `em status` / `em export` report as
|
|
284
329
|
* `queuedForNext` (the name predates #253: GH #236's state-file queue reported the same fact
|
package/dist/catalog/sliceDoc.js
CHANGED
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
// writer in cli/*.ts is a surgical single-line splice. Additive, tolerate-unknown-fields; the
|
|
80
80
|
// readers that will DECIDE on `shipped*` instead of `status` are MIL-283's breaking half.
|
|
81
81
|
import { createHash } from "node:crypto";
|
|
82
|
-
import { marked } from "marked";
|
|
83
82
|
import { scanSliceRegions } from "./sliceSections.js";
|
|
83
|
+
import { renderSliceDocBodyHtml } from "./sliceDocRender.js";
|
|
84
84
|
/** Frontmatter keys docs/slice-doc-schema.md's required-vs-optional table marks
|
|
85
85
|
* required at every `status` — the mechanical basis for `frontmatter-invalid`
|
|
86
86
|
* (MIL-91). `implementedIn` is deliberately excluded: its requirement depends on
|
|
@@ -352,6 +352,94 @@ export function isOldHashScope(scope) {
|
|
|
352
352
|
export function isSignedSliceDoc(doc) {
|
|
353
353
|
return doc.status === "implemented" || (doc.status === "ready-to-implement" && doc.ratifiedBy !== null && doc.ratifiedBy.trim() !== "");
|
|
354
354
|
}
|
|
355
|
+
/** A soft-wrapped bullet's continuation line: indented, non-empty, and not itself a bullet —
|
|
356
|
+
* the line a markdown renderer joins onto the bullet above it. Nested bullets (` - detail`)
|
|
357
|
+
* are their own items, never a continuation, and end the wrap. Shared (GH #401) by
|
|
358
|
+
* `openQuestions`/`errorFlows` below and coverage.ts's `extractDeclaredInvariantRules` so every
|
|
359
|
+
* wrapped-bullet reader joins on the one definition. */
|
|
360
|
+
export function isContinuationLine(line) {
|
|
361
|
+
return /^\s/.test(line) && line.trim() !== "" && !/^\s*[-*]\s/.test(line);
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* GH #401: the `## Open Questions` task-list items with their deferral state, in document order —
|
|
365
|
+
* the structured form `em export --doc-json` surfaces. Same section boundary (heading to the next
|
|
366
|
+
* `#`/`##` heading or EOF) and item grammar (`TASK_ITEM`) as `countOpenQuestions`/
|
|
367
|
+
* `countDeferredBeyond`; the deferral version is read from the same `DEFERRED_ITEM` marker `em
|
|
368
|
+
* slice defer` writes. A soft-wrapped item's indented continuation lines are joined into its
|
|
369
|
+
* `text` with single spaces — real docs wrap their sentences (see
|
|
370
|
+
* examples/order-fulfillment/slices/capture-payment.md). Empty when the doc has no
|
|
371
|
+
* `## Open Questions` heading.
|
|
372
|
+
*/
|
|
373
|
+
export function openQuestions(body) {
|
|
374
|
+
const lines = body.split(/\r?\n/);
|
|
375
|
+
const start = lines.findIndex((l) => OPEN_QUESTIONS_HEADING.test(l));
|
|
376
|
+
if (start === -1)
|
|
377
|
+
return [];
|
|
378
|
+
const items = [];
|
|
379
|
+
let current = null;
|
|
380
|
+
for (let i = start + 1; i < lines.length; i++) {
|
|
381
|
+
const line = lines[i];
|
|
382
|
+
if (/^#{1,2}\s/.test(line))
|
|
383
|
+
break;
|
|
384
|
+
const m = line.match(TASK_ITEM);
|
|
385
|
+
if (m) {
|
|
386
|
+
const deferred = DEFERRED_ITEM.exec(line);
|
|
387
|
+
current = {
|
|
388
|
+
text: line.replace(TASK_ITEM, "").trim(),
|
|
389
|
+
checked: m[1] !== " ",
|
|
390
|
+
deferredToVersion: deferred ? Number(deferred[1]) : null,
|
|
391
|
+
};
|
|
392
|
+
items.push(current);
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
if (current && isContinuationLine(line)) {
|
|
396
|
+
current.text += ` ${line.trim()}`;
|
|
397
|
+
continue;
|
|
398
|
+
}
|
|
399
|
+
current = null; // a blank line, nested bullet, or column-0 prose ends the item's wrap
|
|
400
|
+
}
|
|
401
|
+
return items;
|
|
402
|
+
}
|
|
403
|
+
/** The `## Alternate & Error Flows` heading (or any `##` heading whose text ends in "Error
|
|
404
|
+
* Flows"), and a column-0 bullet — the grammar `errorFlows` reads. */
|
|
405
|
+
const ERROR_FLOWS_HEADING = /^##\s+.*Error Flows\s*$/i;
|
|
406
|
+
const TOP_LEVEL_BULLET = /^[-*]\s+(.*\S)\s*$/;
|
|
407
|
+
/**
|
|
408
|
+
* GH #401: the top-level bullet items under the slice doc's `## … Error Flows` section (the
|
|
409
|
+
* template's `## Alternate & Error Flows`), in document order, the `- `/`* ` marker stripped —
|
|
410
|
+
* the authored failure-path list `em export --doc-json` surfaces. Section boundary is the next
|
|
411
|
+
* `#`/`##` heading or EOF, the same boundary `countOpenQuestions` uses. Only column-0 bullets are
|
|
412
|
+
* items; a soft-wrapped bullet's indented continuation lines are joined into it with single
|
|
413
|
+
* spaces (real docs wrap — see examples/order-fulfillment/slices/checkout.md), while nested
|
|
414
|
+
* detail bullets and standalone prose are skipped. Empty when the doc has no such heading or
|
|
415
|
+
* the section has no bullets (unfilled template placeholders are kept verbatim, like every other
|
|
416
|
+
* authored section). Pure; CRLF tolerated.
|
|
417
|
+
*/
|
|
418
|
+
export function errorFlows(body) {
|
|
419
|
+
const lines = body.split(/\r?\n/);
|
|
420
|
+
const start = lines.findIndex((l) => ERROR_FLOWS_HEADING.test(l));
|
|
421
|
+
if (start === -1)
|
|
422
|
+
return [];
|
|
423
|
+
const items = [];
|
|
424
|
+
let open = false;
|
|
425
|
+
for (let i = start + 1; i < lines.length; i++) {
|
|
426
|
+
const line = lines[i];
|
|
427
|
+
if (/^#{1,2}\s/.test(line))
|
|
428
|
+
break;
|
|
429
|
+
const m = line.match(TOP_LEVEL_BULLET);
|
|
430
|
+
if (m) {
|
|
431
|
+
items.push(m[1].trim());
|
|
432
|
+
open = true;
|
|
433
|
+
continue;
|
|
434
|
+
}
|
|
435
|
+
if (open && isContinuationLine(line)) {
|
|
436
|
+
items[items.length - 1] += ` ${line.trim()}`;
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
open = false; // a blank line, nested bullet, or column-0 prose ends the item's wrap
|
|
440
|
+
}
|
|
441
|
+
return items;
|
|
442
|
+
}
|
|
355
443
|
/** GH #253: how many `## Open Questions` items are deferred to a version later than `version` —
|
|
356
444
|
* the known work waiting on a later version that `em status` / `em export` report as
|
|
357
445
|
* `queuedForNext` (the name predates #253: GH #236's state-file queue reported the same fact
|
|
@@ -414,7 +502,7 @@ export function parseSliceDoc(markdown) {
|
|
|
414
502
|
reviewSkipped: fields.get("reviewskipped") ?? null,
|
|
415
503
|
frontmatterPresent,
|
|
416
504
|
missingRequiredFields: REQUIRED_FRONTMATTER_KEYS.filter((k) => !fields.has(k)),
|
|
417
|
-
html:
|
|
505
|
+
html: renderSliceDocBodyHtml(body),
|
|
418
506
|
openQuestionsTotal,
|
|
419
507
|
openQuestionsUnchecked,
|
|
420
508
|
};
|