@sdd-method/sdd-cli 1.41.0 → 1.43.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 (189) hide show
  1. package/README.md +4 -57
  2. package/dist/author-bin.d.ts +3 -0
  3. package/dist/author-bin.d.ts.map +1 -0
  4. package/dist/author-bin.js +8 -0
  5. package/dist/author-bin.js.map +1 -0
  6. package/dist/author-program.d.ts +8 -0
  7. package/dist/author-program.d.ts.map +1 -0
  8. package/dist/author-program.js +99 -0
  9. package/dist/author-program.js.map +1 -0
  10. package/dist/index.js +2 -2
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/agent-harness.d.ts +11 -8
  13. package/dist/lib/agent-harness.d.ts.map +1 -1
  14. package/dist/lib/agent-harness.js +17 -8
  15. package/dist/lib/agent-harness.js.map +1 -1
  16. package/dist/lib/api-surface/index.js +2 -2
  17. package/dist/lib/api-surface/index.js.map +1 -1
  18. package/dist/lib/briefing/index.d.ts +1 -1
  19. package/dist/lib/briefing/index.d.ts.map +1 -1
  20. package/dist/lib/briefing/index.js +1 -1
  21. package/dist/lib/briefing/index.js.map +1 -1
  22. package/dist/lib/briefing/render.d.ts +18 -1
  23. package/dist/lib/briefing/render.d.ts.map +1 -1
  24. package/dist/lib/briefing/render.js +17 -8
  25. package/dist/lib/briefing/render.js.map +1 -1
  26. package/dist/lib/catalogue/aggregation-manifest-loader.js +4 -4
  27. package/dist/lib/catalogue/aggregation-manifest-loader.js.map +1 -1
  28. package/dist/lib/catalogue/cli-version.d.ts +1 -1
  29. package/dist/lib/catalogue/cli-version.d.ts.map +1 -1
  30. package/dist/lib/catalogue/cli-version.js +3 -3
  31. package/dist/lib/catalogue/cli-version.js.map +1 -1
  32. package/dist/lib/catalogue/freshness.d.ts +27 -0
  33. package/dist/lib/catalogue/freshness.d.ts.map +1 -0
  34. package/dist/lib/catalogue/freshness.js +70 -0
  35. package/dist/lib/catalogue/freshness.js.map +1 -0
  36. package/dist/lib/catalogue/graph-run.js +1 -1
  37. package/dist/lib/catalogue/graph-run.js.map +1 -1
  38. package/dist/lib/ci-binding/index.d.ts +63 -0
  39. package/dist/lib/ci-binding/index.d.ts.map +1 -0
  40. package/dist/lib/ci-binding/index.js +220 -0
  41. package/dist/lib/ci-binding/index.js.map +1 -0
  42. package/dist/lib/ci-binding/module.d.ts +36 -0
  43. package/dist/lib/ci-binding/module.d.ts.map +1 -0
  44. package/dist/lib/ci-binding/module.js +204 -0
  45. package/dist/lib/ci-binding/module.js.map +1 -0
  46. package/dist/lib/context-pull/index.d.ts +45 -0
  47. package/dist/lib/context-pull/index.d.ts.map +1 -0
  48. package/dist/lib/context-pull/index.js +191 -0
  49. package/dist/lib/context-pull/index.js.map +1 -0
  50. package/dist/lib/context-pull/resolve.d.ts +46 -0
  51. package/dist/lib/context-pull/resolve.d.ts.map +1 -0
  52. package/dist/lib/context-pull/resolve.js +70 -0
  53. package/dist/lib/context-pull/resolve.js.map +1 -0
  54. package/dist/lib/context-pull/retired-mcp-setup.d.ts +7 -0
  55. package/dist/lib/context-pull/retired-mcp-setup.d.ts.map +1 -0
  56. package/dist/lib/context-pull/retired-mcp-setup.js +7 -0
  57. package/dist/lib/context-pull/retired-mcp-setup.js.map +1 -0
  58. package/dist/lib/hooks-seed/entries.d.ts +15 -0
  59. package/dist/lib/hooks-seed/entries.d.ts.map +1 -1
  60. package/dist/lib/hooks-seed/entries.js +30 -1
  61. package/dist/lib/hooks-seed/entries.js.map +1 -1
  62. package/dist/lib/hooks-seed/index.d.ts +4 -9
  63. package/dist/lib/hooks-seed/index.d.ts.map +1 -1
  64. package/dist/lib/hooks-seed/index.js +4 -7
  65. package/dist/lib/hooks-seed/index.js.map +1 -1
  66. package/dist/lib/hooks-seed/merge.d.ts +7 -0
  67. package/dist/lib/hooks-seed/merge.d.ts.map +1 -1
  68. package/dist/lib/hooks-seed/merge.js +31 -0
  69. package/dist/lib/hooks-seed/merge.js.map +1 -1
  70. package/dist/lib/init/app.d.ts +0 -1
  71. package/dist/lib/init/app.d.ts.map +1 -1
  72. package/dist/lib/init/app.js +3 -7
  73. package/dist/lib/init/app.js.map +1 -1
  74. package/dist/lib/init/ci-workflow.d.ts +6 -8
  75. package/dist/lib/init/ci-workflow.d.ts.map +1 -1
  76. package/dist/lib/init/ci-workflow.js +57 -120
  77. package/dist/lib/init/ci-workflow.js.map +1 -1
  78. package/dist/lib/init/integration.d.ts +0 -1
  79. package/dist/lib/init/integration.d.ts.map +1 -1
  80. package/dist/lib/init/integration.js +3 -7
  81. package/dist/lib/init/integration.js.map +1 -1
  82. package/dist/lib/init/platform.d.ts +2 -10
  83. package/dist/lib/init/platform.d.ts.map +1 -1
  84. package/dist/lib/init/platform.js +12 -15
  85. package/dist/lib/init/platform.js.map +1 -1
  86. package/dist/lib/lock-file.d.ts +20 -0
  87. package/dist/lib/lock-file.d.ts.map +1 -1
  88. package/dist/lib/lock-file.js +25 -1
  89. package/dist/lib/lock-file.js.map +1 -1
  90. package/dist/lib/mcp/build-info.d.ts.map +1 -1
  91. package/dist/lib/mcp/build-info.js +3 -3
  92. package/dist/lib/mcp/build-info.js.map +1 -1
  93. package/dist/lib/pack/index.js +2 -2
  94. package/dist/lib/pack/index.js.map +1 -1
  95. package/dist/lib/pack/validate.js +2 -2
  96. package/dist/lib/pack/validate.js.map +1 -1
  97. package/dist/lib/package-version.d.ts +23 -0
  98. package/dist/lib/package-version.d.ts.map +1 -1
  99. package/dist/lib/package-version.js +47 -10
  100. package/dist/lib/package-version.js.map +1 -1
  101. package/dist/lib/plan/index.d.ts.map +1 -1
  102. package/dist/lib/plan/index.js +4 -4
  103. package/dist/lib/plan/index.js.map +1 -1
  104. package/dist/lib/plan/read-sdd.js +1 -1
  105. package/dist/lib/plan/render-template.d.ts +8 -0
  106. package/dist/lib/plan/render-template.d.ts.map +1 -1
  107. package/dist/lib/plan/render-template.js +27 -3
  108. package/dist/lib/plan/render-template.js.map +1 -1
  109. package/dist/lib/sdd-index/repo-config.d.ts +1 -1
  110. package/dist/lib/sdd-index/repo-config.js +1 -1
  111. package/dist/lib/sdd-reader.d.ts +35 -0
  112. package/dist/lib/sdd-reader.d.ts.map +1 -0
  113. package/dist/lib/sdd-reader.js +91 -0
  114. package/dist/lib/sdd-reader.js.map +1 -0
  115. package/dist/lib/sync/briefing-merge.d.ts +1 -1
  116. package/dist/lib/sync/briefing-merge.d.ts.map +1 -1
  117. package/dist/lib/sync/briefing-merge.js +50 -34
  118. package/dist/lib/sync/briefing-merge.js.map +1 -1
  119. package/dist/lib/sync/diff.js +1 -1
  120. package/dist/lib/sync/diff.js.map +1 -1
  121. package/dist/lib/sync/index.d.ts +16 -6
  122. package/dist/lib/sync/index.d.ts.map +1 -1
  123. package/dist/lib/sync/index.js +89 -116
  124. package/dist/lib/sync/index.js.map +1 -1
  125. package/dist/lib/sync/settings-merge.d.ts +26 -48
  126. package/dist/lib/sync/settings-merge.d.ts.map +1 -1
  127. package/dist/lib/sync/settings-merge.js +70 -162
  128. package/dist/lib/sync/settings-merge.js.map +1 -1
  129. package/dist/lib/validate/bundle-coherence.js +2 -2
  130. package/dist/lib/validate/bundle-coherence.js.map +1 -1
  131. package/dist/lib/validate/plan.d.ts +25 -0
  132. package/dist/lib/validate/plan.d.ts.map +1 -0
  133. package/dist/lib/validate/plan.js +54 -0
  134. package/dist/lib/validate/plan.js.map +1 -0
  135. package/dist/maintain-bin.d.ts +3 -0
  136. package/dist/maintain-bin.d.ts.map +1 -0
  137. package/dist/maintain-bin.js +8 -0
  138. package/dist/maintain-bin.js.map +1 -0
  139. package/dist/maintain-program.d.ts +8 -0
  140. package/dist/maintain-program.d.ts.map +1 -0
  141. package/dist/maintain-program.js +94 -0
  142. package/dist/maintain-program.js.map +1 -0
  143. package/dist/maintain-version.json +4 -0
  144. package/dist/verbs/catalogue-check.d.ts +10 -0
  145. package/dist/verbs/catalogue-check.d.ts.map +1 -0
  146. package/dist/verbs/catalogue-check.js +28 -0
  147. package/dist/verbs/catalogue-check.js.map +1 -0
  148. package/dist/verbs/catalogue-maintain.d.ts +6 -0
  149. package/dist/verbs/catalogue-maintain.d.ts.map +1 -0
  150. package/dist/verbs/catalogue-maintain.js +110 -0
  151. package/dist/verbs/catalogue-maintain.js.map +1 -0
  152. package/dist/verbs/catalogue.d.ts +5 -0
  153. package/dist/verbs/catalogue.d.ts.map +1 -1
  154. package/dist/verbs/catalogue.js +16 -80
  155. package/dist/verbs/catalogue.js.map +1 -1
  156. package/dist/verbs/context.d.ts +3 -0
  157. package/dist/verbs/context.d.ts.map +1 -0
  158. package/dist/verbs/context.js +39 -0
  159. package/dist/verbs/context.js.map +1 -0
  160. package/dist/verbs/pack-build.d.ts +3 -0
  161. package/dist/verbs/pack-build.d.ts.map +1 -0
  162. package/dist/verbs/pack-build.js +31 -0
  163. package/dist/verbs/pack-build.js.map +1 -0
  164. package/dist/verbs/pack.d.ts.map +1 -1
  165. package/dist/verbs/pack.js +2 -25
  166. package/dist/verbs/pack.js.map +1 -1
  167. package/dist/verbs/sync.d.ts.map +1 -1
  168. package/dist/verbs/sync.js +21 -0
  169. package/dist/verbs/sync.js.map +1 -1
  170. package/dist/verbs/validate.d.ts.map +1 -1
  171. package/dist/verbs/validate.js +26 -0
  172. package/dist/verbs/validate.js.map +1 -1
  173. package/dist/verify-program.d.ts +6 -1
  174. package/dist/verify-program.d.ts.map +1 -1
  175. package/dist/verify-program.js +12 -5
  176. package/dist/verify-program.js.map +1 -1
  177. package/dist/verify-version.json +2 -2
  178. package/package.json +6 -5
  179. package/scripts/author-acceptance.mjs +170 -0
  180. package/scripts/author-version.json +4 -0
  181. package/scripts/build-persona-package.mjs +309 -0
  182. package/scripts/copy-yaml-assets.mjs +4 -2
  183. package/scripts/dagger-parity.sh +74 -0
  184. package/scripts/maintain-acceptance.mjs +240 -0
  185. package/scripts/maintain-version.json +4 -0
  186. package/scripts/release-gate.mjs +9 -0
  187. package/scripts/verify-version.json +2 -2
  188. package/scripts/vitest-tmpdir.mjs +26 -0
  189. package/scripts/build-verify-package.mjs +0 -210
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue-check.js","sourceRoot":"","sources":["../../src/verbs/catalogue-check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAQrE;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAkB;IACvD,SAAS;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,6KAA6K,CAC9K;SACA,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC;SACtD,MAAM,CACL,wBAAwB,EACxB,2GAA2G,CAC5G;SACA,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC3E,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAClC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EACtC;YACE,KAAK,EAAE,iBAAiB;YACxB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerCatalogueBuild(catalogue: Command): void;
3
+ export declare function registerCatalogueAggregate(catalogue: Command): void;
4
+ export declare function registerCatalogueDiff(catalogue: Command): void;
5
+ export declare function registerCatalogueGraph(catalogue: Command): void;
6
+ //# sourceMappingURL=catalogue-maintain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue-maintain.d.ts","sourceRoot":"","sources":["../../src/verbs/catalogue-maintain.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAiD/D;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAiCnE;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAgB9D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAuD/D"}
@@ -0,0 +1,110 @@
1
+ // The catalogue subcommands that write the derived model — MAINTAIN under M-ADR 0218 §4.4:
2
+ // a deterministic function of the committed specs, written only under catalogues/,
3
+ // catalogues-aggregated/ and the graph projection beside them. One registrar per
4
+ // subcommand, importing each run* from its OWN module and never the catalogue barrel
5
+ // (which also re-exports migration-map), so the maintain package's import closure
6
+ // carries exactly these and no authoring module.
7
+ import { resolve } from "node:path";
8
+ import { runCatalogueBuild } from "../lib/catalogue/build.js";
9
+ import { runCatalogueAggregate } from "../lib/catalogue/aggregate.js";
10
+ import { runCatalogueGraph } from "../lib/catalogue/graph-run.js";
11
+ import { runCatalogueDiff } from "../lib/snapshot/catalogue-diff.js";
12
+ import { checkCataloguesFresh } from "../lib/catalogue/freshness.js";
13
+ export function registerCatalogueBuild(catalogue) {
14
+ catalogue
15
+ .command("build")
16
+ .description("Build catalogues for the current SDD repo from method-defined sources")
17
+ .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
18
+ .option("--out <path>", "Output directory for catalogues/ (defaults to <sdd-path>/catalogues)")
19
+ .option("--strict", "Treat findings as failures (default: only internal FK FAIL exits non-zero)")
20
+ .option("--snapshot-store <dir>", "Snapshot store root the binding's snapshot_area is relative to (default: $SDD_SNAPSHOT_STORE; M-ADR 0214)")
21
+ .option("--check", "Freshness check: build into a temporary directory, compare with the committed catalogues/, write nothing; exit 1 listing every stale file (M-ADR 0218 §5)")
22
+ .action(async (opts) => {
23
+ const snapshotStore = opts.snapshotStore ?? process.env.SDD_SNAPSHOT_STORE;
24
+ if (opts.check === true) {
25
+ if (opts.out !== undefined) {
26
+ process.stderr.write("--check builds into a temporary directory; it cannot be combined with --out\n");
27
+ process.exit(2);
28
+ }
29
+ const r = await checkCataloguesFresh(resolve(opts.sddPath ?? process.cwd()), {
30
+ ...(opts.strict !== undefined ? { strict: opts.strict } : {}),
31
+ ...(snapshotStore !== undefined ? { snapshotStore } : {}),
32
+ }, (s) => process.stdout.write(s));
33
+ if (r.exitCode !== 0)
34
+ process.exit(r.exitCode);
35
+ return;
36
+ }
37
+ const result = await runCatalogueBuild({
38
+ ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
39
+ ...(opts.out !== undefined ? { outDir: opts.out } : {}),
40
+ ...(opts.strict !== undefined ? { strict: opts.strict } : {}),
41
+ ...(snapshotStore !== undefined ? { snapshotStore } : {}),
42
+ }, (s) => process.stdout.write(s));
43
+ if (result.exitCode !== 0)
44
+ process.exit(result.exitCode);
45
+ });
46
+ }
47
+ export function registerCatalogueAggregate(catalogue) {
48
+ catalogue
49
+ .command("aggregate")
50
+ .description("Aggregate sibling SDD catalogues into a single ecosystem catalogue")
51
+ .option("--sdd-path <path>", "Path to the ecosystem-root SDD repo (defaults to cwd)")
52
+ .option("--manifest <path>", "Path to the aggregation manifest (defaults to orchestration/aggregation-manifest.yaml)")
53
+ .option("--out <path>", "Output directory for aggregated catalogues/ (defaults to <sdd-path>/catalogues-aggregated)")
54
+ .option("--strict", "Treat findings as failures")
55
+ .action(async (opts) => {
56
+ const result = await runCatalogueAggregate({
57
+ ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
58
+ ...(opts.manifest !== undefined
59
+ ? { manifestPath: opts.manifest }
60
+ : {}),
61
+ ...(opts.out !== undefined ? { outDir: opts.out } : {}),
62
+ ...(opts.strict !== undefined ? { strict: opts.strict } : {}),
63
+ }, (s) => process.stdout.write(s));
64
+ if (result.exitCode !== 0)
65
+ process.exit(result.exitCode);
66
+ });
67
+ }
68
+ export function registerCatalogueDiff(catalogue) {
69
+ catalogue
70
+ .command("diff")
71
+ .description("Build the catalogues at a git ref and at the working tree in ONE process (so one CLI), and attribute the change at file grain: every SDD source file changed since the ref must be a target of some delta.yaml finding. Exit 1 on any unattributed change. Writes nothing into the SDD.")
72
+ .requiredOption("--from <ref>", "the git ref of the SDD before the snapshot update")
73
+ .requiredOption("--attribute <delta.yaml>", "the snapshot's delta.yaml, whose findings' targets attribute the change")
74
+ .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
75
+ .action(async (opts) => {
76
+ const r = await runCatalogueDiff({ sddPath: resolve(opts.sddPath ?? process.cwd()), from: opts.from, attribute: resolve(opts.attribute) }, (s) => process.stdout.write(s));
77
+ if (r.exitCode !== 0)
78
+ process.exit(r.exitCode);
79
+ });
80
+ }
81
+ export function registerCatalogueGraph(catalogue) {
82
+ catalogue
83
+ .command("graph")
84
+ .description("Emit the graph projection (typed node/edge JSON Lines) derived from built catalogues (M-ADR 0205 §4.6) — regenerated every run, digest-stamped, never committed")
85
+ .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
86
+ .option("--catalogues-dir <dir>", "Catalogues directory relative to the SDD root (default: catalogues, or catalogues-aggregated at --tier aggregate)")
87
+ .option("--tier <tier>", "Tier, explicit never inferred (member | aggregate; default member)")
88
+ .option("--out <path>", "Output file (default <catalogues-dir>-graph.jsonl beside the catalogues directory)")
89
+ .action(async (opts) => {
90
+ if (opts.tier !== undefined &&
91
+ opts.tier !== "member" &&
92
+ opts.tier !== "aggregate") {
93
+ process.stderr.write(`--tier must be 'member' or 'aggregate' (got: ${opts.tier})\n`);
94
+ process.exit(2);
95
+ }
96
+ const result = await runCatalogueGraph({
97
+ ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
98
+ ...(opts.cataloguesDir !== undefined
99
+ ? { cataloguesDir: opts.cataloguesDir }
100
+ : {}),
101
+ ...(opts.tier !== undefined
102
+ ? { tier: opts.tier }
103
+ : {}),
104
+ ...(opts.out !== undefined ? { out: opts.out } : {}),
105
+ }, (s) => process.stdout.write(s));
106
+ if (result.exitCode !== 0)
107
+ process.exit(result.exitCode);
108
+ });
109
+ }
110
+ //# sourceMappingURL=catalogue-maintain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalogue-maintain.js","sourceRoot":"","sources":["../../src/verbs/catalogue-maintain.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  import type { Command } from "commander";
2
+ /**
3
+ * M-ADR 0218 ruling 3 (2026-10-15): the 2.x → 3.0.0 migration it serves is finished in every
4
+ * known SDD and nothing calls it, so it warns on every use and goes at the next schema major.
5
+ */
6
+ export declare const MIGRATION_MAP_DEPRECATION = "[WARN] sdd-cli catalogue migration-map is deprecated and will be removed at the next catalogue schema major: it serves the 2.x \u2192 3.0.0 migration (M-ADR 0203), which every SDD has completed.";
2
7
  export declare function registerCatalogue(program: Command): void;
