dsh-model-everything 0.5.0 → 0.5.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/README.en-US.md +12 -0
- package/README.md +4 -0
- package/lib/client.js +2437 -216
- package/lib/render/channels.js +243 -0
- package/lib/render/collapse.js +12 -20
- package/lib/render/components.js +99 -0
- package/lib/render/coords.js +288 -0
- package/lib/render/cycle-break.js +147 -0
- package/lib/render/dummy.js +43 -0
- package/lib/render/from-mermaid.js +34 -10
- package/lib/render/from-plantuml.js +318 -46
- package/lib/render/layer.js +91 -0
- package/lib/render/layout.js +27 -11
- package/lib/render/network-simplex.js +272 -0
- package/lib/render/order.js +122 -0
- package/lib/render/paint.js +764 -67
- package/lib/render/place.js +393 -121
- package/lib/render/route.js +225 -0
- package/lib/render/svg.js +143 -21
- package/lib/render/symbol.js +108 -0
- package/lib/render/text.js +74 -0
- package/lib/render/wrap.js +87 -0
- package/lib/types/render/channels.d.ts +63 -0
- package/lib/types/render/components.d.ts +57 -0
- package/lib/types/render/coords.d.ts +64 -0
- package/lib/types/render/cycle-break.d.ts +45 -0
- package/lib/types/render/dummy.d.ts +32 -0
- package/lib/types/render/from-plantuml.d.ts +12 -6
- package/lib/types/render/layer.d.ts +28 -0
- package/lib/types/render/layout.d.ts +43 -11
- package/lib/types/render/model.d.ts +17 -0
- package/lib/types/render/network-simplex.d.ts +54 -0
- package/lib/types/render/order.d.ts +27 -0
- package/lib/types/render/paint.d.ts +42 -9
- package/lib/types/render/place.d.ts +35 -19
- package/lib/types/render/route.d.ts +77 -0
- package/lib/types/render/svg.d.ts +1 -1
- package/lib/types/render/symbol.d.ts +73 -0
- package/lib/types/render/text.d.ts +38 -0
- package/lib/types/render/wrap.d.ts +27 -0
- package/package.json +148 -148
- package/skills/model-everything-diagram/SKILL.md +84 -82
- package/src/render/channels.ts +309 -0
- package/src/render/collapse.ts +150 -155
- package/src/render/components.ts +126 -0
- package/src/render/coords.ts +328 -0
- package/src/render/cycle-break.ts +164 -0
- package/src/render/dummy.ts +65 -0
- package/src/render/from-mermaid.ts +261 -236
- package/src/render/from-plantuml.ts +469 -178
- package/src/render/layer.ts +98 -0
- package/src/render/layout.ts +101 -62
- package/src/render/model.ts +86 -67
- package/src/render/network-simplex.ts +290 -0
- package/src/render/order.ts +139 -0
- package/src/render/paint.ts +1006 -290
- package/src/render/place.ts +527 -234
- package/src/render/route.ts +269 -0
- package/src/render/svg.ts +270 -127
- package/src/render/symbol.ts +137 -0
- package/src/render/text.ts +86 -0
- package/src/render/wrap.ts +103 -0
package/package.json
CHANGED
|
@@ -1,148 +1,148 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dsh-model-everything",
|
|
3
|
-
"version": "0.5.
|
|
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/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.5.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"
|
|
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,82 +1,84 @@
|
|
|
1
|
-
---
|
|
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.""
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Model Everything — Drawing
|
|
7
|
-
|
|
8
|
-
A drawing is how a design is read, and a drawing that quietly drops a lifeline is worse than no drawing, because
|
|
9
|
-
it looks complete. This skill covers the drawing half: it renders the subset it can actually draw, refuses the rest
|
|
10
|
-
**by line**, measures the structure against budgets, and compares two drawings by what contains what.
|
|
11
|
-
|
|
12
|
-
The doctrine it inherits — say what a result does and does not prove, read `verdict` and never `ok` — lives in the
|
|
13
|
-
`model-everything` skill. Load that one when the question is whether a design is *correct*; load this one when the
|
|
14
|
-
question is what the picture shows.
|
|
15
|
-
|
|
16
|
-
## When This Skill Applies
|
|
17
|
-
|
|
18
|
-
| The task involves… | What it does |
|
|
19
|
-
|---|---|
|
|
20
|
-
| "draw this mermaid", "render this PlantUML", "make a diagram of this flow" | `diagram_render`: source text to SVG, laid out and painted here, with `out` to write a file and `scheme` for the palette |
|
|
21
|
-
| "is this diagram too dense", "how deep do the packages nest" | `diagram_review`: group width, nesting depth and node count against budgets you set, plus **what it measured** |
|
|
22
|
-
| "what changed between these two diagrams", "did this package move" | `diagram_diff`: boundaries added, removed, renamed or re-parented, and nodes that changed owner |
|
|
23
|
-
| A source in a notation the plugin does not draw | Refused with the line number; `diagram_render` still draws everything else and reports what it skipped |
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
|
41
|
-
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
|
55
|
-
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
The
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
- **It does not
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- **It does not
|
|
82
|
-
|
|
1
|
+
---
|
|
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.""
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Model Everything — Drawing
|
|
7
|
+
|
|
8
|
+
A drawing is how a design is read, and a drawing that quietly drops a lifeline is worse than no drawing, because
|
|
9
|
+
it looks complete. This skill covers the drawing half: it renders the subset it can actually draw, refuses the rest
|
|
10
|
+
**by line**, measures the structure against budgets, and compares two drawings by what contains what.
|
|
11
|
+
|
|
12
|
+
The doctrine it inherits — say what a result does and does not prove, read `verdict` and never `ok` — lives in the
|
|
13
|
+
`model-everything` skill. Load that one when the question is whether a design is *correct*; load this one when the
|
|
14
|
+
question is what the picture shows.
|
|
15
|
+
|
|
16
|
+
## When This Skill Applies
|
|
17
|
+
|
|
18
|
+
| The task involves… | What it does |
|
|
19
|
+
|---|---|
|
|
20
|
+
| "draw this mermaid", "render this PlantUML", "make a diagram of this flow" | `diagram_render`: source text to SVG, laid out and painted here, with `out` to write a file and `scheme` for the palette |
|
|
21
|
+
| "is this diagram too dense", "how deep do the packages nest" | `diagram_review`: group width, nesting depth and node count against budgets you set, plus **what it measured** |
|
|
22
|
+
| "what changed between these two diagrams", "did this package move" | `diagram_diff`: boundaries added, removed, renamed or re-parented, and nodes that changed owner |
|
|
23
|
+
| A source in a notation the plugin does not draw | Refused with the line number; `diagram_render` still draws everything else and reports what it skipped |
|
|
24
|
+
| An edge whose straight line would cross a component | Routed around it on a sparse grid (candidate lines from each box edge, A* with a bend penalty), so a line never reads as a connection that is not there |
|
|
25
|
+
| A label with a hard line break, or one too long for its box | `<br>`, `<br/>` and a real newline end a line; anything longer than the drawing's line width wraps. The box is sized from the lines it draws. An edge label is drawn on its edge - centred on the middle of the edge's longest straight run, over a mask in the page colour - and slides along that run to clear a box, another label or another edge's line |
|
|
26
|
+
| A diagram already in a file, to link from a document | `diagram_render` with `out`, then link the SVG |
|
|
27
|
+
|
|
28
|
+
## The two notations, and where each one stops
|
|
29
|
+
|
|
30
|
+
| Notation | Drawn | Refused by name |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Mermaid | `graph`/`flowchart` (TD/TB/LR), node shapes `[..]`, `(..)`, `{..}`, `((..))`, `[(..)]`, `[[..]]`, `<<..>>`; edges `-->`, `---`, `-.->`, `==>`, labels `-->\|text\|` and `-- text -->`; `stateDiagram`/`-v2` with `[*]` start and end markers and `state "text" as id`; `subgraph … end` including nesting | `sequenceDiagram`, `classDiagram`, `erDiagram`, `gantt`, `pie`, `journey`, `mindmap`, `timeline`, `quadrantChart`, `gitGraph`, `C4Context`, and the `click`/`style`/`classDef` directives |
|
|
33
|
+
| PlantUML | `component`, `package`, `node`, `folder`, `cloud`, `database`, `state`, `artifact`, `rectangle` blocks and `[bracketed]` components; `-->`, `--->`, `..>`, either direction, `: label`; `[*] -->` start markers; `skinparam`/`!theme` ignored | `actor`, `participant`, `usecase`, `class`, `object`, `note`, `legend`, and the `alt`/`opt`/`loop`/`par` fragments |
|
|
34
|
+
|
|
35
|
+
A refusal is one line in `refused`, phrased `line N: …`. The drawing you get does not show the refused lines, and
|
|
36
|
+
the tool says so rather than leaving you to notice.
|
|
37
|
+
|
|
38
|
+
## What the structure review reports
|
|
39
|
+
|
|
40
|
+
| Code | Severity | What it means |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `B1_GROUP_TOO_WIDE` | error | A boundary holds more direct children than the budget. A package with twenty boxes has stopped reading as a package. |
|
|
43
|
+
| `B2_TOO_DEEP` | error | Nesting past the budget. Beyond three levels a reader needs the source, not the picture. |
|
|
44
|
+
| `B3_EMPTY_GROUP` | error | A boundary with nothing drawable inside it: it claims a containment the drawing cannot show. |
|
|
45
|
+
| `B4_SINGLE_MEMBER` | warning | A boundary around one thing. Often a layer that was never split, sometimes exactly right. |
|
|
46
|
+
| `B5_TOO_MANY_NODES` | error | The whole drawing past its node budget. |
|
|
47
|
+
| `D0_NO_SOURCE` | error | Nothing to review. |
|
|
48
|
+
|
|
49
|
+
`measured` is printed next to `findings` on purpose: an empty finding list from a source that never parsed would
|
|
50
|
+
otherwise read as a clean bill of health.
|
|
51
|
+
|
|
52
|
+
## What the diff reports
|
|
53
|
+
|
|
54
|
+
| Code | Kind | What changed |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `H1_GROUP_ADDED` | info | A boundary that did not exist, saying what contains it when it is nested |
|
|
57
|
+
| `H2_GROUP_REMOVED` | info | A boundary that is gone |
|
|
58
|
+
| `H3_GROUP_RENAMED` | info | Same id, different text |
|
|
59
|
+
| `H4_GROUP_MOVED` | warning | A boundary that changed parent, both sides named |
|
|
60
|
+
| `H5_NODE_ADDED` / `H6_NODE_REMOVED` | info | A node that appeared or disappeared |
|
|
61
|
+
| `H7_NODE_REGROUPED` | warning | A node that changed which group holds it |
|
|
62
|
+
| `D1_SIDE_UNREADABLE` | error | One side produced no drawing, so there was nothing to compare |
|
|
63
|
+
|
|
64
|
+
A rename is only a rename when the id survived. A vanished id beside a new one is an unrelated removal and
|
|
65
|
+
addition, because the ids are what a caller tracks across versions.
|
|
66
|
+
|
|
67
|
+
**It judges movement, not merit.** Whether a component belongs in its new package is the reader's call; the diff
|
|
68
|
+
reports that the move happened and nothing more.
|
|
69
|
+
|
|
70
|
+
## The whiteboard
|
|
71
|
+
|
|
72
|
+
The right sidebar has a **Diagram** tab: paste a source, get the drawing. It scales to the pane, switches colour
|
|
73
|
+
scheme (`default`, `github`, `high-contrast`, `print`), follows the page's light or dark surface, and folds a group
|
|
74
|
+
into a single box when you click it. It reads no tool result, so it keeps working whatever changes on the tool side.
|
|
75
|
+
|
|
76
|
+
## What this does not do
|
|
77
|
+
|
|
78
|
+
- **It does not verify behaviour.** A drawing of a machine says nothing about whether the machine is safe; that is
|
|
79
|
+
`model_verify` on the model the drawing came from.
|
|
80
|
+
- **It does not read a diagram back into a model.** `uml_parse` does that for the families it owns.
|
|
81
|
+
- **It does not audit dependencies.** `uml_structure_verify` reads a component diagram as a dependency graph and
|
|
82
|
+
judges the edges; `diagram_review` only measures the shape.
|
|
83
|
+
- **It does not draw everything.** A notation outside the subset above is refused by line; a picture that looks
|
|
84
|
+
complete and quietly lost half its arrows is the failure this whole subset exists to avoid.
|