@sdd-method/sdd-cli 4.0.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/author-program.d.ts.map +1 -1
  2. package/dist/author-program.js +10 -2
  3. package/dist/author-program.js.map +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  8. package/dist/lib/catalogue/aggregate.js +50 -13
  9. package/dist/lib/catalogue/aggregate.js.map +1 -1
  10. package/dist/lib/catalogue/build.d.ts.map +1 -1
  11. package/dist/lib/catalogue/build.js +72 -23
  12. package/dist/lib/catalogue/build.js.map +1 -1
  13. package/dist/lib/catalogue/builders/adr-governs.js +1 -1
  14. package/dist/lib/catalogue/builders/adr-governs.js.map +1 -1
  15. package/dist/lib/catalogue/builders/adrs.js +2 -2
  16. package/dist/lib/catalogue/builders/adrs.js.map +1 -1
  17. package/dist/lib/catalogue/builders/c4-containers.d.ts +2 -0
  18. package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -1
  19. package/dist/lib/catalogue/builders/c4-containers.js +6 -2
  20. package/dist/lib/catalogue/builders/c4-containers.js.map +1 -1
  21. package/dist/lib/catalogue/builders/contract-revisions.d.ts +13 -0
  22. package/dist/lib/catalogue/builders/contract-revisions.d.ts.map +1 -1
  23. package/dist/lib/catalogue/builders/contract-revisions.js +45 -7
  24. package/dist/lib/catalogue/builders/contract-revisions.js.map +1 -1
  25. package/dist/lib/catalogue/builders/contracts.d.ts.map +1 -1
  26. package/dist/lib/catalogue/builders/contracts.js +4 -11
  27. package/dist/lib/catalogue/builders/contracts.js.map +1 -1
  28. package/dist/lib/catalogue/builders/data-model.js +1 -1
  29. package/dist/lib/catalogue/builders/data-model.js.map +1 -1
  30. package/dist/lib/catalogue/builders/entities-manifest.d.ts +7 -0
  31. package/dist/lib/catalogue/builders/entities-manifest.d.ts.map +1 -1
  32. package/dist/lib/catalogue/builders/entities-manifest.js +10 -4
  33. package/dist/lib/catalogue/builders/entities-manifest.js.map +1 -1
  34. package/dist/lib/catalogue/builders/entity-archetype.d.ts +24 -0
  35. package/dist/lib/catalogue/builders/entity-archetype.d.ts.map +1 -0
  36. package/dist/lib/catalogue/builders/entity-archetype.js +121 -0
  37. package/dist/lib/catalogue/builders/entity-archetype.js.map +1 -0
  38. package/dist/lib/catalogue/builders/entity-merge.d.ts +6 -0
  39. package/dist/lib/catalogue/builders/entity-merge.d.ts.map +1 -0
  40. package/dist/lib/catalogue/builders/entity-merge.js +90 -0
  41. package/dist/lib/catalogue/builders/entity-merge.js.map +1 -0
  42. package/dist/lib/catalogue/builders/features.d.ts +1 -1
  43. package/dist/lib/catalogue/builders/features.js +1 -1
  44. package/dist/lib/catalogue/builders/glossary-xref.d.ts.map +1 -1
  45. package/dist/lib/catalogue/builders/glossary-xref.js +11 -5
  46. package/dist/lib/catalogue/builders/glossary-xref.js.map +1 -1
  47. package/dist/lib/catalogue/builders/journey-requirement.js +5 -5
  48. package/dist/lib/catalogue/builders/journey-requirement.js.map +1 -1
  49. package/dist/lib/catalogue/builders/quality-scores.js +1 -1
  50. package/dist/lib/catalogue/builders/requirements.js +1 -1
  51. package/dist/lib/catalogue/builders/requirements.js.map +1 -1
  52. package/dist/lib/catalogue/builders/service-contract-consumes.d.ts +1 -1
  53. package/dist/lib/catalogue/builders/service-contract-consumes.js +2 -2
  54. package/dist/lib/catalogue/builders/service-contract-consumes.js.map +1 -1
  55. package/dist/lib/catalogue/builders/service-entity-tables.d.ts +4 -0
  56. package/dist/lib/catalogue/builders/service-entity-tables.d.ts.map +1 -1
  57. package/dist/lib/catalogue/builders/service-entity-tables.js +1 -1
  58. package/dist/lib/catalogue/builders/service-entity-tables.js.map +1 -1
  59. package/dist/lib/catalogue/canonical-schema.yaml +50 -30
  60. package/dist/lib/catalogue/contract-id.d.ts +11 -4
  61. package/dist/lib/catalogue/contract-id.d.ts.map +1 -1
  62. package/dist/lib/catalogue/contract-id.js +49 -12
  63. package/dist/lib/catalogue/contract-id.js.map +1 -1
  64. package/dist/lib/catalogue/manifest-loader.d.ts +1 -1
  65. package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -1
  66. package/dist/lib/catalogue/manifest-loader.js +1 -1
  67. package/dist/lib/catalogue/manifest-loader.js.map +1 -1
  68. package/dist/lib/catalogue/retired-catalogues.js +1 -1
  69. package/dist/lib/catalogue/retired-catalogues.js.map +1 -1
  70. package/dist/lib/catalogue/rubric-coverage-map.yaml +7 -3
  71. package/dist/lib/catalogue/schema-compat.d.ts +1 -1
  72. package/dist/lib/catalogue/schema-compat.js +1 -1
  73. package/dist/lib/catalogue/schema-loader.d.ts +3 -3
  74. package/dist/lib/catalogue/schema-loader.d.ts.map +1 -1
  75. package/dist/lib/catalogue/staleness-verdicts.js +3 -3
  76. package/dist/lib/catalogue/staleness-verdicts.js.map +1 -1
  77. package/dist/lib/metamodel/roundtrip-gate.js +1 -1
  78. package/dist/lib/metamodel/roundtrip-gate.js.map +1 -1
  79. package/dist/lib/metamodel/schema-projection.d.ts +3 -3
  80. package/dist/lib/metamodel/schema-projection.d.ts.map +1 -1
  81. package/dist/lib/metamodel/schema-projection.js +2 -2
  82. package/dist/lib/metamodel/schema-projection.js.map +1 -1
  83. package/dist/lib/structure/apply.js +2 -2
  84. package/dist/lib/structure/apply.js.map +1 -1
  85. package/dist/lib/structure/archive.d.ts.map +1 -1
  86. package/dist/lib/structure/archive.js +19 -7
  87. package/dist/lib/structure/archive.js.map +1 -1
  88. package/dist/lib/structure/catalogue.d.ts +7 -2
  89. package/dist/lib/structure/catalogue.d.ts.map +1 -1
  90. package/dist/lib/structure/catalogue.js +31 -10
  91. package/dist/lib/structure/catalogue.js.map +1 -1
  92. package/dist/lib/structure/compose.js +1 -1
  93. package/dist/lib/structure/compose.js.map +1 -1
  94. package/dist/lib/structure/effects.js +1 -1
  95. package/dist/lib/structure/effects.js.map +1 -1
  96. package/dist/lib/structure/extract.js +3 -3
  97. package/dist/lib/structure/extract.js.map +1 -1
  98. package/dist/lib/structure/intended.d.ts +66 -0
  99. package/dist/lib/structure/intended.d.ts.map +1 -0
  100. package/dist/lib/structure/intended.js +194 -0
  101. package/dist/lib/structure/intended.js.map +1 -0
  102. package/dist/lib/structure/model.js +1 -1
  103. package/dist/lib/structure/model.js.map +1 -1
  104. package/dist/lib/structure/render.js +1 -1
  105. package/dist/lib/structure/render.js.map +1 -1
  106. package/dist/lib/structure/view.d.ts +3 -1
  107. package/dist/lib/structure/view.d.ts.map +1 -1
  108. package/dist/lib/structure/view.js +8 -3
  109. package/dist/lib/structure/view.js.map +1 -1
  110. package/dist/lib/validate/agreement-evidence.d.ts +1 -1
  111. package/dist/lib/validate/agreement-evidence.js +2 -2
  112. package/dist/lib/validate/agreement-evidence.js.map +1 -1
  113. package/dist/lib/validate/behaviour-store.d.ts +1 -1
  114. package/dist/lib/validate/behaviour-store.d.ts.map +1 -1
  115. package/dist/lib/validate/behaviour-store.js +49 -12
  116. package/dist/lib/validate/behaviour-store.js.map +1 -1
  117. package/dist/lib/validate/dispatch.js +2 -2
  118. package/dist/lib/validate/dispatch.js.map +1 -1
  119. package/dist/lib/validate/journey-impact.js +7 -7
  120. package/dist/lib/validate/journey-impact.js.map +1 -1
  121. package/dist/lib/validate/structural-model.d.ts +2 -2
  122. package/dist/lib/validate/structural-model.d.ts.map +1 -1
  123. package/dist/lib/validate/structural-model.js +48 -35
  124. package/dist/lib/validate/structural-model.js.map +1 -1
  125. package/dist/maintain-program.d.ts.map +1 -1
  126. package/dist/maintain-program.js +7 -1
  127. package/dist/maintain-program.js.map +1 -1
  128. package/dist/maintain-version.json +2 -2
  129. package/dist/verbs/change.js +2 -2
  130. package/dist/verbs/change.js.map +1 -1
  131. package/dist/verbs/migrate-structure.d.ts +6 -0
  132. package/dist/verbs/migrate-structure.d.ts.map +1 -0
  133. package/dist/verbs/migrate-structure.js +36 -0
  134. package/dist/verbs/migrate-structure.js.map +1 -0
  135. package/dist/verbs/structure.d.ts +0 -3
  136. package/dist/verbs/structure.d.ts.map +1 -1
  137. package/dist/verbs/structure.js +5 -34
  138. package/dist/verbs/structure.js.map +1 -1
  139. package/dist/verify-version.json +2 -2
  140. package/package.json +1 -1
  141. package/scripts/author-acceptance.mjs +5 -1
  142. package/scripts/author-version.json +2 -2
  143. package/scripts/build-persona-package.mjs +11 -7
  144. package/scripts/maintain-acceptance.mjs +8 -1
  145. package/scripts/maintain-version.json +2 -2
  146. package/scripts/verify-version.json +2 -2
