dsh-model-everything 0.5.2 → 0.6.1

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/package.json CHANGED
@@ -1,148 +1,149 @@
1
- {
2
- "name": "dsh-model-everything",
3
- "version": "0.5.2",
4
- "description": "Modeling abstraction, architecture visualisation and automated review for designs and code, including a refactoring harness: draw a Mermaid or PlantUML source and measure its structure, executable verification of machines and protocols with before/after regression, data-model and migration checks, concurrency claim routing, export to external checkers, dependency-graph review, and report diffing. Native plugin for DeepSeek Harness (dsh).",
5
- "type": "module",
6
- "main": "lib/index.js",
7
- "types": "lib/types/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./lib/types/index.d.ts",
11
- "default": "./lib/index.js"
12
- },
13
- "./gate": {
14
- "types": "./lib/types/gate.d.ts",
15
- "default": "./lib/gate.js"
16
- },
17
- "./gate/package.json": "./gate/package.json",
18
- "./gate/locale/*.json": "./gate/locale/*.json",
19
- "./cordis.patch.yml": "./cordis.patch.yml",
20
- "./package.json": "./package.json",
21
- "./locale/*.json": "./locale/*.json",
22
- "./client": "./lib/client.js",
23
- "./diagram": {
24
- "types": "./lib/types/diagram.d.ts",
25
- "default": "./lib/diagram.js"
26
- },
27
- "./diagram/package.json": "./diagram/package.json"
28
- },
29
- "files": [
30
- "lib",
31
- "src",
32
- "skills",
33
- "cordis.patch.yml",
34
- "examples",
35
- "gate",
36
- "locale",
37
- "diagram"
38
- ],
39
- "dsh": {
40
- "engines": {
41
- "dsh": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4"
42
- },
43
- "category": "tools/dev",
44
- "displayName": "dsh-model-everything",
45
- "bundle": {
46
- "patch": "./cordis.patch.yml"
47
- },
48
- "compatibility": {
49
- "dsh": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4",
50
- "dshReleases": {
51
- "0.1.7-alpha.2": "compatible",
52
- "0.1.7-rc.1": "compatible",
53
- "0.1.7-rc.2": "compatible",
54
- "0.2.0-rc.1": "compatible",
55
- "0.2.0-rc.2": "compatible",
56
- "0.2.1-alpha.1": "compatible",
57
- "0.2.1-alpha.2": "compatible",
58
- "0.2.1-alpha.3": "compatible",
59
- "0.2.1-alpha.4": "compatible",
60
- "0.2.1-alpha.5": "compatible",
61
- "0.2.1-rc.2": "compatible",
62
- "0.2.1-rc.3": "compatible",
63
- "0.2.1-rc.4": "compatible"
64
- },
65
- "profiles": [
66
- "headless",
67
- "web"
68
- ]
69
- },
70
- "client": {
71
- "platform": "web",
72
- "immediately": true,
73
- "inject": []
74
- }
75
- },
76
- "scripts": {
77
- "build": "tsc -p tsconfig.json && node scripts/build-client.mjs",
78
- "typecheck": "tsc -p tsconfig.json --noEmit",
79
- "lint:md": "markdownlint --dot --ignore \"**/node_modules/**\" .",
80
- "bump": "node scripts/bump-version.mjs",
81
- "test:cards": "node tests/presentation/run.mjs && node tests/automaton/run.mjs && node tests/routing/run.mjs",
82
- "coverage": "c8 --reporter=text --exclude-after-remap=false npm run test:engine",
83
- "test:engine": "npm run build && node tests/engine/run.mjs && node tests/design-engine/run.mjs && node tests/catalog/run.mjs && node tests/data-engine/run.mjs && node tests/concurrency/run.mjs && node tests/uml/run.mjs && node tests/apply-smoke.mjs && node tests/memory/run.mjs && node tests/skills/run.mjs && node tests/gate/run.mjs && node tests/skill-routing/run.mjs && node tests/toolset/run.mjs && node tests/principles/run.mjs && node tests/feature-checklist/run.mjs && node tests/usage/run.mjs && node tests/translation/run.mjs && node tests/documentation/run.mjs && node tests/contributing/run.mjs && node tests/routing-map/run.mjs && node tests/report-reading/run.mjs && node tests/structure/run.mjs && node tests/automaton/run.mjs && node tests/diagram/run.mjs && node tests/client/run.mjs && node tests/render/run.mjs && node tests/cycle-break/run.mjs && node tests/layering/run.mjs && node tests/ordering/run.mjs && node tests/coords/run.mjs && node tests/channels/run.mjs && node tests/components/run.mjs && node tests/placement/run.mjs && node tests/presentation/run.mjs && node tests/routing/run.mjs && node tests/tool-routing/run.mjs && node tests/tools/run.mjs && node tests/baseline/run.mjs && node tests/granularity/run.mjs && node tests/exporters/run.mjs && node tests/report-view/run.mjs && node tests/contracts/run.mjs && node tests/tool-boundary/run.mjs && node tests/negatives/run.mjs && node tests/external/run.mjs",
84
- "test:full": "npm run build && node tests/full-suite.mjs",
85
- "check": "npm run lint:md && npm run test:engine",
86
- "build:client": "node scripts/build-client.mjs"
87
- },
88
- "peerDependencies": {
89
- "@deepseek-ai/cordis": "^4.0.5",
90
- "@deepseek-ai/dsh-agent": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4",
91
- "@deepseek-ai/dsh-llm": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4",
92
- "@deepseek-ai/dsh-session": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4",
93
- "@deepseek-ai/dsh-skill-filesystem": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4",
94
- "@deepseek-ai/dsh-tools": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4",
95
- "@deepseek-ai/schemastery": "^3.18.5",
96
- "dsh": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4"
97
- },
98
- "devDependencies": {
99
- "@deepseek-ai/cordis": "^4.0.5",
100
- "@deepseek-ai/dsh-agent": "^0.2.0-rc.2",
101
- "@deepseek-ai/dsh-cordis-host-runner": "^0.2.0-rc.2",
102
- "@deepseek-ai/dsh-home-paths": "^0.2.0-rc.2",
103
- "@deepseek-ai/dsh-invariants": "^0.2.0-rc.2",
104
- "@deepseek-ai/dsh-llm": "^0.2.0-rc.2",
105
- "@deepseek-ai/dsh-ptc-runtime": "^0.2.0-rc.2",
106
- "@deepseek-ai/dsh-sandbox": "^0.2.0-rc.2",
107
- "@deepseek-ai/dsh-sandbox-policy": "^0.2.0-rc.2",
108
- "@deepseek-ai/dsh-scope": "^0.2.0-rc.2",
109
- "@deepseek-ai/dsh-session": "^0.2.0-rc.2",
110
- "@deepseek-ai/dsh-skill": "^0.2.0-rc.2",
111
- "@deepseek-ai/dsh-skill-filesystem": "^0.2.0-rc.2",
112
- "@deepseek-ai/dsh-system-prompt": "^0.2.0-rc.2",
113
- "@deepseek-ai/dsh-tools": "^0.2.0-rc.2",
114
- "@deepseek-ai/dsh-user-approval": "^0.2.0-rc.2",
115
- "@deepseek-ai/schemastery": "^3.18.5",
116
- "@types/node": "^26.6.5",
117
- "esbuild": "^0.28.2",
118
- "markdownlint-cli": "0.49.1",
119
- "typescript": "^7.0.2"
120
- },
121
- "author": {
122
- "name": "AmethystLuna",
123
- "url": "https://github.com/AmethystLuna"
124
- },
125
- "license": "MIT",
126
- "repository": "https://github.com/AmethystLuna/dsh-model-everything",
127
- "funding": {
128
- "type": "custom",
129
- "url": "https://afdian.com/a/amethystluna"
130
- },
131
- "keywords": [
132
- "verification",
133
- "model-checking",
134
- "uml",
135
- "diagrams",
136
- "state-machine",
137
- "data-model",
138
- "concurrency",
139
- "mermaid",
140
- "plantuml",
141
- "dsh",
142
- "dsh-plugin",
143
- "plugin"
144
- ],
145
- "engines": {
146
- "node": ">=20"
147
- }
148
- }
1
+ {
2
+ "name": "dsh-model-everything",
3
+ "version": "0.6.1",
4
+ "description": "Modeling abstraction, architecture visualisation and automated review for designs and code, including a refactoring harness: draw a Mermaid or PlantUML source and measure its structure, executable verification of machines and protocols with before/after regression, data-model and migration checks, concurrency claim routing, export to external checkers, dependency-graph review, and report diffing. Native plugin for DeepSeek Harness (dsh).",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "types": "lib/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./lib/types/index.d.ts",
11
+ "default": "./lib/index.js"
12
+ },
13
+ "./gate": {
14
+ "types": "./lib/types/gate.d.ts",
15
+ "default": "./lib/gate.js"
16
+ },
17
+ "./gate/package.json": "./gate/package.json",
18
+ "./gate/locale/*.json": "./gate/locale/*.json",
19
+ "./cordis.patch.yml": "./cordis.patch.yml",
20
+ "./package.json": "./package.json",
21
+ "./locale/*.json": "./locale/*.json",
22
+ "./client": "./lib/client.js",
23
+ "./diagram": {
24
+ "types": "./lib/types/diagram.d.ts",
25
+ "default": "./lib/diagram.js"
26
+ },
27
+ "./diagram/package.json": "./diagram/package.json"
28
+ },
29
+ "files": [
30
+ "lib",
31
+ "src",
32
+ "skills",
33
+ "cordis.patch.yml",
34
+ "examples",
35
+ "gate",
36
+ "locale",
37
+ "diagram"
38
+ ],
39
+ "dsh": {
40
+ "engines": {
41
+ "dsh": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1"
42
+ },
43
+ "category": "tools/dev",
44
+ "displayName": "dsh-model-everything",
45
+ "bundle": {
46
+ "patch": "./cordis.patch.yml"
47
+ },
48
+ "compatibility": {
49
+ "dsh": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1",
50
+ "dshReleases": {
51
+ "0.1.7-alpha.2": "compatible",
52
+ "0.1.7-rc.1": "compatible",
53
+ "0.1.7-rc.2": "compatible",
54
+ "0.2.0-rc.1": "compatible",
55
+ "0.2.0-rc.2": "compatible",
56
+ "0.2.1-alpha.1": "compatible",
57
+ "0.2.1-alpha.2": "compatible",
58
+ "0.2.1-alpha.3": "compatible",
59
+ "0.2.1-alpha.4": "compatible",
60
+ "0.2.1-alpha.5": "compatible",
61
+ "0.2.1-rc.2": "compatible",
62
+ "0.2.1-rc.3": "compatible",
63
+ "0.2.1-rc.4": "compatible",
64
+ "0.2.2-rc.1": "compatible"
65
+ },
66
+ "profiles": [
67
+ "headless",
68
+ "web"
69
+ ]
70
+ },
71
+ "client": {
72
+ "platform": "web",
73
+ "immediately": true,
74
+ "inject": []
75
+ }
76
+ },
77
+ "scripts": {
78
+ "build": "tsc -p tsconfig.json && node scripts/build-client.mjs",
79
+ "typecheck": "tsc -p tsconfig.json --noEmit",
80
+ "lint:md": "markdownlint --dot --ignore \"**/node_modules/**\" .",
81
+ "bump": "node scripts/bump-version.mjs",
82
+ "test:cards": "node tests/presentation/run.mjs && node tests/automaton/run.mjs && node tests/routing/run.mjs",
83
+ "coverage": "c8 --reporter=text --exclude-after-remap=false npm run test:engine",
84
+ "test:engine": "npm run build && node tests/engine/run.mjs && node tests/design-engine/run.mjs && node tests/catalog/run.mjs && node tests/data-engine/run.mjs && node tests/concurrency/run.mjs && node tests/uml/run.mjs && node tests/apply-smoke.mjs && node tests/memory/run.mjs && node tests/skills/run.mjs && node tests/gate/run.mjs && node tests/skill-routing/run.mjs && node tests/toolset/run.mjs && node tests/principles/run.mjs && node tests/feature-checklist/run.mjs && node tests/usage/run.mjs && node tests/translation/run.mjs && node tests/documentation/run.mjs && node tests/contributing/run.mjs && node tests/routing-map/run.mjs && node tests/report-reading/run.mjs && node tests/structure/run.mjs && node tests/automaton/run.mjs && node tests/diagram/run.mjs && node tests/client/run.mjs && node tests/render/run.mjs && node tests/cycle-break/run.mjs && node tests/layering/run.mjs && node tests/ordering/run.mjs && node tests/coords/run.mjs && node tests/channels/run.mjs && node tests/components/run.mjs && node tests/placement/run.mjs && node tests/presentation/run.mjs && node tests/routing/run.mjs && node tests/tool-routing/run.mjs && node tests/tools/run.mjs && node tests/baseline/run.mjs && node tests/granularity/run.mjs && node tests/exporters/run.mjs && node tests/report-view/run.mjs && node tests/contracts/run.mjs && node tests/tool-boundary/run.mjs && node tests/negatives/run.mjs && node tests/external/run.mjs",
85
+ "test:full": "npm run build && node tests/full-suite.mjs",
86
+ "check": "npm run lint:md && npm run test:engine",
87
+ "build:client": "node scripts/build-client.mjs"
88
+ },
89
+ "peerDependencies": {
90
+ "@deepseek-ai/cordis": "^4.0.5",
91
+ "@deepseek-ai/dsh-agent": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1",
92
+ "@deepseek-ai/dsh-llm": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1",
93
+ "@deepseek-ai/dsh-session": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1",
94
+ "@deepseek-ai/dsh-skill-filesystem": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1",
95
+ "@deepseek-ai/dsh-tools": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1",
96
+ "@deepseek-ai/schemastery": "^3.18.5",
97
+ "dsh": "^0.1.7-alpha.2 || ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-alpha.1 || ^0.2.1-rc.4 || ^0.2.2-rc.1"
98
+ },
99
+ "devDependencies": {
100
+ "@deepseek-ai/cordis": "^4.0.5",
101
+ "@deepseek-ai/dsh-agent": "^0.2.0-rc.2",
102
+ "@deepseek-ai/dsh-cordis-host-runner": "^0.2.0-rc.2",
103
+ "@deepseek-ai/dsh-home-paths": "^0.2.0-rc.2",
104
+ "@deepseek-ai/dsh-invariants": "^0.2.0-rc.2",
105
+ "@deepseek-ai/dsh-llm": "^0.2.0-rc.2",
106
+ "@deepseek-ai/dsh-ptc-runtime": "^0.2.0-rc.2",
107
+ "@deepseek-ai/dsh-sandbox": "^0.2.0-rc.2",
108
+ "@deepseek-ai/dsh-sandbox-policy": "^0.2.0-rc.2",
109
+ "@deepseek-ai/dsh-scope": "^0.2.0-rc.2",
110
+ "@deepseek-ai/dsh-session": "^0.2.0-rc.2",
111
+ "@deepseek-ai/dsh-skill": "^0.2.0-rc.2",
112
+ "@deepseek-ai/dsh-skill-filesystem": "^0.2.0-rc.2",
113
+ "@deepseek-ai/dsh-system-prompt": "^0.2.0-rc.2",
114
+ "@deepseek-ai/dsh-tools": "^0.2.0-rc.2",
115
+ "@deepseek-ai/dsh-user-approval": "^0.2.0-rc.2",
116
+ "@deepseek-ai/schemastery": "^3.18.5",
117
+ "@types/node": "^26.6.5",
118
+ "esbuild": "^0.28.2",
119
+ "markdownlint-cli": "0.49.1",
120
+ "typescript": "^7.0.2"
121
+ },
122
+ "author": {
123
+ "name": "AmethystLuna",
124
+ "url": "https://github.com/AmethystLuna"
125
+ },
126
+ "license": "MIT",
127
+ "repository": "https://github.com/AmethystLuna/dsh-model-everything",
128
+ "funding": {
129
+ "type": "custom",
130
+ "url": "https://afdian.com/a/amethystluna"
131
+ },
132
+ "keywords": [
133
+ "verification",
134
+ "model-checking",
135
+ "uml",
136
+ "diagrams",
137
+ "state-machine",
138
+ "data-model",
139
+ "concurrency",
140
+ "mermaid",
141
+ "plantuml",
142
+ "dsh",
143
+ "dsh-plugin",
144
+ "plugin"
145
+ ],
146
+ "engines": {
147
+ "node": ">=20"
148
+ }
149
+ }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: model-everything
3
- description: "Use when a document claims something checkable about code: API names, paths, enums, feasibility, protocol behaviour, timing, 'always/never'. Enumerates the claims and verifies each with file:line evidence, then builds an executable model when behaviour or safety is at stake. Siblings: model-everything-diagram, -uml, -design, -interleaving, -datamodel, -structure.""
3
+ description: "Use when a document claims something checkable about code: API names, paths, enums, feasibility, protocol behaviour, timing, 'always/never'. Enumerates the claims and verifies each with file:line evidence, then builds an executable model when behaviour or safety is at stake. Siblings: model-everything-diagram, -uml, -design, -interleaving, -datamodel, -structure."
4
4
  ---
