dsh-plugin-guide 0.4.0 → 0.4.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-zh.md +1 -1
- package/README.md +1 -1
- package/SKILL.md +1 -1
- package/docs/boost.md +16 -15
- package/docs/entry.md +28 -0
- package/docs/flow.md +7 -5
- package/docs/levels.md +1 -1
- package/package.json +4 -4
package/README-zh.md
CHANGED
|
@@ -56,7 +56,7 @@ dsh plugin --profile web add dsh-plugin-guide
|
|
|
56
56
|
npx dsh-standards ./my-plugin --scope entry --entry-claim static
|
|
57
57
|
|
|
58
58
|
# 三层审计;没跑的层保持 not-run / not-measured
|
|
59
|
-
npx dsh-levels
|
|
59
|
+
npx -p dsh-standards dsh-levels ./my-plugin --format json
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
`recognized` 不是通过,`static` 不是通过,`not-run` 也不是通过。
|
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ The skill routes checks to `dsh-standards` and points build work at
|
|
|
58
58
|
npx dsh-standards ./my-plugin --scope entry --entry-claim static
|
|
59
59
|
|
|
60
60
|
# Three-layer audit; unrun layers stay not-run / not-measured
|
|
61
|
-
npx dsh-levels
|
|
61
|
+
npx -p dsh-standards dsh-levels ./my-plugin --format json
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
A `recognized` result is not a pass. A `static` result is not a pass. A
|
package/SKILL.md
CHANGED
|
@@ -37,7 +37,7 @@ It defines the three layers and the difference between a check and advice.
|
|
|
37
37
|
|
|
38
38
|
- **Run a check:** `npx dsh-standards <plugin-dir> --scope entry --entry-claim static`
|
|
39
39
|
for recognition; add a host/runtime when claiming runtime.
|
|
40
|
-
- **Three-layer self-check:** `npx dsh-levels
|
|
40
|
+
- **Three-layer self-check:** `npx -p dsh-standards dsh-levels <plugin-dir> --format json`.
|
|
41
41
|
- **Build or scaffold a plugin:** use the `dsh-primer` skill/CLI. The old
|
|
42
42
|
`dsh-plugin-dev` command belongs to `dsh-primer`, not to this guide.
|
|
43
43
|
- **Read the rules:** `dsh-plugin-spec`; **read the guide:** this package;
|
package/docs/boost.md
CHANGED
|
@@ -25,23 +25,24 @@ An evidence card is per practice, per plugin, with a baseline and an after
|
|
|
25
25
|
measurement. Example shape:
|
|
26
26
|
|
|
27
27
|
```yaml
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
tokensPerTurn: 1200
|
|
33
|
-
after:
|
|
34
|
-
startupMs: 150
|
|
35
|
-
tokensPerTurn: 900
|
|
36
|
-
environment:
|
|
37
|
-
dsh: 0.2.2-alpha.2
|
|
38
|
-
cordis: 4.0.6-alpha.1
|
|
39
|
-
node: 24
|
|
28
|
+
subject: "@acme/dsh-hello@0.1.0" # what was measured
|
|
29
|
+
host: "dsh 0.2.2-alpha.2 / cordis 4.0.6-alpha.1 / node 24"
|
|
30
|
+
method: "bench: startup ms and tokens per turn"
|
|
31
|
+
scope: "single machine, 5 runs, synthetic prompt"
|
|
40
32
|
command: "node bench/hello.mjs"
|
|
41
|
-
result: "startup
|
|
42
|
-
|
|
33
|
+
result: "startup 180→150 ms; tokens 1200→900"
|
|
34
|
+
negativeControl: "same bench with the plugin disabled"
|
|
35
|
+
generatedAt: "2026-11-03"
|
|
36
|
+
expiresAt: "2027-05-03"
|
|
37
|
+
recordHash: "sha256:<64 hex of this record>"
|
|
38
|
+
claimLevel: "self-assessed" # self-reported | self-assessed | host-reviewed | independent | reference
|
|
39
|
+
issuer: "author"
|
|
40
|
+
selfAssessed: true
|
|
43
41
|
```
|
|
44
42
|
|
|
43
|
+
All thirteen fields are required. A missing or malformed field makes the card
|
|
44
|
+
`not-measured`; a status word alone is not evidence.
|
|
45
|
+
|
|
45
46
|
If an effect cannot be measured (developer hours, maintenance cost, “fewer
|
|
46
47
|
pitfalls”), record it as a WARN or a note. Do not invent a number.
|
|
47
48
|
|
|
@@ -56,7 +57,7 @@ pitfalls”), record it as a WARN or a note. Do not invent a number.
|
|
|
56
57
|
## Run the audit
|
|
57
58
|
|
|
58
59
|
```sh
|
|
59
|
-
npx dsh-levels
|
|
60
|
+
npx -p dsh-standards dsh-levels ./my-plugin \
|
|
60
61
|
--boost-evidence boost.json --format json
|
|
61
62
|
```
|
|
62
63
|
|
package/docs/entry.md
CHANGED
|
@@ -50,10 +50,38 @@ pass.
|
|
|
50
50
|
- `package.json` has a resolvable entry and, for bundles, a `dsh.bundle.patch`.
|
|
51
51
|
- The patch target row exists; ordered patch arrays are allowed.
|
|
52
52
|
- `engines.dsh` or an `@deepseek-ai/dsh*` peer range is declared.
|
|
53
|
+
- `dsh.capabilities` lists every host surface the plugin touches (see below).
|
|
54
|
+
- `dsh.labels` is declared when the plugin modifies prompts, runs red-team
|
|
55
|
+
workloads, adds a model provider, exposes remote access, or mirrors another
|
|
56
|
+
project.
|
|
53
57
|
- The license is present; a missing license is advisory, not a fabricated pass.
|
|
54
58
|
- README says how to install and what it needs.
|
|
55
59
|
- No “official”, “certified”, “secure”, or ranking claim.
|
|
56
60
|
|
|
61
|
+
## Declaration fields
|
|
62
|
+
|
|
63
|
+
Two optional fields become checks `DSC-11` and `DSC-13` once they exist:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"dsh": {
|
|
68
|
+
"capabilities": ["fs:read", "network:egress"],
|
|
69
|
+
"labels": ["remote-access"]
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Allowed `capabilities`: `fs:read`, `fs:write`, `shell`, `subprocess`,
|
|
75
|
+
`network:egress`, `network:ingress`, `credentials:read`, `credentials:list`,
|
|
76
|
+
`credentials:provider`, `llm:adapter`, `sessions:read`, `system-prompt:write`,
|
|
77
|
+
`tools:register`, `remote:expose`, `plugin:install`.
|
|
78
|
+
|
|
79
|
+
Allowed `labels`: `prompt-modification`, `red-team`,
|
|
80
|
+
`third-party-model-provider`, `remote-access`, `mirror`.
|
|
81
|
+
|
|
82
|
+
Do not label a plugin `official`, `verified`, `certified`, `secure`, or
|
|
83
|
+
`audited` — those words are treated as an endorsement claim and fail `DSC-13`.
|
|
84
|
+
|
|
57
85
|
## What ENTRY does not do
|
|
58
86
|
|
|
59
87
|
It is not a security audit, sandbox, full contract audit, market gate, score, or
|
package/docs/flow.md
CHANGED
|
@@ -23,10 +23,12 @@ The canonical text is
|
|
|
23
23
|
|
|
24
24
|
| Status | Meaning |
|
|
25
25
|
|---|---|
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
|
|
26
|
+
| `runtime` | all eight journeys have pass evidence |
|
|
27
|
+
| `failed` | at least one journey has an attributable FAIL |
|
|
28
|
+
| `not-run` | no evidence, or fewer than eight journeys have pass evidence |
|
|
29
|
+
|
|
30
|
+
Each journey is recorded as `pass` / `fail` / `not-run` / `manual`. There is no
|
|
31
|
+
`flow-warn` status — a partial run is `not-run`, not a soft pass.
|
|
30
32
|
|
|
31
33
|
`not-run` is never a pass. Do not publish a pass rate or a grade from FLOW.
|
|
32
34
|
|
|
@@ -44,7 +46,7 @@ and
|
|
|
44
46
|
The three-layer audit reads FLOW evidence through `--flow-evidence`:
|
|
45
47
|
|
|
46
48
|
```sh
|
|
47
|
-
npx dsh-levels
|
|
49
|
+
npx -p dsh-standards dsh-levels ./my-plugin --flow-evidence flow.json --format json
|
|
48
50
|
```
|
|
49
51
|
|
|
50
52
|
## Author checklist
|
package/docs/levels.md
CHANGED
|
@@ -58,7 +58,7 @@ Start here: [BOOST guide](boost.md) and the canonical
|
|
|
58
58
|
npx dsh-standards ./my-plugin --scope entry --entry-claim static
|
|
59
59
|
|
|
60
60
|
# Three-layer audit; FLOW/BOOST are only reported when evidence is supplied
|
|
61
|
-
npx dsh-levels
|
|
61
|
+
npx -p dsh-standards dsh-levels ./my-plugin --format json
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
The checker and level audit ship in
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-guide",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "A practical guide to DSH plugin quality: ENTRY checks, FLOW checks, and BOOST guidance. Community guide; not official, not a certification, not a ranking.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"test:pack": "npm pack --dry-run"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
30
|
-
"node": "
|
|
31
|
-
"dsh": ">=0.2.
|
|
30
|
+
"node": ">=24.9.0",
|
|
31
|
+
"dsh": ">=0.2.2-0 <0.3.0"
|
|
32
32
|
},
|
|
33
33
|
"keywords": [
|
|
34
34
|
"dsh",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"url": "https://github.com/PerryLink/dsh-plugin-guide/issues"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@deepseek-ai/dsh": ">=0.2.
|
|
54
|
+
"@deepseek-ai/dsh": ">=0.2.2-0 <0.3.0"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@deepseek-ai/dsh": {
|