@@ -1,4 +1,4 @@
1
- // structural-model: the structural model and each open change's structural artifact (M-ADR 0230 §4.3, §4.4, Proposed;
1
+ // structural-model: the structural model and each open change's structural artifact (M-ADR 0230 §4.3, §4.4;
2
2
  // docs/method/methods/guides/structural-model-format.md).
3
3
  //
4
4
  // The model (openspec/structure/<partition>.yaml), as the current view:
@@ -6,11 +6,13 @@
6
6
  // (a platform SDD: its domains and `platform`; an application or integration SDD: its sdd_id)
7
7
  // elements a `structure` catalogue, its `structure` columns only, an id held once, required columns,
8
8
  // value types and vocabularies (the catalogue metamodel's)
9
- // references resolved in the view; into a catalogue of another class, against that catalogue as built
9
+ // references resolved in the view; into a catalogue of another class, against that catalogue as built, less the
10
+ // contracts open changes' records agree as new (lib/structure/intended.ts): those are in their change's
11
+ // view, its dependants' and the intended one, so a current reference to one is refused (§4.11 proof 3)
10
12
  // hierarchies no cycle through a self-reference; natural keys unique; domain invariants naming their entity's own
11
13
  // attributes and relationships
12
- // views each generated view under docs/structure/ missing, stale (rendered from an earlier model) or edited by
13
- // hand (its body no longer matches the digest in its header)
14
+ // views docs/structure/ absent where the model is admitted, and each generated view under it missing, stale
15
+ // (rendered from an earlier model) or edited by hand (its body no longer matches the digest in its header)
14
16
  // Each open change (openspec/changes/<change>/structure/):
