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.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/.plugin/plugin.json +1 -1
- package/agents/sdd-automaton.md +2 -3
- package/agents/sdd-impl-judge.md +5 -4
- package/agents/sdd-scanner.md +1 -1
- package/agents/sdd-spec-judge.md +3 -3
- package/agents/sdd-warden.md +8 -0
- package/dist/check-project-specs/scripts/check-project-specs.js +1 -0
- package/package.json +2 -2
- package/skills/align-spec/README.md +3 -3
- package/skills/align-spec/SKILL.md +1 -1
- package/skills/align-spec/scripts/align-spec.bundle.mjs +6753 -0
- package/skills/align-spec/scripts/align-spec.mjs +12 -0
- package/skills/architect-impl-governance/SKILL.md +3 -1
- package/skills/architect-spec-governance/SKILL.md +5 -1
- package/skills/blast-estimate/README.md +1 -1
- package/skills/blast-estimate/SKILL.md +1 -1
- package/skills/blast-estimate/scripts/blast-estimate.bundle.mjs +593 -0
- package/skills/blast-estimate/scripts/blast-estimate.mjs +12 -0
- package/skills/check-field-mandates/SKILL.md +1 -1
- package/skills/check-field-mandates/scripts/check-field-mandates.bundle.mjs +251 -0
- package/skills/check-field-mandates/scripts/check-field-mandates.mjs +12 -0
- package/skills/check-partition-quality/SKILL.md +1 -1
- package/skills/check-partition-quality/scripts/check-partition-quality.bundle.mjs +233 -0
- package/skills/check-partition-quality/scripts/check-partition-quality.mjs +12 -0
- package/skills/check-plan-safety/README.md +3 -3
- package/skills/check-plan-safety/SKILL.md +1 -1
- package/skills/check-plan-safety/scripts/check-plan-safety.bundle.mjs +107 -0
- package/skills/check-plan-safety/scripts/check-plan-safety.mjs +12 -0
- package/skills/check-plugin-manifests/SKILL.md +1 -1
- package/skills/check-plugin-manifests/scripts/check-plugin-manifests.bundle.mjs +248 -0
- package/skills/check-plugin-manifests/scripts/check-plugin-manifests.mjs +12 -0
- package/skills/check-project-specs/README.md +3 -3
- package/skills/check-project-specs/SKILL.md +2 -2
- package/skills/check-project-specs/scripts/check-project-specs.bundle.mjs +584 -0
- package/skills/check-project-specs/scripts/check-project-specs.mjs +12 -0
- package/skills/check-project-specs/scripts/check-project-specs.mts +1 -0
- package/skills/check-retired-terms/README.md +2 -2
- package/skills/check-retired-terms/SKILL.md +2 -2
- package/skills/check-retired-terms/scripts/check-retired-terms.bundle.mjs +184 -0
- package/skills/check-retired-terms/scripts/check-retired-terms.mjs +12 -0
- package/skills/check-scenario-overlap/README.md +2 -2
- package/skills/check-scenario-overlap/SKILL.md +2 -3
- package/skills/check-scenario-overlap/scripts/check-scenario-overlap.bundle.mjs +175 -0
- package/skills/check-scenario-overlap/scripts/check-scenario-overlap.mjs +12 -0
- package/skills/check-spec-references/README.md +1 -1
- package/skills/check-spec-references/SKILL.md +1 -1
- package/skills/check-spec-references/scripts/check-spec-references.bundle.mjs +285 -0
- package/skills/check-spec-references/scripts/check-spec-references.mjs +12 -0
- package/skills/check-spec-structure/README.md +2 -2
- package/skills/check-spec-structure/SKILL.md +1 -1
- package/skills/check-spec-structure/scripts/check-spec-structure.bundle.mjs +241 -0
- package/skills/check-spec-structure/scripts/check-spec-structure.mjs +12 -0
- package/skills/collision-ladder/SKILL.md +3 -3
- package/skills/collision-ladder/scripts/collision-ladder.bundle.mjs +7041 -0
- package/skills/collision-ladder/scripts/collision-ladder.mjs +12 -0
- package/skills/collision-ladder/scripts/collision-ladder.mts +4 -2
- package/skills/combat-log-governance/SKILL.md +1 -1
- package/skills/concept-index/README.md +2 -2
- package/skills/concept-index/SKILL.md +1 -1
- package/skills/concept-index/scripts/concept-index.bundle.mjs +181 -0
- package/skills/concept-index/scripts/concept-index.mjs +12 -0
- package/skills/discover-plans/README.md +2 -2
- package/skills/discover-plans/SKILL.md +1 -1
- package/skills/discover-plans/scripts/discover-plans.bundle.mjs +135 -0
- package/skills/discover-plans/scripts/discover-plans.mjs +12 -0
- package/skills/discover-specs/README.md +1 -1
- package/skills/discover-specs/SKILL.md +1 -1
- package/skills/discover-specs/scripts/discover-specs.bundle.mjs +319 -0
- package/skills/discover-specs/scripts/discover-specs.mjs +12 -0
- package/skills/doctrine-loop/SKILL.md +2 -2
- package/skills/formation-loop/SKILL.md +11 -4
- package/skills/gate-validation-governance/SKILL.md +1 -1
- package/skills/init/README.md +3 -3
- package/skills/init/SKILL.md +3 -3
- package/skills/init/scripts/wire-statusline.bundle.mjs +166 -0
- package/skills/init/scripts/wire-statusline.mjs +12 -0
- package/skills/manage-ignore/README.md +5 -5
- package/skills/manage-ignore/SKILL.md +1 -1
- package/skills/manage-ignore/scripts/manage-ignore.bundle.mjs +244 -0
- package/skills/manage-ignore/scripts/manage-ignore.mjs +12 -0
- package/skills/manage-scenario-bridge/README.md +3 -3
- package/skills/manage-scenario-bridge/SKILL.md +1 -1
- package/skills/manage-scenario-bridge/scripts/manage-scenario-bridge.bundle.mjs +237 -0
- package/skills/manage-scenario-bridge/scripts/manage-scenario-bridge.mjs +12 -0
- package/skills/manage-spec-anchors/README.md +4 -4
- package/skills/manage-spec-anchors/SKILL.md +1 -1
- package/skills/manage-spec-anchors/scripts/manage-spec-anchors.bundle.mjs +308 -0
- package/skills/manage-spec-anchors/scripts/manage-spec-anchors.mjs +12 -0
- package/skills/mission-graph/SKILL.md +9 -9
- package/skills/mission-graph/scripts/mission-graph.bundle.mjs +1038 -0
- package/skills/mission-graph/scripts/mission-graph.mjs +12 -0
- package/skills/pause-mission/SKILL.md +1 -1
- package/skills/place-node/README.md +1 -1
- package/skills/place-node/SKILL.md +1 -1
- package/skills/place-node/scripts/place-node.bundle.mjs +115 -0
- package/skills/place-node/scripts/place-node.mjs +12 -0
- package/skills/plan-retirement/SKILL.md +1 -1
- package/skills/plan-retirement/scripts/retire-plans.bundle.mjs +121 -0
- package/skills/plan-retirement/scripts/retire-plans.mjs +12 -0
- package/skills/plan-retirement/scripts/retire-plans.mts +6 -0
- package/skills/plugin-contract-governance/SKILL.md +5 -12
- package/skills/resolve-governances/README.md +1 -1
- package/skills/resolve-governances/SKILL.md +1 -1
- package/skills/resolve-governances/scripts/resolve-governances.bundle.mjs +350 -0
- package/skills/resolve-governances/scripts/resolve-governances.mjs +12 -0
- package/skills/resolve-governances/scripts/resolve-governances.mts +1 -1
- package/skills/resolve-tracking/SKILL.md +1 -1
- package/skills/resolve-tracking/scripts/resolve-tracking.bundle.mjs +150 -0
- package/skills/resolve-tracking/scripts/resolve-tracking.mjs +12 -0
- package/skills/scaffold-project-spec/SKILL.md +2 -2
- package/skills/sdd/SKILL.md +1 -1
- package/skills/solution-producer-governance/README.md +1 -1
- package/skills/solution-producer-governance/SKILL.md +1 -1
- package/skills/spec-gate/SKILL.md +5 -5
- package/skills/spec-gate/scripts/check-spec-state.bundle.mjs +420 -0
- package/skills/spec-gate/scripts/check-spec-state.mjs +12 -0
- package/skills/spec-gate/scripts/check-suite.bundle.mjs +6498 -0
- package/skills/spec-gate/scripts/check-suite.mjs +12 -0
- package/skills/spec-gate/scripts/classify-edit-class.bundle.mjs +6577 -0
- package/skills/spec-gate/scripts/classify-edit-class.mjs +12 -0
- package/skills/spec-producer-governance/README.md +1 -1
- package/skills/spec-producer-governance/SKILL.md +3 -3
- package/skills/spec-structure-governance/README.md +4 -2
- package/skills/spec-structure-governance/SKILL.md +42 -7
- package/skills/start-mission/README.md +1 -1
- package/skills/start-mission/SKILL.md +6 -6
- package/skills/suite-format-governance/references/rubric.md +1 -1
- package/skills/touch-set-correction/SKILL.md +2 -2
- package/skills/touch-set-correction/scripts/touch-set-correction.bundle.mjs +6655 -0
- package/skills/touch-set-correction/scripts/touch-set-correction.mjs +12 -0
- package/skills/touch-set-correction/scripts/touch-set-correction.mts +12 -3
- package/skills/verify-scenarios/README.md +3 -3
- package/skills/verify-scenarios/SKILL.md +3 -3
- package/skills/verify-scenarios/scripts/verify-scenarios.bundle.mjs +6537 -0
- package/skills/verify-scenarios/scripts/verify-scenarios.mjs +12 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://
|
|
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.
|
|
10
|
+
"version": "0.7.0",
|
|
11
11
|
"skills": "./skills",
|
|
12
12
|
"agents": [
|
|
13
13
|
"./agents/sdd-automaton.md",
|
package/.plugin/plugin.json
CHANGED
package/agents/sdd-automaton.md
CHANGED
|
@@ -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 (
|
|
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
|
|
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.
|
package/agents/sdd-impl-judge.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
package/agents/sdd-scanner.md
CHANGED
|
@@ -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 (
|
|
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
|
package/agents/sdd-spec-judge.md
CHANGED
|
@@ -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.
|
|
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.
|
|
111
|
-
node "<spec-gate skill>/scripts/check-suite.
|
|
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.
|
package/agents/sdd-warden.md
CHANGED
|
@@ -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.
|
|
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.
|
|
10
|
-
node scripts/align-spec.
|
|
11
|
-
node scripts/align-spec.
|
|
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.
|
|
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
|