Three tracks, not three grades. The layers answer different questions and do not add up to a score, certificate, or ranking.
| Layer | Question | What it is | Can it produce a verdict? |
|---|---|---|---|
| ENTRY | Can the plugin be recognized, installed, and started? | Compatibility gate | Yes: recognized / runtime / failed / incomplete / unavailable |
| FLOW | Can a user install, configure, use, upgrade, and remove it without fighting it? | J1–J8 user-journey checks | Yes, where runtime evidence exists; otherwise not-run |
| BOOST | Does it use Cordis well? | LEV-1–8 practice library and evidence cards | No plugin-level pass/fail; evidence is per practice |
Current baseline (2026-11-04): DSH
0.2.2-alpha.3(npmalpha), Node>=24.9.0(since 0.2.2-alpha.2), Cordis4.0.6-alpha.2.engines.dsh, when declared, decides alone since 0.2.1-alpha.4;ctx.menusis gone in 0.2.2-alpha.3; Typert codecs usecreate()since 0.1.6-alpha.2;@deepseek-ai/dsh-client-runtimewas removed in 0.1.2-alpha.1 and has no 0.2.x.
| You have | Read |
|---|---|
a report line with a DSC-nn or C-n.m ID |
rules.md — every check, whether it blocks, and the one-line fix |
| a FAIL to fix right now | recipes.md — copy-paste package.json, cordis.patch.yml, and client entry |
| an ENTRY question | entry.md — package shape, runtime surface, declarations |
| a FLOW journey to record | flow.md — the dsh-flow-evidence/2 file and J1–J8 evidence |
| a BOOST practice to evidence | boost.md — the thirteen-field evidence card |
| a security question — what can a plugin do, is this safe to install, what must a market disclose | security.md — author/user/market checklists and the DSC-15–DSC-22 boundary |
The two reference docs exist because a report ID alone does not tell you what to change: rules.md maps IDs to fixes, and recipes.md holds the shapes those fixes need.
ENTRY is the compatibility floor. It checks the package shape, entry points, bundle patch, version/peer range, metadata, labels, and — when a runtime claim is made — an actual start.
recognizedmeans the package can be identified. It is not a runtime pass.runtimerequires an actual plugin start or bundle boot (G0–G3).staticis not a pass.not-runis not a pass.
Start here: ENTRY guide and the canonical
31-DSH-ENTRY.
Then fix by ID: rules.md DSC-01–DSC-14 and
recipes.md.
FLOW is the user journey: install/remove, enable/disable, configuration, first success, permissions, upgrade/rollback, observability, and client/server modes.
- The current FLOW harness is a draft. Some J1–J8 checks have runtime evidence;
others are static preflight or
not-run. runtime,failed, andnot-runare the FLOW statuses. A partial run isnot-run, never a soft pass.
Start here: FLOW guide and the canonical 32-DSH-FLOW. The evidence file shape and the J1–J8 minimum are in flow.md § the evidence file.
BOOST is a practice library for using Cordis well: effects, inject/get, volatile configuration, event modes, seams, stable prompt prefixes, bounded parallel/jobs, and composition.
- A practice can be evidenced; a plugin does not get a “BOOST level”.
- The measured examples are fixtures or synthetic captures, not production baselines, plus one real-provider LEV-6 re-run (constructed arms; see boost.md § real-provider evidence).
- It is not a certification, score, or market gate.
Start here: BOOST guide and the canonical 33-DSH-BOOST. The card fields are in boost.md § evidence, not a badge.
Security checks are a scope, not a level, and they ship in dsh-standards
1.6.0+ (1.5.x and earlier exit 3 for the unknown scope): DSC-15–DSC-22
sit behind --scope security. They never change an ENTRY, FLOW, or BOOST
verdict. Outside that scope a security FAIL is capped to WARN in the separate
security block and does not enter buckets.blocking; under it only
DSC-15/16/17 can block, and DSC-21 is WARN-only.
- Static checks only match known source shapes; they cannot see runtime egress, file reads, or prompt corruption. Runtime security needs a sandbox with a network policy and capture.
- No security
PASSmeans “safe”. It means “no known pattern matched in this static pass”. - The three layers stay about compatibility, user journeys, and Cordis practice. Do not turn them into a security certification, and do not add a “security level” to the vocabulary.
Read security.md for the author, user, and market checklists.
# ENTRY recognition (no runtime claim)
npx dsh-standards ./my-plugin --scope entry --entry-claim static
# Three-layer audit; FLOW/BOOST are only reported when evidence is supplied
npx -p dsh-standards dsh-levels ./my-plugin --format jsonThe checker and level audit ship in
dsh-standards. The rule text
lives in dsh-plugin-spec.
The legacy build skill/CLI is dsh-primer.
recognized≠runtimestatic≠runtimenot-run≠passboost-evidenced≠ plugin grade- security check ≠ security audit
A–Dgrades (where they exist) are orthogonal to ENTRY/FLOW/BOOST- No official, certified, verified, audited, secure, recommended, or ranked claim