🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

中文审阅守卫 ROBOHAPPYIY/dsh-zh-review-guard

DeepSeek Harness
ROBOHAPPYIY33 天前有提交已提供中文文档扫描:含敏感能力

让内部思考可见可审,面向说明始终用简体中文

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ROBOHAPPYIY/dsh-zh-review-guard
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/11/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 33 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 35 处,展示前 15 条)
  • 读取本地文件
    lib/index.js:237
    if (!existsSync(file)) return false
  • 读取本地文件
    lib/index.js:238
    if (statSync(file).size < max) return false
  • 读取本地文件
    lib/index.js:241
    if (existsSync(prev)) unlinkSync(prev)
  • 删除本地文件
    lib/index.js:241
    if (existsSync(prev)) unlinkSync(prev)
  • 写入本地文件
    lib/index.js:245
    renameSync(file, prev)
  • 读取本地文件
    lib/index.js:263
    if (!existsSync(dir)) return res
  • 读取本地文件
    lib/index.js:268
    const entries = readdirSync(dir)
  • 读取本地文件
    lib/index.js:272
    return { f, m: statSync(join(dir, f)).mtimeMs }
  • 删除本地文件
    lib/index.js:283
    unlinkSync(join(dir, item.f))
  • 写入本地文件
    lib/index.js:546
    mkdirSync(dirname(target), { recursive: true })
  • 写入本地文件
    lib/index.js:547
    writeFileSync(target, text, 'utf8')
  • 写入本地文件
    lib/index.js:558
    mkdirSync(logDir, { recursive: true })
  • 写入本地文件
    lib/index.js:561
    appendFileSync(file, JSON.stringify({ at: new Date().toISOString(), instanceId, ...obj }) + '\n', 'utf8')
  • 写入本地文件
    lib/index.js:604
    mkdirSync(dir, { recursive: true })
  • 删除本地文件
    lib/index.js:616
    unlinkSync(join(dir, item.f))
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 内部推理可审查
  • 面向用户说明用简体中文
  • 注入会话系统提示词

DSH 内置插件:让内部推理可被用户审查,并让所有面向用户的说明都用简体中文。注入每个会话的系统提示词。

README

由 DeepSeek 最新模型翻译生成
dsh-zh-review-guard 让 DSH 的内部思考变成你能看见、能审阅的内容;让面向你的说明始终是简体中文。 它不是一个「记得写进 AGENTS.md 就好」的约定,而是 DeepSeek Harness 的 bundle 插件:每个会话装配系统提示词时都会被调用一次,规则以常驻 section 的形式注入,不受上下文压缩影响。 没有它的时候 | 痛点 | 后果 | | 内部思考里只有结论,没有目标理解、方案取舍、风险与不确定之处 | 你看到的是「结论凭空出现」,没法复核,也没法在早期纠偏 | | 思考、权限申请说明、汇报文字中英混杂 | 阅读成本高,专有名词还得自己对照 | | 靠 AGENTS.md 或每次手动叮嘱来约束风格 | 换会话、被上下文压缩、被上游预设整体替换 —— 随时失效,而且没人察觉 | | 申请系统级权限(沙箱升级、装依赖、不可逆操作)时不说清要做什么 | 你只能凭信任点「同意」 | 装上之后 1. 每个会话的系统提示词里都有一段常驻规则(section 名 zh-review-guard),从会话第一轮就在。 2. 「到底有没有生效」不用猜:每次装配都会写一行观测记录,status.json 里有装配次数、替换次数与错误计数。
展开完整文档(README 剩余 1 节)
dsh-zh-review-guard

让 DSH 的内部思考变成你能看见、能审阅的内容;让面向你的说明始终是简体中文。

它不是一个「记得写进 AGENTS.md 就好」的约定,而是 DeepSeek Harness 的 bundle 插件:每个会话装配系统提示词时都会被调用一次,规则以常驻 section 的形式注入,不受上下文压缩影响。

没有它的时候

| 痛点 | 后果 |
| 内部思考里只有结论,没有目标理解、方案取舍、风险与不确定之处 | 你看到的是「结论凭空出现」,没法复核,也没法在早期纠偏 |
| 思考、权限申请说明、汇报文字中英混杂 | 阅读成本高,专有名词还得自己对照 |
| 靠 AGENTS.md 或每次手动叮嘱来约束风格 | 换会话、被上下文压缩、被上游预设整体替换 —— 随时失效,而且没人察觉 |
| 申请系统级权限(沙箱升级、装依赖、不可逆操作)时不说清要做什么 | 你只能凭信任点「同意」 |

