JayYuen666/dsh-quality-gate

A turn-end quality gate: when a turn edited code or config files, the checks the project itself declares run before the turn closes, and a failure opens a new turn via agent.followup with repair instructions injected. A run has exactly three outcomes — pass, code-failure or not-run — so a check that never truly completed is never recorded as passed. It edits no code and writes no file; four whitelist commands (pnpm check, cargo check, ruff check, tsc --noEmit) are locked at type level.

@jayyuen66/dsh-quality-gate is a turn-end quality gate for DeepSeek Harness: when the current turn edited code or config files, the checks the project itself declares run before the turn closes, and a failure opens a new turn via agent.followup with repair instructions injected into the model. One run has exactly three outcomes — pass (it really finished with exit 0), code-failure (it ran and reported code errors) and not-run (it never ran) — so a check that did not truly complete is never recorded as passed. It does not edit code, does not block dangerous commands (that is danger-guard's job) and writes no file. It triggers on the host event agent/turn-stopping, taking this session's successful edits, walking each file up to the nearest manifest root (max 10 levels, a monorepo package upgraded to the workspace root holding pnpm-workspace.yaml), and detecting and running the gate; it skips subagents and turns with no checkable edit, and stands down when the inbox already has pending items. Four whitelist commands are locked at type level (one per root, priority workspace > Rust > Python > bare TS): pnpm check, cargo check, ruff check . and npx tsc --noEmit, budgeted by gateBudgetMs with 64 KiB per-stream evidence caps and a bounded 4 KiB head excerpt read back from the spill file when truncated. Settings cover enabled, maxInjectsPerTurn (1–5, default 2), gateBudgetMs, and an optional memoryFeedback to a memory gateway.

Coding & Development ★ 0 updated 2026-10-11
View on GitHub ↗

Install

dsh plugin --profile web add @jayyuen66/dsh-quality-gate

Copied verbatim from the README's Install block. The packages live on the public npm registry, so installs need no credentials; the runtime dependency @jayyuen66/dsh-plugin-shared must be on the same registry or the whole set 404s.

Compatibility

Requires a host at @deepseek-ai/dsh 0.2.1-alpha.2 or newer (engines.dsh); the plugin is compiled against that host's type surface. @deepseek-ai/schemastery is resolved from the host rather than installed, so a public schemastery would turn "edit a setting" into "restart to apply". Installing a local directory needs pnpm >= 12.3.0. The host half hard-depends only on settings; shell / sandboxPolicy / lessonLoop / credentials / sessionQuery are optional ctx.get reads.

Details

Alternatives

030611/dsh-context-provenance · 030611/qiushi-dsh-evidence-audit · 0x3fffff/dsh-desktop-launcher

More plugins in Coding & Development

Browse more in Coding & Development

Guides for Coding & Development plugins