@sdd-method/author-cli 0.2.0 → 0.3.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.
- package/dist/lib/api-surface/__fixtures__/serverless-repo/serverless/serverless.yml +4 -4
- package/dist/lib/api-surface/analyzers/serverless.js +1 -1
- package/dist/lib/api-surface/analyzers/spring.js +1 -1
- package/dist/lib/briefing/render.js +1 -2
- package/dist/lib/briefing/variables.js +1 -2
- package/dist/lib/catalogue/archetype/wireframe.js +1 -1
- package/dist/lib/catalogue/build.js +17 -23
- package/dist/lib/catalogue/builders/application-conformance-coverage.js +1 -1
- package/dist/lib/catalogue/builders/c4-components.js +4 -5
- package/dist/lib/catalogue/builders/c4-containers.js +3 -3
- package/dist/lib/catalogue/builders/c4-external-systems.js +1 -1
- package/dist/lib/catalogue/builders/c4-l1-candidates.js +1 -1
- package/dist/lib/catalogue/builders/capabilities.js +2 -2
- package/dist/lib/catalogue/builders/capability-edges.js +4 -4
- package/dist/lib/catalogue/builders/capability-spec-walker.js +3 -3
- package/dist/lib/catalogue/builders/container-dependency.js +18 -19
- package/dist/lib/catalogue/builders/contracts.js +5 -6
- package/dist/lib/catalogue/builders/data-store-mapping.js +3 -3
- package/dist/lib/catalogue/builders/edge-label-merge.js +2 -2
- package/dist/lib/catalogue/builders/entities-manifest.js +1 -1
- package/dist/lib/catalogue/builders/entities-mermaid.js +3 -3
- package/dist/lib/catalogue/builders/entity-slug.js +11 -12
- package/dist/lib/catalogue/builders/event-catalog-walker.js +3 -3
- package/dist/lib/catalogue/builders/evidence-class.js +2 -2
- package/dist/lib/catalogue/builders/external-system-exemption.js +1 -1
- package/dist/lib/catalogue/builders/feature-contract.js +1 -3
- package/dist/lib/catalogue/builders/feature-grounding.js +1 -2
- package/dist/lib/catalogue/builders/feature-groups.js +0 -1
- package/dist/lib/catalogue/builders/feature-subscription-channels.js +2 -3
- package/dist/lib/catalogue/builders/feature-tree-walker.js +1 -1
- package/dist/lib/catalogue/builders/features.js +3 -4
- package/dist/lib/catalogue/builders/glossary-xref.js +1 -1
- package/dist/lib/catalogue/builders/persona-c4system.js +7 -7
- package/dist/lib/catalogue/builders/persona-container.js +14 -14
- package/dist/lib/catalogue/builders/personas.js +1 -2
- package/dist/lib/catalogue/builders/product-platform-dependencies.js +2 -2
- package/dist/lib/catalogue/builders/quality-scores.js +1 -1
- package/dist/lib/catalogue/builders/repositories.js +2 -2
- package/dist/lib/catalogue/builders/screen-tree.js +1 -1
- package/dist/lib/catalogue/builders/screens.js +3 -4
- package/dist/lib/catalogue/builders/system-external-dependency.js +7 -7
- package/dist/lib/catalogue/canonical-schema.yaml +23 -23
- package/dist/lib/catalogue/coverage-predicates.js +4 -4
- package/dist/lib/catalogue/coverage-run.js +1 -1
- package/dist/lib/catalogue/dedupe-keyed-tables.js +2 -3
- package/dist/lib/catalogue/ext-id.js +4 -4
- package/dist/lib/catalogue/feature-grounding-aliases-loader.js +1 -1
- package/dist/lib/catalogue/finding-identity.js +3 -3
- package/dist/lib/catalogue/freshness.js +1 -1
- package/dist/lib/catalogue/manifest-loader.js +2 -2
- package/dist/lib/catalogue/scaffold-delta.js +1 -1
- package/dist/lib/catalogue/schema-compat.js +1 -2
- package/dist/lib/catalogue/screen-validation-loader.js +1 -1
- package/dist/lib/catalogue/staleness-verdicts.js +2 -2
- package/dist/lib/catalogue/traceability-loader.js +2 -3
- package/dist/lib/conformance/index.js +29 -8
- package/dist/lib/lock-file.js +1 -1
- package/dist/lib/package-version.js +1 -1
- package/dist/lib/snapshot/manifest.js +1 -1
- package/dist/lib/snapshot/targets.js +1 -1
- package/dist/lib/validate/index.js +1 -1
- package/dist/lib/validate/plan.js +1 -1
- package/dist/lib/validate/yaml-parse.js +1 -1
- package/dist/maintain-version.json +2 -2
- package/dist/verbs/plan.js +3 -3
- package/dist/verify-version.json +2 -2
- package/package.json +2 -2
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
// carries (`name`), so the old→new map is a build artefact, not an authored
|
|
13
13
|
// migration: `sdd-cli catalogue migration-map` emits it, and the exemption
|
|
14
14
|
// loader consults it during the cut window (an authored exemption keyed by
|
|
15
|
-
// a mapped old id is regenerable, NOT drift — the
|
|
15
|
+
// a mapped old id is regenerable, NOT drift — the regenerability rule at schema scale).
|
|
16
16
|
/**
|
|
17
17
|
* Normalise a declared diagram entry id to slug form. Camel humps split
|
|
18
|
-
* BEFORE lowercasing (
|
|
19
|
-
* most SDD ids are hyphenated, and `
|
|
20
|
-
* same identity the adjudicator resolves for it (`
|
|
18
|
+
* BEFORE lowercasing (matching the aggregator's resolver):
|
|
19
|
+
* most SDD ids are hyphenated, and `posGatewayFramework` must derive the
|
|
20
|
+
* same identity the adjudicator resolves for it (`pos-gateway-framework`).
|
|
21
21
|
*/
|
|
22
22
|
export function normaliseEntryId(entryId) {
|
|
23
23
|
return entryId
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* AuthHandler: example-service-api
|
|
15
15
|
* web-ui: example-web-ui
|
|
16
16
|
* repo_aliases:
|
|
17
|
-
*
|
|
17
|
+
* stock-bff: northwind-stock-bff
|
|
18
18
|
*
|
|
19
19
|
* Either block is optional. Empty / missing file = no aliases (every
|
|
20
20
|
* reference must resolve directly against the canonical id).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Finding IDENTITY — the stable key a findings baseline is compared on, per
|
|
3
|
-
* M-ADR 0132 §4.3 as amended
|
|
3
|
+
* M-ADR 0132 §4.3 as amended.
|
|
4
4
|
*
|
|
5
5
|
* THE PROBLEM THIS EXISTS FOR, measured rather than asserted. A findings
|
|
6
6
|
* baseline stores whole `[finding]` lines, so improving a message invalidates
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* files, 74 non-empty, 1,677 body lines — that works for 1,434 lines (85.5%)
|
|
18
18
|
* and fails for 243 (14.5%), which embed their subject in prose:
|
|
19
19
|
*
|
|
20
|
-
* [finding] orphan: repo integration-
|
|
20
|
+
* [finding] orphan: repo integration-acme resolves to no capability ...
|
|
21
21
|
*
|
|
22
22
|
* One renderer template, all orphan class, spread across 62 repos. Recovering
|
|
23
23
|
* identity there means teaching the comparator the renderer's message
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
* baseline is reviewed by people and a side-channel nobody sees is a side
|
|
31
31
|
* channel nobody maintains:
|
|
32
32
|
*
|
|
33
|
-
* [finding] orphan (repo:integration-
|
|
33
|
+
* [finding] orphan (repo:integration-acme): repo integration-acme ...
|
|
34
34
|
* [finding] divergence (docs/domains/asset/product/x.traceability.yaml): ...
|
|
35
35
|
*
|
|
36
36
|
* A finding with no declared subject renders EXACTLY as it does today. That is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `catalogue build --check`: are the committed catalogues what the committed specs build to?
|
|
3
|
-
* (M-ADR 0218 §5
|
|
3
|
+
* (M-ADR 0218 §5.)
|
|
4
4
|
*
|
|
5
5
|
* Builds into a temporary directory and compares, so it writes nothing into the SDD. Only what
|
|
6
6
|
* the build PRODUCES is compared: a hand-written file that happens to sit in catalogues/ (a
|
|
@@ -123,7 +123,7 @@ const DataPlaneSchema = z.object({
|
|
|
123
123
|
bindings: z.array(DataPlaneBindingSchema),
|
|
124
124
|
deviations: z.array(DataPlaneDeviationSchema).optional(),
|
|
125
125
|
});
|
|
126
|
-
// Conformance coverage (M-ADR 0191 §4.3, second overlay element
|
|
126
|
+
// Conformance coverage (M-ADR 0191 §4.3, second overlay element). An
|
|
127
127
|
// application-product asserts which of its archetype's conformance expectations
|
|
128
128
|
// its own conformance suite exercises (`coverage`), and declares a rationale for
|
|
129
129
|
// any expected tag it deliberately does not cover (`deviations`). The method
|
|
@@ -249,7 +249,7 @@ const ManifestSchema = z.object({
|
|
|
249
249
|
// optional declared deviations from the archetype default, each carrying a
|
|
250
250
|
// rationale so the mismatch is sanctioned variance, not silent drift.
|
|
251
251
|
data_plane: DataPlaneSchema.optional(),
|
|
252
|
-
// Conformance coverage declaration (M-ADR 0191 §4.3
|
|
252
|
+
// Conformance coverage declaration (M-ADR 0191 §4.3, sdd-manifest-schema
|
|
253
253
|
// 1.5.0). Which archetype conformance expectations the product's suite
|
|
254
254
|
// exercises, plus rationales for any it deliberately does not.
|
|
255
255
|
conformance: ConformanceSchema.optional(),
|
|
@@ -216,7 +216,7 @@ export async function runScaffoldDelta(session, options) {
|
|
|
216
216
|
}
|
|
217
217
|
/**
|
|
218
218
|
* The delta's DEFECT classes are gate-acting (`divergence`), PROMOTED by a
|
|
219
|
-
* recorded
|
|
219
|
+
* recorded method act after the M-ADR 0207 §4.9 pilot completed with no
|
|
220
220
|
* surprise in any gated figure (2026-08-08) — the deliberate later act the
|
|
221
221
|
* scores-coverage precedent reserves, performed. `scaffold-stale` stays
|
|
222
222
|
* `coverage` with its staleness family: a stale anchor is a re-declare
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Per-schema compatibility ranges declared by this sdd-cli build.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* sdd-method-distributed schemas version independently. The CLI declares
|
|
4
|
+
* The three sdd-method-distributed schemas version independently. The CLI declares
|
|
6
5
|
* the version range it accepts for each and fails fast at read time on
|
|
7
6
|
* out-of-range manifests.
|
|
8
7
|
*
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* - Divider
|
|
16
16
|
* archetype_overlays: # per-platform overlay (ADR 0169 §4.3)
|
|
17
17
|
* web-generic:
|
|
18
|
-
* strip_prefixes: [
|
|
18
|
+
* strip_prefixes: [Nwc, Nwe] # render-only: stripped when humanising labels
|
|
19
19
|
* overrides:
|
|
20
20
|
* VBespokeGrid: grid
|
|
21
21
|
* swiftui:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Staleness VERDICTS — the second half of M-ADR 0205 §4.5's staleness scope
|
|
2
|
-
//
|
|
1
|
+
// Staleness VERDICTS — the second half of M-ADR 0205 §4.5's staleness scope:
|
|
2
|
+
// "staleness meaning corpus_ref older than the target's last
|
|
3
3
|
// content change". The scores-coverage predicate computes each row's BASIS;
|
|
4
4
|
// this module computes the VERDICT the basis supports. A stale score is worse
|
|
5
5
|
// than a missing one, because it reads as coverage — the predicate otherwise
|
|
@@ -262,8 +262,7 @@ function extractContracts(raw) {
|
|
|
262
262
|
// entries used to raise disappeared — the declarations became invisible
|
|
263
263
|
// to row emission and to finding emission at once. The builder had been
|
|
264
264
|
// taught the object form (contracts.ts) while its only feeder had not:
|
|
265
|
-
//
|
|
266
|
-
// it. `spicedb` was likewise never extracted, so `.zed` declarations
|
|
265
|
+
// a builder one surface ahead of the pipeline that supplies it. `spicedb` was likewise never extracted, so `.zed` declarations
|
|
267
266
|
// never reached any builder even as bare strings.
|
|
268
267
|
const arr = (key) => {
|
|
269
268
|
const v = o[key];
|
|
@@ -282,7 +281,7 @@ function extractContracts(raw) {
|
|
|
282
281
|
const graphql = arr("graphql");
|
|
283
282
|
// `provenance` (3.5.0) MUST be extracted here or the builder that reads it
|
|
284
283
|
// sees nothing — this function reconstructs the block key-by-key rather than
|
|
285
|
-
// passing the parsed object through, which is precisely the
|
|
284
|
+
// passing the parsed object through, which is precisely the shape the
|
|
286
285
|
// comment above records. It was re-committed once during 3.5.0's own
|
|
287
286
|
// implementation: the builder was taught to read provenance while this feeder
|
|
288
287
|
// still dropped it, and only an end-to-end catalogue build caught it, because
|
|
@@ -19,7 +19,7 @@ const markdownProviderSignals = async (path, spec) => {
|
|
|
19
19
|
const out = new Set();
|
|
20
20
|
// `section` (ADR 0180 delta-pilot extension) scopes the scan to one heading block and accepts a plain
|
|
21
21
|
// "Field" header, so a check can read ONE entity table inside a multi-table data-model doc (e.g.
|
|
22
|
-
// data-model.mermaid.md "### Collection:
|
|
22
|
+
// data-model.mermaid.md "### Collection: orders") without duplicating the field list into a bespoke
|
|
23
23
|
// surface file. With no `section` the behaviour is byte-for-byte the legacy one (whole file, strict
|
|
24
24
|
// header, no `*` stripping) — existing gateway bindings are unaffected.
|
|
25
25
|
const section = spec?.section;
|
|
@@ -35,7 +35,7 @@ const markdownProviderSignals = async (path, spec) => {
|
|
|
35
35
|
for (const raw of (await readFile(path, "utf-8")).split("\n")) {
|
|
36
36
|
const s = raw.trim();
|
|
37
37
|
if (section && s.startsWith("#")) {
|
|
38
|
-
// strip leading #'s and any markdown code/emphasis in the title (`### Collection: ` + "`
|
|
38
|
+
// strip leading #'s and any markdown code/emphasis in the title (`### Collection: ` + "`orders`")
|
|
39
39
|
inSection = s.replace(/^#+\s*/, "").replace(/[`*]/g, "").includes(section);
|
|
40
40
|
inTable = false;
|
|
41
41
|
continue;
|
|
@@ -61,7 +61,7 @@ const markdownProviderSignals = async (path, spec) => {
|
|
|
61
61
|
if (!sig || sig === "—" || sig.startsWith("Computed") || sig.startsWith("MB "))
|
|
62
62
|
continue;
|
|
63
63
|
sig = sig.replace(/\([^)]*\)/g, "").replace(/\[\]/g, "").trim(); // drop inline "(...)" notes + array markers
|
|
64
|
-
// Range shorthand: `
|
|
64
|
+
// Range shorthand: `sensor1..6` / `zone1..3` -> one declared name per index.
|
|
65
65
|
const range = sig.match(/^(.*?)(\d+)\.\.(\d+)$/);
|
|
66
66
|
if (range?.[1] !== undefined) {
|
|
67
67
|
const base = range[1];
|
|
@@ -369,7 +369,7 @@ const REGISTRY = {
|
|
|
369
369
|
function norm(s, mode) {
|
|
370
370
|
if (mode === "leaf") {
|
|
371
371
|
// Match a nested/dotted declared path against a leaf code identifier: take the last dotted
|
|
372
|
-
// segment, drop array markers, then lower-nosep. `
|
|
372
|
+
// segment, drop array markers, then lower-nosep. `order.status.code` ~ `code`.
|
|
373
373
|
const leaf = s.split(".").pop() ?? s;
|
|
374
374
|
return leaf.replace(/\[\]/g, "").replace(/[-_./ ]/g, "").toLowerCase();
|
|
375
375
|
}
|
|
@@ -474,7 +474,28 @@ function printHuman(r, out) {
|
|
|
474
474
|
out(` - ${m}\n`);
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
|
-
|
|
477
|
+
/**
|
|
478
|
+
* Where the regenerated `produces` entries live: the spec's schema_dir, else the directory the binding's own
|
|
479
|
+
* declared entries already use (so a regenerated block keeps the adopter's layout), else `events`.
|
|
480
|
+
*/
|
|
481
|
+
async function reconcileSchemaDir(targetRepo, rc) {
|
|
482
|
+
if (rc.schema_dir)
|
|
483
|
+
return rc.schema_dir.replace(/\/+$/, "");
|
|
484
|
+
const path = isAbsolute(rc.binding) ? rc.binding : resolve(targetRepo, rc.binding);
|
|
485
|
+
try {
|
|
486
|
+
const doc = parseYaml(await readFile(path, "utf-8"));
|
|
487
|
+
for (const p of doc?.events?.produces ?? []) {
|
|
488
|
+
const s = p?.schema;
|
|
489
|
+
if (typeof s === "string" && s.includes("/"))
|
|
490
|
+
return s.slice(0, s.lastIndexOf("/"));
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
catch {
|
|
494
|
+
/* an unreadable binding falls through to the default */
|
|
495
|
+
}
|
|
496
|
+
return "events";
|
|
497
|
+
}
|
|
498
|
+
function printReconcile(chk, r, schemaDir, out) {
|
|
478
499
|
if (!chk.reconcile || r.target !== "binding-vs-reality")
|
|
479
500
|
return;
|
|
480
501
|
const rc = chk.reconcile;
|
|
@@ -486,7 +507,7 @@ function printReconcile(chk, r, out) {
|
|
|
486
507
|
out(`${rc.block.split(".")[0]}:\n`);
|
|
487
508
|
out(` produces: # ${full.length} schemas (was ${r.declared} declared)\n`);
|
|
488
509
|
for (const name of full)
|
|
489
|
-
out(` - schema:
|
|
510
|
+
out(` - schema: ${schemaDir}/${name}.avsc\n`);
|
|
490
511
|
if (r.declaredNotObserved.length) {
|
|
491
512
|
out(` # DROP (dangling — no such schema in code/contracts): ${r.declaredNotObserved.join(", ")}\n`);
|
|
492
513
|
}
|
|
@@ -546,8 +567,8 @@ export async function runConformance(opts, stdout = (line) => process.stdout.wri
|
|
|
546
567
|
printHuman(r, stdout);
|
|
547
568
|
if (opts.reconcile) {
|
|
548
569
|
const chk = reconcileByline.get(r.id);
|
|
549
|
-
if (chk)
|
|
550
|
-
printReconcile(chk, r, stdout);
|
|
570
|
+
if (chk?.reconcile)
|
|
571
|
+
printReconcile(chk, r, await reconcileSchemaDir(opts.targetRepo, chk.reconcile), stdout);
|
|
551
572
|
}
|
|
552
573
|
}
|
|
553
574
|
for (const id of skipped)
|
package/dist/lib/lock-file.js
CHANGED
|
@@ -215,7 +215,7 @@ function parseVersioned(raw) {
|
|
|
215
215
|
// a YAML reader parses 113 of 325 entries in one real lock as MAPPINGS
|
|
216
216
|
// rather than strings — silently, with no error. Quoting on write is the
|
|
217
217
|
// fix; reading both forms ships first so no lock can be written that an
|
|
218
|
-
// older reader cannot parse.
|
|
218
|
+
// older reader cannot parse.
|
|
219
219
|
const entry = stripQuotes(line.slice(" - ".length));
|
|
220
220
|
const withDigest = DIGEST_ENTRY_RE.exec(entry);
|
|
221
221
|
if (withDigest) {
|
|
@@ -83,7 +83,7 @@ export function getVerifyCliVersion() {
|
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
85
|
* The @sdd-method/maintain-cli version released WITH this sdd-cli. The managed CI workflow's
|
|
86
|
-
* catalogue freshness step installs exactly this version (M-ADR 0218 §5
|
|
86
|
+
* catalogue freshness step installs exactly this version (M-ADR 0218 §5).
|
|
87
87
|
* Read the same way as the verify version, for the same reason (dist/ copy, never scripts/ live).
|
|
88
88
|
*/
|
|
89
89
|
export function getMaintainCliVersion() {
|
|
@@ -82,7 +82,7 @@ export async function readManifest(areaRoot, id) {
|
|
|
82
82
|
}
|
|
83
83
|
if (!Array.isArray(raw.members))
|
|
84
84
|
problems.push("members must be a list");
|
|
85
|
-
// A hand-written revision of digits only (`
|
|
85
|
+
// A hand-written revision of digits only (`12345678901`) parses as a NUMBER, and
|
|
86
86
|
// a strict comparison with the folder's string suffix then calls an unchanged
|
|
87
87
|
// member changed. Identity fields are strings, whatever YAML made of them.
|
|
88
88
|
for (const m of raw.members ?? []) {
|
|
@@ -88,7 +88,7 @@ export function routeFinding(f, artefacts, shared = new Set()) {
|
|
|
88
88
|
return [...targets.values()].sort((a, b) => (a.grain === b.grain ? a.artefact.localeCompare(b.artefact) : a.grain === "file" ? -1 : 1));
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
|
-
* Artefacts that mention a changed file by BASENAME only (`
|
|
91
|
+
* Artefacts that mention a changed file by BASENAME only (`OrderHandler.java:49`) —
|
|
92
92
|
* too ambiguous to route, too likely to matter to drop silently. Reported, not routed.
|
|
93
93
|
*/
|
|
94
94
|
export function basenameOnly(f, artefacts, routed) {
|
|
@@ -54,7 +54,7 @@ export async function runValidate(opts, stdout = (line) => process.stdout.write(
|
|
|
54
54
|
// passed" with none were previously the same line (M-ADR 0200 §4.3). The
|
|
55
55
|
// exit code is deliberately unchanged — the defect is the claim, not the
|
|
56
56
|
// gating; whether an unexecutable validator should FAIL is the open design
|
|
57
|
-
// question
|
|
57
|
+
// question, not this one.
|
|
58
58
|
function verdict(summary, selected) {
|
|
59
59
|
if (summary.exitCode !== 0)
|
|
60
60
|
return fail("One or more validators failed");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The method-managed validation job, as DATA (
|
|
2
|
+
* The method-managed validation job, as DATA (M-ADR 0219).
|
|
3
3
|
*
|
|
4
4
|
* One ordered plan per profile: every default validator, the platform's script-only checks, then the
|
|
5
5
|
* advisory catalogue freshness check. Every executor renders or runs THIS: the GitHub workflow
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// with it certifies exactly the corruption a line-surgery transformer
|
|
11
11
|
// produces. `yaml` v2 refuses duplicate keys (DUPLICATE_KEY) and the other
|
|
12
12
|
// malformations a lenient parse glosses — e.g. a `: ` inside an unquoted
|
|
13
|
-
// scalar (`path: (none —
|
|
13
|
+
// scalar (`path: (none — see: docs)`), which no pattern rule catches.
|
|
14
14
|
//
|
|
15
15
|
// Scope: the YAML files git TRACKS (`*.yaml`, `*.yml`) — the repo's sources,
|
|
16
16
|
// not build output or dependencies. Outside a git work tree there is no
|
package/dist/verbs/plan.js
CHANGED
|
@@ -5,9 +5,9 @@ export function registerPlan(program) {
|
|
|
5
5
|
.command("plan")
|
|
6
6
|
.description("Scaffold a plan markdown file from a method-distributed template. Currently supports --pilot for pilot-kickoff plans; future subcommands may add --initiative / --migration.")
|
|
7
7
|
.option("--pilot", "scaffold a pilot-kickoff plan (requires --service, --capability, --domain)", false)
|
|
8
|
-
.option("--service <name>", "service / pilot name, e.g.
|
|
9
|
-
.option("--capability <name>", "capability under test, e.g.
|
|
10
|
-
.option("--domain <name>", "domain the capability belongs to, e.g.
|
|
8
|
+
.option("--service <name>", "service / pilot name, e.g. order-service")
|
|
9
|
+
.option("--capability <name>", "capability under test, e.g. order-management")
|
|
10
|
+
.option("--domain <name>", "domain the capability belongs to, e.g. orders")
|
|
11
11
|
.option("--workspace-root <path>", "SDD root (defaults to cwd)", resolvePathOption)
|
|
12
12
|
.option("--output <path>", "destination file (defaults to content/product/plans/{service}-pilot-kickoff.md)")
|
|
13
13
|
.option("--dry-run", "print rendered output to stdout without writing", false)
|
package/dist/verify-version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdd-method/author-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"sddCliVersion": "1.
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"sddCliVersion": "1.45.0",
|
|
5
5
|
"description": "Re-author one SDD's content — scaffold, plan, contracts, conformance, api-surface, snapshots, briefings, catalogue check — plus every read-only verify verb. Ships only the code those verbs reach; it cannot sync the baseline or rebuild the catalogues. Maintenance is in @sdd-method/maintain-cli, administration in @sdd-method/sdd-cli.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"type": "module",
|