Rhymer-Lcy/dsh-plugin-loud-failure1

dsh-plugin-loud-failure

DeepSeek Harness plugin that turns silent tool failures into loud ones: a tools/post-execute policy that matches warning signatures in successful tool output and blocks the result or attaches a notice

包名
dsh-plugin-loud-failure
版本
0.1.1
许可证
MIT
最近更新
2026年8月16日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Rhymer-Lcy/dsh-plugin-loud-failure

Configuration

The bundle inserts one row, id: loud-failure, with the schema defaults restated. A patch replaces a row's whole config, so an override in your profile's cordis.patch.yml must restate every key it keeps.

KeyTypeDefaultMeaning
builtinRulesbooleantrueLoad the built-in rule table before user rules.
rulesRule[][]User rules. An id shared with a built-in rule replaces that rule in place; new ids append in order; two user rules with the same id fail the load.
shellToolsstring[][bash, pwsh, job_output]Tools inspected by rules that omit tools. Add other shell-like tools here (for example a terminal-read tool from another bundle).
excerptCharsnatural240Maximum characters of the matched excerpt shown to the model.
scanValuebooleanfalseAlso scan the JSON of a successful canonical value, for tools whose text projection hides stderr. Note: this JSON.stringifys the whole value before matching, and a match shows up to excerptChars characters of that otherwise hidden value to the model and the session log.

A rule:

FieldTypeMeaning
idstring, requiredStable identifier.
patternstring, requiredJavaScript regular-expression source.
flagsstringAny of i, m, s, u. g and y are rejected because they carry state between calls.
toolsstring[]Tools the rule applies to. Omitted or empty: shellTools. ['*']: every tool.
whensuccess | error | anyWhich outcomes the rule inspects. Default success, so a result that already failed is not decorated twice.
actionerror | context | off, requirederror blocks, context attaches a notice, off disables the rule.
messagestring, requiredWhat the signature means and what the model should do next. It is shown to the model verbatim.

Disable one built-in rule and add one of your own: