PerryLink/dsh-doublecheck26

dsh-doublecheck

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

AI 分析

适合需要在交付前进行需求对齐、自动化测试验证和质量把控的开发团队。

パッケージ
dsh-doublecheck
バージョン
0.9.11
ライセンス
Apache-2.0
最終更新
2026/09/12

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-doublecheck

ドキュメント

README 全文を読む ↗

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.

KeyDefaultMeaning
specFile'doublecheck-spec.md'Workspace file for the committed spec markdown (grill row).
reportFile'doublecheck-report.md'Workspace file for the delivery report (grill row).
reportVerifytrueRun the verification workflow by default (grill row).
verifyProvider'fork'Subagent provider for the per-dimension checkers (grill row).
verifyMode'all'all = one parallel checker per dimension; single = one combined checker (grill row).
intensity'remind'Enforcement strength of the grill, red/green, and review gates (remind / warn / block).
enableByDefaulttrueMaster switch for sessions without a /doublecheck on|off record.
language'en'Injected reminder/deny/review/gate prose language (en / zh).
guardTools['edit', 'write']Mutation tool names both gates watch.
vagueTaskMaxChars200Longer tasks are never treated as vague.
remindOncetrueInject each reminder at most once per session (durable across restarts).
testToolNames['bash', 'pwsh']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.grilltrueOff disables the grill gate.
modules.tddtrueOn enables the red/green evidence gates.
modules.adversaryfalseOn enables the forked critic review at green.
adversaryModelnullCritic model route; null = main model self-reviews.
adversaryProvider'fork'Subagent provider the critic runs on.
adversaryMaxFindings5Findings cap (1–20) injected into the session.
adversaryTools['read', 'glob', 'grep']Critic tool allowlist; keep it read-only.
adversaryTimeoutMs120000Hard time budget for one critic run.
gate.enabledtrueMaster switch for the gate panel and the turn-boundary red notice.
gate.planSuggestiontrueAppend the plan-mode re-check suggestion to red reports.
gate.reportFile'gate-report.md'Workspace file for the gate report.
gate.requirements.checklist(six spec-dimension questions)Pluggable key-question checklist: { id, question, specDimension, required }.
gate.requirements.minConfirmed6Minimum required questions that must pass (1..required count).
gate.requirements.interrogateTool'ask_user_question'Tool name whose calls count as interrogation evidence.
gate.tests.requirePassingRuntrueA non-passing (or missing) latest test run is a red light.
gate.tests.allowFailingRuns0Failing runs after the latest green allowed before red.
gate.tests.requireCoveragefalseOn requires coverage evidence in the test output.
gate.tests.minCoveragePct80Minimum coverage percentage (0–100).
gate.tests.evalReports.enabledfalseOn folds the dsh-eval report (dsh-auto-review's eval engine) into the test evidence.
gate.tests.evalReports.dir'.eval-reports'Workspace-relative directory holding the engine's report.
gate.tests.evalReports.file'report.json'Report file name inside the directory.
gate.tests.evalReports.requiredfalseA missing report is a red light exactly when true (a skip otherwise).
gate.consistency.*provider: 'fork', model: null, tools: ['read','glob','grep'], timeoutMs: 120000, maxFindings: 5The local consistency reviewer's knobs (model: null = main model).
gate.review.engine'auto'auto = dsh-auto-review verdict records when present, else the local reviewer; local = always local.
gate.review.provider'fork'The local review reviewer's provider (its model/tools/timeoutMs/maxFindings match gate.consistency.*).

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.