cyber-sdd 0.6.0 → 0.7.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 (137) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +2 -2
  3. package/.plugin/plugin.json +1 -1
  4. package/agents/sdd-automaton.md +2 -3
  5. package/agents/sdd-impl-judge.md +5 -4
  6. package/agents/sdd-scanner.md +1 -1
  7. package/agents/sdd-spec-judge.md +3 -3
  8. package/agents/sdd-warden.md +8 -0
  9. package/dist/check-project-specs/scripts/check-project-specs.js +1 -0
  10. package/package.json +2 -2
  11. package/skills/align-spec/README.md +3 -3
  12. package/skills/align-spec/SKILL.md +1 -1
  13. package/skills/align-spec/scripts/align-spec.bundle.mjs +6753 -0
  14. package/skills/align-spec/scripts/align-spec.mjs +12 -0
  15. package/skills/architect-impl-governance/SKILL.md +3 -1
  16. package/skills/architect-spec-governance/SKILL.md +5 -1
  17. package/skills/blast-estimate/README.md +1 -1
  18. package/skills/blast-estimate/SKILL.md +1 -1
  19. package/skills/blast-estimate/scripts/blast-estimate.bundle.mjs +593 -0
  20. package/skills/blast-estimate/scripts/blast-estimate.mjs +12 -0
  21. package/skills/check-field-mandates/SKILL.md +1 -1
  22. package/skills/check-field-mandates/scripts/check-field-mandates.bundle.mjs +251 -0
  23. package/skills/check-field-mandates/scripts/check-field-mandates.mjs +12 -0
  24. package/skills/check-partition-quality/SKILL.md +1 -1
  25. package/skills/check-partition-quality/scripts/check-partition-quality.bundle.mjs +233 -0
  26. package/skills/check-partition-quality/scripts/check-partition-quality.mjs +12 -0
  27. package/skills/check-plan-safety/README.md +3 -3
  28. package/skills/check-plan-safety/SKILL.md +1 -1
  29. package/skills/check-plan-safety/scripts/check-plan-safety.bundle.mjs +107 -0
  30. package/skills/check-plan-safety/scripts/check-plan-safety.mjs +12 -0
  31. package/skills/check-plugin-manifests/SKILL.md +1 -1
  32. package/skills/check-plugin-manifests/scripts/check-plugin-manifests.bundle.mjs +248 -0
  33. package/skills/check-plugin-manifests/scripts/check-plugin-manifests.mjs +12 -0
  34. package/skills/check-project-specs/README.md +3 -3
  35. package/skills/check-project-specs/SKILL.md +2 -2
  36. package/skills/check-project-specs/scripts/check-project-specs.bundle.mjs +584 -0
  37. package/skills/check-project-specs/scripts/check-project-specs.mjs +12 -0
  38. package/skills/check-project-specs/scripts/check-project-specs.mts +1 -0
  39. package/skills/check-retired-terms/README.md +2 -2
  40. package/skills/check-retired-terms/SKILL.md +2 -2
  41. package/skills/check-retired-terms/scripts/check-retired-terms.bundle.mjs +184 -0
  42. package/skills/check-retired-terms/scripts/check-retired-terms.mjs +12 -0
  43. package/skills/check-scenario-overlap/README.md +2 -2
  44. package/skills/check-scenario-overlap/SKILL.md +2 -3
  45. package/skills/check-scenario-overlap/scripts/check-scenario-overlap.bundle.mjs +175 -0
  46. package/skills/check-scenario-overlap/scripts/check-scenario-overlap.mjs +12 -0
  47. package/skills/check-spec-references/README.md +1 -1
  48. package/skills/check-spec-references/SKILL.md +1 -1
  49. package/skills/check-spec-references/scripts/check-spec-references.bundle.mjs +285 -0
  50. package/skills/check-spec-references/scripts/check-spec-references.mjs +12 -0
  51. package/skills/check-spec-structure/README.md +2 -2
  52. package/skills/check-spec-structure/SKILL.md +1 -1
  53. package/skills/check-spec-structure/scripts/check-spec-structure.bundle.mjs +241 -0
  54. package/skills/check-spec-structure/scripts/check-spec-structure.mjs +12 -0
  55. package/skills/collision-ladder/SKILL.md +3 -3
  56. package/skills/collision-ladder/scripts/collision-ladder.bundle.mjs +7041 -0
  57. package/skills/collision-ladder/scripts/collision-ladder.mjs +12 -0
  58. package/skills/collision-ladder/scripts/collision-ladder.mts +4 -2
  59. package/skills/combat-log-governance/SKILL.md +1 -1
  60. package/skills/concept-index/README.md +2 -2
  61. package/skills/concept-index/SKILL.md +1 -1
  62. package/skills/concept-index/scripts/concept-index.bundle.mjs +181 -0
  63. package/skills/concept-index/scripts/concept-index.mjs +12 -0
  64. package/skills/discover-plans/README.md +2 -2
  65. package/skills/discover-plans/SKILL.md +1 -1
  66. package/skills/discover-plans/scripts/discover-plans.bundle.mjs +135 -0
  67. package/skills/discover-plans/scripts/discover-plans.mjs +12 -0
  68. package/skills/discover-specs/README.md +1 -1
  69. package/skills/discover-specs/SKILL.md +1 -1
  70. package/skills/discover-specs/scripts/discover-specs.bundle.mjs +319 -0
  71. package/skills/discover-specs/scripts/discover-specs.mjs +12 -0
  72. package/skills/doctrine-loop/SKILL.md +2 -2
  73. package/skills/formation-loop/SKILL.md +11 -4
  74. package/skills/gate-validation-governance/SKILL.md +1 -1
  75. package/skills/init/README.md +3 -3
  76. package/skills/init/SKILL.md +3 -3
  77. package/skills/init/scripts/wire-statusline.bundle.mjs +166 -0
  78. package/skills/init/scripts/wire-statusline.mjs +12 -0
  79. package/skills/manage-ignore/README.md +5 -5
  80. package/skills/manage-ignore/SKILL.md +1 -1
  81. package/skills/manage-ignore/scripts/manage-ignore.bundle.mjs +244 -0
  82. package/skills/manage-ignore/scripts/manage-ignore.mjs +12 -0
  83. package/skills/manage-scenario-bridge/README.md +3 -3
  84. package/skills/manage-scenario-bridge/SKILL.md +1 -1
  85. package/skills/manage-scenario-bridge/scripts/manage-scenario-bridge.bundle.mjs +237 -0
  86. package/skills/manage-scenario-bridge/scripts/manage-scenario-bridge.mjs +12 -0
  87. package/skills/manage-spec-anchors/README.md +4 -4
  88. package/skills/manage-spec-anchors/SKILL.md +1 -1
  89. package/skills/manage-spec-anchors/scripts/manage-spec-anchors.bundle.mjs +308 -0
  90. package/skills/manage-spec-anchors/scripts/manage-spec-anchors.mjs +12 -0
  91. package/skills/mission-graph/SKILL.md +9 -9
  92. package/skills/mission-graph/scripts/mission-graph.bundle.mjs +1038 -0
  93. package/skills/mission-graph/scripts/mission-graph.mjs +12 -0
  94. package/skills/pause-mission/SKILL.md +1 -1
  95. package/skills/place-node/README.md +1 -1
  96. package/skills/place-node/SKILL.md +1 -1
  97. package/skills/place-node/scripts/place-node.bundle.mjs +115 -0
  98. package/skills/place-node/scripts/place-node.mjs +12 -0
  99. package/skills/plan-retirement/SKILL.md +1 -1
  100. package/skills/plan-retirement/scripts/retire-plans.bundle.mjs +121 -0
  101. package/skills/plan-retirement/scripts/retire-plans.mjs +12 -0
  102. package/skills/plan-retirement/scripts/retire-plans.mts +6 -0
  103. package/skills/plugin-contract-governance/SKILL.md +5 -12
  104. package/skills/resolve-governances/README.md +1 -1
  105. package/skills/resolve-governances/SKILL.md +1 -1
  106. package/skills/resolve-governances/scripts/resolve-governances.bundle.mjs +350 -0
  107. package/skills/resolve-governances/scripts/resolve-governances.mjs +12 -0
  108. package/skills/resolve-governances/scripts/resolve-governances.mts +1 -1
  109. package/skills/resolve-tracking/SKILL.md +1 -1
  110. package/skills/resolve-tracking/scripts/resolve-tracking.bundle.mjs +150 -0
  111. package/skills/resolve-tracking/scripts/resolve-tracking.mjs +12 -0
  112. package/skills/scaffold-project-spec/SKILL.md +2 -2
  113. package/skills/sdd/SKILL.md +1 -1
  114. package/skills/solution-producer-governance/README.md +1 -1
  115. package/skills/solution-producer-governance/SKILL.md +1 -1
  116. package/skills/spec-gate/SKILL.md +5 -5
  117. package/skills/spec-gate/scripts/check-spec-state.bundle.mjs +420 -0
  118. package/skills/spec-gate/scripts/check-spec-state.mjs +12 -0
  119. package/skills/spec-gate/scripts/check-suite.bundle.mjs +6498 -0
  120. package/skills/spec-gate/scripts/check-suite.mjs +12 -0
  121. package/skills/spec-gate/scripts/classify-edit-class.bundle.mjs +6577 -0
  122. package/skills/spec-gate/scripts/classify-edit-class.mjs +12 -0
  123. package/skills/spec-producer-governance/README.md +1 -1
  124. package/skills/spec-producer-governance/SKILL.md +3 -3
  125. package/skills/spec-structure-governance/README.md +4 -2
  126. package/skills/spec-structure-governance/SKILL.md +42 -7
  127. package/skills/start-mission/README.md +1 -1
  128. package/skills/start-mission/SKILL.md +6 -6
  129. package/skills/suite-format-governance/references/rubric.md +1 -1
  130. package/skills/touch-set-correction/SKILL.md +2 -2
  131. package/skills/touch-set-correction/scripts/touch-set-correction.bundle.mjs +6655 -0
  132. package/skills/touch-set-correction/scripts/touch-set-correction.mjs +12 -0
  133. package/skills/touch-set-correction/scripts/touch-set-correction.mts +12 -3
  134. package/skills/verify-scenarios/README.md +3 -3
  135. package/skills/verify-scenarios/SKILL.md +3 -3
  136. package/skills/verify-scenarios/scripts/verify-scenarios.bundle.mjs +6537 -0
  137. package/skills/verify-scenarios/scripts/verify-scenarios.mjs +12 -0
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "homepage": "https://github.com/cyberuni/cyber-sdd",
9
9
  "repository": "https://github.com/cyberuni/cyber-sdd",
