dsh-plugin-certification
September 13, 2026 · View on GitHub
Community certification for DeepSeek Harness plugins: a public spec, a machine-checkable scoring model, and an independent registry with badges. This project exists because the ecosystem's canonical list explicitly says it is "not a judge of plugin quality" and "listing is not a security review" — someone outside the listings should run that check, reproducibly, without claiming authority over them.
The five dimensions
| Dimension | Evidence source | Checks |
|---|---|---|
| A. Manifest compliance | Static | dsh.bundle manifest, LICENSE (SPDX), keywords/topics alignment, five-language READMEs, engines |
| B. Build hygiene | Static | files allowlist completeness, dependency declarations (peer/optional), no malicious postinstall patterns, lint/typecheck gates present |
| C. Supply chain | OpenSSF Scorecard | The 18 upstream checks, via the official Scorecard API and badges |
| D. Release integrity | npm provenance | SLSA attestation verifiable with npm audit signatures |
| E. Install smoke | dsh-test-drive records | Real install/load/keyless boot in an isolated throwaway profile (four states: ok / load-fail / install-fail / skip) |
Grades
- A — all five pass (E must be
ok), no veto hit - B — E passes and at least three of A/B/C/D pass
- C — E passes, the rest incomplete
- D — any hard gate fails (
dsh.bundlemissing, no license, malicious pattern hit) - Security veto — obfuscated code, credential exfiltration, or surprising install-time behavior grades D immediately, with the reason published
- Environment-blocked E — when E ends
install-failpurely because of an unattended-environment gate (e.g. pnpm's interactiveapprove-buildscannot be confirmed in a sandbox), the entry keeps grade B (if A–D pass) and recordsenvironment-blockedwith the reproduction command. Environmental gates are never recorded asD.
Evidence discipline (load-bearing)
Every score must come from real, reproducible execution — a probe result, a Scorecard run, a provenance check, or a test-drive record. Absent evidence is no-evidence, never a guess. Every dimension records audit links with a snapshot date.
Registry and badges
-
data/certified.json— the registry: one record per certified repository (dimension results + evidence links + spec version). CI re-renders the badges from it on a daily cron (.github/workflows/registry.yml); the registry entries themselves are human curation, not CI output. -
Badge artifacts are the committed SVGs under
badges/, generated byscripts/badge.mjsfrom the registry (the registry is the only source of truth; the script never invents a grade). -
Working badge URL (artifact filename uses a double underscore
<owner>__<repo>):https://raw.githubusercontent.com/PerryLink/dsh-plugin-certification/main/badges/<owner>__<repo>.svgPaste-able:
[](https://github.com/PerryLink/dsh-plugin-certification#registry-and-badges) -
⚠️ The
https://perrylink.github.io/dsh-plugin-certification/badge/<owner>/<repo>.svgform was documented before v0.2 but returned 404: this repository has never had a GitHub Pages deployment (registry.ymlonly renders and commits SVGs). Do not advertise that URL until a Pages deploy actually exists; either use the raw form above, or enable Pages and publishbadges/<owner>__<repo>.svgatbadge/<owner>/<repo>.svg. -
Grades: A / B / C / D, plus a gray
no-datafor anything not in the registry. -
Lists and marketplaces link the badge only — their "no endorsement" stance is unchanged.
Relationship to existing tools
dsh-test-drivesupplies dimension E records (already-opentest_drivedomain)dsh-scoreconsumes certification records as install evidencedsh-skill-pack-securitysupplies the malicious-pattern vetting for dimension B- OpenSSF Scorecard supplies dimension C wholesale — this project does not reinvent it
- Overlap with
dsh-plugin-scorecard,dsh-plugin-audit, and friends: governance discussion is open in issue #1; the goal is one agreed standard, not a twenty-first scorer
Roadmap
- Publish spec v1 (this document)
- Registry + badge CI
- Certify the 33 PerryLink plugins as the first baseline batch
- Pilot with other top plugin authors
- Propose badge display to the canonical list and marketplaces (link-only, no endorsement)
PerryLink DSH Plugin Family
This project is one of the 40 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:
| Plugin | One-liner |
|---|---|
| dsh-auto-review | Second-model auto-review on the approval chain, fail-closed by default |
| dsh-autotier | Automatic strong/cheap model-tier routing with deterministic risk guards and a /tier command |
| dsh-background-agents | Durable background child agents with a Web UI sidebar, messaging and interrupt |
| dsh-budget | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. |
| dsh-catalog | DSH Desktop Market standard catalog source for the PerryLink family |
| dsh-cert-mcp | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence |
| dsh-checkpoint-rewind | Unified session + workspace + config checkpoints with one-shot /rewind |
| dsh-claude-move | Migrate Claude Code, Codex, OpenCode and Hermes sessions, memories and skills into DSH |
| dsh-click | Cross-platform native desktop control for DeepSeek Harness — Windows first. |
| dsh-composer-history | Terminal-style input history for the web composer: arrows, Ctrl+R search |
| dsh-data-quality | Deterministic dataset profiling, cleaning and citation verification |
| dsh-defend | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. |
| dsh-doublecheck | Engineering-discipline guard: requirements grill, test gates, adversary review |
| dsh-draw | Unified static-image generation routing for DeepSeek Harness. |
| dsh-fast | Read-only performance diagnostics: load, spill, compaction and cache hit rate |
| dsh-fund-research | Chinese mutual-fund research with sealed, traceable source snapshots |
| dsh-github | GitHub PR/issue/CI integration with every write approval-gated |
| dsh-industry-research | Industry and company research pack: chain map, policy timeline, company cards |
| dsh-kit | One-command starter pack that installs the core family |
| dsh-library | Local document knowledge base with hybrid search and citation-aware injection |
| dsh-local-ai | Local Ollama model discovery and task-based routing with cloud fallback |
| dsh-lsp-actions | LSP diagnostics, formatting, completion, code actions, symbols and rename |
| dsh-mask | PII masking at the model boundary with a host-side restore table |
| dsh-mcp-panel | MCP management console: /mcp command, Settings tab and trial calls |
| dsh-memento | Approval-gated cross-session memory protocol (ctx.memory + SQLite) |
| dsh-observe | OpenTelemetry and Langfuse telemetry export from the session event stream |
| dsh-output-styles | Runtime-switchable model output styles |
| dsh-permission-rules | Declarative allow/deny/ask rules plus a process-level network policy |
| dsh-plugin-doctor | Zero-dependency static + sandbox smoke detector for DSH plugins |
| dsh-plugin-guide | Plugin-dev knowledge base, agent skill and the dsh-plugin-dev CLI toolchain |
| dsh-plugin-kit | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins |
| dsh-plugin-portal | Zero-dependency static portal rendering the whole plugin family as one page |
| dsh-plugin-upgrade-015 | Merged 0.1.3-alpha.1 → 0.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner |
| dsh-reach | Multi-channel approval/question bridge: WeChat, Telegram, Feishu + a session console |
| dsh-research-report | Verifiable research reports: evidence ledger, manifest seal, per-claim verdicts |
| dsh-score | Multi-dimensional plugin quality scoring with an evidence-backed leaderboard |
| dsh-session-pin | Pin sessions and workspaces in the Web sidebar with per-pin colors |
| dsh-session-sync | Git-backed cross-device session synchronization with keep-both merges |
| dsh-skill-pack-security | Security-audit skill pack plus the plugin_vet supply-chain gate |
| dsh-talk | Voice-first session loop: speech-to-text input and text-to-speech replies |
| dsh-team-rooms | Cross-session team rooms: shared message bus, task board and timeline |
| dsh-test-drive | Isolated install-and-smoke test drives with a pass/fail matrix |
| dsh-ticktick | TickTick/Dida365 task bridge: session-header panel plus eleven agent tools |
| dsh-translate | Vendor parameter translation and deterministic JSON repair |
| dsh-wechat | WeChat ↔ DSH bridge (Tencent iLink bot) developed with pan17, who hosts the repo |
License
MIT. See LICENSE.