dsh-doublecheck

DSH PLUGIN模型与账号接入

仓库 PerryLink/dsh-doublecheck · npm dsh-doublecheck

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供交付质量门禁:先拷问需求六维度,再以红绿测试与对抗评审证明交付,最后给出可交付或返工的判定。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 55 复刻 0 · 未关闭 issue 未标注
最近更新 2026-10-10 创建于 2026-08-14
README 34.1 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.1.7-rc.2 等 11 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-doublecheck可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-doublecheck:为 DeepSeek Harness 加上交付质量门禁

  • 需求六维度拷问与共识门禁
  • 红绿测试证据强制校验
  • 子代理对抗式交付评审
  • 四阶段交付门禁与命令
  • 严格模式一键覆盖配置

适用场景

代码评审

上游标签

ai-agentai-agentscode-reviewdeepseek-harnessdelivery-gatedeveloper-toolsdshdsh-pluginengineering-disciplineguardquality-gaterequirementsskill

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-04): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方PerryLink仓库 dsh-doublecheck · 默认分支 未标注
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证Apache-2.0商用或二次分发前请确认条款原文
星标 / 复刻 / issue55 / 0 / 未标注收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-10-10最后推送 未标注
本站收录2026-10-07首次进入本站目录的时间

README 全文

34.1 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-doublecheck

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-doublecheck (counts toward the deepseek1024.com install ranking).


The delivery quality gate for DeepSeek Harness: grill the requirements, test the implementation, prove the delivery — then gate the handoff with a deliverable/rework decision.

Requirements get interrogated before the first edit; delivery is proven, never claimed.









English · 简体中文 · Español · Português · हिन्दी


📖 Ecosystem knowledge base — measured data, not marketing: plugin development guide · plugin-selection data · maintenance criteria.

<!-- star-cta -->

⭐ 如果它帮到了你

这个插件是 DSH 插件家族的一员(40+ 个,全部 Apache-2.0)。如果你在用,给个 star —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。

English: part of a 40+ plugin family for DeepSeek Harness. If it is useful, a star helps the next person find it — nothing is gated behind it.

What is dsh-doublecheck?

The delivery quality gate for DeepSeek Harness: grill the requirements, test the implementation, prove the delivery — then gate the handoff with a deliverable/rework decision.

Requirements get interrogated before the first edit; delivery is proven, never claimed.

The same run, animated.

Compatibility

Surface Status
Harness DeepSeek Harness dsh-v0.2.1-alpha.1. Verified 2026-09-24 (dual typecheck rulers + full test suite green); the peer range admits 0.1.2-rc.1, 0.1.5-alpha.1, 0.1.5-rc.2, 0.1.6-alpha.2, 0.1.7-alpha.1 and 0.1.7-rc.2, so no supported host line is dropped.
Node ^22.19.0 \|\| &gt;=24.0.0
Platforms All (pure host; no native code, no direct network requests of its own)
Model Any (the guard itself never calls a model; the critic and reviewer phases run as harness subagents)

What you get

dsh-doublecheck installs two plugin rows that read and enforce from the same durable session log:

  1. doublecheck-grill — the requirements furnace: the bundled grill-requirements skill plus the model-facing doublecheck_skills, doublecheck_spec, and doublecheck_report tools and the per-dimension verification workflow.
  2. doublecheck-guard — the discipline guard: the grill gate, the red/green evidence gates, the adversary review, the /doublecheck and /gate commands, the live gate settings card, and the four-phase delivery gate.

Together they enforce the discipline loop — grill → design → red → green → review → verify:

grill ──▶ design ──▶ red ──▶ green ──▶ review ──▶ verify
│
└─ six requirement dimensions, consensus gate,
structured spec committed to the session + workspace
Stage Meaning
grill Interrogate the six requirement dimensions; refuse to implement until consensus.
design The settled spec is committed via doublecheck_spec.
red A failing test run proves the gap before implementation edits.
green A passing test run after the edits closes the loop.
review A forked adversary critic audits the delivery against the spec.
verify doublecheck_report + a per-dimension verification workflow prove the delivery.

Quick start

dsh plugin --profile web add github:PerryLink/dsh-doublecheck
# 1. install the bundle into your profile
dsh plugin --profile web add github:PerryLink/dsh-doublecheck

# or from npm (published releases)
dsh plugin --profile web add dsh-doublecheck