15
17
  // artifact where the model exists, a change has partition deltas or none.yaml, never both
16
18
  // deltas well formed; ADDED ids new; MODIFIED and REMOVED ids held by the delta's partition; a base
@@ -29,20 +31,22 @@
29
31
  // archived a change archived with structural deltas and no effect record (a raw `openspec archive`): its
30
32
  // structure is not applied, so its transition is not shipped
31
33
  //
32
- // Report only while M-ADR 0230 is Proposed (ENFORCED): every finding is a [WARN] and the check exits 0. Without
33
- // openspec/structure/ and with no change carrying a structure/ directory it reports [N/A].
34
+ // Enforced (the release that accepts M-ADR 0230): every finding is a [FAIL] and the check
35
+ // exits 1; with ENFORCED false it reports them as [WARN] and exits 0. Without openspec/structure/ and with no change
36
+ // carrying a structure/ directory it reports [N/A], so an SDD without a model is unaffected.
34
37
  import { readdir, readFile } from "node:fs/promises";
35
38
  import { join } from "node:path";
36
39
  import { parseDocument } from "yaml";
37
40
  import { parseCatalogueCsv } from "../catalogue/csv-reader.js";
38
41
  import { loadCanonicalSchema } from "../catalogue/schema-loader.js";
39
42
  import { APPLIED_FILE, elementKey, loadChangeStructure, loadModel, STRUCTURE_DIR } from "../structure/model.js";
40
- import { agreedOrder, attribute, checkDependencies, checkOverlap, intended, viewAt } from "../structure/compose.js";
43
+ import { agreedOrder, attribute, checkDependencies, checkOverlap, closure, intended, viewAt } from "../structure/compose.js";
41
44
  import { describeState, renderViews, VIEW_PATHS, viewState } from "../structure/render.js";
45
+ import { Additions, CONTRACTS, readAgreement } from "../structure/intended.js";
42
46
  import { validateDeltas, validateView, viewOf } from "../structure/view.js";
43
47
  const VIEW_COUNT = Object.keys(VIEW_PATHS).length;
44
- /** Flipped when M-ADR 0230 is accepted: findings then FAIL. */
45
- export const ENFORCED = false;
48
+ /** Findings FAIL (from M-ADR 0230's acceptance); false reports them only, as while M-ADR 0230 was Proposed. Also binds a change's structural deltas as agreed content in the behaviour-store check. */
49
+ export const ENFORCED = true;
46
50
  const CHANGES_DIR = join("openspec", "changes");
