@milehimikey/em 1.15.0 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/em-implementer.md +12 -2
- package/.claude/agents/em-validator.md +2 -1
- package/.claude/skills/event-modeling/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
- package/.claude/skills/event-modeling-design/SKILL.md +1 -1
- package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
- package/.claude/skills/event-modeling-engagement/SKILL.md +9 -5
- package/.claude/skills/event-modeling-engagement/reference/engagement.md +8 -0
- package/.claude/skills/event-modeling-implement/SKILL.md +3 -3
- package/.claude/skills/event-modeling-implement/reference/implement.md +18 -8
- package/.claude/skills/event-modeling-review/SKILL.md +1 -1
- package/.claude/skills/event-modeling-shared/reference/em-dsl.md +6 -3
- package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +12 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/dist/catalog/deferQueue.d.ts +20 -0
- package/dist/catalog/deferQueue.js +63 -0
- package/dist/catalog/deferQueue.js.map +1 -0
- package/dist/catalog/docJoin.d.ts +5 -0
- package/dist/catalog/docJoin.js +6 -3
- package/dist/catalog/docJoin.js.map +1 -1
- package/dist/catalog/docModelConsistencyValidate.js +4 -8
- package/dist/catalog/docModelConsistencyValidate.js.map +1 -1
- package/dist/catalog/sliceDoc.d.ts +3 -3
- package/dist/catalog/sliceDoc.js +3 -3
- package/dist/catalog/sliceDoc.js.map +1 -1
- package/dist/catalog/sliceReadyValidate.js +7 -1
- package/dist/catalog/sliceReadyValidate.js.map +1 -1
- package/dist/catalog/sliceSections.d.ts +5 -0
- package/dist/catalog/sliceSections.js +11 -2
- package/dist/catalog/sliceSections.js.map +1 -1
- package/dist/cli/defer.d.ts +45 -0
- package/dist/cli/defer.js +162 -10
- package/dist/cli/defer.js.map +1 -1
- package/dist/cli/engagement.d.ts +13 -0
- package/dist/cli/engagement.js +31 -11
- package/dist/cli/engagement.js.map +1 -1
- package/dist/cli/engagementFile.d.ts +2 -0
- package/dist/cli/engagementFile.js +5 -3
- package/dist/cli/engagementFile.js.map +1 -1
- package/dist/cli/markImplemented.d.ts +4 -1
- package/dist/cli/markImplemented.js +10 -5
- package/dist/cli/markImplemented.js.map +1 -1
- package/dist/cli/revise.d.ts +13 -3
- package/dist/cli/revise.js +33 -11
- package/dist/cli/revise.js.map +1 -1
- package/dist/cli/status.d.ts +22 -6
- package/dist/cli/status.js +52 -15
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/upgrade.js +10 -8
- package/dist/cli/upgrade.js.map +1 -1
- package/dist/cli.js +65 -15
- package/dist/cli.js.map +1 -1
- package/dist/emit/engagementJson.d.ts +7 -4
- package/dist/emit/engagementJson.js +11 -4
- package/dist/emit/engagementJson.js.map +1 -1
- package/dist/emit/json.d.ts +1 -1
- package/dist/emit/json.js +6 -5
- package/dist/emit/json.js.map +1 -1
- package/dist/emit/statusJson.d.ts +1 -1
- package/dist/emit/statusJson.js +3 -1
- package/dist/emit/statusJson.js.map +1 -1
- package/dist/model/continuation.d.ts +11 -1
- package/dist/model/continuation.js +29 -0
- package/dist/model/continuation.js.map +1 -1
- package/dist/model/resolveSlice.d.ts +19 -0
- package/dist/model/resolveSlice.js +69 -0
- package/dist/model/resolveSlice.js.map +1 -0
- package/dist/model/sliceDocIndex.d.ts +2 -0
- package/dist/model/sliceDocIndex.js +4 -3
- package/dist/model/sliceDocIndex.js.map +1 -1
- package/dist/model/validate.js +5 -2
- package/dist/model/validate.js.map +1 -1
- package/dist/parser/parser.js +55 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/render/watch.d.ts +2 -2
- package/dist/render/watch.js +9 -5
- package/dist/render/watch.js.map +1 -1
- package/package.json +2 -2
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/agents/em-implementer.md +12 -2
- package/plugin/agents/em-validator.md +2 -1
- package/plugin/shared/reference/em-dsl.md +6 -3
- package/plugin/shared/reference/slice-doc-schema.md +12 -1
- package/plugin/skills/conform/SKILL.md +1 -1
- package/plugin/skills/design/SKILL.md +1 -1
- package/plugin/skills/discover/SKILL.md +1 -1
- package/plugin/skills/engagement/SKILL.md +9 -5
- package/plugin/skills/engagement/reference/engagement.md +8 -0
- package/plugin/skills/event-modeling/SKILL.md +1 -1
- package/plugin/skills/implement/SKILL.md +3 -3
- package/plugin/skills/implement/reference/implement.md +18 -8
- package/plugin/skills/review/SKILL.md +1 -1
package/dist/catalog/sliceDoc.js
CHANGED
|
@@ -228,9 +228,9 @@ export function shippedRecordOf(doc) {
|
|
|
228
228
|
* against: `sha256:<hex>` over the doc BODY — everything after the closing frontmatter fence (or
|
|
229
229
|
* the whole doc when there is none), EOLs normalised to `\n` by `splitFrontmatter`'s split/join.
|
|
230
230
|
* Frontmatter is excluded on purpose: the ratify edit itself, `mark-implemented` and `conform`
|
|
231
|
-
* touch only frontmatter, without changing what was ratified.
|
|
232
|
-
*
|
|
233
|
-
*
|
|
231
|
+
* touch only frontmatter, without changing what was ratified. `## Open Questions` is part of the
|
|
232
|
+
* body and stays hashed (GH #236): on a ratified doc `em slice defer` therefore queues the
|
|
233
|
+
* question in the state file instead of rewriting the body (cli/defer.ts). */
|
|
234
234
|
export function sliceDocBodyHash(markdown) {
|
|
235
235
|
const { body } = splitFrontmatter(markdown);
|
|
236
236
|
return `sha256:${createHash("sha256").update(body, "utf8").digest("hex")}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sliceDoc.js","sourceRoot":"","sources":["../../src/catalog/sliceDoc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sliceDoc.js","sourceRoot":"","sources":["../../src/catalog/sliceDoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
// validateFrontmatterCoherence already runs unconditionally and already tags its diagnostics
|
|
25
25
|
// with `refs: [sliceKey]`, so the `--slice-ready` branch filters the full combined diagnostic
|
|
26
26
|
// set by that ref instead of this module re-deriving classifyImplementationDrift.
|
|
27
|
+
import { resolveSliceKey } from "../model/resolveSlice.js";
|
|
27
28
|
import { makeDiag, pushDiag } from "../model/rules.js";
|
|
28
29
|
import { resolveSliceDocJoin } from "./docJoin.js";
|
|
29
30
|
import { readSliceDoc } from "./readSliceDoc.js";
|
|
@@ -47,6 +48,11 @@ function contractStaleDiagnostic(model, refs, sliceIndex, sliceKey, contract) {
|
|
|
47
48
|
refs: [sliceKey],
|
|
48
49
|
});
|
|
49
50
|
}
|
|
51
|
+
/** GH #237: the resolver's own words for an input that names no slice (the valid keys, or an ambiguity). */
|
|
52
|
+
function resolveSliceMessage(model, refs, sliceKey) {
|
|
53
|
+
const r = resolveSliceKey(model, refs, sliceKey);
|
|
54
|
+
return r.ok ? `no slice with export key "${sliceKey}" in this model` : r.message;
|
|
55
|
+
}
|
|
50
56
|
/**
|
|
51
57
|
* Readiness gate for one slice, named by its export key (`refs.sliceKeys`). `baseDir` is the
|
|
52
58
|
* `.em` file's directory, same convention every other doc/note path in em uses. Always warning-
|
|
@@ -63,7 +69,7 @@ export function validateSliceReady(model, refs, baseDir, sliceKey, contract) {
|
|
|
63
69
|
if (sliceIndex === -1) {
|
|
64
70
|
return [
|
|
65
71
|
makeDiag("slice-ready-unknown-slice", {
|
|
66
|
-
message:
|
|
72
|
+
message: resolveSliceMessage(model, refs, sliceKey),
|
|
67
73
|
refs: [sliceKey],
|
|
68
74
|
}),
|
|
69
75
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sliceReadyValidate.js","sourceRoot":"","sources":["../../src/catalog/sliceReadyValidate.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,4FAA4F;AAC5F,2FAA2F;AAC3F,0FAA0F;AAC1F,6FAA6F;AAC7F,qBAAqB;AACrB,EAAE;AACF,qFAAqF;AACrF,uFAAuF;AACvF,4FAA4F;AAC5F,8FAA8F;AAC9F,+FAA+F;AAC/F,4FAA4F;AAC5F,8DAA8D;AAC9D,EAAE;AACF,gGAAgG;AAChG,uFAAuF;AACvF,6FAA6F;AAC7F,gGAAgG;AAChG,kGAAkG;AAClG,2DAA2D;AAC3D,EAAE;AACF,8FAA8F;AAC9F,6FAA6F;AAC7F,8FAA8F;AAC9F,kFAAkF;
|
|
1
|
+
{"version":3,"file":"sliceReadyValidate.js","sourceRoot":"","sources":["../../src/catalog/sliceReadyValidate.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,4FAA4F;AAC5F,2FAA2F;AAC3F,0FAA0F;AAC1F,6FAA6F;AAC7F,qBAAqB;AACrB,EAAE;AACF,qFAAqF;AACrF,uFAAuF;AACvF,4FAA4F;AAC5F,8FAA8F;AAC9F,+FAA+F;AAC/F,4FAA4F;AAC5F,8DAA8D;AAC9D,EAAE;AACF,gGAAgG;AAChG,uFAAuF;AACvF,6FAA6F;AAC7F,gGAAgG;AAChG,kGAAkG;AAClG,2DAA2D;AAC3D,EAAE;AACF,8FAA8F;AAC9F,6FAA6F;AAC7F,8FAA8F;AAC9F,kFAAkF;AAIlF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAsB,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIxF;;sGAEsG;AACtG,SAAS,uBAAuB,CAC9B,KAAsB,EACtB,IAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,QAA4B;IAE5B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,QAAQ,CAAC,4BAA4B,EAAE;QAC5C,OAAO,EACL,UAAU,QAAQ,iDAAiD,YAAY,OAAO,KAAK,KAAK;YAChG,wBAAwB,QAAQ,CAAC,IAAI,EAAE;QACzC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB,CAAC,CAAC;AACL,CAAC;AAED,4GAA4G;AAC5G,SAAS,mBAAmB,CAAC,KAAsB,EAAE,IAAgB,EAAE,QAAgB;IACrF,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,QAAQ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACnF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,IAAgB,EAChB,OAAe,EACf,QAAgB,EAChB,QAA4B;IAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,QAAQ,CAAC,2BAA2B,EAAE;gBACpC,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;gBACnD,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9G,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,mBAAmB,CAC/D,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAC9B,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC;YAClB,QAAQ,CAAC,0BAA0B,EAAE;gBACnC,OAAO,EAAE,UAAU,QAAQ,yCAAyC,QAAQ,+DAA+D;gBAC3I,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,sBAAsB,IAAI,GAAG,CAAC,MAAM,KAAK,qBAAqB,EAAE,CAAC;QAClF,iFAAiF;QACjF,uEAAuE;QACvE,OAAO,YAAY,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAED,kDAAkD;IAClD,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,8BAA8B,EAAE;YAC9C,OAAO,EAAE,UAAU,QAAQ,gBAAgB,GAAG,CAAC,MAAM,IAAI,QAAQ,0BAA0B;YAC3F,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,+FAA+F;IAC/F,6FAA6F;IAC7F,8FAA8F;IAC9F,iEAAiE;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,oBAAoB,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3D,QAAQ,CAAC,KAAK,EAAE,0BAA0B,EAAE;YAC1C,OAAO,EAAE,UAAU,QAAQ,8GAA8G;YACzI,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAC9F,0FAA0F;IAC1F,2FAA2F;IAC3F,uFAAuF;IACvF,wFAAwF;IACxF,yFAAyF;IACzF,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAE,CAAC;IAEhD,yFAAyF;IACzF,6FAA6F;IAC7F,8FAA8F;IAC9F,uFAAuF;IACvF,IAAI,GAAG,CAAC,MAAM,KAAK,oBAAoB,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;QAC1H,QAAQ,CAAC,KAAK,EAAE,6CAA6C,EAAE;YAC7D,OAAO,EAAE,UAAU,QAAQ,WAAW,GAAG,CAAC,IAAI,6GAA6G;YAC3J,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QACtC,QAAQ,CAAC,KAAK,EAAE,sCAAsC,EAAE;YACtD,OAAO,EAAE,UAAU,QAAQ,SAAS,MAAM,CAAC,sBAAsB,OAAO,MAAM,CAAC,kBAAkB,6BAA6B;YAC9H,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAC9F,2FAA2F;IAC3F,uFAAuF;IACvF,8FAA8F;IAC9F,uFAAuF;IACvF,KAAK,MAAM,OAAO,IAAI,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,QAAQ,CAAC,KAAK,EAAE,0CAA0C,EAAE;YAC1D,OAAO,EAAE,UAAU,QAAQ,WAAW,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;YAC5D,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAuCD,MAAM,UAAU,sBAAsB,CACpC,KAAsB,EACtB,IAAgB,EAChB,OAAe,EACf,QAAgB,EAChB,QAA4B;IAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;IACjH,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;IAE1H,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC;IAC/C,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC;IAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,cAAc,EAAE,CAAC;IAC3J,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,oBAAoB,CAAC;IACxD,0FAA0F;IAC1F,sFAAsF;IACtF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAE,CAAC;IAChD,MAAM,wBAAwB,GAAG,MAAM,CAAC,sBAAsB,KAAK,CAAC,CAAC;IAErE,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;IAElC,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,cAAc,EAAE,CAAC;AACtI,CAAC;AAgBD,MAAM,UAAU,qBAAqB,CACnC,KAAsB,EACtB,IAAgB,EAChB,OAAe,EACf,QAAgB,EAChB,QAA4B,EAC5B,cAA4B;IAE5B,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3G,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -47,6 +47,11 @@ export interface RegionScan {
|
|
|
47
47
|
/** Find every `em-slice-*` region in `text` (a whole doc or its body), checking that markers are
|
|
48
48
|
* balanced: every start has its end, no region opens inside another, and no name repeats. */
|
|
49
49
|
export declare function scanSliceRegions(text: string): RegionScan;
|
|
50
|
+
/** Splits a markdown table row into trimmed cells on unescaped pipes only, then unescapes `\|`
|
|
51
|
+
* in each cell — the inverse of `cell()`, so a union type like `"a" | "b"` that sync wrote as
|
|
52
|
+
* `"a" \| "b"` reads back as the one cell it is. The shared row splitter for every doc-table
|
|
53
|
+
* reader (MIL-285). */
|
|
54
|
+
export declare function splitCells(line: string): string[];
|
|
50
55
|
/**
|
|
51
56
|
* Every structural problem in a slice doc's generated regions and authored scenarios — the facts
|
|
52
57
|
* behind `slice-doc/structured-section-malformed` and its `--slice-ready` twin. Empty for a doc
|
|
@@ -273,8 +273,17 @@ export function scanSliceRegions(text) {
|
|
|
273
273
|
problems.push(`region "${open.name}" has no end marker`);
|
|
274
274
|
return { regions, problems };
|
|
275
275
|
}
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
/** Splits a markdown table row into trimmed cells on unescaped pipes only, then unescapes `\|`
|
|
277
|
+
* in each cell — the inverse of `cell()`, so a union type like `"a" | "b"` that sync wrote as
|
|
278
|
+
* `"a" \| "b"` reads back as the one cell it is. The shared row splitter for every doc-table
|
|
279
|
+
* reader (MIL-285). */
|
|
280
|
+
export function splitCells(line) {
|
|
281
|
+
return line
|
|
282
|
+
.trim()
|
|
283
|
+
.replace(/^\|/, "")
|
|
284
|
+
.replace(/(?<!\\)\|$/, "")
|
|
285
|
+
.split(/(?<!\\)\|/)
|
|
286
|
+
.map((c) => c.replace(/\\\|/g, "|").trim());
|
|
278
287
|
}
|
|
279
288
|
/** A field-table region's header problem, or null when its first table's header matches the
|
|
280
289
|
* template's (or the region holds no table at all — an element with no fields). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sliceSections.js","sourceRoot":"","sources":["../../src/catalog/sliceSections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sliceSections.js","sourceRoot":"","sources":["../../src/catalog/sliceSections.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/defer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NormalizedModel } from "../model/model.js";
|
|
2
2
|
import { RefsResult } from "../model/refs.js";
|
|
3
|
+
import { QueuedItem } from "../catalog/deferQueue.js";
|
|
3
4
|
/** `v<int>` → int, else null. */
|
|
4
5
|
export declare function parseUntil(s: string): number | null;
|
|
5
6
|
export interface DeferInput {
|
|
@@ -25,6 +26,12 @@ export type ApplyDeferResult = {
|
|
|
25
26
|
* Already deferred to the same version → `{ok: true, changed: false}` (idempotent no-op).
|
|
26
27
|
*/
|
|
27
28
|
export declare function applyDefer(raw: string, input: DeferInput): ApplyDeferResult;
|
|
29
|
+
/** Appends `bullet` at the end of the section under `heading` (before the next `## ` heading or
|
|
30
|
+
* EOF, after the section's last non-blank line) unless an identical bullet line exists. */
|
|
31
|
+
export declare function appendBullet(lines: string[], heading: RegExp, bullet: string, eol: string): {
|
|
32
|
+
lines: string[];
|
|
33
|
+
changed: boolean;
|
|
34
|
+
} | null;
|
|
28
35
|
export interface StateMirrorInput {
|
|
29
36
|
question: string;
|
|
30
37
|
sliceKey: string;
|
|
@@ -42,6 +49,36 @@ export declare function reopenDeferred(raw: string, newVersion: number): {
|
|
|
42
49
|
content: string;
|
|
43
50
|
count: number;
|
|
44
51
|
};
|
|
52
|
+
/** True when the doc's body is a signed spec that defer must not touch: `status: implemented`, or
|
|
53
|
+
* `status: ready-to-implement` with a `ratifiedBy:`. A `draft`/`reviewed` doc — including the
|
|
54
|
+
* next version of a shipped slice — is still being written, so defer edits it as ever. */
|
|
55
|
+
export declare function isLockedDoc(raw: string): boolean;
|
|
56
|
+
/** Pure: mirrors a QUEUED deferral into the state file — the queued parking-lot bullet and a
|
|
57
|
+
* dated Decisions-log bullet. Idempotent on an identical bullet. */
|
|
58
|
+
export declare function applyQueueStateFile(raw: string, input: StateMirrorInput): ApplyDeferResult;
|
|
59
|
+
/** Pure (revise / mark-implemented): appends every queued item to `## Open Questions` of the
|
|
60
|
+
* freshly opened draft (creating the section at EOF when the doc has none), skipping a line
|
|
61
|
+
* already present. Returns how many items were written. */
|
|
62
|
+
export declare function injectQueuedQuestions(raw: string, items: QueuedItem[]): {
|
|
63
|
+
content: string;
|
|
64
|
+
count: number;
|
|
65
|
+
};
|
|
66
|
+
/** Pure: "clears" the queue for `<sliceKey>@v<targetVersion>` in the state file — each queued
|
|
67
|
+
* parking-lot bullet becomes the ordinary `- <q> (from slice <key>, deferred to v<until>)`
|
|
68
|
+
* mirror a draft-doc defer writes. Other slices' and other versions' bullets are untouched. */
|
|
69
|
+
export declare function drainQueueInState(raw: string, sliceKey: string, targetVersion: number): {
|
|
70
|
+
content: string;
|
|
71
|
+
count: number;
|
|
72
|
+
};
|
|
73
|
+
/** Reads the queue for `<sliceKey>@v<targetVersion>` from `<baseDir>/.event-modeling.md`; empty
|
|
74
|
+
* when the file is absent. */
|
|
75
|
+
export declare function readQueue(baseDir: string, sliceKey: string, targetVersion: number): {
|
|
76
|
+
items: QueuedItem[];
|
|
77
|
+
statePath: string;
|
|
78
|
+
stateRaw: string | null;
|
|
79
|
+
};
|
|
80
|
+
/** Writes the drained state file once the draft carrying the queue is on disk. */
|
|
81
|
+
export declare function clearQueue(baseDir: string, sliceKey: string, targetVersion: number): void;
|
|
45
82
|
/** An open `issue "..."` clause on one of the slice's own elements. */
|
|
46
83
|
export interface IssueCandidate {
|
|
47
84
|
kind: string;
|
|
@@ -86,10 +123,17 @@ export type RunDeferResult = {
|
|
|
86
123
|
ok: true;
|
|
87
124
|
path: string;
|
|
88
125
|
changed: boolean;
|
|
126
|
+
queued: QueuedNote | null;
|
|
89
127
|
} | {
|
|
90
128
|
ok: false;
|
|
91
129
|
message: string;
|
|
92
130
|
};
|
|
131
|
+
/** GH #236: set when defer QUEUED the question (a ratified/shipped doc) instead of editing the
|
|
132
|
+
* doc — `forVersion` is the draft that will carry it, `docVersion` the version left untouched. */
|
|
133
|
+
export interface QueuedNote {
|
|
134
|
+
forVersion: number;
|
|
135
|
+
docVersion: number;
|
|
136
|
+
}
|
|
93
137
|
/** Resolves `sliceKey` to its bound doc (same join as ratify/revise), computes both edits, and
|
|
94
138
|
* writes only when every precondition holds (the state file is required and never created). */
|
|
95
139
|
export declare function runDefer(model: NormalizedModel, refs: RefsResult, baseDir: string, sliceKey: string, input: Omit<DeferInput, "currentVersion">): RunDeferResult;
|
|
@@ -99,6 +143,7 @@ export type RunDeferFromIssueResult = {
|
|
|
99
143
|
changed: boolean;
|
|
100
144
|
issue: string;
|
|
101
145
|
modelLine: number | null;
|
|
146
|
+
queued: QueuedNote | null;
|
|
102
147
|
} | {
|
|
103
148
|
ok: false;
|
|
104
149
|
message: string;
|
package/dist/cli/defer.js
CHANGED
|
@@ -20,6 +20,14 @@
|
|
|
20
20
|
// computed before any is written; the `.em` edit is a single clause span (or the whole line when
|
|
21
21
|
// the clause was alone on it), re-parsed before it is accepted. Not a generic "move issue to doc"
|
|
22
22
|
// verb: the only thing a promoted issue can become is a deferred question.
|
|
23
|
+
//
|
|
24
|
+
// GH #236 — a RATIFIED or SHIPPED doc is never edited by defer. Its body is the signed spec
|
|
25
|
+
// (`ratifiedHash`), so on `status: ready-to-implement` + `ratifiedBy:` or `status: implemented`
|
|
26
|
+
// both paths QUEUE the question instead: one bullet in the state file's parking lot plus the dated
|
|
27
|
+
// Decisions-log bullet, the doc untouched (catalog/deferQueue.ts has the bullet format).
|
|
28
|
+
// `revise`/`mark-implemented` inject the queue into the v<N+1> draft they open
|
|
29
|
+
// (`injectQueuedQuestions`) and `drainQueueInState` turns the bullets back into ordinary
|
|
30
|
+
// deferral mirrors. `draft`/`reviewed` docs behave exactly as before.
|
|
23
31
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
24
32
|
import { join } from "node:path";
|
|
25
33
|
import { continuationOf } from "../model/continuation.js";
|
|
@@ -27,6 +35,8 @@ import { resolveSliceDocJoin } from "../catalog/docJoin.js";
|
|
|
27
35
|
import { decodeQuoted, matchQuote } from "../parser/lexer.js";
|
|
28
36
|
import { compile } from "../pipeline.js";
|
|
29
37
|
import { STATE_FILE_NAME } from "./stateFile.js";
|
|
38
|
+
import { fieldLineRegex, locateFrontmatterInner, normalizeFieldValue } from "./frontmatterSurgery.js";
|
|
39
|
+
import { parseQueuedBullet, queuedBullet, queuedItems } from "../catalog/deferQueue.js";
|
|
30
40
|
const OPEN_QUESTIONS_HEADING = /^##\s+Open Questions\s*$/i;
|
|
31
41
|
const TASK_ITEM = /^([ \t]*[-*]\s*)\[([ xX])\](.*)$/;
|
|
32
42
|
const PARKING_LOT_HEADING = /^##\s+Open questions \/ parking lot\s*$/i;
|
|
@@ -129,7 +139,7 @@ export function applyDefer(raw, input) {
|
|
|
129
139
|
}
|
|
130
140
|
/** Appends `bullet` at the end of the section under `heading` (before the next `## ` heading or
|
|
131
141
|
* EOF, after the section's last non-blank line) unless an identical bullet line exists. */
|
|
132
|
-
function appendBullet(lines, heading, bullet, eol) {
|
|
142
|
+
export function appendBullet(lines, heading, bullet, eol) {
|
|
133
143
|
const start = lines.findIndex((l) => heading.test(stripEol(l).body));
|
|
134
144
|
if (start === -1)
|
|
135
145
|
return null;
|
|
@@ -198,6 +208,120 @@ export function reopenDeferred(raw, newVersion) {
|
|
|
198
208
|
}
|
|
199
209
|
return { content: lines.join(""), count };
|
|
200
210
|
}
|
|
211
|
+
// ---- GH #236: the queue for a ratified / shipped doc --------------------------------------
|
|
212
|
+
/** True when the doc's body is a signed spec that defer must not touch: `status: implemented`, or
|
|
213
|
+
* `status: ready-to-implement` with a `ratifiedBy:`. A `draft`/`reviewed` doc — including the
|
|
214
|
+
* next version of a shipped slice — is still being written, so defer edits it as ever. */
|
|
215
|
+
export function isLockedDoc(raw) {
|
|
216
|
+
const range = locateFrontmatterInner(raw);
|
|
217
|
+
if (!range)
|
|
218
|
+
return false;
|
|
219
|
+
const inner = raw.slice(range.innerStart, range.innerEnd);
|
|
220
|
+
const statusMatch = fieldLineRegex("status").exec(inner);
|
|
221
|
+
const status = statusMatch ? normalizeFieldValue(statusMatch[2])?.toLowerCase() : null;
|
|
222
|
+
if (status === "implemented")
|
|
223
|
+
return true;
|
|
224
|
+
if (status !== "ready-to-implement")
|
|
225
|
+
return false;
|
|
226
|
+
const by = fieldLineRegex("ratifiedBy").exec(inner);
|
|
227
|
+
return by !== null && normalizeFieldValue(by[2]) !== null;
|
|
228
|
+
}
|
|
229
|
+
/** Pure: mirrors a QUEUED deferral into the state file — the queued parking-lot bullet and a
|
|
230
|
+
* dated Decisions-log bullet. Idempotent on an identical bullet. */
|
|
231
|
+
export function applyQueueStateFile(raw, input) {
|
|
232
|
+
const eol = raw.includes("\r\n") ? "\r\n" : "\n";
|
|
233
|
+
const target = input.currentVersion + 1;
|
|
234
|
+
const parking = queuedBullet({
|
|
235
|
+
question: input.question,
|
|
236
|
+
sliceKey: input.sliceKey,
|
|
237
|
+
targetVersion: target,
|
|
238
|
+
until: input.until,
|
|
239
|
+
on: input.on,
|
|
240
|
+
...(input.by !== undefined ? { by: input.by.trim() } : {}),
|
|
241
|
+
decision: input.decision.trim(),
|
|
242
|
+
});
|
|
243
|
+
const decision = `- ${input.on}: queued "${input.question}" on ${input.sliceKey} for ${input.sliceKey}@v${target} (until v${input.until}) — ` +
|
|
244
|
+
`v${input.currentVersion}: ${input.decision.trim()}${input.by !== undefined ? ` — by ${input.by.trim()}` : ""}`;
|
|
245
|
+
let lines = splitKeepEol(raw);
|
|
246
|
+
const a = appendBullet(lines, PARKING_LOT_HEADING, parking, eol);
|
|
247
|
+
if (!a)
|
|
248
|
+
return { ok: false, message: `${STATE_FILE_NAME} has no "## Open questions / parking lot" heading` };
|
|
249
|
+
lines = a.lines;
|
|
250
|
+
const b = appendBullet(lines, DECISIONS_HEADING, decision, eol);
|
|
251
|
+
if (!b)
|
|
252
|
+
return { ok: false, message: `${STATE_FILE_NAME} has no "## Decisions log" heading` };
|
|
253
|
+
return { ok: true, content: b.lines.join(""), changed: a.changed || b.changed };
|
|
254
|
+
}
|
|
255
|
+
/** Pure: the Open Questions line a queued item becomes in the v<target> draft. Aimed at the
|
|
256
|
+
* draft's own version it is an unchecked `- [ ]` carrying its decision; aimed further out
|
|
257
|
+
* (`--until` beyond it) it is the ordinary checked deferral, so the draft is not asked to
|
|
258
|
+
* answer what the room already pushed past it. */
|
|
259
|
+
function injectedLine(item) {
|
|
260
|
+
const prior = item.targetVersion - 1;
|
|
261
|
+
const who = `${item.on}${item.by !== undefined ? `, ${item.by}` : ""}`;
|
|
262
|
+
return item.until > item.targetVersion
|
|
263
|
+
? `- [x] ${item.question} — v${prior}: ${item.decision}; deferred to v${item.until} (${who})`
|
|
264
|
+
: `- [ ] ${item.question} — v${prior}: ${item.decision} (queued ${who})`;
|
|
265
|
+
}
|
|
266
|
+
/** Pure (revise / mark-implemented): appends every queued item to `## Open Questions` of the
|
|
267
|
+
* freshly opened draft (creating the section at EOF when the doc has none), skipping a line
|
|
268
|
+
* already present. Returns how many items were written. */
|
|
269
|
+
export function injectQueuedQuestions(raw, items) {
|
|
270
|
+
const eol = raw.includes("\r\n") ? "\r\n" : "\n";
|
|
271
|
+
let content = raw;
|
|
272
|
+
let count = 0;
|
|
273
|
+
for (const item of items) {
|
|
274
|
+
const bullet = injectedLine(item);
|
|
275
|
+
const appended = appendBullet(splitKeepEol(content), OPEN_QUESTIONS_HEADING, bullet, eol);
|
|
276
|
+
if (appended) {
|
|
277
|
+
if (appended.changed)
|
|
278
|
+
count++;
|
|
279
|
+
content = appended.lines.join("");
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (content.length > 0 && !/\r?\n$/.test(content))
|
|
283
|
+
content += eol;
|
|
284
|
+
if (content.length > 0 && !/(\r?\n){2}$/.test(content))
|
|
285
|
+
content += eol;
|
|
286
|
+
content += `## Open Questions${eol}${eol}${bullet}${eol}`;
|
|
287
|
+
count++;
|
|
288
|
+
}
|
|
289
|
+
return { content, count };
|
|
290
|
+
}
|
|
291
|
+
/** Pure: "clears" the queue for `<sliceKey>@v<targetVersion>` in the state file — each queued
|
|
292
|
+
* parking-lot bullet becomes the ordinary `- <q> (from slice <key>, deferred to v<until>)`
|
|
293
|
+
* mirror a draft-doc defer writes. Other slices' and other versions' bullets are untouched. */
|
|
294
|
+
export function drainQueueInState(raw, sliceKey, targetVersion) {
|
|
295
|
+
const lines = splitKeepEol(raw);
|
|
296
|
+
let count = 0;
|
|
297
|
+
for (let j = 0; j < lines.length; j++) {
|
|
298
|
+
const { body, eol } = stripEol(lines[j]);
|
|
299
|
+
const item = parseQueuedBullet(body);
|
|
300
|
+
if (!item || item.sliceKey !== sliceKey || item.targetVersion !== targetVersion)
|
|
301
|
+
continue;
|
|
302
|
+
lines[j] = `- ${item.question} (from slice ${item.sliceKey}, deferred to v${item.until})${eol}`;
|
|
303
|
+
count++;
|
|
304
|
+
}
|
|
305
|
+
return { content: lines.join(""), count };
|
|
306
|
+
}
|
|
307
|
+
/** Reads the queue for `<sliceKey>@v<targetVersion>` from `<baseDir>/.event-modeling.md`; empty
|
|
308
|
+
* when the file is absent. */
|
|
309
|
+
export function readQueue(baseDir, sliceKey, targetVersion) {
|
|
310
|
+
const statePath = join(baseDir, STATE_FILE_NAME);
|
|
311
|
+
if (!existsSync(statePath))
|
|
312
|
+
return { items: [], statePath, stateRaw: null };
|
|
313
|
+
const stateRaw = readFileSync(statePath, "utf8");
|
|
314
|
+
return { items: queuedItems(stateRaw, sliceKey, targetVersion), statePath, stateRaw };
|
|
315
|
+
}
|
|
316
|
+
/** Writes the drained state file once the draft carrying the queue is on disk. */
|
|
317
|
+
export function clearQueue(baseDir, sliceKey, targetVersion) {
|
|
318
|
+
const { stateRaw, statePath } = readQueue(baseDir, sliceKey, targetVersion);
|
|
319
|
+
if (stateRaw === null)
|
|
320
|
+
return;
|
|
321
|
+
const drained = drainQueueInState(stateRaw, sliceKey, targetVersion);
|
|
322
|
+
if (drained.count > 0)
|
|
323
|
+
writeFileSync(statePath, drained.content, "utf8");
|
|
324
|
+
}
|
|
201
325
|
/** Open issues on the slice's own elements whose text contains `text` (case-sensitive substring,
|
|
202
326
|
* the same matching the positional path applies to Open Questions). An issue on a sibling
|
|
203
327
|
* slice's element is never a candidate — the deferral lands on THIS slice's doc. */
|
|
@@ -314,12 +438,12 @@ function resolveDeferDoc(model, refs, baseDir, sliceKey) {
|
|
|
314
438
|
return { ok: true, sliceIndex, path: doc.path, version: doc.version };
|
|
315
439
|
}
|
|
316
440
|
/** The state-file mirror both paths share; refuses (never creates) when the file is absent. */
|
|
317
|
-
function mirrorIntoStateFile(baseDir, sliceKey, question, input, currentVersion) {
|
|
441
|
+
function mirrorIntoStateFile(baseDir, sliceKey, question, input, currentVersion, queue = false) {
|
|
318
442
|
const statePath = join(baseDir, STATE_FILE_NAME);
|
|
319
443
|
if (!existsSync(statePath)) {
|
|
320
444
|
return { ok: false, message: `no ${STATE_FILE_NAME} beside the model — defer mirrors into it and never creates it` };
|
|
321
445
|
}
|
|
322
|
-
const r = applyDeferStateFile(readFileSync(statePath, "utf8"), {
|
|
446
|
+
const r = (queue ? applyQueueStateFile : applyDeferStateFile)(readFileSync(statePath, "utf8"), {
|
|
323
447
|
question,
|
|
324
448
|
sliceKey,
|
|
325
449
|
until: parseUntil(input.until),
|
|
@@ -339,7 +463,20 @@ export function runDefer(model, refs, baseDir, sliceKey, input) {
|
|
|
339
463
|
if (!doc.ok)
|
|
340
464
|
return doc;
|
|
341
465
|
const absDoc = join(baseDir, doc.path);
|
|
342
|
-
const
|
|
466
|
+
const docRaw = readFileSync(absDoc, "utf8");
|
|
467
|
+
// GH #236: a ratified / shipped doc is not edited — the question is queued for v<N+1>.
|
|
468
|
+
if (isLockedDoc(docRaw)) {
|
|
469
|
+
const v = validateInput({ ...input, currentVersion: doc.version });
|
|
470
|
+
if (!v.ok)
|
|
471
|
+
return { ok: false, message: `${doc.path}: ${v.message}` };
|
|
472
|
+
const state = mirrorIntoStateFile(baseDir, sliceKey, input.question, input, doc.version, true);
|
|
473
|
+
if (!state.ok)
|
|
474
|
+
return state;
|
|
475
|
+
if (state.changed)
|
|
476
|
+
writeFileSync(state.path, state.content, "utf8");
|
|
477
|
+
return { ok: true, path: doc.path, changed: state.changed, queued: { forVersion: doc.version + 1, docVersion: doc.version } };
|
|
478
|
+
}
|
|
479
|
+
const result = applyDefer(docRaw, { ...input, currentVersion: doc.version });
|
|
343
480
|
if (!result.ok)
|
|
344
481
|
return { ok: false, message: `${doc.path}: ${result.message}` };
|
|
345
482
|
const state = mirrorIntoStateFile(baseDir, sliceKey, input.question, input, doc.version);
|
|
@@ -349,7 +486,7 @@ export function runDefer(model, refs, baseDir, sliceKey, input) {
|
|
|
349
486
|
writeFileSync(absDoc, result.content, "utf8");
|
|
350
487
|
if (state.changed)
|
|
351
488
|
writeFileSync(state.path, state.content, "utf8");
|
|
352
|
-
return { ok: true, path: doc.path, changed: result.changed || state.changed };
|
|
489
|
+
return { ok: true, path: doc.path, changed: result.changed || state.changed, queued: null };
|
|
353
490
|
}
|
|
354
491
|
/**
|
|
355
492
|
* `--from-issue <text>` (MIL-281): the single open `issue "..."` on one of the slice's own
|
|
@@ -367,12 +504,21 @@ export function runDeferFromIssue(model, refs, baseDir, modelFile, sliceKey, tex
|
|
|
367
504
|
return doc;
|
|
368
505
|
const absDoc = join(baseDir, doc.path);
|
|
369
506
|
const docRaw = readFileSync(absDoc, "utf8");
|
|
507
|
+
const locked = isLockedDoc(docRaw);
|
|
508
|
+
const queued = locked ? { forVersion: doc.version + 1, docVersion: doc.version } : null;
|
|
370
509
|
const candidates = findIssueCandidates(model, doc.sliceIndex, text);
|
|
371
510
|
if (candidates.length === 0) {
|
|
372
|
-
// Already promoted on an earlier run? Then the doc carries it as deferred to this version
|
|
511
|
+
// Already promoted on an earlier run? Then the doc carries it as deferred to this version —
|
|
512
|
+
// or, on a ratified/shipped doc (GH #236), the state file carries it as queued.
|
|
513
|
+
if (locked) {
|
|
514
|
+
if (readQueue(baseDir, sliceKey, doc.version + 1).items.some((q) => q.question.includes(text))) {
|
|
515
|
+
return { ok: true, path: doc.path, changed: false, issue: text, modelLine: null, queued };
|
|
516
|
+
}
|
|
517
|
+
return { ok: false, message: `no open issue matching "${text}" on slice "${sliceKey}" (see \`em validate --list-issues\`)` };
|
|
518
|
+
}
|
|
373
519
|
const probe = applyDefer(docRaw, { ...input, question: text, currentVersion: doc.version });
|
|
374
520
|
if (probe.ok && !probe.changed)
|
|
375
|
-
return { ok: true, path: doc.path, changed: false, issue: text, modelLine: null };
|
|
521
|
+
return { ok: true, path: doc.path, changed: false, issue: text, modelLine: null, queued: null };
|
|
376
522
|
if (probe.ok) {
|
|
377
523
|
// The question is on the doc as a hand-written `- [ ]` item, never on the diagram: that is
|
|
378
524
|
// the positional form's job.
|
|
@@ -388,10 +534,16 @@ export function runDeferFromIssue(model, refs, baseDir, modelFile, sliceKey, tex
|
|
|
388
534
|
return { ok: false, message: `ambiguous — matches: ${candidates.map(formatIssueCandidate).join(" | ")}` };
|
|
389
535
|
}
|
|
390
536
|
const [cand] = candidates;
|
|
391
|
-
|
|
537
|
+
// GH #236: on a ratified/shipped doc the promoted issue is queued, not written into the body.
|
|
538
|
+
const docResult = locked
|
|
539
|
+
? (() => {
|
|
540
|
+
const v = validateInput({ ...input, question: cand.issue, currentVersion: doc.version });
|
|
541
|
+
return v.ok ? { ok: true, content: docRaw, changed: false } : v;
|
|
542
|
+
})()
|
|
543
|
+
: applyDeferFromIssueDoc(docRaw, cand.issue, { ...input, currentVersion: doc.version });
|
|
392
544
|
if (!docResult.ok)
|
|
393
545
|
return { ok: false, message: `${doc.path}: ${docResult.message}` };
|
|
394
|
-
const state = mirrorIntoStateFile(baseDir, sliceKey, cand.issue, input, doc.version);
|
|
546
|
+
const state = mirrorIntoStateFile(baseDir, sliceKey, cand.issue, input, doc.version, locked);
|
|
395
547
|
if (!state.ok)
|
|
396
548
|
return state;
|
|
397
549
|
const emRaw = readFileSync(modelFile, "utf8");
|
|
@@ -420,6 +572,6 @@ export function runDeferFromIssue(model, refs, baseDir, modelFile, sliceKey, tex
|
|
|
420
572
|
if (state.changed)
|
|
421
573
|
writeFileSync(state.path, state.content, "utf8");
|
|
422
574
|
writeFileSync(modelFile, removed.content, "utf8");
|
|
423
|
-
return { ok: true, path: doc.path, changed: true, issue: cand.issue, modelLine: removed.removedLine };
|
|
575
|
+
return { ok: true, path: doc.path, changed: true, issue: cand.issue, modelLine: removed.removedLine, queued };
|
|
424
576
|
}
|
|
425
577
|
//# sourceMappingURL=defer.js.map
|