装上之后

1. 每个会话的系统提示词里都有一段常驻规则(section 名 zh-review-guard),从会话第一轮就在。
2. 「到底有没有生效」不用猜:每次装配都会写一行观测记录,status.json 里有装配次数、替换次数与错误计数。
3. 规则只有一份文本(lib/index.js 的 RULES_TEXT):系统提示词 section 注入完整正文,AGENTS.md 默认写精简兜底版(前 2 条,约 1/3 体积)—— 同源生成,既不会两处文案漂移,也不会为同一条规则每轮付两份 token。

它注入的规则

1. 内部思考(reasoning / thinking)一律使用简体中文。
2. 内部思考视为用户可见、需要审阅的内容:给出结论之前,写清目标理解、方案取舍、为什么选 A 而不选 B、风险与不确定之处、尚未解决的问题,而不是只给结论。
3. 需要用户拍板或复核的地方(方案选择、不可逆操作、外部审批),明确写出「这是需要你确认的点」。
4. 面向用户的说明、汇报、提问、交付说明一律使用简体中文;代码、命令、路径、专有名词保留原文。
5. 申请系统级权限(沙箱升级、网络/文件系统访问、安装依赖、审批弹窗)或执行不可逆操作前,先用简体中文说明:要做什么、为什么需要、影响范围、是否可回退。
6. 报告结论时附证据(命令、输出、文件路径与行号);先查证再动手,能从代码库或本机查到的客观事实不要反问用户。
7. 能回退的下一步直接做并汇报;只有属于用户的选择(偏好、预算、不可逆操作、外部审批)才停下来问。

安装(约 30 秒)

前提:目标机装了 DeepSeek Harness,命令行里 dsh --version 有输出。

最省事是一条命令(机器能访问 GitHub 就行,不用先下载):

走 git 源,pin 住 tag;实测约 11 秒
dsh plugin --profile desktop add github:ROBOHAPPYIY/dsh-zh-review-guard#v0.2.2

没有 git / 不想走 git:直接拉 Release 附件
dsh plugin --profile desktop add https://github.com/ROBOHAPPYIY/dsh-zh-review-guard/releases/download/v0.2.2/dsh-zh-review-guard-0.2.2.tgz

把 desktop 换成你的 profile 名(Web GUI 用 web)。网络不通就先设代理:$env:HTTPS_PROXY='http://127.0.0.1:7897'。装完同样要重启 App。

离线安装(先下载、核对哈希、再装):

1. 下载(也可在浏览器里点 Release 页的附件) Invoke-WebRequest "https://github.com/ROBOHAPPYIY/dsh-zh-review-guard/releases/download/v0.2.2/dsh-zh-review-guard-0.2.2.tgz" -OutFile .\dsh-zh-review-guard-0.2.2.tgz

2. 核对(可选但推荐):39077 B / 803C38D6768620D861ECB833A4143CC94574322A07B57BA576AA1B635224E368 Get-FileHash .\dsh-zh-review-guard-0.2.2.tgz -Algorithm SHA256

3. 装进你的 profile(Web GUI 用 web,桌面端用 desktop)powershell
dsh plugin --profile desktop add .\dsh-zh-review-guard-0.2.2.tgz

然后重启 DSH App —— profile 的 bundle 层栈在启动时装配,装完必须重启才生效。

卸载: powershell
dsh plugin --profile desktop remove dsh-zh-review-guard

完整的保姆级教程(下载 → 核对哈希 → 选 profile → 安装 → 重启 → 验证 → 卸载 → 故障排查 A–H)见 INSTALL.md。

零第三方依赖(只用 node: 内置模块)、没有编译步骤、不联网、不写配置文件之外的位置:tgz 拷过去就能装。仓库里的 tgz 是 npm pack 产物,Release 附件与它逐字节一致。

工作原理

两条互相独立的通道,任一通道生效即可保证规则常驻:

| 通道 | 机制 | 覆盖范围 | 抗压缩 |
| 1(主) | ctx.on('system-prompt/assemble', …) 瀑布,按 sectionName 注入常驻 section { name: 'zh-review-guard', order: 4, text: <解析后的规则文本> } | 每个会话每次装配系统提示词 | 是(官方注入点,不走 transcript) |
| 2(备) | 把规则同步到 $DSH_HOME/AGENTS.md(默认写精简兜底版:前 2 条内置规则,agentsDigestLines 可调、设 0 则写整份正文),由 @deepseek-ai/dsh-agent-instructions 在会话首个 pre-step 作为持久基线注入 | 会话首轮(含通道 1 被上游整体替换的极端情形) | 是(基线逐轮对账) |