# 2. restart and verify the row
dsh --profile web --dump-config | grep -E -A3 &#x27;id: doublecheck-(grill|guard)&#x27;

Both rows (doublecheck-grill and doublecheck-guard) activate automatically with the profile.

Install & uninstall

  • git channel (latest main): dsh plugin --profile web add github:PerryLink/dsh-doublecheck — the prepare script builds with production dependencies only.
  • npm channel (published releases): dsh plugin --profile web add dsh-doublecheck.
  • tarball channel: pnpm pack in this repo, then dsh plugin --profile web add ./dsh-doublecheck-.tgz.
  • uninstall: dsh plugin --profile web remove dsh-doublecheck (or remove the rows from the profile patch).

For a zero-configuration strict mode (every gate on at block intensity, gate coverage required), apply the shipped overlay on top of the bundle patch: dsh --profile web --patch ./node_modules/dsh-doublecheck/strict.patch.yml.

Configuration

All tunables are Schemastery Config fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. cordis.patch.yml documents each key inline; Schema defaults are the single source of tuning defaults.

Key Default Meaning
specFile &#x27;doublecheck-spec.md&#x27; Workspace file for the committed spec markdown (grill row).
reportFile &#x27;doublecheck-report.md&#x27; Workspace file for the delivery report (grill row).
reportVerify true Run the verification workflow by default (grill row).
verifyProvider &#x27;fork&#x27; Subagent provider for the per-dimension checkers (grill row).
verifyMode &#x27;all&#x27; all = one parallel checker per dimension; single = one combined checker (grill row).
intensity &#x27;remind&#x27; Enforcement strength of the grill, red/green, and review gates (remind / warn / block).
enableByDefault true Master switch for sessions without a /doublecheck on\|off record.
language &#x27;en&#x27; Injected reminder/deny/review/gate prose language (en / zh).
guardTools [&#x27;edit&#x27;, &#x27;write&#x27;] Mutation tool names both gates watch.
vagueTaskMaxChars 200 Longer tasks are never treated as vague.
remindOnce true Inject each reminder at most once per session (durable across restarts).
testToolNames [&#x27;bash&#x27;, &#x27;pwsh&#x27;] Shell tool names that can run tests.
testCommandPatterns (pnpm/npm/yarn/bun test, pytest, go/cargo/make test, node --test, deno test, uv run pytest) Regexes a command must match to count as a test run.
testFilePatterns (test dirs, *.test.* / *.spec.*) Regexes identifying test files — always editable, exempt from the red gate.
modules.grill true Off disables the grill gate.
modules.tdd true On enables the red/green evidence gates.
modules.adversary false On enables the forked critic review at green.
adversaryModel null Critic model route; null = main model self-reviews.
adversaryProvider &#x27;fork&#x27; Subagent provider the critic runs on.
adversaryMaxFindings 5 Findings cap (1–20) injected into the session.
adversaryTools [&#x27;read&#x27;, &#x27;glob&#x27;, &#x27;grep&#x27;] Critic tool allowlist; keep it read-only.
adversaryTimeoutMs 120000 Hard time budget for one critic run.
gate.enabled true Master switch for the gate panel and the turn-boundary red notice.
gate.planSuggestion true Append the plan-mode re-check suggestion to red reports.
gate.reportFile &#x27;gate-report.md&#x27; Workspace file for the gate report.
gate.requirements.checklist (six spec-dimension questions) Pluggable key-question checklist: { id, question, specDimension, required }.
gate.requirements.minConfirmed 6 Minimum required questions that must pass (1..required count).
gate.requirements.interrogateTool &#x27;ask_user_question&#x27; Tool name whose calls count as interrogation evidence.
gate.tests.requirePassingRun true A non-passing (or missing) latest test run is a red light.
gate.tests.allowFailingRuns 0 Failing runs after the latest green allowed before red.
gate.tests.requireCoverage false On requires coverage evidence in the test output.
gate.tests.minCoveragePct 80 Minimum coverage percentage (0–100).
gate.tests.evalReports.enabled false On folds the dsh-eval report (dsh-auto-review's eval engine) into the test evidence.
gate.tests.evalReports.dir &#x27;.eval-reports&#x27; Workspace-relative directory holding the engine's report.
gate.tests.evalReports.file &#x27;report.json&#x27; Report file name inside the directory.
gate.tests.evalReports.required false A missing report is a red light exactly when true (a skip otherwise).
gate.consistency.* provider: &#x27;fork&#x27;, model: null, tools: [&#x27;read&#x27;,&#x27;glob&#x27;,&#x27;grep&#x27;], timeoutMs: 120000, maxFindings: 5 The local consistency reviewer's knobs (model: null = main model).
gate.review.engine &#x27;auto&#x27; auto = dsh-auto-review verdict records when present, else the local reviewer; local = always local.
gate.review.provider &#x27;fork&#x27; The local review reviewer's provider (its model/tools/timeoutMs/maxFindings match gate.consistency.*).

Every gate.* key above is one live field: the guard row marks the whole
gate block .volatile(), so it is the row's editable settings card (the form
namespace is the row's profile entry id). The remaining keys are ordinary
composition config from the profile patch. The block is read once at load, so an
edit takes effect on the next load — gate.enabled decides whether the
turn-boundary red notice is installed at all. On a host line whose schemastery
predates .volatile() the row still mounts: the card is absent and the block
comes from the profile patch exactly as before.

Misconfiguration fails loud at load: invalid regexes, empty or duplicated name lists, out-of-range thresholds, and duplicate checklist ids throw instead of silently doing nothing. strict.patch.yml is the all-gates-block overlay that restates the guard row at intensity: block with every module on and the coverage requirement enabled.

Tools & surfaces

Surface Kind Notes
doublecheck_skills tool Lists and loads the package's four bundled skills through the skill registry seam.
doublecheck_spec tool Commits the grilled six-dimension spec to the session log and a workspace markdown copy.
doublecheck_report tool Folds the discipline evidence into a delivery report (optional per-dimension verification workflow).
/doublecheck status\|report\|on\|off command Switch, modules, intensity, stage facts, folded report, and the durable on/off override.
/gate status\|run\|config command Live checklist progress, the settled deliverable/rework report, and the effective config.
grill-requirements, red-green-tdd, delivery-review, delivery-proof skill Bundled discipline skills covering all six loop stages.
gate live config field The pluggable checklist is the guard row's one .volatile() field: it is edited from the row's settings card (namespace = the row's profile entry id) and read once at load.
strict.patch.yml overlay Every gate on at block intensity plus the coverage requirement, in one patch layer.
dsh-doublecheck/invariant companion row Reports package-owned write-path contradictions through the host invariants registry.

Gate phases

The delivery gate aggregates the session's durable evidence into a configurable four-phase checklist and settles one deliverable / rework required decision. Every phase folds the session log alone (replay IS the state), so a run re-derives identically after resume or fork.

Phase Checks Evidence source Model cost
Requirements interrogation Key-question checklist confirmed item by item (six spec-dimension questions by default) Committed doublecheck_spec + ask_user_question calls none
Test evidence Latest run color, failing runs after green, optional coverage threshold, optional dsh-eval report Shell test runs in the session log ([exit code: N], coverage percentages); the dsh-eval report file when gate.tests.evalReports.enabled none
Implementation consistency Diff ↔ requirement mapping: every edit must serve a spec dimension Local forked reviewer (structured findings, read-only tools) one subagent
Review conclusion The delivery verdict; engine: auto consumes dsh-auto-review's durable verdict records when present, else the local reviewer autoReview/verdict / autoReview/rejection events, or the local forked reviewer one subagent (local)

Red lights are failed checks (a missing spec, a failing latest run, coverage below minimum, an unmapped edit, blocker/major findings) — each carries a rework suggestion. Warnings and skips never flip the decision. The gate integrates dsh-auto-review as a weak dependency: review.engine: auto folds its verdict records when present and degrades to the local reviewer otherwise; gate.tests.evalReports.enabled folds its eval engine's dsh-eval report (prompt-regression / stress / fairness suites) into the test evidence and skips honestly when no report exists. The gate never synthesizes approval requests.

Example report

/gate run returns this markdown — paste it into a PR description:

# Delivery gate report

&gt; **Verdict: rework required** — 2 red item(s)
&gt; The gate is red. Re-open the work in plan mode to re-check the open items before delivering.

## 1. Requirements interrogation — PASS
- [✔] **What outcome must the delivery produce?** — spec dimension &quot;goal&quot; committed
- [✔] **What is in scope, and what is out of scope?** — spec dimension &quot;scope&quot; committed
- [✔] **Which observable checks prove the work is done?** — spec dimension &quot;acceptanceCriteria&quot; committed
- [✔] **What can go wrong, and what is the correct behavior in each case?** — spec dimension &quot;failureModes&quot; committed
- [✔] **What is traded when goals conflict; what is optional?** — spec dimension &quot;priorities&quot; committed
- [✔] **What does the user explicitly not want?** — spec dimension &quot;nonGoals&quot; committed

## 2. Test evidence — FAIL
- [✔] **passing test run** — latest test run passed
- [✔] **failing cases after green** — 0 failing run(s) after green (allowed: 0)
- [✖] **coverage evidence** — 61% coverage below the 80% minimum — rework: raise coverage above the configured minimum

## 3. Implementation consistency — WARN
- [⚠] **[minor] src/telemetry.ts touched without a requirement** — [minor] the edit adds a metric no spec dimension covers

## 4. Review conclusion — PASS
- [✔] **dsh-auto-review conclusion** — 3 call(s) approved by dsh-auto-review (latest risk: low)

## Red items
1. **tests/coverage** — 61% coverage below the 80% minimum — *rework: raise coverage above the configured minimum*
2. **consistency/finding-1** — [minor] the edit adds a metric no spec dimension covers — *rework: src/telemetry.ts touched without a requirement*

## Audit
- review engine: dsh-auto-review
- generated at: 2026-08-14T12:00:00.000Z
- counts, ids, and verdicts only: no file contents or session text are embedded, and recognized secrets are redacted.

CI output

/gate run also writes a gate-report.json (the same settled state as lossless JSON, next to gate-report.md). The doublecheck-gate CLI turns that file into machine-readable output for GitHub Actions:

# JSON (PR comment / status payload)
doublecheck-gate --format json --input gate-report.json
# SARIF 2.1.0 (code-scanning upload / status check)
doublecheck-gate --format sarif &lt; gate-report.json

The CLI only serializes the already-settled GateState — it never re-runs the four-phase gate or the evidence folds. Its exit code maps the verdict: 0 = deliverable, 1 = rework, 2 = usage/parse error.

Permissions & data

  • Reads: the session log (tool/call / tool/result / tool/ptc-dispatch, injected user/message sources, and the foreign autoReview/* verdict records) in-process only; the optional plan-mode service state. PTC sub-dispatches carry the predecessor tool/code-dispatch label on hosts before the V3 rename; both labels fold identically. Injected notices carry the producer-owned dsh-doublecheck message-source kind; logs recorded before that kind existed arrive as plugin:dsh-doublecheck (the harness's V3→V4 migration on a released catch-all wrapper) or as the released plugin wrapper, and all three fold identically.
  • Writes: doublecheck-spec.md, doublecheck-report.md, gate-report.md, and gate-report.json in the session workspace (paths configurable) through the ctx.fs seam; the durable doublecheck/state and doublecheck/gate session events.
  • Model calls: the gate's consistency and local-review phases (one subagent each per /gate run), the optional adversary review, and the doublecheck_report verification workflow start subagent runs; nothing else calls a model or the network.
  • Never touched: credentials, environment variables, or any file outside the session workspace. The workshop manifest declares filesystem:read and filesystem:write only. Gate reports carry counts, ids, and verdicts only; recognized secrets in reviewer texts are redacted before storage or display.

Security boundaries

  • Model-visible ⟺ logged. Every injected reminder, review, and gate notice rides the standard channels and lands in the session log; the durable spec/state/gate facts ride tool results or SessionEventMap members.
  • Fail closed / fail loud. Guard and gate config are validated in apply (assertions throw); a reviewer or adversary seam that cannot run settles as an honest "unavailable"/skip notice instead of a fake verdict.
  • Audit-safe reports. Gate and delivery reports record counts, ids, and verdicts only — no file contents or session text — and model-produced finding texts pass a secret redactor before storage or display.
  • No network of its own. The plugin makes no direct network requests; the critic and reviewer subagents ride the harness subagent seam.
  • Weak dependency on dsh-auto-review. It is never imported or hard-required; the gate folds its durable verdict records and degrades to the local reviewer, and never synthesizes approval requests.

Known limitations

  • Durable writes. /doublecheck on\|off → doublecheck/state and /gate run → doublecheck/gate ride the host's ignorable append surface (post-rc.6 through 0.1.1-rc.2). On hosts without that surface (rc.6/rc.8, and 0.1.2-alpha.1, which removed the envelope — 0.1.2-rc.1 restores the field for stored-log read compatibility only and still cannot stamp it), the writes are skipped and the switch stays process-local.
    0.1.2-rc.1 (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged.
    0.1.5-alpha.1 (adapted 2026-09-09): session format V3 renames the durable sub-dispatch event tool/code-dispatch to tool/ptc-dispatch (payload unchanged; both labels fold identically). Session.append still exposes no ignorable channel, so durable writes stay skipped and the switch stays process-local - behavior unchanged. (The doublecheck-gate settings namespace this entry introduced was removed in 0.1.7-alpha.1, when the harness deleted the namespace registry.)
    0.1.5-rc.1 (adapted 2026-09-10): dependency pins move to the published 0.1.5-rc.1 line; no seam change affects this plugin's behavior.
    0.1.5-rc.2 (adapted 2026-09-11): dependency pins move to the published 0.1.5-rc.2 line; no seam change affects this plugin's behavior.
    0.1.7-alpha.1 (adapted 2026-10-04): the harness deleted the shared catch-all plugin message-source kind (notices now carry the producer-owned dsh-doublecheck kind, and the remindOnce fold still reads the two pre-upgrade shapes a durable log can hold), and it replaced the settings-namespace registry with SettingsForms (the doublecheck-gate namespace is gone; the gate checklist is now the guard row's one .volatile() field, still read once at load). Dev/test pins for @deepseek-ai/cordis and @deepseek-ai/schemastery move to ^4.0.3 / ^3.18.3, where Volatile and .volatile() first exist; the peer ranges stay ^4.0.2 / ^3.18.2 and the live-field surface is detected at load, so the older host lines mount the row with no settings card. No behavior change beyond the settings storage location.
  • Optional seams. The guard row's settings card appears when the settings service is mounted; the card is this row's own Config (namespace = its profile entry id), and the gate block is read once at load, so its values apply to the /gate panel and the gate-red notice on the next load. The live-field surface is detected at load, so on a host line whose schemastery predates .volatile() the row mounts anyway — without a card, with the gate block taken from the profile patch. The /gate status plan-mode line reads the optional ctx.planMode (shows unknown without it); the adversary review needs ctx.subagents; verification needs workflowEngine.
  • Local degrade. gate.review.engine: auto degrades to the local reviewer when dsh-auto-review is absent or has no verdict records this session — the report names the reason instead of inventing a verdict.
  • dsh-eval evidence is file-based. The dsh-auto-review eval engine (dsh-eval) writes its prompt-regression / stress / fairness results to a workspace report file, not the session log. gate.tests.evalReports.enabled folds that file (off by default; skips when absent) and the folded counts ride the durable doublecheck/gate record so a settled run still replays.

Development

pnpm install             # node ^22.19 || &gt;=24
pnpm run build           # tsc --noEmitOnError (lib/ is committed)
pnpm run prepare         # tsc --noEmitOnError (git-install channel)
pnpm run prepublishOnly  # build + full test suite
pnpm run typecheck       # tsc --noEmit + tests tsconfig
pnpm run lint            # eslint src tests
pnpm test                # vitest run
pnpm run test:coverage   # vitest run --coverage
pnpm run pack:check      # build + pack the tarball

Interoperability with other DSH plugins

Verified against DSH 0.2.0-rc.2 (the runtime this README ships for) and the high-star plugin set surveyed on 2026-10-05.

This plugin does not interfere with other plugins, including the widely installed high-star ones:

  • No tool-name collision. Every tool is namespaced; no bare name owned by a shipped tool or another plugin is registered.
  • No service-key collision. It provides no service key at all, so it cannot collide on one.
  • No slot collision. It registers no client slot key, so it cannot contend for a shadows-shipped-ui seat.
  • No HTTP route collision. It registers no webServer prefix.
  • No patch-layer collision. The bundle patch only inserts its own row; it never overrides a built-in row's config.
  • No global mutation. It does not patch prototypes, rewrite process.env, or replace the global fetch dispatcher.

Shared event listeners are non-interfering by construction. It observes the ordering-sensitive events agent/turn-stopping, tools/post-execute, tools/pre-execute with ctx.on() — Cordis's broadcast registration, where every listener runs and none can starve another. Every listener here delegates through next(), so the chain is never short-circuited, and a mutation is applied to the value next() produced rather than returned in its place:
- tools/post-execute — also used by cc-safety-net (1576★).
- tools/pre-execute — also used by cc-safety-net (1576★).

Static evidence: dsh-plugin-doctor K10–K13 report pass for every check on this repository.

Topics

dsh, dsh-plugin, deepseek-harness, engineering-discipline, requirements, guard, skill, quality-gate, delivery-gate

Contributors

  • @PerryLink — creator and maintainer: the grill → design → red → green → review → verify discipline loop, the four-phase delivery gate, the five-language docs, and the CI/release pipeline.

PerryLink DSH Plugin Family

This project is one of the 33 actively maintained DeepSeek Harness plugins from PerryLink — the roster is 42, of which 6 are frozen and 3 retired; every one keeps its row below, with the reason in the Status column. If this one helps you, the others likely will too:

Plugin One-liner Status
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 🚫 RETIRED — see the note above
dsh-budget Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. 🧊 FROZEN — see the repo README
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 Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore
dsh-claude-move Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH 🧊 FROZEN — see the repo README
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 Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here)
dsh-defend Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. 🧊 FROZEN — see the repo README
dsh-doublecheck Engineering-discipline guard: requirements grill, test gates, adversary review
dsh-draw Unified static-image generation routing for DeepSeek Harness. 🧊 FROZEN — see the repo README
dsh-fast Read-only performance diagnostics for DeepSeek Harness.
dsh-fund-research Deterministic research reports for Chinese public mutual funds
dsh-github GitHub PR/issues integration for DSH, every write gated by approval
dsh-industry-research Industry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble
dsh-laya Laya typed decisions (noul/choice/score) as a first-class Cordis service and model-visible tools
dsh-library Local document knowledge base for DeepSeek Harness.
dsh-local-ai Local-model (Ollama) integration for DeepSeek Harness.
dsh-lsp-actions LSP diagnostics, formatting, completion, code actions and rename over language servers
dsh-mask PII masking middleware: anonymize at the model boundary, restore at the display layer
dsh-mcp-panel Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors
dsh-memento Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool 🧊 FROZEN — see the repo README
dsh-observe OpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
dsh-output-styles Claude Code outputStyles-equivalent runtime style switching
dsh-permission-rules Claude Code-style declarative allow/deny/ask permission rules with audit
dsh-plugin-certification Community certification registry with repro-checkable grades and badges
dsh-plugin-doctor Zero-dependency static + sandbox smoke detector for DSH plugins
dsh-plugin-guide Plugin-development knowledge base as an on-demand agent skill
dsh-plugin-kit Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins
dsh-plugin-upgrade One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card
dsh-plugin-upgrade-015 Merged 0.1.3-alpha.1 → 0.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner 🚫 RETIRED — corridors carried by dsh-plugin-upgrade
dsh-reach Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console 🧊 FROZEN — see the repo README
dsh-research-report Verifiable research-report engine: content-addressed evidence ledger and sealed versions
dsh-score Multi-dimensional quality scoring for DeepSeek Harness plugins.
dsh-session-pin Pin sessions in the Web sidebar with durable ordering 🚫 RETIRED — see the note above
dsh-session-sync Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store.
dsh-skill-pack-security Security-audit skill pack: secret scan, dependency and supply-chain review
dsh-talk Voice-first session loop for DeepSeek Harness: talk to it, hear it answer.
dsh-team-rooms Cross-session team rooms: shared message bus, task board and timeline 🚫 RETIRED — see the note above
dsh-test-drive Isolated install-and-smoke test drives for DeepSeek Harness plugins.
dsh-ticktick TickTick/Dida365 task bridge: session-header panel + 11 tools
dsh-translate Vendor parameter translation and deterministic JSON repair for DeepSeek Harness.

Install from the DSH Desktop Market

All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.

License

Apache License 2.0 © 2026 dsh-doublecheck contributors

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-doublecheck 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-doublecheck`。

dsh-doublecheck 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-doublecheck 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-doublecheck 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.1.7-rc.2、0.1.7-rc.1、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1。版本较多,只列出前 8 个。

dsh-doublecheck 用的是什么许可证?

上游标注为 Apache-2.0。商用或二次分发前请到仓库确认许可证原文。

dsh-doublecheck 有哪些功能?

需求六维度拷问与共识门禁、红绿测试证据强制校验、子代理对抗式交付评审、四阶段交付门禁与命令、严格模式一键覆盖配置。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

PerryLink 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-04。