前言¶
在 DeepSeek Harness(DSH)里跑完一轮守护类检查,你通常会拿到一份 JSON 报告:LOG-RETENTION-SHORT、FIN-AUTH-PLAINTEXT、MED-EMR-RETENTION-1 等规则一条条列出,附一句「请整改」。扫描器已经说明「哪有问题」,但落地时往往还要自己查:改到什么值才算合规、对应哪个文件哪一行、文档模板长什么样、改完用什么命令验证、哪些能机械改、哪些必须业务决策。
dsh-remediation(npm 包名 @deepwhale-cn/dsh-remediation,仓库 feely0208/dsh-remediation)由维护者 feely0208 发布,定位是「检查报告 → 整改清单」的转换器:不新增判据,只读已有报告的 --json 输出,把每条命中翻译成步骤、改前改后片段、预计工时和验证方式;对 recipe 里声明了 autoApply 的规则,在默认 dry-run 下预览修改,--apply 才落盘。社区目录页:skillhub.cn/plugins/feely0208/dsh-remediation。
这是什么、不是什么¶
一句话:消费任意 guard 插件的 JSON 报告,输出按严重度排序的整改清单,并可导出 Markdown、对部分规则做有边界的自动修改。
它是:
- 报告解读与整改建议生成器(问题、依据、改法、工时、验证命令);
- 可交付附件:
--out写出 Markdown 整改清单; - 可选机械修改:仅处理 recipe 中声明的
autoApply,默认不写盘。
它不是:
- 扫描器(无
rules/,问题全部来自输入报告); - 合规或安全结论的判定方(输出为建议与提示确认);
- 保证「照做即合规」的自动化(条款适用与业务取舍仍需人工);
- 对未声明
autoApply的文件做任何修改;没有专用 recipe 的规则会写明「本条暂无专用改法」,并回引原报告 advice,不编造步骤。
与生态内其他插件的分工(README 原文表述):dsh-cn-log-retention / dsh-industry-medical 等负责发现问题;dsh-remediation 说明怎么改、改完怎么验;dsh-fix-verify 负责改前改后复核;dsh-guard-suite 可聚合总报告供本插件消费;dsh-compliance-doc 可做交付文档,本插件 --out 的清单可作为其输入素材。
核心功能¶
整改清单字段¶
对每条 finding,尽量提供:
- 问题:title、ruleId、文件与行号;
- 依据:source(如法规或规则出处);
- 具体改法:步骤与改前 → 改后片段;
- 预计工时;
- 验证:重跑哪条命令、哪个 ruleId 应消失。
终端会汇总命中条数、严重度分布、有/无专用改法的条数,以及 autoApply 处于 dry-run 还是已落盘。
Recipe 与规则覆盖¶
插件资产是 recipes/ 下的 JSON:每条规则一份,写清改法、工时、验证,可选 autoApply。--list-recipes 可查看当前版本覆盖情况。README 标明 42 条 recipe,其中 16 条 声明了 autoApply(如补 LICENSE 模板、日志留存天数、CI 相关配置等的定点替换)。
行业/地方 high 规则 15 条(医疗、教育、金融、深圳地方规则等)与 27 条高频通用规则在 README 中有完整 ruleId 列表;未覆盖的规则不会在清单里假装有改法。
autoApply 与安全边界¶
| 边界 | 行为 |
|---|---|
| 默认 | dry-run,只展示将改动的文件与位置 |
| 落盘 | 必须显式 --apply |
| 备份 | 写盘前备份为 <file>.bak-<YYYYmmdd-HHMMSS> |
| 范围 | 仅 recipe 声明的 newFile / setValue |
| 路径 | 目标必须在 --root 内,越界拒绝 |
| 其他 | 不执行任意脚本、不联网、不删除文件 |
setValue 约定:pattern 的最后一个捕获组为被替换的值,after 为替换后文本。
自定义 recipe 可通过 --rules-from <目录> 追加(目录下 *.json,可重复指定)。
退出码¶
0:正常(含 dry-run、apply 成功、--list-recipes、--help);2:输入缺失、JSON 无效、缺findings[]、--root不存在、参数错误、recipe 损坏等。
自动修改失败会在输出中标出;输入本身有效时清单仍可使用。
许可证:MIT(package.json)。当前版本 0.1.0,依赖 Node >=18,DSH 引擎 >=0.1.0-rc.6 <0.3.0。
安装与启用¶
通常可与深鲸守护系列一并安装;单独安装使用 README 中的命令:
dsh plugin --profile web add @deepwhale-cn/dsh-remediation
安装后 CLI 命令为 dsh-remediation(见 package.json bin)。
插件在当前 dsh 进程权限下读写项目文件;启用 --apply 前建议自行查看仓库源码与 MIT 许可证,确认 recipe 与 autoApply 行为符合预期。
典型用法¶
下面步骤与官方 README 一致,可直接复现。
1. 生成检查报告 JSON
dsh-cn-log-retention --root ./my-project --json > report.json
也可使用一键体检聚合报告:
dsh-guard-suite --json > report.json
2. 生成整改清单(默认不改文件)
dsh-remediation --input report.json --root ./my-project
3. 导出 Markdown 整改材料
dsh-remediation --input report.json --root ./my-project --out ./整改材料/
4. 机械修改:先 dry-run,再落盘
dsh-remediation --input report.json --root ./my-project
dsh-remediation --input report.json --root ./my-project --apply
5. 查看已覆盖规则
dsh-remediation --list-recipes
6. JSON 输出(供 CI 或二次处理)
dsh-remediation --input report.json --root ./my-project --json
改完后,README 建议仍用 dsh-fix-verify 做改前改后对比,并重跑原检查插件确认对应 ruleId 不再出现。
适用场景与注意¶
适合谁:已经在用 DSH 守护插件(日志留存、备案、行业包、dsh-guard-suite 等),需要把 JSON 报告变成可交付整改清单、或希望对部分规则做可控自动修补的团队与个人。
注意:
- 本插件不替代扫描与最终合规判断;未命中不代表无问题。
- 输出为整改建议,不构成安全或合规结论。
--apply会改盘并备份,但只限于 recipe 声明范围;业务上需区分「合规日志留存」与「排障短期轮转」等场景,README 在示例改法里也有说明。- 社区目录(如 skillhub.cn)与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,安装来源以目录页与 GitHub 为准。
结尾¶
dsh-remediation 补的是「报告之后」的空档:在不动原有判据的前提下,把每条问题写成能照着做的改法,并可选、有边界地自动改配置或补文件。若你手头已经有一份 guard 的 JSON 报告,可以从 --input + --root 跑一遍清单,再用 --list-recipes 对照自己关心的 ruleId 是否已有专用改法。
- 目录页:https://www.skillhub.cn/plugins/feely0208/dsh-remediation
- GitHub:https://github.com/feely0208/dsh-remediation