47
51
  async function readText(p) {
48
52
  try {
@@ -60,19 +64,6 @@ async function subdirs(p) {
60
64
  return [];
61
65
  }
62
66
  }
63
- /** The change's agreement record status (docs/agreements/<change>.yaml), or `unrecorded`. */
64
- async function agreementStatus(repo, change) {
65
- const text = await readText(join(repo, "docs", "agreements", `${change}.yaml`));
66
- if (text === null)
67
- return "unrecorded";
68
- try {
69
- const status = String(parseDocument(text).toJS()?.agreement_record?.status ?? "");
70
- return ["proposed", "agreed", "withdrawn", "superseded"].find((s) => s === status) ?? "unrecorded";
71
- }
72
- catch {
73
- return "unrecorded";
74
- }
75
- }
76
67
  /** Names of archived changes: openspec/changes/archive/<YYYY-MM-DD>-<name>. */
77
68
  async function archivedNames(repo) {
78
69
  return new Set((await subdirs(join(repo, CHANGES_DIR, "archive"))).map((d) => d.replace(/^\d{4}-\d{2}-\d{2}-/, "")));
@@ -91,8 +82,22 @@ function builtLookup(repo) {
91
82
  const text = await readText(join(repo, "catalogues", `${catalogue}.csv`));
92
83
  cache.set(catalogue, text === null ? null : parseCatalogueCsv(text).rows);
93
84
  };
85
+ fn.rows = (catalogue) => cache.get(catalogue) ?? [];
94
86
  return fn;
95
87
  }
88
+ /**
89
+ * The built catalogues as one view sees them. A contract an open change's record agrees as new is built from the
90
+ * change's own sources, so it is in no view but that change's, its dependants' and, once agreed, the intended one.
91
+ */
92
+ function builtIn(built, all, mine) {
93
+ return (catalogue, column) => {
94
+ const rows = built(catalogue, column);
95
+ if (rows === null || catalogue !== CONTRACTS || column !== "id")
96
+ return rows;
97
+ const out = new Set([...rows].filter((id) => !all.has(id) || mine.has(id)));
98
+ return out;
99
+ };
100
+ }
96
101
  export async function checkStructuralModel(repo, options = {}) {
97
102
  const enforced = options.enforced ?? ENFORCED;
98
103
  const problems = [];
@@ -123,6 +128,16 @@ export async function checkStructuralModel(repo, options = {}) {
123
128
  for (const c of schema.catalogues)
124
129
  if (c.sourceOfTruth !== "structure")
125
130
  await built.load(c.name);
131
+ const open = new Map();
132
+ const newContracts = new Map();
133
+ for (const s of structures) {
134
+ const agreement = await readAgreement(repo, s.change);
135
+ open.set(s.change, { structure: s, status: agreement.status });
136
+ newContracts.set(s.change, agreement.newContracts);
137
+ }
138
+ const additions = new Additions(open, newContracts, built.rows(CONTRACTS));
139
+ const allNew = additions.contracts(open.keys());
140
+ const addedBy = (catalogue, id) => additions.addedBy(catalogue, id);
126
141
  let allowed = null;
127
142
  if (profile === "platform-profile") {
128
143
  allowed = new Set(["platform", ...(view.get("domains")?.keys() ?? []), ...(built("domains", "id") ?? [])]);
@@ -143,14 +158,14 @@ export async function checkStructuralModel(repo, options = {}) {
143
158
  // The current view.
144
159
  const unresolved = new Set();
145
160
  const currentProblems = [];
146
- validateView(schema, view, built, currentProblems, unresolved);
161
+ validateView(schema, view, builtIn(built, allNew, new Set()), currentProblems, unresolved, addedBy);
147
162
  problems.push(...currentProblems);
148
163
  const elementCount = [...view.values()].reduce((n, m) => n + m.size, 0);
149
164
  lines.push(files === null ? `model: none (${STRUCTURE_DIR}/ absent)` : `model: ${files.length} partition file(s), ${elementCount} element(s) in ${view.size} catalogue(s)`);
150
165
  if (unresolved.size > 0)
151
166
  lines.push(`references into ${[...unresolved].sort().join(", ")}: unresolved (no built catalogue)`);
152
- // The generated views, against a render of the current view. An SDD that has not rendered them yet (no
153
- // docs/structure/) is adopting the model, which keeps its originals until the review is complete (§6 step 1).
167
+ // The generated views, against a render of the current view. Where a model is admitted they are required (M-ADR
168
+ // 0230 §4.3): an SDD reviews an extraction before writing it (§6 step 1), so none is mid-adoption with a model.
154
169
  if (files !== null && (await subdirs(join(repo, "docs"))).includes("structure")) {
155
170
  let current = 0;
156
171
  for (const [path, rendered] of renderViews(view)) {
@@ -163,14 +178,15 @@ export async function checkStructuralModel(repo, options = {}) {
163
178
  lines.push(`generated views: ${current} of ${VIEW_COUNT} current`);
164
179
  }
165
180
  else if (files !== null) {
166
- lines.push("generated views: not rendered (no docs/structure/); `sdd-cli structure render` writes them");
181
+ problems.push("docs/structure/: the generated views are not rendered; where a structural model is admitted they are required. `structure render` writes them (sdd-maintain or sdd-cli)");
182
+ lines.push(`generated views: 0 of ${VIEW_COUNT} (no docs/structure/)`);
167
183
  }
168
184
  // Open changes.
169
- const addedBy = new Map();
185
+ const addedByChange = new Map();
170
186
  for (const s of structures)
171
187
  for (const d of s.deltas)
172
188
  for (const e of d.added)
173
- addedBy.set(elementKey(e.catalogue, e.id), s.change);
189
+ addedByChange.set(elementKey(e.catalogue, e.id), s.change);
174
190
  const features = new Set(view.get("features")?.keys() ?? []);
175
191
  let withDeltas = 0;
176
192
  let noOps = 0;
@@ -190,7 +206,7 @@ export async function checkStructuralModel(repo, options = {}) {
190
206
  }
191
207
  if (s.noOp && s.deltas.length > 0)
192
208
  problems.push(`${s.noOp.file}: a no-op claim beside ${s.deltas.length} partition delta(s); state one or the other`);
193
- const elsewhere = new Map([...addedBy].filter(([, c]) => c !== s.change));
209
+ const elsewhere = new Map([...addedByChange].filter(([, c]) => c !== s.change));
194
210
  validateDeltas(schema, view, s.deltas, elsewhere, problems);
195
211
  // A behaviour delta for a feature the model does not hold needs that feature added here.
196
212
  const adds = new Set(s.deltas.flatMap((d) => d.added.filter((e) => e.catalogue === "features").map((e) => e.id)));
@@ -207,9 +223,6 @@ export async function checkStructuralModel(repo, options = {}) {
207
223
  }
208
224
  lines.push(`changes: ${changes.length} open, ${withDeltas} with structural deltas, ${noOps} claiming none, ${without} without the artifact`);
209
225
  // Composition (M-ADR 0230 §4.5): the three views and the three checks.
210
- const open = new Map();
211
- for (const s of structures)
212
- open.set(s.change, { structure: s, status: await agreementStatus(repo, s.change) });
213
226
  const archived = await archivedNames(repo);
214
227
  checkOverlap(open, problems);
215
228
  checkDependencies(open, archived, problems);
@@ -219,7 +232,7 @@ export async function checkStructuralModel(repo, options = {}) {
219
232
  if (oc.structure.deltas.length === 0)
220
233
  continue;
221
234
  const at = [];
222
- validateView(schema, viewAt(view, name, open), built, at, new Set());
235
+ validateView(schema, viewAt(view, name, open), builtIn(built, allNew, additions.contracts(closure(name, open))), at, new Set(), addedBy);
223
236
  for (const p of at) {
224
237
  if (known.has(p))
225
238
  continue;
@@ -231,7 +244,7 @@ export async function checkStructuralModel(repo, options = {}) {
231
244
  const agreed = agreedOrder(open);
232
245
  if (agreed.length > 0) {
233
246
  const inIntended = [];
234
- validateView(schema, intended(view, open), built, inIntended, new Set());
247
+ validateView(schema, intended(view, open), builtIn(built, allNew, additions.contracts(agreed)), inIntended, new Set(), addedBy);
235
248
  for (const p of inIntended) {
236
249
  if (known.has(p) || atAgreed.has(p))
237
250
  continue;
@@ -259,7 +272,7 @@ export async function checkStructuralModel(repo, options = {}) {
259
272
  if (problems.length === 0)
260
273
  return { exitCode: 0, stdout: `structural-model:\n${body}[PASS] structural-model: ok\n` };
261
274
  const tag = enforced ? "FAIL" : "WARN";
262
- const tail = enforced ? `[FAIL] structural-model: ${problems.length} finding(s)\n` : `[WARN] structural-model: ${problems.length} finding(s), report only (M-ADR 0230, Proposed)\n`;
275
+ const tail = enforced ? `[FAIL] structural-model: ${problems.length} finding(s)\n` : `[WARN] structural-model: ${problems.length} finding(s), report only (M-ADR 0230)\n`;
263
276
  return { exitCode: enforced ? 1 : 0, stdout: `structural-model:\n${body}${problems.map((p) => `[${tag}] ${p}\n`).join("")}${tail}` };
264
277
  }
265
278
  //# sourceMappingURL=structural-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"structural-model.js","sourceRoot":"","sources":["../../../src/lib/validate/structural-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structural-model.js","sourceRoot":"","sources":["../../../src/lib/validate/structural-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"maintain-program.d.ts","sourceRoot":"","sources":["../src/maintain-program.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAapD,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAWvD,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAiD,CAAC;AAMrG,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBxE;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAoC9C"}
1
+ {"version":3,"file":"maintain-program.d.ts","sourceRoot":"","sources":["../src/maintain-program.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAcpD,iGAAiG;AACjG,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAavD,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAiD,CAAC;AAMrG,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBxE;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAsC9C"}
@@ -7,7 +7,8 @@
7
7
  // (M-ADR 0218 §4.2–4.3): the method payload, lock, CI block and briefing (`sync`,
8
8
  // `generate-briefing`), the derived model (`catalogue build | aggregate | graph | diff`), an
9
9
  // output the caller names (`pack build`, `render screen`), and a code repository's briefing
10
- // (`context pull`). Plus the whole verify surface, because the personas nest.
10
+ // (`context pull`), and the structural model's generated views (`structure render`, with `structure show` beside
11
+ // them). Plus the whole verify surface, because the personas nest.
11
12
  //
12
13
  // ⚠ As with sdd-verify, the boundary is ABSENCE, not a menu: the package ships only the import
13
14
  // closure of maintain-bin.js, so authoring verbs (init, scaffold, plan, conformance,
@@ -23,6 +24,7 @@ import { registerContext } from "./verbs/context.js";
23
24
  import { registerGenerateBriefing } from "./verbs/generate-briefing.js";
24
25
  import { registerPackBuild } from "./verbs/pack-build.js";
25
26
  import { registerRender } from "./verbs/render.js";
27
+ import { registerStructure } from "./verbs/structure.js";
26
28
  import { registerSync } from "./verbs/sync.js";
27
29
  const SPEC_URL = "docs/method/cli/sdd-cli-specification.md (in the method distribution)";
28
30
  /** The verbs maintain adds to verify, as `<verb>` or `<verb> <subcommand>`. Asserted by test. */
@@ -37,6 +39,8 @@ export const MAINTAIN_ONLY_SURFACE = [
37
39
  "catalogue diff",
38
40
  "pack build",
39
41
  "render screen",
42
+ "structure show",
43
+ "structure render",
40
44
  ];
41
45
  /** The full surface: verify's, plus maintain's own. */
42
46
  export const MAINTAIN_SURFACE = [...VERIFY_SURFACE, ...MAINTAIN_ONLY_SURFACE];
@@ -79,6 +83,8 @@ export function buildMaintainProgram() {
79
83
  registerGenerateBriefing(program);
80
84
  registerContext(program);
81
85
  registerRender(program);
86
+ // The structural model's generated views are derived (M-ADR 0230 §4.3); show is the read beside them.
87
+ registerStructure(program);
82
88
  const catalogue = program.commands.find((c) => c.name() === "catalogue");
83
89
  catalogue.description("Build, aggregate, validate and query per-SDD catalogues (M-ADR 0134) — the derived model");
84
90
  registerCatalogueBuild(catalogue);
@@ -1 +1 @@
1
- {"version":3,"file":"maintain-program.js","sourceRoot":"","sources":["../src/maintain-program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintain-program.js","sourceRoot":"","sources":["../src/maintain-program.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "0.13.1",
3
- "built_against_sdd_cli": "4.0.1"
2
+ "version": "0.15.0",
3
+ "built_against_sdd_cli": "5.1.0"
4
4
  }
@@ -1,12 +1,12 @@
1
1
  import { archiveChange } from "../lib/structure/archive.js";
2
- // `change archive <change>`: the method's archive operation (M-ADR 0230 §4.6, Proposed). Behaviour and structure are
2
+ // `change archive <change>`: the method's archive operation (M-ADR 0230 §4.6). Behaviour and structure are
3
3
  // prepared in a scratch worktree, validated as a whole, and published as one commit only if the store has not moved.
4
4
  // Run it again after an interruption: it verifies an archive that already landed, and recovers a raw `openspec archive`.
5
5
  export function registerChange(program) {
6
6
  const change = program.command("change").description("Operate on a change in the behaviour store (M-ADR 0223, M-ADR 0230)");
7
7
  change
8
8
  .command("archive <change>")
9
- .description("Archive a judged change: its behaviour and structure published as one guarded commit (M-ADR 0230 §4.6, Proposed)")
9
+ .description("Archive a judged change: its behaviour and structure published as one guarded commit (M-ADR 0230 §4.6)")
10
10
  .option("--sdd-path <path>", "the SDD whose openspec/ is the store (default: the current directory)", ".")
11
11
  .action(async (name, opts) => {
12
12
  process.exitCode = await archiveChange({ sddPath: opts.sddPath, change: name, write: (s) => process.stdout.write(s) });
@@ -1 +1 @@
1
- {"version":3,"file":"change.js","sourceRoot":"","sources":["../../src/verbs/change.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,qHAAqH;AACrH,qHAAqH;AACrH,yHAAyH;AACzH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,qEAAqE,CAAC,CAAC;IAC5H,MAAM;SACH,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,kHAAkH,CAAC;SAC/H,MAAM,CAAC,mBAAmB,EAAE,uEAAuE,EAAE,GAAG,CAAC;SACzG,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAyB,EAAE,EAAE;QACxD,OAAO,CAAC,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"change.js","sourceRoot":"","sources":["../../src/verbs/change.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,2GAA2G;AAC3G,qHAAqH;AACrH,yHAAyH;AACzH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,qEAAqE,CAAC,CAAC;IAC5H,MAAM;SACH,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wGAAwG,CAAC;SACrH,MAAM,CAAC,mBAAmB,EAAE,uEAAuE,EAAE,GAAG,CAAC;SACzG,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAyB,EAAE,EAAE;QACxD,OAAO,CAAC,QAAQ,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Command } from "commander";
2
+ export declare function runMigrateStructure(sddPath: string, options: {
3
+ dryRun: boolean;
4
+ }, write: (s: string) => void): Promise<number>;
5
+ export declare function registerMigrateStructure(program: Command): void;
6
+ //# sourceMappingURL=migrate-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-structure.d.ts","sourceRoot":"","sources":["../../src/verbs/migrate-structure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAepI;AAID,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAW/D"}
@@ -0,0 +1,36 @@
1
+ import { extractStructure, writeExtraction } from "../lib/structure/extract.js";
2
+ // `migrate structure [--dry-run]`: extract an SDD's first structural model from its sources, with its report
3
+ // (M-ADR 0230 §6 step 1). Refuses an SDD that has a model; writes no source file.
4
+ export async function runMigrateStructure(sddPath, options, write) {
5
+ const x = await extractStructure(sddPath);
6
+ if (x.refused !== null) {
7
+ write(`[FAIL] migrate structure: ${x.refused}\n`);
8
+ return 1;
9
+ }
10
+ const total = [...x.counts.values()].reduce((a, b) => a + b, 0);
11
+ write(`${options.dryRun ? "would extract" : "extracted"} ${total} element(s) in ${x.counts.size} catalogue(s), ${x.files.size} partition(s); ${x.loss.length + x.extraction.length} fact(s) the model could not carry\n`);
12
+ if (options.dryRun) {
13
+ write(x.report);
14
+ return 0;
15
+ }
16
+ for (const p of await writeExtraction(sddPath, x))
17
+ write(`wrote ${p}\n`);
18
+ write("[INFO] migrate structure: the model is now the record of structure, and the catalogue is built from it. Keep the original sources until it is reviewed against the code; removing openspec/structure/ withdraws it\n");
19
+ return 0;
20
+ }
21
+ // Authored content, so the author's and sdd-cli's (M-ADR 0230 §6, at its acceptance). Attaches to the
22
+ // `migrate` command its program already registers.
23
+ export function registerMigrateStructure(program) {
24
+ const migrate = program.commands.find((c) => c.name() === "migrate");
25
+ if (!migrate)
26
+ throw new Error("registerMigrateStructure: register `migrate` first");
27
+ migrate
28
+ .command("structure")
29
+ .description("Extract the SDD's first structural model from its sources into openspec/structure/, with an extraction report; source files are untouched (M-ADR 0230)")
30
+ .option("--sdd-path <path>", "the SDD (default: the current directory)", ".")
31
+ .option("--dry-run", "write nothing; print the report", false)
32
+ .action(async (opts) => {
33
+ process.exitCode = await runMigrateStructure(opts.sddPath, { dryRun: opts.dryRun }, (s) => process.stdout.write(s));
34
+ });
35
+ }
36
+ //# sourceMappingURL=migrate-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-structure.js","sourceRoot":"","sources":["../../src/verbs/migrate-structure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEhF,6GAA6G;AAC7G,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAA4B,EAAE,KAA0B;IACjH,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,6BAA6B,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,IAAI,KAAK,kBAAkB,CAAC,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,sCAAsC,CAAC,CAAC;IAC1N,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzE,KAAK,CAAC,sNAAsN,CAAC,CAAC;IAC9N,OAAO,CAAC,CAAC;AACX,CAAC;AAED,sGAAsG;AACtG,mDAAmD;AACnD,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpF,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,wJAAwJ,CAAC;SACrK,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,EAAE,GAAG,CAAC;SAC5E,MAAM,CAAC,WAAW,EAAE,iCAAiC,EAAE,KAAK,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,IAA0C,EAAE,EAAE;QAC3D,OAAO,CAAC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -3,8 +3,5 @@ export declare function runStructureShow(sddPath: string, ref: string, write: (s
3
3
  export declare function runStructureRender(sddPath: string, options: {
4
4
  check: boolean;
5
5
  }, write: (s: string) => void): Promise<number>;
6
- export declare function runMigrateStructure(sddPath: string, options: {
7
- dryRun: boolean;
8
- }, write: (s: string) => void): Promise<number>;
9
6
  export declare function registerStructure(program: Command): void;
10
7
  //# sourceMappingURL=structure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/verbs/structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAID,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,EAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAID,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAepI;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4BxD"}
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../../src/verbs/structure.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAID,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,EAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiBxD"}
@@ -1,12 +1,11 @@
1
1
  import { mkdir, readFile, writeFile } from "node:fs/promises";
2
2
  import { dirname, join } from "node:path";
3
3
  import { stringify } from "yaml";
4
- import { extractStructure, writeExtraction } from "../lib/structure/extract.js";
5
4
  import { elementKey, loadModel, STRUCTURE_DIR } from "../lib/structure/model.js";
6
5
  import { describeState, renderViews, viewState } from "../lib/structure/render.js";
7
6
  import { revisionOf, viewOf } from "../lib/structure/view.js";
8
7
  // `structure show <catalogue>/<id>`: one element of the structural model and its revision, the value a change's
9
- // `base:` records for it (M-ADR 0230 §4.4, Proposed). Read only.
8
+ // `base:` records for it (M-ADR 0230 §4.4). Read only.
10
9
  export async function runStructureShow(sddPath, ref, write) {
11
10
  const slash = ref.indexOf("/");
12
11
  if (slash <= 0 || slash === ref.length - 1) {
@@ -33,7 +32,7 @@ export async function runStructureShow(sddPath, ref, write) {
33
32
  write(stringify({ id: e.id, ...e.columns }));
34
33
  return 0;
35
34
  }
36
- // `structure render [--check]`: write the generated views of the current view (M-ADR 0230 §4.3, Proposed), or, with
35
+ // `structure render [--check]`: write the generated views of the current view (M-ADR 0230 §4.3), or, with
37
36
  // --check, write nothing and report each view that is missing, stale or edited by hand (exit 1 if any is).
38
37
  export async function runStructureRender(sddPath, options, write) {
39
38
  const problems = [];
@@ -73,38 +72,10 @@ export async function runStructureRender(sddPath, options, write) {
73
72
  write(off === 0 ? "[PASS] structure render --check: every view is current\n" : `[FAIL] structure render --check: ${off} view(s) not current\n`);
74
73
  return options.check && off > 0 ? 1 : 0;
75
74
  }
76
- // `migrate structure [--dry-run]`: extract an SDD's first structural model from its sources, with its report
77
- // (M-ADR 0230 §6 step 1, Proposed). Refuses an SDD that has a model; writes no source file.
78
- export async function runMigrateStructure(sddPath, options, write) {
79
- const x = await extractStructure(sddPath);
80
- if (x.refused !== null) {
81
- write(`[FAIL] migrate structure: ${x.refused}\n`);
82
- return 1;
83
- }
84
- const total = [...x.counts.values()].reduce((a, b) => a + b, 0);
85
- write(`${options.dryRun ? "would extract" : "extracted"} ${total} element(s) in ${x.counts.size} catalogue(s), ${x.files.size} partition(s); ${x.loss.length + x.extraction.length} fact(s) the model could not carry\n`);
86
- if (options.dryRun) {
87
- write(x.report);
88
- return 0;
89
- }
90
- for (const p of await writeExtraction(sddPath, x))
91
- write(`wrote ${p}\n`);
92
- write("[INFO] migrate structure: the model is now the record of structure, and the catalogue is built from it. Keep the original sources until it is reviewed against the code; removing openspec/structure/ withdraws it\n");
93
- return 0;
94
- }
75
+ // Read the model and write its generated views: maintain's and sdd-cli's (M-ADR 0230 §4.3, at its acceptance).
76
+ // Extraction is the author's (migrate-structure.ts), registered apart so this module's closure carries no extractor.
95
77
  export function registerStructure(program) {
96
- const migrate = program.commands.find((c) => c.name() === "migrate");
97
- if (migrate) {
98
- migrate
99
- .command("structure")
100
- .description("Extract the SDD's first structural model from its sources into openspec/structure/, with an extraction report; source files are untouched (M-ADR 0230, Proposed)")
101
- .option("--sdd-path <path>", "the SDD (default: the current directory)", ".")
102
- .option("--dry-run", "write nothing; print the report", false)
103
- .action(async (opts) => {
104
- process.exitCode = await runMigrateStructure(opts.sddPath, { dryRun: opts.dryRun }, (s) => process.stdout.write(s));
105
- });
106
- }
107
- const structure = program.command("structure").description("Read the structural model, and write its generated views (M-ADR 0230, Proposed)");
78
+ const structure = program.command("structure").description("Read the structural model, and write its generated views (M-ADR 0230)");
108
79
  structure
109
80
  .command("show <element>")
110
81
  .description("Print one element of the structural model, <catalogue>/<id>, with its revision")
@@ -1 +1 @@
1
- {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/verbs/structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/verbs/structure.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "4.0.1",
3
- "built_against_sdd_cli": "4.0.1"
2
+ "version": "5.1.0",
3
+ "built_against_sdd_cli": "5.1.0"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sdd-method/sdd-cli",
3
- "version": "4.0.1",
3
+ "version": "5.1.0",
4
4
  "description": "The full SDD method CLI (sdd-cli): init, sync, validate, catalogue build and aggregate, scaffold, plan, pack build and every other method verb for spec-driven-development repositories. The verify-only, author and maintain personas ship as @sdd-method/verify-cli, @sdd-method/author-cli and @sdd-method/maintain-cli.",
5
5
  "keywords": [
6
6
  "sdd-method",
@@ -44,6 +44,7 @@ const MAINTAIN_ONLY = [
44
44
  /^\.claude\/settings\.json$/, /^\.github\/hooks\//, // item 5
45
45
  /^catalogues\//, /^catalogues-aggregated\//, /^catalogues(-aggregated)?-graph\.jsonl$/, // item 7
46
46
  /^\.sdd\/bundle-cache\//,
47
+ /^docs\/structure\//, // the structural model's generated views (M-ADR 0230 §4.3)
47
48
  ];
48
49
  function lockManaged(repo) {
49
50
  const p = join(repo, "method-baseline.lock");
@@ -141,6 +142,8 @@ for (const repo of REPOS) {
141
142
  check(`api-surface @${name}`, repo, (_c, ws) => ["api-surface", "--source", ".", "--out", join(ws, "surface.yaml")]);
142
143
  // Rewrites the SDD's own files to the current vocabulary: must never touch a maintain-only path (the lock, managed payload).
143
144
  check(`migrate vocabulary @${name}`, repo, () => ["migrate", "vocabulary", "--sdd-path", "."]);
145
+ // Writes the first structural model, or refuses an SDD that has one (M-ADR 0230 §6): authored content, never a view.
146
+ check(`migrate structure @${name}`, repo, () => ["migrate", "structure", "--sdd-path", "."]);
144
147
  const screens = join(repo, "screens");
145
148
  if (existsSync(screens)) {
146
149
  const spec = readdirSync(screens).find((f) => f.endsWith(".md"));
@@ -163,7 +166,8 @@ for (const repo of REPOS) {
163
166
  void kind;
164
167
  }
165
168
 
166
- const SURFACE = ["catalogue check", "generate-briefing", "scaffold domain", "plan", "contracts attest", "conformance", "api-surface", "render screen", "context pull", "migrate vocabulary",
169
+ // change archive needs a judged change and a publishable store, which no workspace here has: listed, never passed.
170
+ const SURFACE = ["catalogue check", "generate-briefing", "scaffold domain", "plan", "contracts attest", "conformance", "api-surface", "render screen", "context pull", "migrate vocabulary", "migrate structure", "change archive",
167
171
  "snapshot fold", "snapshot land", "snapshot verify", "snapshot diff", "snapshot targets", "snapshot advance"];
168
172
  const missing = SURFACE.filter((v) => !exercised.has(v));
169
173
  process.stdout.write(`COVERAGE exercised: ${[...exercised].join(", ")}\n`);
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "0.12.1",
3
- "built_against_sdd_cli": "4.0.1"
2
+ "version": "0.14.0",
3
+ "built_against_sdd_cli": "5.1.0"
4
4
  }