为什么必须准备第二条通道?

某些会话预设(例如本机的 router-standard)在「首轮,还没有任何 tool/call」时会整体替换 sections,只保留自己的段。此时通道 1 注入的段会被丢掉 —— 而通道 2 走的是 AGENTS.md 基线,不经过那个替换点,因此首轮也一定有规则。

AGENTS.md 的接管规则:只有下列情形之一成立时才写入 —— ①文件不存在或只有空白;②文件内容与本插件记录的"上次写入哈希"一致(zh-review-guard/agents-state.json,用于规则文件改动后就地更新);③文件全文就是本插件的文本(完整正文,或任意条数的精简兜底版),只是 managed-by 标记里的版本号不同(老版本、或换过 agentsDigestLines 配置留下的文件)。你自己手写的 AGENTS.md 不会被覆盖;一旦确实要覆盖,先备份到 zh-review-guard/backups/(默认保留 5 份),判定结果与依据分别记录在 status.json 的 agentsFile.owned 与 agentsFile.ownedBy。

注意:精简兜底版只含内置规则的前 N 条;你在 rules.md 里追加的内容只进通道 1(系统提示词)。要让兜底也覆盖自定义规则,把 agentsDigestLines 设为 0。

配置

cordis.patch.yml 的 config,全部可选:

| 键 | 默认 | 说明 |
| enabled | true | 关掉整个插件 |
| sectionName | zh-review-guard | 注入的 section 名;同名段就地替换(幂等,不会重复追加) |
| order | 4 | 段排序(router 用 0–3) |
| logDir | $DSH_HOME/zh-review-guard | 观测日志目录 |
| syncAgentsFile | true | 是否同步 $DSH_HOME/AGENTS.md |
| agentsDigestLines | 2 | 同步进 AGENTS.md 的内置规则条数(精简兜底版);0 = 写整份正文(v0.2.1 的行为) |
| backupAgentsFile | true | 覆盖 AGENTS.md 前先把原文件备份到 <logDir>/backups/ |
| agentsBackupKeep | 5 | 备份最多保留几份,超出删最旧 |
| includeSubagents | true | 子会话是否也注入 |
| syncIntervalMs | 60000 | 周期兜底同步间隔(同时也是规则热更新与健康检查的心跳) |
| rulesMode | append | 规则来源:append = 内置 7 条 + 你的追加;replace = 完全用你的文件;off = 只用内置 |
| rulesFile | $DSH_HOME/zh-review-guard/rules.md | 你的规则文件;不存在就回退内置基线 |
| rulesMaxChars | 12000 | 规则文本上限,超出即截断并在 status.json 记 truncated |
| maxLogBytes | 2000000 | assemblies.jsonl 大小上限,超出轮转为 assemblies.jsonl.1(只保留一代) |
| instancesTtlMs | 604800000 | instances/ 里旧快照的存活时间(默认 7 天) |
| instancesMaxFiles | 20 | instances/ 文件数上限(当前实例永不删) |
| recordSectionNames | false | 是否把完整段名清单写进日志;默认只写数量 sectionCount 与哈希 sectionNamesHash |
| healthCheck | true | 主通道健康检查(写 health.json;判定失效时 console.warn 一次) |
| staleGraceMs | 120000 | 启动宽限期:这段时间内不下"失效"结论 |
| staleLagMs | 7200000 | 弱证据阈值:有会话活动、但心跳滞后超过它即判失效 |

让规则按你的需要走内置的 7 条是基线。想再加自己的规则,只改一个文件 —— 两条通道会同时用新文本: powershell New-Item -ItemType Directory -Force "$env:USERPROFILE\.dsh\zh-review-guard" | Out-Null @'
- 汇报时先给结论,再给证据。
- 动手前先说明会碰哪些文件。
'@ | Set-Content -Encoding utf8 "$env:USERPROFILE\.dsh\zh-review-guard\rules.md"

| rulesMode | 最终注入的规则 | 适合谁 |
| append(默认) | 内置 7 条 + ## 本机追加规则 + 你的文件 | 想保留基线、只做加法 |
| replace | 只用你的文件内容(仍带归属标记) | 想完全自定义 |
| off | 只用内置 7 条(忽略文件) | 临时排除自己的规则 |