5
5
 
6
6
  # Model Everything
@@ -413,7 +413,7 @@ Skip logic-primitive verification when:
413
413
 
414
414
  ### Routing to the Sibling Skills
415
415
 
416
- This skill owns behavioural claims. Three neighbouring domains have their own skill, and loading the wrong one wastes the verification:
416
+ This skill owns behavioural claims. The neighbouring domains have their own skill, and loading the wrong one wastes the verification:
417
417
 
418
418
  | Domain | Skill |
419
419
  |---|---|
@@ -421,6 +421,7 @@ This skill owns behavioural claims. Three neighbouring domains have their own sk
421
421
  | Reviewing architecture, module structure or a dependency diagram (isolated nodes, dangling endpoints, cycles, allowed-dependency and layer violations, missing required edges) | `model-everything-structure` |
422
422
  | Concurrency, synchrony and async claims — "thread-safe", "lock-free", "no data race", "ISR-safe", "non-blocking", `async`/`await` — mined and routed to TSan/Helgrind/CBMC/TLA+/UPPAAL, never proven here; a shared-location update is decided here by `model_compose_verify` (C5) | `model-everything-interleaving` |
423
423
  | Entities, fields, relationships, data invariants, schema migrations (DS1-DS4, DA1-DA12, DD1-DD4) | `model-everything-datamodel` |
