@sdd-method/sdd-cli 2.5.0 → 4.0.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 (163) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +4 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/behaviour-store/archive.d.ts +12 -0
  5. package/dist/lib/behaviour-store/archive.d.ts.map +1 -1
  6. package/dist/lib/behaviour-store/archive.js +13 -0
  7. package/dist/lib/behaviour-store/archive.js.map +1 -1
  8. package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
  9. package/dist/lib/catalogue/aggregate.js +64 -0
  10. package/dist/lib/catalogue/aggregate.js.map +1 -1
  11. package/dist/lib/catalogue/build.d.ts +3 -1
  12. package/dist/lib/catalogue/build.d.ts.map +1 -1
  13. package/dist/lib/catalogue/build.js +45 -2
  14. package/dist/lib/catalogue/build.js.map +1 -1
  15. package/dist/lib/catalogue/builders/adr-governs.d.ts +4 -0
  16. package/dist/lib/catalogue/builders/adr-governs.d.ts.map +1 -0
  17. package/dist/lib/catalogue/builders/adr-governs.js +39 -0
  18. package/dist/lib/catalogue/builders/adr-governs.js.map +1 -0
  19. package/dist/lib/catalogue/builders/adrs.d.ts +2 -0
  20. package/dist/lib/catalogue/builders/adrs.d.ts.map +1 -1
  21. package/dist/lib/catalogue/builders/adrs.js +11 -0
  22. package/dist/lib/catalogue/builders/adrs.js.map +1 -1
  23. package/dist/lib/catalogue/builders/capability-spec.d.ts.map +1 -1
  24. package/dist/lib/catalogue/builders/capability-spec.js +1 -0
  25. package/dist/lib/catalogue/builders/capability-spec.js.map +1 -1
  26. package/dist/lib/catalogue/builders/contract-revisions.d.ts +12 -0
  27. package/dist/lib/catalogue/builders/contract-revisions.d.ts.map +1 -0
  28. package/dist/lib/catalogue/builders/contract-revisions.js +126 -0
  29. package/dist/lib/catalogue/builders/contract-revisions.js.map +1 -0
  30. package/dist/lib/catalogue/builders/data-model.d.ts +73 -0
  31. package/dist/lib/catalogue/builders/data-model.d.ts.map +1 -0
  32. package/dist/lib/catalogue/builders/data-model.js +316 -0
  33. package/dist/lib/catalogue/builders/data-model.js.map +1 -0
  34. package/dist/lib/catalogue/builders/entities-mermaid.d.ts.map +1 -1
  35. package/dist/lib/catalogue/builders/entities-mermaid.js +18 -85
  36. package/dist/lib/catalogue/builders/entities-mermaid.js.map +1 -1
  37. package/dist/lib/catalogue/builders/feature-grounding.d.ts.map +1 -1
  38. package/dist/lib/catalogue/builders/feature-grounding.js +1 -0
  39. package/dist/lib/catalogue/builders/feature-grounding.js.map +1 -1
  40. package/dist/lib/catalogue/builders/features.d.ts +12 -0
  41. package/dist/lib/catalogue/builders/features.d.ts.map +1 -1
  42. package/dist/lib/catalogue/builders/features.js +23 -2
  43. package/dist/lib/catalogue/builders/features.js.map +1 -1
  44. package/dist/lib/catalogue/builders/integration-components.js +49 -5
  45. package/dist/lib/catalogue/builders/integration-components.js.map +1 -1
  46. package/dist/lib/catalogue/builders/journey-requirement.d.ts +22 -0
  47. package/dist/lib/catalogue/builders/journey-requirement.d.ts.map +1 -0
  48. package/dist/lib/catalogue/builders/journey-requirement.js +144 -0
  49. package/dist/lib/catalogue/builders/journey-requirement.js.map +1 -0
  50. package/dist/lib/catalogue/builders/quality-scores.d.ts.map +1 -1
  51. package/dist/lib/catalogue/builders/quality-scores.js +17 -0
  52. package/dist/lib/catalogue/builders/quality-scores.js.map +1 -1
  53. package/dist/lib/catalogue/builders/requirements.d.ts +15 -3
  54. package/dist/lib/catalogue/builders/requirements.d.ts.map +1 -1
  55. package/dist/lib/catalogue/builders/requirements.js +168 -32
  56. package/dist/lib/catalogue/builders/requirements.js.map +1 -1
  57. package/dist/lib/catalogue/canonical-schema.yaml +845 -28
  58. package/dist/lib/catalogue/manifest-loader.d.ts +5 -0
  59. package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -1
  60. package/dist/lib/catalogue/manifest-loader.js +13 -0
  61. package/dist/lib/catalogue/manifest-loader.js.map +1 -1
  62. package/dist/lib/catalogue/retired-catalogues.d.ts +6 -0
  63. package/dist/lib/catalogue/retired-catalogues.d.ts.map +1 -0
  64. package/dist/lib/catalogue/retired-catalogues.js +25 -0
  65. package/dist/lib/catalogue/retired-catalogues.js.map +1 -0
  66. package/dist/lib/catalogue/rubric-coverage-map.yaml +108 -2
  67. package/dist/lib/catalogue/schema-compat.d.ts +1 -1
  68. package/dist/lib/catalogue/schema-compat.js +1 -1
  69. package/dist/lib/catalogue/schema-loader.d.ts +6 -0
  70. package/dist/lib/catalogue/schema-loader.d.ts.map +1 -1
  71. package/dist/lib/catalogue/schema-loader.js +3 -0
  72. package/dist/lib/catalogue/schema-loader.js.map +1 -1
  73. package/dist/lib/catalogue/staleness-verdicts.d.ts.map +1 -1
  74. package/dist/lib/catalogue/staleness-verdicts.js +75 -6
  75. package/dist/lib/catalogue/staleness-verdicts.js.map +1 -1
  76. package/dist/lib/intents/migrate.d.ts.map +1 -1
  77. package/dist/lib/intents/migrate.js +35 -9
  78. package/dist/lib/intents/migrate.js.map +1 -1
  79. package/dist/lib/metamodel/roundtrip-gate.d.ts.map +1 -1
  80. package/dist/lib/metamodel/roundtrip-gate.js +11 -2
  81. package/dist/lib/metamodel/roundtrip-gate.js.map +1 -1
  82. package/dist/lib/metamodel/schema-projection.d.ts +6 -0
  83. package/dist/lib/metamodel/schema-projection.d.ts.map +1 -1
  84. package/dist/lib/metamodel/schema-projection.js +40 -1
  85. package/dist/lib/metamodel/schema-projection.js.map +1 -1
  86. package/dist/lib/metamodel/tql-subset-parser.d.ts +6 -0
  87. package/dist/lib/metamodel/tql-subset-parser.d.ts.map +1 -1
  88. package/dist/lib/metamodel/tql-subset-parser.js +35 -2
  89. package/dist/lib/metamodel/tql-subset-parser.js.map +1 -1
  90. package/dist/lib/structure/apply.d.ts +8 -0
  91. package/dist/lib/structure/apply.d.ts.map +1 -0
  92. package/dist/lib/structure/apply.js +71 -0
  93. package/dist/lib/structure/apply.js.map +1 -0
  94. package/dist/lib/structure/archive.d.ts +21 -0
  95. package/dist/lib/structure/archive.d.ts.map +1 -0
  96. package/dist/lib/structure/archive.js +318 -0
  97. package/dist/lib/structure/archive.js.map +1 -0
  98. package/dist/lib/structure/catalogue.d.ts +33 -0
  99. package/dist/lib/structure/catalogue.d.ts.map +1 -0
  100. package/dist/lib/structure/catalogue.js +183 -0
  101. package/dist/lib/structure/catalogue.js.map +1 -0
  102. package/dist/lib/structure/compose.d.ts +30 -0
  103. package/dist/lib/structure/compose.d.ts.map +1 -0
  104. package/dist/lib/structure/compose.js +174 -0
  105. package/dist/lib/structure/compose.js.map +1 -0
  106. package/dist/lib/structure/effects.d.ts +16 -0
  107. package/dist/lib/structure/effects.d.ts.map +1 -0
  108. package/dist/lib/structure/effects.js +36 -0
  109. package/dist/lib/structure/effects.js.map +1 -0
  110. package/dist/lib/structure/extract.d.ts +19 -0
  111. package/dist/lib/structure/extract.d.ts.map +1 -0
  112. package/dist/lib/structure/extract.js +123 -0
  113. package/dist/lib/structure/extract.js.map +1 -0
  114. package/dist/lib/structure/model.d.ts +57 -0
  115. package/dist/lib/structure/model.d.ts.map +1 -0
  116. package/dist/lib/structure/model.js +212 -0
  117. package/dist/lib/structure/model.js.map +1 -0
  118. package/dist/lib/structure/render.d.ts +11 -0
  119. package/dist/lib/structure/render.d.ts.map +1 -0
  120. package/dist/lib/structure/render.js +242 -0
  121. package/dist/lib/structure/render.js.map +1 -0
  122. package/dist/lib/structure/view.d.ts +36 -0
  123. package/dist/lib/structure/view.d.ts.map +1 -0
  124. package/dist/lib/structure/view.js +301 -0
  125. package/dist/lib/structure/view.js.map +1 -0
  126. package/dist/lib/validate/agreement-evidence.d.ts +58 -0
  127. package/dist/lib/validate/agreement-evidence.d.ts.map +1 -0
  128. package/dist/lib/validate/agreement-evidence.js +216 -0
  129. package/dist/lib/validate/agreement-evidence.js.map +1 -0
  130. package/dist/lib/validate/behaviour-store.d.ts +22 -1
  131. package/dist/lib/validate/behaviour-store.d.ts.map +1 -1
  132. package/dist/lib/validate/behaviour-store.js +516 -28
  133. package/dist/lib/validate/behaviour-store.js.map +1 -1
  134. package/dist/lib/validate/dispatch.d.ts.map +1 -1
  135. package/dist/lib/validate/dispatch.js +21 -0
  136. package/dist/lib/validate/dispatch.js.map +1 -1
  137. package/dist/lib/validate/feature-spec-pointers.d.ts +12 -0
  138. package/dist/lib/validate/feature-spec-pointers.d.ts.map +1 -0
  139. package/dist/lib/validate/feature-spec-pointers.js +175 -0
  140. package/dist/lib/validate/feature-spec-pointers.js.map +1 -0
  141. package/dist/lib/validate/journey-impact.d.ts +10 -0
  142. package/dist/lib/validate/journey-impact.d.ts.map +1 -0
  143. package/dist/lib/validate/journey-impact.js +193 -0
  144. package/dist/lib/validate/journey-impact.js.map +1 -0
  145. package/dist/lib/validate/structural-model.d.ts +11 -0
  146. package/dist/lib/validate/structural-model.d.ts.map +1 -0
  147. package/dist/lib/validate/structural-model.js +265 -0
  148. package/dist/lib/validate/structural-model.js.map +1 -0
  149. package/dist/maintain-version.json +2 -2
  150. package/dist/verbs/change.d.ts +3 -0
  151. package/dist/verbs/change.d.ts.map +1 -0
  152. package/dist/verbs/change.js +15 -0
  153. package/dist/verbs/change.js.map +1 -0
  154. package/dist/verbs/structure.d.ts +10 -0
  155. package/dist/verbs/structure.d.ts.map +1 -0
  156. package/dist/verbs/structure.js +124 -0
  157. package/dist/verbs/structure.js.map +1 -0
  158. package/dist/verify-version.json +2 -2
  159. package/package.json +1 -1
  160. package/scripts/author-version.json +2 -2
  161. package/scripts/build-persona-package.mjs +5 -0
  162. package/scripts/maintain-version.json +2 -2
  163. package/scripts/verify-version.json +2 -2
