@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
@@ -44,11 +44,6 @@ const ADMIN_CANARIES = [
44
44
  "verbs/metamodel.js",
45
45
  "verbs/catalogue.js",
46
46
  "lib/catalogue/migration-map.js",
47
- // The archive operation and extraction (M-ADR 0230 §4.6, §6, Proposed) are sdd-cli's while the record is Proposed: no persona carries them.
48
- "verbs/change.js",
49
- "lib/structure/archive.js",
50
- "lib/structure/apply.js",
51
- "lib/structure/extract.js",
52
47
  ];
53
48
  const AUTHOR_ONLY_MODULES = [
54
49
  "verbs/conformance.js",
@@ -58,6 +53,12 @@ const AUTHOR_ONLY_MODULES = [
58
53
  "verbs/api-surface.js",
59
54
  "verbs/snapshot.js",
60
55
  "lib/snapshot/land.js",
56
+ // The structural model's authoring: its extraction and the archive operation (M-ADR 0230 §4.6, §6, at its acceptance).
57
+ "verbs/change.js",
58
+ "verbs/migrate-structure.js",
59
+ "lib/structure/archive.js",
60
+ "lib/structure/apply.js",
61
+ "lib/structure/extract.js",
61
62
  ];
62
63
  const MAINTAIN_WRITERS = [
63
64
  "verbs/sync.js",
@@ -69,6 +70,8 @@ const MAINTAIN_WRITERS = [
69
70
  "lib/catalogue/graph-run.js",
70
71
  "lib/snapshot/catalogue-diff.js",
71
72
  "lib/pack/builder.js",
73
+ // The generated views' writer (M-ADR 0230 §4.3); render.js itself is read by the structural-model validator.
74
+ "verbs/structure.js",
72
75
  ];
73
76
  const AUTHOR_CANARIES = [...ADMIN_CANARIES, ...AUTHOR_ONLY_MODULES];
74
77
  const PERSONAS = {
@@ -84,6 +87,7 @@ const PERSONAS = {
84
87
  "verbs/sync.js",
85
88
  "verbs/pack.js",
86
89
  "verbs/render.js",
90
+ "verbs/structure.js",
87
91
  "lib/sync/index.js",
88
92
  "lib/catalogue/build.js",
89
93
  "lib/catalogue/aggregate.js",
@@ -115,7 +119,7 @@ const PERSONAS = {
115
119
  `# @sdd-method/author-cli\n\n` +
116
120
  `\`sdd-author\` is for the people and agents who own one SDD's content. It re-authors that content and **cannot move the baseline or rebuild the model** (M-ADR 0220).\n\n` +
117
121
  `Verbs: everything in \`@sdd-method/verify-cli\`, plus \`scaffold domain\`, \`plan\`, \`contracts attest\`, \`conformance\`, \`api-surface\`, ` +
118
- `the \`snapshot\` verbs, \`render screen\`, \`generate-briefing\`, \`context pull\` and \`catalogue check\`.\n\n` +
122
+ `the \`snapshot\` verbs, \`render screen\`, \`generate-briefing\`, \`context pull\`, \`catalogue check\`, and the structural model's \`migrate structure\` and \`change archive\`.\n\n` +
119
123
  `\`catalogue check\` reports whether the committed catalogues are what the committed specifications build to, and writes nothing. ` +
120
124
  `Rebuilding them (\`catalogue build\`), \`sync\` and \`pack build\` are in \`@sdd-method/maintain-cli\`; \`init\` and the administrator's verbs are in \`@sdd-method/sdd-cli\`. ` +
121
125
  `They are not present in this package, and invoking one fails with exit 1.\n`,
@@ -134,7 +138,7 @@ const PERSONAS = {
134
138
  `# @sdd-method/maintain-cli\n\n` +
135
139
  `\`sdd-maintain\` brings an SDD repository current and rebuilds its derived model, and **cannot author specification content** (M-ADR 0218).\n\n` +
136
140
  `Verbs: everything in \`@sdd-method/verify-cli\`, plus \`sync\`, \`generate-briefing\`, \`context pull\`, ` +
137
- `\`catalogue build\`, \`catalogue aggregate\`, \`catalogue graph\`, \`catalogue diff\`, \`pack build\`, \`render screen\`.\n\n` +
141
+ `\`catalogue build\`, \`catalogue aggregate\`, \`catalogue graph\`, \`catalogue diff\`, \`pack build\`, \`render screen\`, \`structure show\`, \`structure render\`.\n\n` +
138
142
  `Each writes only derived or method-managed content, and two runs on the same commit write the same bytes. ` +
139
143
  `Authoring verbs — \`init\`, \`scaffold\`, \`plan\`, \`conformance\` and the rest — are not present in it, ` +
140
144
  `and are in \`@sdd-method/sdd-cli\`. Invoking one fails with exit 1.\n`,
@@ -49,6 +49,7 @@ const FIXED = [
49
49
  /^catalogues\//, /^catalogues-aggregated\//, /^catalogues(-aggregated)?-graph\.jsonl$/, // item 7
50
50
  /^\.sdd\/bundle-cache\//, // sync's cache of the last-applied bundle (managed by sync itself)
51
51
  /^MCP_SETUP\.md$/, // item 9 (code repo)
52
+ /^docs\/structure\//, // the structural model's generated views (M-ADR 0230 §4.3)
52
53
  ];
53
54
  function lockManaged(repo) {
54
55
  const p = join(repo, "method-baseline.lock");
@@ -217,6 +218,12 @@ for (const repo of REPOS) {
217
218
  const spec = readdirSync(screens).find((f) => f.endsWith(".md"));
218
219
  if (spec) twice(`render screen @${name}`, clone, ["render", "screen", join("screens", spec), "--out", join(ws, "screen.svg")], managed);
219
220
  }
221
+ // structure render and show: an SDD with a structural model (M-ADR 0230 §4.3). show reads one domain the model holds.
222
+ if (existsSync(join(clone, "openspec", "structure"))) {
223
+ twice(`structure render @${name}`, clone, ["structure", "render", "--sdd-path", "."], managed);
224
+ const domain = readdirSync(join(clone, "openspec", "structure")).find((f) => f.endsWith(".yaml") && f !== "platform.yaml");
225
+ if (domain) twice(`structure show @${name}`, clone, ["structure", "show", `domains/${domain.slice(0, -5)}`, "--sdd-path", "."], managed, { allowNonZero: true });
226
+ }
220
227
  // context pull: a scratch code repo, named for a repository this SDD catalogues, in its own directory: an
221
228
  // SDD often catalogues a repository with its own name, and beside the clone that path IS the clone.
222
229
  const repoCsv = join(clone, "catalogues", "repositories.csv");
@@ -233,7 +240,7 @@ for (const repo of REPOS) {
233
240
  }
234
241
  }
235
242
 
236
- const SURFACE = ["sync", "generate-briefing", "catalogue build", "catalogue graph", "catalogue aggregate", "context pull", "catalogue diff", "pack build", "render screen"];
243
+ const SURFACE = ["sync", "generate-briefing", "catalogue build", "catalogue graph", "catalogue aggregate", "context pull", "catalogue diff", "pack build", "render screen", "structure render", "structure show"];
237
244
  const missing = SURFACE.filter((v) => !exercised.has(v));
238
245
  process.stdout.write(`COVERAGE exercised: ${[...exercised].join(", ")}\n`);
239
246
  if (missing.length) process.stdout.write(`COVERAGE NOT exercised here (needs inputs this run lacks): ${missing.join(", ")}\n`);
@@ -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,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
  }