dsh-standards 0.0.3 → 1.0.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/40-checker/README.md +251 -0
- package/40-checker/bin/dsh-levels.mjs +15 -0
- package/40-checker/bin/dsh-plugin-verify.mjs +8 -0
- package/40-checker/fixtures/bad/index.mjs +12 -0
- package/40-checker/fixtures/bad/package.json +15 -0
- package/40-checker/fixtures/bad-manifest/index.js +1 -0
- package/40-checker/fixtures/bad-manifest/package.json +5 -0
- package/40-checker/fixtures/bundle/cordis.patch.yml +3 -0
- package/40-checker/fixtures/bundle/package.json +15 -0
- package/40-checker/fixtures/bundle/server.mjs +7 -0
- package/40-checker/fixtures/bundle-v0/cordis.patch.yml +3 -0
- package/40-checker/fixtures/bundle-v0/package.json +21 -0
- package/40-checker/fixtures/bundle-v0/server.mjs +7 -0
- package/40-checker/fixtures/client-missing/client.js +1 -0
- package/40-checker/fixtures/client-missing/index.js +1 -0
- package/40-checker/fixtures/client-missing/package.json +6 -0
- package/40-checker/fixtures/flow-config/index.js +9 -0
- package/40-checker/fixtures/flow-config/package.json +10 -0
- package/40-checker/fixtures/fs-write/index.mjs +7 -0
- package/40-checker/fixtures/fs-write/package.json +10 -0
- package/40-checker/fixtures/good/index.mjs +10 -0
- package/40-checker/fixtures/good/package.json +19 -0
- package/40-checker/fixtures/hang/index.mjs +5 -0
- package/40-checker/fixtures/hang/package.json +10 -0
- package/40-checker/fixtures/known-answer/expected.json +18 -0
- package/40-checker/fixtures/market-index-real.json +18 -0
- package/40-checker/fixtures/market-index.json +18 -0
- package/40-checker/fixtures/negative/bad-entry/package.json +1 -0
- package/40-checker/fixtures/negative/no-entry/package.json +1 -0
- package/40-checker/fixtures/negative/no-patch/package.json +1 -0
- package/40-checker/fixtures/negative/root-missing/cordis.patch.yml +2 -0
- package/40-checker/fixtures/negative/root-missing/package.json +1 -0
- package/40-checker/fixtures/negative/workspace/package.json +1 -0
- package/40-checker/package.json +22 -0
- package/40-checker/samples/README.md +8 -0
- package/40-checker/samples/entry18.json +139 -0
- package/40-checker/samples/frame.json +485 -0
- package/40-checker/scripts/apply-overlay.mjs +59 -0
- package/40-checker/scripts/attestation-check.mjs +151 -0
- package/40-checker/scripts/bundle-smoke.mjs +126 -0
- package/40-checker/scripts/claim-check.mjs +145 -0
- package/40-checker/scripts/clause-map.mjs +94 -0
- package/40-checker/scripts/collect-fixtures.mjs +44 -0
- package/40-checker/scripts/dashboard.mjs +85 -0
- package/40-checker/scripts/dco-check.mjs +147 -0
- package/40-checker/scripts/dependabot-check.mjs +40 -0
- package/40-checker/scripts/doc-commands-check.mjs +92 -0
- package/40-checker/scripts/entry-scan.mjs +190 -0
- package/40-checker/scripts/entry-validate.mjs +291 -0
- package/40-checker/scripts/entry18-attribution.mjs +66 -0
- package/40-checker/scripts/entry18-ci.mjs +685 -0
- package/40-checker/scripts/entry18-realweb-summary.mjs +71 -0
- package/40-checker/scripts/entry18-web.mjs +307 -0
- package/40-checker/scripts/evidence-chain.mjs +100 -0
- package/40-checker/scripts/flow-index.mjs +82 -0
- package/40-checker/scripts/flow-sample-ci.mjs +529 -0
- package/40-checker/scripts/governance-check.mjs +210 -0
- package/40-checker/scripts/host-farm.mjs +165 -0
- package/40-checker/scripts/journey-config-observe.mjs +109 -0
- package/40-checker/scripts/journey-disclosure-shape.mjs +83 -0
- package/40-checker/scripts/journey-runtime.mjs +178 -0
- package/40-checker/scripts/journey.mjs +76 -0
- package/40-checker/scripts/label-drift.mjs +74 -0
- package/40-checker/scripts/label-sync.mjs +87 -0
- package/40-checker/scripts/label-verify.mjs +90 -0
- package/40-checker/scripts/landlock-exec.c +101 -0
- package/40-checker/scripts/level-audit.mjs +336 -0
- package/40-checker/scripts/m1-sidecar.mjs +126 -0
- package/40-checker/scripts/m2-runner.mjs +213 -0
- package/40-checker/scripts/round-robin.mjs +88 -0
- package/40-checker/scripts/sample-frame.mjs +72 -0
- package/40-checker/scripts/sample20-ci.mjs +25 -0
- package/40-checker/scripts/sample60-ci.mjs +25 -0
- package/40-checker/scripts/stale-check.mjs +59 -0
- package/40-checker/scripts/surveillance.mjs +88 -0
- package/40-checker/scripts/web-probe.mjs +504 -0
- package/40-checker/src/cli.mjs +300 -0
- package/40-checker/src/client-shape.mjs +37 -0
- package/40-checker/src/declarations.mjs +242 -0
- package/40-checker/src/index.mjs +8 -0
- package/40-checker/src/install-spec.mjs +67 -0
- package/40-checker/src/label.mjs +130 -0
- package/40-checker/src/manifest.mjs +381 -0
- package/40-checker/src/permissions.mjs +60 -0
- package/40-checker/src/report.mjs +204 -0
- package/40-checker/src/result.mjs +60 -0
- package/40-checker/src/runtime.mjs +299 -0
- package/40-checker/src/semver.mjs +194 -0
- package/40-checker/src/util.mjs +148 -0
- package/40-checker/test/attestation.test.mjs +59 -0
- package/40-checker/test/checks.test.mjs +172 -0
- package/40-checker/test/claim.test.mjs +28 -0
- package/40-checker/test/client-shape.test.mjs +35 -0
- package/40-checker/test/dco.test.mjs +51 -0
- package/40-checker/test/entry-validate.test.mjs +172 -0
- package/40-checker/test/governance.test.mjs +76 -0
- package/40-checker/test/label.test.mjs +97 -0
- package/40-checker/test/level-audit.test.mjs +99 -0
- package/40-checker/test/levels.test.mjs +31 -0
- package/40-checker/test/ops.test.mjs +117 -0
- package/40-checker/test/permissions.test.mjs +40 -0
- package/40-checker/test/semver.test.mjs +32 -0
- package/40-checker/test/verify.test.mjs +57 -0
- package/CHANGELOG.md +24 -0
- package/LICENSE +28 -0
- package/LICENSE-APACHE +190 -0
- package/LICENSE-CC-BY +23 -0
- package/NOTICE +14 -0
- package/NOTICE.md +11 -0
- package/README.md +146 -3
- package/bin/dsh-levels.mjs +4 -0
- package/bin/dsh-standards.mjs +19 -0
- package/docs/BOOST-FIXTURES-2026-11-02.md +38 -0
- package/docs/DEVELOPER-JOURNEY.md +40 -0
- package/docs/HOST-J3-BUG-REPORT-DRAFT.md +27 -0
- package/docs/HOST-J3-CONFIG-REPRO-2026-11-02.md +36 -0
- package/docs/NAMING-FALLBACK.md +11 -0
- package/docs/fork-policy.md +12 -0
- package/docs/full-test-plan-2026-11-02.md +207 -0
- package/docs/incident.md +37 -0
- package/docs/onboarding.md +27 -0
- package/docs/privacy.md +12 -0
- package/docs/release.md +16 -0
- package/docs/scope-security.md +62 -0
- package/docs/status-taxonomy.md +54 -0
- package/docs/sunset.md +44 -0
- package/docs/translating.md +12 -0
- package/package.json +58 -12
- package/spec/README.md +27 -0
- package/spec/boost/README.md +8 -0
- package/spec/clauses.json +253 -0
- package/spec/entry/README.md +9 -0
- package/spec/flow/README.md +8 -0
- package/spec/levels.json +371 -0
- package/spec/levels.schema.json +45 -0
- package/spec/reference-suite.json +35 -0
- package/spec/schemas/attestation.schema.json +284 -0
- package/spec/schemas/evidence.schema.json +331 -0
- package/spec/schemas/report.schema.json +64 -0
package/package.json
CHANGED
|
@@ -1,20 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-standards",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "DSH plugin standards and conformance checks: ENTRY/FLOW checks plus BOOST guidance. Non-official; no certification or ranking.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "40-checker/src/index.mjs",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./40-checker/src/index.mjs",
|
|
9
|
+
"./package.json": "./package.json"
|
|
10
|
+
},
|
|
11
|
+
"bin": {
|
|
12
|
+
"dsh-standards": "./bin/dsh-standards.mjs",
|
|
13
|
+
"dsh-levels": "./bin/dsh-levels.mjs"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"bin",
|
|
17
|
+
"40-checker/bin",
|
|
18
|
+
"40-checker/src",
|
|
19
|
+
"40-checker/scripts",
|
|
20
|
+
"40-checker/samples",
|
|
21
|
+
"40-checker/fixtures",
|
|
22
|
+
"40-checker/test",
|
|
23
|
+
"40-checker/package.json",
|
|
24
|
+
"40-checker/README.md",
|
|
25
|
+
"spec",
|
|
26
|
+
"docs",
|
|
27
|
+
"README.md",
|
|
28
|
+
"CHANGELOG.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"LICENSE-APACHE",
|
|
31
|
+
"LICENSE-CC-BY",
|
|
32
|
+
"NOTICE.md",
|
|
33
|
+
"NOTICE"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"test": "node --test 40-checker/test/*.test.mjs",
|
|
37
|
+
"test:fixtures": "node bin/dsh-standards.mjs 40-checker/fixtures/good --scope entry --entry-claim static --format text"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=24.9.0"
|
|
10
41
|
},
|
|
11
|
-
"homepage": "https://github.com/PerryLink/dsh-standard",
|
|
12
42
|
"keywords": [
|
|
13
43
|
"dsh",
|
|
44
|
+
"dsh-plugin",
|
|
14
45
|
"deepseek-harness",
|
|
15
|
-
"
|
|
46
|
+
"cordis",
|
|
47
|
+
"standards",
|
|
48
|
+
"checker",
|
|
49
|
+
"conformance",
|
|
50
|
+
"entry",
|
|
51
|
+
"flow",
|
|
52
|
+
"boost"
|
|
16
53
|
],
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
54
|
+
"license": "Apache-2.0",
|
|
55
|
+
"repository": {
|
|
56
|
+
"type": "git",
|
|
57
|
+
"url": "git+https://github.com/PerryLink/dsh-standards.git"
|
|
58
|
+
},
|
|
59
|
+
"homepage": "https://github.com/PerryLink/dsh-standards#readme",
|
|
60
|
+
"bugs": {
|
|
61
|
+
"url": "https://github.com/PerryLink/dsh-standards/issues"
|
|
62
|
+
},
|
|
63
|
+
"publishConfig": {
|
|
64
|
+
"access": "public"
|
|
65
|
+
}
|
|
20
66
|
}
|
package/spec/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# dsh-standards specification tree
|
|
2
|
+
|
|
3
|
+
One project, three adoption levels. Each level has its own maturity; they share
|
|
4
|
+
the glossary, evidence anchor, and checker.
|
|
5
|
+
|
|
6
|
+
| Level | Document | Maturity | Evidence |
|
|
7
|
+
|---|---|---|---|
|
|
8
|
+
| ENTRY | [../31-DSH-ENTRY入门规范.md](../31-DSH-ENTRY入门规范.md) | public-preview | 18/18 recognized; 10/18 base G3, 8 clean after gate; client 15/15 loaded |
|
|
9
|
+
| FLOW | [../32-DSH-FLOW顺畅规范.md](../32-DSH-FLOW顺畅规范.md) | draft | J1/J2/J4/J6 runtime on fixture; 5 real packages; J3/J5/J7/J8 not-run |
|
|
10
|
+
| BOOST | [../33-DSH-BOOST加速实践.md](../33-DSH-BOOST加速实践.md) | draft | LEV-1–8 8/8 measured at synthetic/loader/provider-capture level |
|
|
11
|
+
|
|
12
|
+
Machine-readable:
|
|
13
|
+
|
|
14
|
+
- [levels.json](levels.json) — levels, gates, evidence states, crosswalk.
|
|
15
|
+
- [clauses.json](clauses.json) — stable clause IDs mapped to gates (`clause-map.mjs`).
|
|
16
|
+
- [reference-suite.json](reference-suite.json) — versioned samples, anchors, change rules.
|
|
17
|
+
- [schemas/evidence.schema.json](schemas/evidence.schema.json) — `dsh-levels/1` record.
|
|
18
|
+
- [schemas/attestation.schema.json](schemas/attestation.schema.json) — `dsh-attestation/1` quality record.
|
|
19
|
+
- [schemas/report.schema.json](schemas/report.schema.json) — `dsh-report/1` inspection report (no grade).
|
|
20
|
+
- [../40-checker/scripts/level-audit.mjs](../40-checker/scripts/level-audit.mjs) — one-command audit.
|
|
21
|
+
- [../publish/level-labels.example.json](../publish/level-labels.example.json) — market labels.
|
|
22
|
+
|
|
23
|
+
Rules:
|
|
24
|
+
|
|
25
|
+
- Levels depend on `common` only; do not import each other.
|
|
26
|
+
- A level is not a certification, badge, grade, or score.
|
|
27
|
+
- `dsh-standard` is an alias; `dsh-standards` is canonical.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# BOOST
|
|
2
|
+
|
|
3
|
+
Leverage surface: Cordis-native practices with evidence, not a grade.
|
|
4
|
+
|
|
5
|
+
- Practice text: [../../33-DSH-BOOST加速实践.md](../../33-DSH-BOOST加速实践.md)
|
|
6
|
+
- Deep research: [../../91-增效实践内核研究.md](../../91-增效实践内核研究.md)
|
|
7
|
+
- Reference: `examples/boost/lev7-bounded-batch.mjs`; benchmark: `examples/boost/results/lev7.json`
|
|
8
|
+
- Current: LEV-3 loader-level 0/20 vs 20/20 remount; LEV-6 provider-capture 100% vs 0% prompt reuse; LEV-7 8.24× synthetic. None is a production baseline.
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "dsh-clauses/1",
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
|
+
"updatedAt": "2026-11-02",
|
|
5
|
+
"note": "Stable clause IDs mapped to the gates in spec/levels.json. The source anchor is a section, not a line number, so edits do not silently break the map.",
|
|
6
|
+
"clauses": [
|
|
7
|
+
{
|
|
8
|
+
"id": "ENTRY-RUNSET",
|
|
9
|
+
"level": "entry",
|
|
10
|
+
"title": "Run set and coverage",
|
|
11
|
+
"source": "31-DSH-ENTRY入门规范.md#21-run-set",
|
|
12
|
+
"gates": [
|
|
13
|
+
"G0",
|
|
14
|
+
"G1",
|
|
15
|
+
"G3"
|
|
16
|
+
],
|
|
17
|
+
"normative": true
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "ENTRY-BLOCKING",
|
|
21
|
+
"level": "entry",
|
|
22
|
+
"title": "Blocking conditions",
|
|
23
|
+
"source": "31-DSH-ENTRY入门规范.md#22-blocking",
|
|
24
|
+
"gates": [
|
|
25
|
+
"G2"
|
|
26
|
+
],
|
|
27
|
+
"normative": true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "ENTRY-KIND",
|
|
31
|
+
"level": "entry",
|
|
32
|
+
"title": "Per-kind execution",
|
|
33
|
+
"source": "31-DSH-ENTRY入门规范.md#23-按-kind-的运行",
|
|
34
|
+
"gates": [
|
|
35
|
+
"G0",
|
|
36
|
+
"G1"
|
|
37
|
+
],
|
|
38
|
+
"normative": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "ENTRY-STATUS",
|
|
42
|
+
"level": "entry",
|
|
43
|
+
"title": "Conclusion states",
|
|
44
|
+
"source": "31-DSH-ENTRY入门规范.md#24-结论状态",
|
|
45
|
+
"gates": [
|
|
46
|
+
"G3",
|
|
47
|
+
"G5"
|
|
48
|
+
],
|
|
49
|
+
"normative": true
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "ENTRY-CLIENT",
|
|
53
|
+
"level": "entry",
|
|
54
|
+
"title": "Client static shape",
|
|
55
|
+
"source": "31-DSH-ENTRY入门规范.md#23-按-kind-的运行",
|
|
56
|
+
"gates": [
|
|
57
|
+
"G4"
|
|
58
|
+
],
|
|
59
|
+
"normative": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "ENTRY-BOUNDARY",
|
|
63
|
+
"level": "entry",
|
|
64
|
+
"title": "Boundary and non-claims",
|
|
65
|
+
"source": "31-DSH-ENTRY入门规范.md#五边界",
|
|
66
|
+
"gates": [
|
|
67
|
+
"G5"
|
|
68
|
+
],
|
|
69
|
+
"normative": true
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "FLOW-J1",
|
|
73
|
+
"level": "flow",
|
|
74
|
+
"title": "Install and remove",
|
|
75
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
76
|
+
"gates": [
|
|
77
|
+
"J1"
|
|
78
|
+
],
|
|
79
|
+
"normative": true
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "FLOW-J2",
|
|
83
|
+
"level": "flow",
|
|
84
|
+
"title": "Enable and disable",
|
|
85
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
86
|
+
"gates": [
|
|
87
|
+
"J2"
|
|
88
|
+
],
|
|
89
|
+
"normative": true
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "FLOW-J3",
|
|
93
|
+
"level": "flow",
|
|
94
|
+
"title": "Configuration",
|
|
95
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
96
|
+
"gates": [
|
|
97
|
+
"J3"
|
|
98
|
+
],
|
|
99
|
+
"normative": true
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "FLOW-J4",
|
|
103
|
+
"level": "flow",
|
|
104
|
+
"title": "First success",
|
|
105
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
106
|
+
"gates": [
|
|
107
|
+
"J4"
|
|
108
|
+
],
|
|
109
|
+
"normative": true
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "FLOW-J5",
|
|
113
|
+
"level": "flow",
|
|
114
|
+
"title": "Permissions and disclosure",
|
|
115
|
+
"source": "32-DSH-FLOW顺畅规范.md#43-权限文案",
|
|
116
|
+
"gates": [
|
|
117
|
+
"J5"
|
|
118
|
+
],
|
|
119
|
+
"normative": true
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "FLOW-J6",
|
|
123
|
+
"level": "flow",
|
|
124
|
+
"title": "Upgrade, rollback, uninstall",
|
|
125
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
126
|
+
"gates": [
|
|
127
|
+
"J6"
|
|
128
|
+
],
|
|
129
|
+
"normative": true
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "FLOW-J7",
|
|
133
|
+
"level": "flow",
|
|
134
|
+
"title": "Observability and diagnostics",
|
|
135
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
136
|
+
"gates": [
|
|
137
|
+
"J7"
|
|
138
|
+
],
|
|
139
|
+
"normative": true
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "FLOW-J8",
|
|
143
|
+
"level": "flow",
|
|
144
|
+
"title": "Client/server shapes",
|
|
145
|
+
"source": "32-DSH-FLOW顺畅规范.md#三j1j8-判定协议",
|
|
146
|
+
"gates": [
|
|
147
|
+
"J8"
|
|
148
|
+
],
|
|
149
|
+
"normative": true
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "BOOST-LEV1",
|
|
153
|
+
"level": "boost",
|
|
154
|
+
"title": "Reversible effects",
|
|
155
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
156
|
+
"gates": [
|
|
157
|
+
"LEV-1"
|
|
158
|
+
],
|
|
159
|
+
"normative": false
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "BOOST-LEV2",
|
|
163
|
+
"level": "boost",
|
|
164
|
+
"title": "Inject and wait",
|
|
165
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
166
|
+
"gates": [
|
|
167
|
+
"LEV-2"
|
|
168
|
+
],
|
|
169
|
+
"normative": false
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "BOOST-LEV3",
|
|
173
|
+
"level": "boost",
|
|
174
|
+
"title": "Volatile hot config",
|
|
175
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
176
|
+
"gates": [
|
|
177
|
+
"LEV-3"
|
|
178
|
+
],
|
|
179
|
+
"normative": false
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "BOOST-LEV4",
|
|
183
|
+
"level": "boost",
|
|
184
|
+
"title": "Event modes",
|
|
185
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
186
|
+
"gates": [
|
|
187
|
+
"LEV-4"
|
|
188
|
+
],
|
|
189
|
+
"normative": false
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "BOOST-LEV5",
|
|
193
|
+
"level": "boost",
|
|
194
|
+
"title": "Seam, isolate, group",
|
|
195
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
196
|
+
"gates": [
|
|
197
|
+
"LEV-5"
|
|
198
|
+
],
|
|
199
|
+
"normative": false
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"id": "BOOST-LEV6",
|
|
203
|
+
"level": "boost",
|
|
204
|
+
"title": "Prefix and prompt stability",
|
|
205
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
206
|
+
"gates": [
|
|
207
|
+
"LEV-6"
|
|
208
|
+
],
|
|
209
|
+
"normative": false
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "BOOST-LEV7",
|
|
213
|
+
"level": "boost",
|
|
214
|
+
"title": "Bounded parallelism and jobs",
|
|
215
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
216
|
+
"gates": [
|
|
217
|
+
"LEV-7"
|
|
218
|
+
],
|
|
219
|
+
"normative": false
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": "BOOST-LEV8",
|
|
223
|
+
"level": "boost",
|
|
224
|
+
"title": "Composition and evidence card",
|
|
225
|
+
"source": "33-DSH-BOOST加速实践.md#二八条-lev",
|
|
226
|
+
"gates": [
|
|
227
|
+
"LEV-8"
|
|
228
|
+
],
|
|
229
|
+
"normative": false
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"id": "BOOST-G10",
|
|
233
|
+
"level": "boost",
|
|
234
|
+
"title": "G-10 boundary",
|
|
235
|
+
"source": "33-DSH-BOOST加速实践.md#三g-10-的边界",
|
|
236
|
+
"gates": [
|
|
237
|
+
"LEV-8"
|
|
238
|
+
],
|
|
239
|
+
"normative": false
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"id": "BOOST-EVIDENCE",
|
|
243
|
+
"level": "boost",
|
|
244
|
+
"title": "Evidence card",
|
|
245
|
+
"source": "33-DSH-BOOST加速实践.md#四证据卡",
|
|
246
|
+
"gates": [
|
|
247
|
+
"LEV-8"
|
|
248
|
+
],
|
|
249
|
+
"normative": false
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
"normativeCount": 14
|
|
253
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# ENTRY
|
|
2
|
+
|
|
3
|
+
Compatibility surface: can an existing plugin be recognized/installed and at
|
|
4
|
+
least run?
|
|
5
|
+
|
|
6
|
+
- Normative text: [../../31-DSH-ENTRY入门规范.md](../../31-DSH-ENTRY入门规范.md)
|
|
7
|
+
- External portrait: [../../99-DSH-ENTRY兼容性画像-对外版.md](../../99-DSH-ENTRY兼容性画像-对外版.md)
|
|
8
|
+
- Checker: `node 40-checker/bin/dsh-plugin-verify.mjs <dir> --scope entry --entry-claim static|runtime`
|
|
9
|
+
- Current: 18/18 recognized, 0 clean; 18/18 base-only runtime JSON; 10 G3 verified / 8 partial; after gate 8 clean + 2 reject + 8 partial; client 15/15 loaded in the web profile.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# FLOW
|
|
2
|
+
|
|
3
|
+
Usability surface: install, configure, first success, permissions, upgrade,
|
|
4
|
+
uninstall, diagnostics, client/server states.
|
|
5
|
+
|
|
6
|
+
- Normative text: [../../32-DSH-FLOW顺畅规范.md](../../32-DSH-FLOW顺畅规范.md)
|
|
7
|
+
- Journeys: J1–J8; only J1 has a runtime harness (`40-checker/scripts/journey-runtime.mjs`).
|
|
8
|
+
- Current: J1 6 PASS + 1 WARN; J2–J8 not-run.
|