zhengqiuyang/dsh-trust-suite ↗★ 0

dsh-trust-suite

The deterministic trust chain for DeepSeek Harness: read-guard + pr-gate + attest-chain + mcp-test + janitor + egress-gate + prompt-drift + freeze. Zero LLM calls in the trust path 适合对AI读取、写入、网络请求有极高安全要求,需硬性拦截的场景。

パッケージ
dsh-trust-suite
互換性
非互換
バージョン
0.2.1
ライセンス
MIT
最終更新
2026/10/17

インストール

検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗

ドキュメント

README 全文を読む ↗

dsh-trust-suite — the deterministic trust chain for DeepSeek Harness

One thesis, three plugins, zero LLM calls in the trust path:

The dsh plugin ecosystem reviews agents with LLMs — answer reviewers, advisor loops, goal verifiers. Everything that must not be an LLM — the parts a probabilistic reviewer can be injected past — is what this family owns.

PluginGuardsWhat it does
dsh-read-guardwhat the agent readsPrompt-injection interception in the tools/post-execute waterfall: file reads, repo searches, and web fetches are scanned before they enter model context — quarantined, blocked, or passed. Engine: repo-inject-guard
dsh-pr-gatewhat the agent writesDeterministic write gate: scope policy denies out-of-scope writes before they touch the disk, residue rules scan the written text, a content-hashed JSONL ledger records every decision. The CI gate moved to the moment of the write. Engine: agent-pr-gate
dsh-attest-chainwhat the agent didSigned chain-of-custody: every watched tool result appends a hash-chained, ed25519-signed record. Tamper with a line, break the chain; delete the tail, break the published head. Engine: agent-attest
dsh-mcp-testwhat the agent can callTool-surface snapshot and drift gate: the full visible registry (first-party, plugin, MCP tools) is baselined and diffed — upgrades that silently change the model-visible surface fail loud. Methodology: mcp-test
dsh-janitorwhat the agent leaves behindDeterministic cleanup plans for session debris (plan docs, scratch scripts): scan → verdicts with evidence → review. The janitor is never an agent; v0.1 never deletes. Engine: agent-janitor
dsh-egress-gatewhere data may flowDestination allowlist for web fetches/searches, denied in tools/pre-execute before they run; shell fetch-verbs observed (enforcement opt-in). The other half of exfil defense: content scanning guards what enters, this guards where it leaves.
dsh-prompt-driftwhat the model is toldSystem-prompt surface drift gate: every section contributed by any plugin/preset is hashed and baselined; a silent rewrite of the prompt fails loud.
dsh-freezewhat exactly is runningHermetic composition lock: the profile's dependencies, bundle order, lockfile hash, and patch layer are fingerprinted; booting a drifted composition warns — or fails under strict (the --frozen posture for CI).

| dsh-compaction-guard | what the agent forgets | Compaction integrity: directive lines from the compacted range are extracted and verified against the summary — verbatim or in substance; every constraint the agent silently forgot is reported and ledgered. |

Read + write + do + call + leave-behind + egress + told + running / remembered: the eight channels through which an agent session can go wrong, each gated by a deterministic rule engine with its own upstream test suite, Windows+Linux CI, and an honest kill-criteria section.

Install the family

One command per plugin, all prebuilt (no allowBuilds step):

curl -fsSL https://raw.githubusercontent.com/zhengqiuyang/dsh-trust-suite/main/install.sh | bash -s -- web
# or explicitly:
dsh plugin --profile web add github:zhengqiuyang/dsh-read-guard   # + pr-gate, attest-chain, mcp-test, janitor, egress-gate, prompt-drift, freeze

Once the family lands on npm, this becomes dsh plugin add dsh-trust-suite (the registry form enables the one-command meta-bundle; git subdependencies are blocked by pnpm's blockExoticSubdeps profile guard, by design).

Each ships its own config in cordis.patch.yml and composes without interference (different pipeline stages: read-guard observes results, pr-gate gates writes, attest records everything, mcp-test watches the registry, egress-gate checks destinations, prompt-drift watches the assembled prompt, freeze pins the composition, janitor scans on demand).

Why a family, and against whom

The dsh security lane (checked 2026-10-12) is a long tail without a winner: ~15 injection-defense plugins, none above 85★, the strongest being a model-callable scanner (the model can decline to call it) and one three-point interceptor with literal pattern lists. Nothing on the write side, nothing on custody. The family's edge is not being first — it is that every rule engine here is vendored from a battle-tested upstream repository with its own CI, competitive analysis, and kill criteria, instead of being a weekend pattern list. Few plugins, deep engines, upstream ownership — the deliberate opposite of the 90-plugin land-grab strategy visible in the ecosystem today.

Roadmap (next in the family)

  • dsh-bench has shipped as its own repo — zhengqiuyang/dsh-bench: bench your dsh configuration against your own tasks via dsh headless (live-verified). Its mining pillar (tasks from git history, graded by your own tests) ports agentbench-local next.
  • skills lockfile — hermetic pinning for skills/plugins à la vendor-skills; today's supply-chain plugins all static-scan, none reproducibly pin.
  • mcp-test probe pillar — behavioral + injection probes against running MCP servers (the headline feature of upstream mcp-test) on top of dsh-mcp-test's drift gate.

Kill criteria

Per-plugin kill criteria live in each README. Family-level: if dsh ships a first-party deterministic trust layer covering read/write/custody, the family freezes and this README records the postmortem. The engines live on in their upstream repositories regardless.