3
8
  //# sourceMappingURL=catalogue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/verbs/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsKxD"}
1
+ {"version":3,"file":"catalogue.d.ts","sourceRoot":"","sources":["../../src/verbs/catalogue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBzC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uMAC2J,CAAC;AAElM,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0CxD"}
@@ -1,94 +1,30 @@
1
- import { resolve } from "node:path";
2
1
  import { registerCatalogueBaselineCheck, registerCatalogueImpact, registerCatalogueValidate, registerCatalogueVersion, } from "./catalogue-verify.js";
3
- import { runCatalogueBuild, runCatalogueAggregate, runCatalogueMigrationMap, } from "../lib/catalogue/index.js";
4
- import { runCatalogueGraph } from "../lib/catalogue/graph-run.js";
5
- import { runCatalogueDiff } from "../lib/snapshot/catalogue-diff.js";
2
+ import { runCatalogueMigrationMap } from "../lib/catalogue/migration-map.js";
3
+ import { registerCatalogueAggregate, registerCatalogueBuild, registerCatalogueDiff, registerCatalogueGraph, } from "./catalogue-maintain.js";
4
+ import { registerCatalogueCheck } from "./catalogue-check.js";
5
+ /**
6
+ * M-ADR 0218 ruling 3 (2026-10-15): the 2.x → 3.0.0 migration it serves is finished in every
7
+ * known SDD and nothing calls it, so it warns on every use and goes at the next schema major.
8
+ */
9
+ export const MIGRATION_MAP_DEPRECATION = "[WARN] sdd-cli catalogue migration-map is deprecated and will be removed at the next catalogue schema major: it serves the 2.x → 3.0.0 migration (M-ADR 0203), which every SDD has completed.";
6
10
  export function registerCatalogue(program) {
7
11
  const catalogue = program
8
12
  .command("catalogue")
9
13
  .description("Build, aggregate, and validate per-SDD catalogues per ADR 0134");
10
- catalogue
11
- .command("build")
12
- .description("Build catalogues for the current SDD repo from method-defined sources")
13
- .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
14
- .option("--out <path>", "Output directory for catalogues/ (defaults to <sdd-path>/catalogues)")
15
- .option("--strict", "Treat findings as failures (default: only internal FK FAIL exits non-zero)")
16
- .option("--snapshot-store <dir>", "Snapshot store root the binding's snapshot_area is relative to (default: $SDD_SNAPSHOT_STORE; M-ADR 0214)")
17
- .action(async (opts) => {
18
- const snapshotStore = opts.snapshotStore ?? process.env.SDD_SNAPSHOT_STORE;
19
- const result = await runCatalogueBuild({
20
- ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
21
- ...(opts.out !== undefined ? { outDir: opts.out } : {}),
22
- ...(opts.strict !== undefined ? { strict: opts.strict } : {}),
23
- ...(snapshotStore !== undefined ? { snapshotStore } : {}),
24
- }, (s) => process.stdout.write(s));
25
- if (result.exitCode !== 0)
26
- process.exit(result.exitCode);
27
- });
28
- catalogue
29
- .command("aggregate")
30
- .description("Aggregate sibling SDD catalogues into a single ecosystem catalogue")
31
- .option("--sdd-path <path>", "Path to the ecosystem-root SDD repo (defaults to cwd)")
32
- .option("--manifest <path>", "Path to the aggregation manifest (defaults to orchestration/aggregation-manifest.yaml)")
33
- .option("--out <path>", "Output directory for aggregated catalogues/ (defaults to <sdd-path>/catalogues-aggregated)")
34
- .option("--strict", "Treat findings as failures")
35
- .action(async (opts) => {
36
- const result = await runCatalogueAggregate({
37
- ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
38
- ...(opts.manifest !== undefined
39
- ? { manifestPath: opts.manifest }
40
- : {}),
41
- ...(opts.out !== undefined ? { outDir: opts.out } : {}),
42
- ...(opts.strict !== undefined ? { strict: opts.strict } : {}),
43
- }, (s) => process.stdout.write(s));
44
- if (result.exitCode !== 0)
45
- process.exit(result.exitCode);
46
- });
14
+ registerCatalogueBuild(catalogue);
15
+ registerCatalogueAggregate(catalogue);
47
16
  registerCatalogueValidate(catalogue);
48
- catalogue
49
- .command("diff")
50
- .description("Build the catalogues at a git ref and at the working tree in ONE process (so one CLI), and attribute the change at file grain: every SDD source file changed since the ref must be a target of some delta.yaml finding. Exit 1 on any unattributed change. Writes nothing into the SDD.")
51
- .requiredOption("--from <ref>", "the git ref of the SDD before the snapshot update")
52
- .requiredOption("--attribute <delta.yaml>", "the snapshot's delta.yaml, whose findings' targets attribute the change")
53
- .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
54
- .action(async (opts) => {
55
- const r = await runCatalogueDiff({ sddPath: resolve(opts.sddPath ?? process.cwd()), from: opts.from, attribute: resolve(opts.attribute) }, (s) => process.stdout.write(s));
56
- if (r.exitCode !== 0)
57
- process.exit(r.exitCode);
58
- });
59
- catalogue
60
- .command("graph")
61
- .description("Emit the graph projection (typed node/edge JSON Lines) derived from built catalogues (M-ADR 0205 §4.6) — regenerated every run, digest-stamped, never committed")
62
- .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
63
- .option("--catalogues-dir <dir>", "Catalogues directory relative to the SDD root (default: catalogues, or catalogues-aggregated at --tier aggregate)")
64
- .option("--tier <tier>", "Tier, explicit never inferred (member | aggregate; default member)")
65
- .option("--out <path>", "Output file (default <catalogues-dir>-graph.jsonl beside the catalogues directory)")
66
- .action(async (opts) => {
67
- if (opts.tier !== undefined &&
68
- opts.tier !== "member" &&
69
- opts.tier !== "aggregate") {
70
- process.stderr.write(`--tier must be 'member' or 'aggregate' (got: ${opts.tier})\n`);
71
- process.exit(2);
72
- }
73
- const result = await runCatalogueGraph({
74
- ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
75
- ...(opts.cataloguesDir !== undefined
76
- ? { cataloguesDir: opts.cataloguesDir }
77
- : {}),
78
- ...(opts.tier !== undefined
79
- ? { tier: opts.tier }
80
- : {}),
81
- ...(opts.out !== undefined ? { out: opts.out } : {}),
82
- }, (s) => process.stdout.write(s));
83
- if (result.exitCode !== 0)
84
- process.exit(result.exitCode);
85
- });
17
+ registerCatalogueCheck(catalogue);
18
+ registerCatalogueDiff(catalogue);
19
+ registerCatalogueGraph(catalogue);
86
20
  registerCatalogueImpact(catalogue);
87
21
  catalogue
88
22
  .command("migration-map")
89
- .description("Emit the 2.x → 3.0.0 id migration maps (external-system + contract ids) from existing catalogues/ (M-ADR 0203)")
23
+ .description("DEPRECATED, removed at the next schema major (M-ADR 0218 ruling 3). Emit the 2.x → 3.0.0 id migration maps (external-system + contract ids) from existing catalogues/ (M-ADR 0203)")
90
24
  .option("--sdd-path <path>", "Path to the SDD repo root (defaults to cwd)")
91
25
  .action(async (opts) => {
26
+ // On stderr, so the maps on stdout stay machine-readable for any script still piping them.
27
+ process.stderr.write(MIGRATION_MAP_DEPRECATION + "\n");
92
28
  const result = await runCatalogueMigrationMap({
93
29
  ...(opts.sddPath !== undefined ? { sddPath: opts.sddPath } : {}),
94
30
  }, (s) => process.stdout.write(s));
@@ -1 +1 @@
1
- {"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/verbs/catalogue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAqBrE,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CACV,gEAAgE,CACjE,CAAC;IAEJ,SAAS;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,uEAAuE,CACxE;SACA,MAAM,CACL,mBAAmB,EACnB,6CAA6C,CAC9C;SACA,MAAM,CAAC,cAAc,EAAE,sEAAsE,CAAC;SAC9F,MAAM,CAAC,UAAU,EAAE,4EAA4E,CAAC;SAChG,MAAM,CACL,wBAAwB,EACxB,2GAA2G,CAC5G;SACA,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;YACE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CACV,oEAAoE,CACrE;SACA,MAAM,CACL,mBAAmB,EACnB,uDAAuD,CACxD;SACA,MAAM,CACL,mBAAmB,EACnB,wFAAwF,CACzF;SACA,MAAM,CACL,cAAc,EACd,4FAA4F,CAC7F;SACA,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACxC;YACE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;gBAC7B,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE;gBACjC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAErC,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,yRAAyR,CAC1R;SACA,cAAc,CAAC,cAAc,EAAE,mDAAmD,CAAC;SACnF,cAAc,CAAC,0BAA0B,EAAE,yEAAyE,CAAC;SACrH,MAAM,CAAC,mBAAmB,EAAE,6CAA6C,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,IAA2D,EAAE,EAAE;QAC5E,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAC9B,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EACxG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,iKAAiK,CAClK;SACA,MAAM,CACL,mBAAmB,EACnB,6CAA6C,CAC9C;SACA,MAAM,CACL,wBAAwB,EACxB,mHAAmH,CACpH;SACA,MAAM,CACL,eAAe,EACf,oEAAoE,CACrE;SACA,MAAM,CACL,cAAc,EACd,oFAAoF,CACrF;SACA,MAAM,CACL,KAAK,EAAE,IAKN,EAAE,EAAE;QACH,IACE,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,IAAI,KAAK,WAAW,EACzB,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gDAAgD,IAAI,CAAC,IAAI,KAAK,CAC/D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;YACE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;gBAClC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAA8B,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IAEJ,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEnC,SAAS;SACN,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,gHAAgH,CACjH;SACA,MAAM,CACL,mBAAmB,EACnB,6CAA6C,CAC9C;SACA,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C;YACE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAE1C,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"catalogue.js","sourceRoot":"","sources":["../../src/verbs/catalogue.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAO9D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,+LAA+L,CAAC;AAElM,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CACV,gEAAgE,CACjE,CAAC;IAEJ,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAEtC,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACrC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAElC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAElC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAEnC,SAAS;SACN,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,oLAAoL,CACrL;SACA,MAAM,CACL,mBAAmB,EACnB,6CAA6C,CAC9C;SACA,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;QACtC,2FAA2F;QAC3F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAC3C;YACE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAE1C,wBAAwB,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerContext(program: Command): void;
3
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/verbs/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkCtD"}
@@ -0,0 +1,39 @@
1
+ import { resolvePathOption } from "./path-option.js";
2
+ import { AGENT_HARNESSES, resolveAgentHarness } from "../lib/agent-harness.js";
3
+ import { runContextPull } from "../lib/context-pull/index.js";
4
+ const collect = (value, previous = []) => [...previous, resolvePathOption(value)];
5
+ export function registerContext(program) {
6
+ const context = program
7
+ .command("context")
8
+ .description("Briefing for a code repository an SDD specifies (M-ADR 0128 §1, M-ADR 0150 §4.4)");
9
+ context
10
+ .command("pull")
11
+ .description("Write agent-instructions.md and the harness wrapper's method-managed block into this code repository, rendered from the templates its upstream SDD carries. The SDD is found by looking this repository up in the catalogues/repositories.csv of the SDDs beside it. Writes nothing else.")
12
+ .option("--target-repo <dir>", "the code repository to write into", resolvePathOption, process.cwd())
13
+ .option("--sdd <dir>", "the upstream SDD, skipping discovery", resolvePathOption)
14
+ .option("--repo <id>", "this repository's id in the SDD's catalogue (default: its git top-level directory name)")
15
+ .option("--search <dir>", "discover SDDs under this directory (repeatable; default: the code repository's parent)", collect)
16
+ .option("--agent-harness <name>", `target agent harness. Default: claude-code. Supported: ${AGENT_HARNESSES.join(", ")}`)
17
+ .option("--allow-overwrite", "replace a harness wrapper that has no method-managed markers")
18
+ .action(async (opts) => {
19
+ let agentHarness;
20
+ try {
21
+ agentHarness = resolveAgentHarness(opts.agentHarness);
22
+ }
23
+ catch (err) {
24
+ process.stderr.write(`[FAIL] ${err.message}\n`);
25
+ process.exit(1);
26
+ }
27
+ const { exitCode } = await runContextPull({
28
+ codeRepo: opts.targetRepo,
29
+ agentHarness,
30
+ allowOverwrite: opts.allowOverwrite === true,
31
+ sddPath: opts.sdd,
32
+ repoName: opts.repo,
33
+ searchRoots: opts.search,
34
+ });
35
+ if (exitCode !== 0)
36
+ process.exit(exitCode);
37
+ });
38
+ }
39
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/verbs/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAW9D,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,WAAqB,EAAE,EAAY,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9G,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,kFAAkF,CAAC,CAAC;IAEnG,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,2RAA2R,CAC5R;SACA,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SACpG,MAAM,CAAC,aAAa,EAAE,sCAAsC,EAAE,iBAAiB,CAAC;SAChF,MAAM,CAAC,aAAa,EAAE,yFAAyF,CAAC;SAChH,MAAM,CAAC,gBAAgB,EAAE,wFAAwF,EAAE,OAAO,CAAC;SAC3H,MAAM,CAAC,wBAAwB,EAAE,0DAA0D,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACxH,MAAM,CAAC,mBAAmB,EAAE,8DAA8D,CAAC;SAC3F,MAAM,CAAC,KAAK,EAAE,IAAiC,EAAE,EAAE;QAClD,IAAI,YAAY,CAAC;QACjB,IAAI,CAAC;YACH,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,cAAc,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,YAAY;YACZ,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;YAC5C,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerPackBuild(pack: Command): void;
3
+ //# sourceMappingURL=pack-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-build.d.ts","sourceRoot":"","sources":["../../src/verbs/pack-build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CA6CrD"}
@@ -0,0 +1,31 @@
1
+ // `pack build` alone — MAINTAIN under M-ADR 0218 §4.4: it publishes a tarball to an output
2
+ // path, outside the producer's tracked content. Its own module, so the maintain package can
3
+ // carry it without the rest of the full CLI.
4
+ import { resolvePathOption } from "./path-option.js";
5
+ import { runPackBuild } from "../lib/pack/index.js";
6
+ export function registerPackBuild(pack) {
7
+ pack
8
+ .command("build")
9
+ .description("Build a context-pack tarball from a seed file. Runs producer-side leakage check before emit.")
10
+ .requiredOption("--seed <path>", "path to the seed file (orchestration/distribution/{name}-seed.yaml)")
11
+ .option("--producer-repo <dir>", "adopter repo root (managed_paths are resolved relative to this; defaults to cwd)", process.cwd())
12
+ .option("--out-dir <dir>", "output directory for the tarball (defaults to <producer-repo>/dist/<pack-name>/)", resolvePathOption)
13
+ .option("--forward-base-managed-paths <path>", "path to forward-base MANAGED_PATHS.txt for the leakage check (defaults to extracting from method-baseline.lock)")
14
+ .option("--publish-transform", "apply the point-in-time / producer-agnostic publish transform (ADR 0183/0184): drop non-Accepted ADRs, strip lineage + stripped-class fields, flatten cross-repo refs, fail closed on leaks. For producer-published bundles.")
15
+ .option("--origin-prefix", "with the publish transform, apply the range-aware origin prefix (ADR 0140 §4.1): 0NNN→M-ADR, 9NNN→RA-ADR, adopter 1NNN stays ADR; ADR files renamed to match. Implies --publish-transform. The RA-ADR bundle cutover switch.")
16
+ .action(async (opts) => {
17
+ const { exitCode } = await runPackBuild({
18
+ seedPath: opts.seed,
19
+ producerRepo: opts.producerRepo ?? process.cwd(),
20
+ ...(opts.outDir && { outDir: opts.outDir }),
21
+ ...(opts.forwardBaseManagedPaths && {
22
+ forwardBaseManagedPathsFile: opts.forwardBaseManagedPaths,
23
+ }),
24
+ ...(opts.publishTransform && { publishTransform: true }),
25
+ ...(opts.originPrefix && { originPrefix: true }),
26
+ });
27
+ if (exitCode !== 0)
28
+ process.exit(exitCode);
29
+ });
30
+ }
31
+ //# sourceMappingURL=pack-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-build.js","sourceRoot":"","sources":["../../src/verbs/pack-build.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,4FAA4F;AAC5F,6CAA6C;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWpD,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,8FAA8F,CAC/F;SACA,cAAc,CACb,eAAe,EACf,qEAAqE,CACtE;SACA,MAAM,CACL,uBAAuB,EACvB,kFAAkF,EAClF,OAAO,CAAC,GAAG,EAAE,CACd;SACA,MAAM,CACL,iBAAiB,EACjB,kFAAkF,EAClF,iBAAiB,CAClB;SACA,MAAM,CACL,qCAAqC,EACrC,iHAAiH,CAClH;SACA,MAAM,CACL,qBAAqB,EACrB,8NAA8N,CAC/N;SACA,MAAM,CACL,iBAAiB,EACjB,8NAA8N,CAC/N;SACA,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI;gBAClC,2BAA2B,EAAE,IAAI,CAAC,uBAAuB;aAC1D,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/verbs/pack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqDnD"}
1
+ {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/verbs/pack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUnD"}
@@ -1,33 +1,10 @@
1
- import { resolvePathOption } from "./path-option.js";
2
- import { runPackBuild } from "../lib/pack/index.js";
1
+ import { registerPackBuild } from "./pack-build.js";
3
2
  import { registerPackValidate } from "./pack-validate.js";
4
3
  export function registerPack(program) {
5
4
  const pack = program
6
5
  .command("pack")
7
6
  .description("Build and validate adopter-shipped context-pack bundles (per ADR 0151)");
8
- pack
9
- .command("build")
10
- .description("Build a context-pack tarball from a seed file. Runs producer-side leakage check before emit.")
11
- .requiredOption("--seed <path>", "path to the seed file (orchestration/distribution/{name}-seed.yaml)")
12
- .option("--producer-repo <dir>", "adopter repo root (managed_paths are resolved relative to this; defaults to cwd)", process.cwd())
13
- .option("--out-dir <dir>", "output directory for the tarball (defaults to <producer-repo>/dist/<pack-name>/)", resolvePathOption)
14
- .option("--forward-base-managed-paths <path>", "path to forward-base MANAGED_PATHS.txt for the leakage check (defaults to extracting from method-baseline.lock)")
15
- .option("--publish-transform", "apply the point-in-time / producer-agnostic publish transform (ADR 0183/0184): drop non-Accepted ADRs, strip lineage + stripped-class fields, flatten cross-repo refs, fail closed on leaks. For producer-published bundles.")
16
- .option("--origin-prefix", "with the publish transform, apply the range-aware origin prefix (ADR 0140 §4.1): 0NNN→M-ADR, 9NNN→RA-ADR, adopter 1NNN stays ADR; ADR files renamed to match. Implies --publish-transform. The RA-ADR bundle cutover switch.")
17
- .action(async (opts) => {
18
- const { exitCode } = await runPackBuild({
19
- seedPath: opts.seed,
20
- producerRepo: opts.producerRepo ?? process.cwd(),
21
- ...(opts.outDir && { outDir: opts.outDir }),
22
- ...(opts.forwardBaseManagedPaths && {
23
- forwardBaseManagedPathsFile: opts.forwardBaseManagedPaths,
24
- }),
25
- ...(opts.publishTransform && { publishTransform: true }),
26
- ...(opts.originPrefix && { originPrefix: true }),
27
- });
28
- if (exitCode !== 0)
29
- process.exit(exitCode);
30
- });
7
+ registerPackBuild(pack);
31
8
  registerPackValidate(pack);
32
9
  }
33
10
  //# sourceMappingURL=pack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/verbs/pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAW1D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,wEAAwE,CACzE,CAAC;IAEJ,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,8FAA8F,CAC/F;SACA,cAAc,CACb,eAAe,EACf,qEAAqE,CACtE;SACA,MAAM,CACL,uBAAuB,EACvB,kFAAkF,EAClF,OAAO,CAAC,GAAG,EAAE,CACd;SACA,MAAM,CACL,iBAAiB,EACjB,kFAAkF,EAClF,iBAAiB,CAClB;SACA,MAAM,CACL,qCAAqC,EACrC,iHAAiH,CAClH;SACA,MAAM,CACL,qBAAqB,EACrB,8NAA8N,CAC/N;SACA,MAAM,CACL,iBAAiB,EACjB,8NAA8N,CAC/N;SACA,MAAM,CAAC,KAAK,EAAE,IAAkB,EAAE,EAAE;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI;gBAClC,2BAA2B,EAAE,IAAI,CAAC,uBAAuB;aAC1D,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEL,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/verbs/pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,wEAAwE,CACzE,CAAC;IAEJ,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExB,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8GnD"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwInD"}
@@ -2,6 +2,7 @@ import { AGENT_HARNESSES, resolveAgentHarness, } from "../lib/agent-harness.js";
2
2
  import { loadSyncConfig } from "../lib/sync/config.js";
3
3
  import { materialiseBundle } from "../lib/sync/bundle-source.js";
4
4
  import { runSync } from "../lib/sync/index.js";
5
+ import { CI_BINDINGS, CI_RUNNER_DEFAULT, isCiBinding, parseCiRunner } from "../lib/ci-binding/index.js";
5
6
  import { resolvePathOption } from "./path-option.js";
6
7
  export function registerSync(program) {
7
8
  program
@@ -16,7 +17,23 @@ export function registerSync(program) {
16
17
  .option("--allow-overwrite", "accept overwrites of locally-modified method content")
17
18
  .option("--no-delete", "preserve files removed upstream")
18
19
  .option("--agent-harness <name>", `target agent harness for hooks + briefing. Default: claude-code. Supported: ${AGENT_HARNESSES.join(", ")}`)
20
+ .option("--ci-binding <host>", `CI host whose wrapper calls the Method Validation module (M-ADR 0219): ${CI_BINDINGS.join(", ")}. Default: the binding the lock records, else github; a new choice is recorded in the lock`)
21
+ .option("--ci-runner <labels>", `runner label(s) the CI wrapper targets, comma-separated (GitHub runs-on, GitLab tags, Jenkins agent label), e.g. a self-hosted runner. '${CI_RUNNER_DEFAULT}' returns to the host's default runner. Default: what the lock records; a new choice is recorded`)
19
22
  .action(async (opts) => {
23
+ if (opts.ciBinding !== undefined && !isCiBinding(opts.ciBinding)) {
24
+ process.stderr.write(`[FAIL] --ci-binding must be one of ${CI_BINDINGS.join(", ")}; got '${opts.ciBinding}'\n`);
25
+ process.exit(1);
26
+ }
27
+ const ciBinding = opts.ciBinding;
28
+ let ciRunner;
29
+ if (opts.ciRunner !== undefined) {
30
+ const parsed = opts.ciRunner === CI_RUNNER_DEFAULT ? [] : parseCiRunner(opts.ciRunner);
31
+ if (parsed === null) {
32
+ process.stderr.write(`[FAIL] --ci-runner takes comma-separated labels of letters, digits, '.', '_' or '-', or '${CI_RUNNER_DEFAULT}'; got '${opts.ciRunner}'\n`);
33
+ process.exit(1);
34
+ }
35
+ ciRunner = parsed;
36
+ }
20
37
  let agentHarness;
21
38
  try {
22
39
  agentHarness = resolveAgentHarness(opts.agentHarness);
@@ -42,6 +59,8 @@ export function registerSync(program) {
42
59
  allowOverwrite: opts.allowOverwrite === true,
43
60
  delete: opts.delete,
44
61
  agentHarness,
62
+ ...(ciBinding ? { ciBinding } : {}),
63
+ ...(ciRunner ? { ciRunner } : {}),
45
64
  ...(opts.replaceBundle ? { replaceBundle: opts.replaceBundle } : {}),
46
65
  ...(opts.yes === true ? { yes: true } : {}),
47
66
  });
@@ -69,6 +88,8 @@ export function registerSync(program) {
69
88
  allowOverwrite: opts.allowOverwrite === true,
70
89
  delete: opts.delete,
71
90
  agentHarness,
91
+ ...(ciBinding ? { ciBinding } : {}),
92
+ ...(ciRunner ? { ciRunner } : {}),
72
93
  });
73
94
  if (exitCode !== 0) {
74
95
  await resolved.cleanup();
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/verbs/sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4BvD"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoDvD"}
@@ -1,4 +1,8 @@
1
1
  import { runValidate } from "../lib/validate/index.js";
2
+ import { methodValidationPlan } from "../lib/validate/plan.js";
3
+ import { profileFromRepoKind, readRepoKind } from "../lib/repo-kind.js";
4
+ const LISTABLE = ["platform", "application", "integration"];
5
+ const isListable = (p) => LISTABLE.includes(p);
2
6
  import { resolvePathOption } from "./path-option.js";
3
7
  export function registerValidate(program) {
4
8
  program
@@ -8,7 +12,29 @@ export function registerValidate(program) {
8
12
  .option("--platform-root <dir>", "path to the sdd-method (or platform) repo, required for app-dependencies", resolvePathOption)
9
13
  .option("--validator <name>", "run only the named validator")
10
14
  .option("--strict", "treat warnings as failures")
15
+ .option("--list", "print the method-managed validation job for this repo's profile as JSON (the plan every CI executor runs, the Dagger module included) and run nothing")
16
+ .option("--profile <profile>", "with --list: the profile to list, instead of reading .sdd-repo-kind (platform | application | integration)")
11
17
  .action(async (opts) => {
18
+ if (opts.list === true) {
19
+ let profile;
20
+ if (opts.profile !== undefined) {
21
+ if (!isListable(opts.profile)) {
22
+ process.stderr.write(`--profile must be platform, application or integration (got: ${opts.profile})\n`);
23
+ process.exit(2);
24
+ }
25
+ profile = opts.profile;
26
+ }
27
+ else {
28
+ const kind = await readRepoKind(opts.targetRepo);
29
+ if (kind === null) {
30
+ process.stderr.write(`Not an SDD repo (no .sdd-repo-kind in ${opts.targetRepo}); pass --profile\n`);
31
+ process.exit(1);
32
+ }
33
+ profile = profileFromRepoKind(kind);
34
+ }
35
+ process.stdout.write(JSON.stringify({ profile, steps: methodValidationPlan(profile) }, null, 2) + "\n");
36
+ return;
37
+ }
12
38
  const { exitCode } = await runValidate({
13
39
  targetRepo: opts.targetRepo,
14
40
  ...(opts.platformRoot ? { platformRoot: opts.platformRoot } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CACV,+DAA+D,CAChE;SACA,MAAM,CACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,CAAC,GAAG,EAAE,CACd;SACA,MAAM,CACL,uBAAuB,EACvB,0EAA0E,EAC1E,iBAAiB,CAClB;SACA,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;SAC5D,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,IAA8B,EAAE,EAAE;QAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC;YACrC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;SAC7B,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/verbs/validate.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,12 @@ export declare const VERIFY_SURFACE: ReadonlyArray<string>;
8
8
  * this binary exists to prevent. So an excluded verb fails, loudly, whatever
9
9
  * flags accompany it.
10
10
  */
11
- export declare function rejectOutsideSurface(program: Command, argv: readonly string[]): void;
11
+ export declare function rejectOutsideSurface(program: Command, argv: readonly string[], outside?: string): void;
12
12
  export declare function runVerify(argv: readonly string[]): Promise<void>;
13
13
  export declare function buildVerifyProgram(): Command;
14
+ /**
15
+ * The verify verbs, registered onto any program. sdd-verify calls it; sdd-maintain calls it too,
16
+ * which is what makes the personas nest structurally: whatever verify ships, maintain ships.
17
+ */
18
+ export declare function registerVerifySurface(program: Command): void;
14
19
  //# sourceMappingURL=verify-program.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-program.d.ts","sourceRoot":"","sources":["../src/verify-program.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAepD,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAAM,CAQhD,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAWpF;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtE;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAoC5C"}
1
+ {"version":3,"file":"verify-program.d.ts","sourceRoot":"","sources":["../src/verify-program.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,OAAO,EAAkB,MAAM,WAAW,CAAC;AAepD,gFAAgF;AAChF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,MAAM,CAQhD,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,MAAgB,GAAG,IAAI,CAW/G;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtE;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAqB5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB5D"}