改完不用重启:心跳每 syncIntervalMs(默认 60 秒)检查一次规则文件的修改时间,有变化就重新解析 —— 计入 status.json 的 rulesReloads,通道 1 与通道 2 同时换成新文本。

可观测性

- $DSH_HOME/zh-review-guard/assemblies.jsonl — 每次装配一行:at / instanceId / sessionId / fresh / isSubagent / action / rulesHash / sectionCount / sectionNamesHash(recordSectionNames: true 时才附完整 sectionNames 数组);超过 maxLogBytes 轮转为 assemblies.jsonl.1
- $DSH_HOME/zh-review-guard/status.json — 最后活跃实例的快照:assemblies / sessions / appends / replaces / hookErrors / lastSectionCount / lastSectionNamesHash / logRotations / instancesPruned / agentsFile{path,owned,ownedBy,reason,userContentKept,backup,syncedAt,skippedAt,error,digestLines,digestChars}、rules{source,mode,chars,hash,truncated}、rulesReloads、contract{event,registerOk,eventKnown,error}
- $DSH_HOME/zh-review-guard/health.json — 主通道心跳:level / stale / reasons / checkedAt / sessionsSeen(判断「主通道是否被上游悄悄改死」就靠它)
- $DSH_HOME/zh-review-guard/instances/<id>.json — 每个实例各自的计数(双实例下不互相覆盖)

常见问题

会和我自己的 AGENTS.md 打架吗?

不会。只有文件不存在/为空、或文件确实是本插件管理的(agents-state.json 里记录的哈希对得上,或全文就是本插件的文本)才会写入;你自己手写的文件永远是安全的。确实要覆盖时先备份到 zh-review-guard/backups/,判定依据记录在 status.json 的 agentsFile.ownedBy。默认写入的是精简兜底版(agentsDigestLines: 2,前 2 条内置规则),完整正文在系统提示词里 —— 两处同源,不会互相矛盾。

为什么有时会有两个实例?

开发机热装配(loader.create)和 cordis.patch.yml 的 insert 层会各起一个实例:它们用同名 section + 就地替换,系统提示词里最终只有一段。hookErrors: 0 且 replaces > 0 就是这条幂等路径的证据。只用 dsh plugin add 安装时通常只有一个实例。

怎么彻底卸干净?

dsh plugin --profile remove dsh-zh-review-guard 会同时清掉 profile package.json 里的依赖项与 dsh.profile.bundles 项。插件之外还剩两处,按需删:$DSH_HOME/AGENTS.md 里那段带标记的规则、以及 $DSH_HOME/zh-review-guard/ 观测目录。

我怎么知道主通道(system-prompt/assemble)还活着?

看 health.json:

- level: "ok" —— 有新的装配记录,主通道在工作。
- level: "idle" —— 还没有会话活动(刚装完的机器就是这样),不下结论、不误报。
- level: "warming" —— 启动宽限期内(默认 2 分钟),不下结论。
- level: "stale" —— 疑似失效:加载之后确实出现了新会话(sessionsSeen.newDirsSince > 0),却一次装配都没发生。此时 reasons 会写明证据,App 日志里出现一条 主通道疑似失效 警告。

status.json 的 contract 是另一条独立的线:registerOk 记录 ctx.on('system-prompt/assemble', …) 是否注册成功(上游改事件名时这里会变成 false 并带 error),eventKnown 是尽力而为的事件名探测(true / null;null 只表示「没探到」,不代表坏)。

环境要求?

node >= 22(DSH 自带的 node 就满足)、dsh >= 0.0.1-rc。零第三方依赖,无编译步骤,不需要网络与包源。

从源码开发bash
git clone https://github.com/ROBOHAPPYIY/dsh-zh-review-guard
node test/selftest.mjs # 75 项断言,零依赖,不需要 DSH 运行时

在装有 dsh-super-injector 的开发机上可以免重启热装配:

dev_install_package <仓库目录> # 热装配(改代码后 dev_reload_package 重载) dev_uninject_plugin dsh-zh-review-guard

许可证

MIT © 2026 ROBOHAPPYIY —— 可自由使用、修改、再分发(含商用、含二次封装),保留版权声明即可。

相关

- 保姆级安装教程与排障:INSTALL.md
- 版本说明:Releases
预览分享卡片长什么样 ↓ROBOHAPPYIY/dsh-zh-review-guard
分享 · DeepSeek Harness Hub
ROBOHAPPYIY/dsh-zh-review-guard

让内部思考可见可审,面向说明始终用简体中文

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部