@@ -0,0 +1,124 @@
1
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
3
+ import { stringify } from "yaml";
4
+ import { extractStructure, writeExtraction } from "../lib/structure/extract.js";
5
+ import { elementKey, loadModel, STRUCTURE_DIR } from "../lib/structure/model.js";
6
+ import { describeState, renderViews, viewState } from "../lib/structure/render.js";
7
+ import { revisionOf, viewOf } from "../lib/structure/view.js";
8
+ // `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.
10
+ export async function runStructureShow(sddPath, ref, write) {
11
+ const slash = ref.indexOf("/");
12
+ if (slash <= 0 || slash === ref.length - 1) {
13
+ write(`[FAIL] structure show: name an element as <catalogue>/<id>, not ${JSON.stringify(ref)}\n`);
14
+ return 2;
15
+ }
16
+ const catalogue = ref.slice(0, slash);
17
+ const id = ref.slice(slash + 1);
18
+ const problems = [];
19
+ const files = await loadModel(sddPath, problems);
20
+ if (files === null) {
21
+ write(`[FAIL] structure show: no structural model (${STRUCTURE_DIR}/) in ${sddPath}\n`);
22
+ return 1;
23
+ }
24
+ const e = viewOf(files, problems).get(catalogue)?.get(id);
25
+ if (!e) {
26
+ write(`[FAIL] structure show: the model holds no ${elementKey(catalogue, id)}\n`);
27
+ for (const p of problems)
28
+ write(` ${p}\n`);
29
+ return 1;
30
+ }
31
+ write(`# ${elementKey(catalogue, id)} in ${e.file} (partition ${e.partition})\n`);
32
+ write(`revision: ${revisionOf(e)}\n`);
33
+ write(stringify({ id: e.id, ...e.columns }));
34
+ return 0;
35
+ }
36
+ // `structure render [--check]`: write the generated views of the current view (M-ADR 0230 §4.3, Proposed), or, with
37
+ // --check, write nothing and report each view that is missing, stale or edited by hand (exit 1 if any is).
38
+ export async function runStructureRender(sddPath, options, write) {
39
+ const problems = [];
40
+ const files = await loadModel(sddPath, problems);
41
+ if (files === null) {
42
+ write(`[FAIL] structure render: no structural model (${STRUCTURE_DIR}/) in ${sddPath}\n`);
43
+ return 1;
44
+ }
45
+ const view = viewOf(files, problems);
46
+ if (problems.length > 0) {
47
+ write(`[FAIL] structure render: the model does not load cleanly; run \`sdd-cli validate --validator structural-model\`\n`);
48
+ for (const p of problems)
49
+ write(` ${p}\n`);
50
+ return 1;
51
+ }
52
+ let off = 0;
53
+ for (const [path, rendered] of renderViews(view)) {
54
+ const abs = join(sddPath, path);
55
+ const text = await readFile(abs, "utf8").catch(() => null);
56
+ const state = viewState(rendered, text);
57
+ if (options.check) {
58
+ if (state !== "current") {
59
+ off++;
60
+ write(`[WARN] ${describeState(path, state)}\n`);
61
+ }
62
+ continue;
63
+ }
64
+ if (state === "hand-edited")
65
+ write(`[WARN] ${describeState(path, state)}; the edit is overwritten\n`);
66
+ if (state !== "current") {
67
+ await mkdir(dirname(abs), { recursive: true });
68
+ await writeFile(abs, rendered, "utf8");
69
+ }
70
+ write(`${state === "current" ? "unchanged" : "wrote"} ${path}\n`);
71
+ }
72
+ if (options.check)
73
+ write(off === 0 ? "[PASS] structure render --check: every view is current\n" : `[FAIL] structure render --check: ${off} view(s) not current\n`);
74
+ return options.check && off > 0 ? 1 : 0;
75
+ }
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
+ }
95
+ 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)");
108
+ structure
109
+ .command("show <element>")
110
+ .description("Print one element of the structural model, <catalogue>/<id>, with its revision")
111
+ .option("--sdd-path <path>", "the SDD (default: the current directory)", ".")
112
+ .action(async (element, opts) => {
113
+ process.exitCode = await runStructureShow(opts.sddPath, element, (s) => process.stdout.write(s));
114
+ });
115
+ structure
116
+ .command("render")
117
+ .description("Write the generated views of the structural model under docs/structure/; --check reports instead")
118
+ .option("--sdd-path <path>", "the SDD (default: the current directory)", ".")
119
+ .option("--check", "write nothing; report each view that is missing, stale or edited by hand", false)
120
+ .action(async (opts) => {
121
+ process.exitCode = await runStructureRender(opts.sddPath, { check: opts.check }, (s) => process.stdout.write(s));
122
+ });
123
+ }
124
+ //# sourceMappingURL=structure.js.map
@@ -0,0 +1 @@
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": "2.5.0",
3
- "built_against_sdd_cli": "2.5.0"
2
+ "version": "4.0.0",
3
+ "built_against_sdd_cli": "4.0.0"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sdd-method/sdd-cli",
3
- "version": "2.5.0",
3
+ "version": "4.0.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",
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "0.10.0",
3
- "built_against_sdd_cli": "2.5.0"
2
+ "version": "0.12.0",
3
+ "built_against_sdd_cli": "4.0.0"
4
4
  }
@@ -44,6 +44,11 @@ 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",
47
52
  ];
48
53
  const AUTHOR_ONLY_MODULES = [
49
54
  "verbs/conformance.js",
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "0.11.0",
3
- "built_against_sdd_cli": "2.5.0"
2
+ "version": "0.13.0",
3
+ "built_against_sdd_cli": "4.0.0"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "2.5.0",
3
- "built_against_sdd_cli": "2.5.0"
2
+ "version": "4.0.0",
3
+ "built_against_sdd_cli": "4.0.0"
4
4
  }