10
- "version": "0.6.0",
10
+ "version": "0.7.0",
11
11
  "skills": "./skills",
12
12
  "agents": [
13
13
  "./agents/sdd-automaton.md",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/cyberuni/marketplace/main/schema/claude/plugin.json",
2
+ "$schema": "https://json.schemastore.org/codex-plugin-manifest.json",
3
3
  "name": "sdd",
4
4
  "description": "Spec-Driven Development. Scaffold, validate, and maintain behavioral specs (spec.md + .feature files) for software features.",
5
5
  "author": {
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "homepage": "https://github.com/cyberuni/cyber-sdd",
9
9
  "repository": "https://github.com/cyberuni/cyber-sdd",
10
- "version": "0.6.0",
10
+ "version": "0.7.0",
11
11
  "skills": "./skills",
12
12
  "agents": [
13
13
  "./agents/sdd-automaton.md",
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "homepage": "https://github.com/cyberuni/cyber-sdd",
9
9
  "repository": "https://github.com/cyberuni/cyber-sdd",
10
- "version": "0.6.0",
10
+ "version": "0.7.0",
11
11
  "skills": "./skills",
12
12
  "agents": [
13
13
  "./agents/sdd-automaton.md",
@@ -96,7 +96,7 @@ session, or fold judging into your context, which **forfeits grader independence
96
96
  as such. Do not design for depth > 2.
97
97
 
98
98
  A cold-judge or builder dispatch **may** instead be realized through a general-purpose dispatch
99
- capability's `subagent | channel` seam (ADR-0023, referenced by intent — never a pinned mechanism);
99
+ capability's `subagent | channel` seam (referenced by intent — never a pinned mechanism);
100
100
  that is an alternative realization of the same spawns above, not a change to the default depth-1/
101
101
  depth-2 behavior described here.
102
102
 
@@ -108,5 +108,4 @@ handoff. Hand SDD's own judges (`sdd-spec-judge`, `sdd-impl-judge`) to the
108
108
  capability **by file path, never by name** — `agents/<name>.md` under the SDD plugin root, the folder
109
109
  your own definition ships in. Locate that root from the SDD skill that spawned you (two levels above
110
110
  its base directory) or the plugin root your brief names; if no file is there, send the capability no
111
- request for that judge and spawn it as a portable cold subagent (`sdd:<name>`) instead. Full model: `start-mission`'s "Dispatch transport" note and the `design/harness-spawning`
112
- node of the SDD project spec (repo-only).
111
+ request for that judge and spawn it as a portable cold subagent (`sdd:<name>`) instead. Full model: `start-mission`'s "Dispatch transport" note.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sdd-impl-judge
3
- description: "Internal SDD impl-judge (default). Grades the implementation against the frozen .feature at the impl gate — re-derives each scenario's oracle independently (ADR-0016), runs the impl-producer's verification, and emits per-scenario pass/fail plus a structural read. Spawned cold by the conductor; never user-triggered."
3
+ description: "Internal SDD impl-judge (default). Grades the implementation against the frozen .feature at the impl gate — re-derives each scenario's oracle independently, runs the impl-producer's verification, and emits per-scenario pass/fail plus a structural read. Spawned cold by the conductor; never user-triggered."
4
4
  model: sonnet
5
5
  effort: high
6
6
  ---
@@ -18,7 +18,7 @@ the **conductor** (`start-mission`) turns the rollup into the gate
18
18
  verdict and the leash.
19
19
 
20
20
  Its verdict answers **"does the frozen contract hold"**, not "did the producer's tests pass" — the
21
- producer's own green run is a **pre-filter, never the verdict** (ADR-0016). It does **not** judge
21
+ producer's own green run is a **pre-filter, never the verdict**. It does **not** judge
22
22
  domain contract quality — a plugin's own impl-judge does that when the registry resolves one for the
23
23
  artifact-type.
24
24
 
@@ -39,7 +39,8 @@ when you grade against that bar. The **impl-gate lens set is {builder, architect
39
39
  candidates the matcher hands you (floor `sdd:builder-impl-governance` /
40
40
  `sdd:architect-impl-governance`). Compose per the precedence above — never hand-enumerate.
41
41
  - **Fixed-universal:** `sdd:ownership-governance` — the write-ownership matrix; the impl-judge must
42
- not modify `spec.md` or the `.feature`, and a behavior-changing gap is a `BLOCKER`, not an edit.
42
+ not modify `spec.md` or the `.feature`, and a behavior-changing gap is a `BLOCKER`, not an edit —
43
+ and `sdd:gate-validation-governance` — the gate-legality contract (legal-state tuples, derived sync).
43
44
 
44
45
  ## Input
45
46
 
@@ -49,7 +50,7 @@ IMPLEMENTATION_PATHS: impl-layer paths from the ## Artifacts table
49
50
  VERIFICATION_PATHS: the verification the impl-producer authored (or discoverable across IMPLEMENTATION_PATHS)
50
51
  ```
51
52
 
52
- ## The layered verdict (ADR-0016)
53
+ ## The layered verdict
53
54
 
54
55
  Cold context removes the author's *conversational* bias but not a same-model grader's *correlated*
55
56
  blind spots, and re-running the producer's own assertions only confirms internal consistency. So the
@@ -196,7 +196,7 @@ is separate from strategy-drafting above; you draft nothing and write nothing to
196
196
  tracked issue.
197
197
  - There is **no legal terminal value** for a plan brief's `status` field to autofix into — the
198
198
  contract's own answer to "this mission is over" is retirement (a tracked deletion), not a status
199
- flag (`design/provenance-model.md` reserves the plan-level `status` to the two-value dispatch
199
+ flag (the plan-level `status` is reserved to the two-value dispatch
200
200
  flag `active | approved`). You never write a plan brief's `status`.
201
201
 
202
202
  ## Boundaries
@@ -102,13 +102,13 @@ present (or a reference/descriptive node) ⇒ `{ result: pass, missing: [] }`.
102
102
  reading the files — the gate never hard-depends on NodeJS):
103
103
  - State-machine legality of the `(status, markers, .feature, approval)` tuple:
104
104
  ```bash
105
- node "<spec-gate skill>/scripts/check-spec-state.mts" [--root <specs-dir>]
105
+ node "<spec-gate skill>/scripts/check-spec-state.mjs" [--root <specs-dir>]
106
106
  ```
107
107
  - Gherkin validity, boolean form, and scenario ordering/sectioning — scope it to the CR's
108
108
  touched `.feature` files with `--files`; `--root` sweeps the whole corpus:
109
109
  ```bash
110
- node "<spec-gate skill>/scripts/check-suite.mts" --files <feature> [<feature> ...]
111
- node "<spec-gate skill>/scripts/check-suite.mts" [--root <specs-dir>]
110
+ node "<spec-gate skill>/scripts/check-suite.mjs" --files <feature> [<feature> ...]
111
+ node "<spec-gate skill>/scripts/check-suite.mjs" [--root <specs-dir>]
112
112
  ```
113
113
  - **Non-deterministic agent reasoning** — the three lenses' coverage, scope, and structural-fit
114
114
  judgment, and the contradiction checks that need reading.
@@ -57,6 +57,14 @@ marker shape you leave — their fields and schema are owned there; never restat
57
57
  routing-table row (the "concept of kind K lives in home H" taxonomy and its tie-breaks) is
58
58
  correctly placed even where the strategy alone would put it elsewhere. Report a node misplaced only
59
59
  when it **neither** follows the declared strategy **nor** matches a routing-table row.
60
+ - **Depth on capability nodes; `design/` by its own shape** (`sdd:spec-structure-governance`). A
61
+ capability node three levels deep is a depth finding naming it, its sub-grouping owed to a
62
+ `concept:` tag. Never apply that cap inside `design/`: there, read the placement map for the
63
+ **design version** — the folder it names is legal, and so are the files inside it; any other
64
+ sub-folder of `design/` besides `decisions/` is a **perspective folder** finding naming it; a named
65
+ design version with **no** recorded cut trigger is a finding, and so is a named design version
66
+ whose folder does not exist (a stale record the cut left behind). Tell a version folder from a
67
+ perspective folder by the map, never by guessing from its contents.
60
68
  - **Stations, not status.** You run the `corpus/` stations (`check-spec-structure`,
61
69
  `check-scenario-overlap`, `align-spec`) in-session and **never** write a spec's `status`. A station
62
70
  is **not** a dependency — you depend on the corpus structure + discovery, not on any given station
@@ -67,6 +67,7 @@ const ENGINES = [
67
67
  */
68
68
  function enginePath(e, here = HERE) {
69
69
  const skillsDir = resolve(dirname(here), "../..");
70
+ if (here.endsWith(".bundle.mjs")) return join(skillsDir, e.script.replace(/\.mts$/, ".bundle.mjs"));
70
71
  return join(skillsDir, here.endsWith(".mts") ? e.script : e.script.replace(/\.mts$/, ".js"));
71
72
  }
72
73
  /** Walk up from `start` for the workspace marker. Returns '' when not found. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyber-sdd",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Spec-Driven Development. Scaffold, validate, and maintain behavioral specs (spec.md + .feature files) for software features.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,7 +32,7 @@
32
32
  "node": ">=22.11"
33
33
  },
34
34
  "scripts": {
35
- "build": "tsdown",
35
+ "build": "tsdown && node scripts/build-skill-engines.mjs",
36
36
  "build:vendor": "tsdown -c tsdown.vendor.config.ts",
37
37
  "check:spec": "node ./skills/check-project-specs/scripts/check-project-specs.mts",
38
38
  "test": "node --test \"skills/*/scripts/*.test.mts\"",
@@ -6,9 +6,9 @@ spec (or a chosen node set) — for audits, post-large-change verification, and
6
6
  only project-spec tool that **reconciles** rather than only reporting.
7
7
 
8
8
  ```bash
9
- node scripts/align-spec.mts --spec-dir <spec> # audit (TOON drift report)
10
- node scripts/align-spec.mts --spec-dir <spec> --check # CI guard (fails on drift)
11
- node scripts/align-spec.mts --spec-dir <spec> --nodes a,b --base HEAD~1
9
+ node scripts/align-spec.mjs --spec-dir <spec> # audit (TOON drift report)
10
+ node scripts/align-spec.mjs --spec-dir <spec> --check # CI guard (fails on drift)
11
+ node scripts/align-spec.mjs --spec-dir <spec> --nodes a,b --base HEAD~1
12
12
  ```
13
13
 
14
14
  Detect splits into a mechanical **scenario-diff** (this engine, reusing `spec-gate`'s
@@ -22,7 +22,7 @@ node-shape or propose splits (`check-spec-structure`'s job).
22
22
  ## Run the scan
23
23
 
24
24
  ```bash
25
- node "<skill>/scripts/align-spec.mts" [--spec-dir <spec>] [--nodes <a,b,...>] [--base <ref>] [--check] [--format toon|json]
25
+ node "<skill>/scripts/align-spec.mjs" [--spec-dir <spec>] [--nodes <a,b,...>] [--base <ref>] [--check] [--format toon|json]
26
26
  ```
27
27
 
28
28
  - Default `--spec-dir` is `.`; default `--base` is `HEAD` (the scenario-diff baseline); default