424
+ | Showing a result as a picture — drawing Mermaid or PlantUML, putting the drawing in front of a reader, or checking that it fits the page (structure budgets, containment diffs, every refused line named) | `model-everything-diagram` |
424
425
 
425
426
  ---
426
427
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: model-everything-diagram
3
- description: "Use when drawing a diagram from its source text or checking its structure: Mermaid and PlantUML subsets, structure budgets, and containment diffs. Every line it cannot draw is refused by number. The drawing proves layout, not design. Doctrine: the model-everything skill.""
3
+ description: "Use when drawing a diagram from its source text, showing one to a reader, or checking its structure: Mermaid and PlantUML subsets, structure budgets, and containment diffs. Reach for it when an explanation is clearer shown than told - a layout, a flow, a change - and put the picture beside the explanation. Every line it cannot draw is refused by number. The drawing proves layout, not design. Doctrine: the model-everything skill."
4
4
  ---
5
5
 
6
6
  # Model Everything — Drawing
@@ -13,6 +13,26 @@ The doctrine it inherits — say what a result does and does not prove, read `ve
13
13
  `model-everything` skill. Load that one when the question is whether a design is *correct*; load this one when the
14
14
  question is what the picture shows.
15
15
 
16
+ ## Draw to explain, not to decorate
17
+
18
+ A reader takes a layout, a flow, a boundary and a change between two of them from a picture. So the trigger
19
+ is not the phrase "draw" — it is an answer that has that shape: reach for `diagram_render` when the
20
+ explanation would otherwise spell out positions and connections in prose, and put the drawing beside the
21
+ explanation rather than in place of it.
22
+
23
+ | Where the reader sees it | What it shows | How it starts |
24
+ |---|---|---|
25
+ | the file you wrote | the SVG at full size, kept next to the document it belongs to | `diagram_render` with `out`, then hand the file over with `present` |
26
+ | the card in the conversation | the drawing, redrawn from the call's own source, with the refused lines under it | nothing to do: the card is keyed to `diagram_render` and appears where the call was |
27
+ | the whiteboard tab | any source, editable and zoomable, with the colour schemes | the reader opens the tab and pastes; it holds none of the session's data |
28
+
29
+ The reader can point at a node and send a note from the whiteboard or from the call's card. It arrives as an
30
+ ordinary message that starts `Diagram annotation · node "…"`, and that is what it is: the reader marking one
31
+ node of that drawing and saying something about it. Answer the node, not the whole picture.
32
+
33
+ Before a drawing goes in front of a reader, run `diagram_review`: a picture that needs scrolling is no
34
+ longer a summary. When you present one, say what it shows — the layout, not whether the design is right.
35
+
16
36
  ## When This Skill Applies
17
37
 
18
38
  | The task involves… | What it does |