dsh-host-compliance-check
DSH 宿主插件:轮末自动派发需求合规检查子智能体 (DeepSeek Harness)
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 18, 2026
- Updated
- Aug 18, 2026
Introduction
dsh-host-compliance-check
DSH(DeepSeek Harness)宿主插件:每个用户输入轮次结束时,若本轮修改过文件,自动派发一个需求合规检查子智能体(阻塞执行),把检查报告注入主会话,防止"改完就忘、需求没对齐就收尾"(迁移自 Trae 的 PostToolUse + Stop hook)。
特性
- 轮末自动检查:轮次正常结束时,若本轮改过文件且尚未检查,阻塞派发检查子智能体,报告注入主会话
- 每用户输入最多检查一次,避免重复
- 防递归:检查子智能体自身纳入豁免集
- 净 diff 注入:同一文件多次编辑合并为首版 before → 最终 after 的行级 diff(近似 unified diff 多 hunk)
- 内容截断保护:超大 diff 按字符/行数上限截断,并提示检查子智能体 read 原文件查看全貌
配置(cordis.patch.yml 的 entry config)
| 字段 | 默认值 | 说明 |
|---|---|---|
watchTools | ['write', 'edit'] | 记录哪些写工具修改 |
skipPaths | [] | 跳过匹配的路径(RegExp/字符串数组) |
providerName | 'subagent-fork-in-process' | 检查子智能体的 provider |
promptTemplate | 内置模板 | 自定义模板,支持 {{requirement}} / {{files}} / {{diff}} |
diffMaxChars | 0 | 注入 prompt 的 diff 总字符上限,0 = 不限制 |
diffMaxLinesPerFile | 0 | 单文件 diff 行数上限,0 = 不限制 |
极端大 diff 场景(超大文件整段重写、多文件大改)可按需设置上限,例如 diffMaxChars: 8000、diffMaxLinesPerFile: 200。
安装
在 DSH profile 目录(例如 ~/.dsh/profiles/web/)下:
-
添加依赖:
// package.json { "dependencies": { "dsh-host-compliance-check": "github:liuyun847/dsh-host-compliance-check" } }然后
pnpm install(或npm install)。 -
在
cordis.patch.yml中注册插件行(可加 config 覆盖默认值):- insert: - id: compliance-check name: 'dsh-host-compliance-check' -
重启
dsh web生效。
工作原理
- 监听
tools/result(≈ PostToolUse):记录本轮修改过的文件及 before/after 内容,嵌套工具调用经 parent token 冒泡到顶层 - 监听
agent/turn-stopping(≈ Stop):轮次要正常结束时,若本轮改过文件且未检查,派发检查子智能体并await其完成,主会话挂起 - 检查子智能体返回报告即完成(无完成标记协议),每个用户输入最多触发一次
测试
纯逻辑回归测试(无 DSH 运行时):
node tests/diff.test.mjs
退出码 0 = 通过。
License
MIT