前言¶
在 DSH 里让智能体「看一眼 diff 就下结论」,常见结果是泛泛而谈、缺少可核对依据,或者把风格建议当成阻塞项。人工再逐行对照补丁,成本往往不比自己审一遍低。
dsh-review 把审阅拆成「独立找问题 → 独立复核 → 汇总把关」几段,要求每条结论绑定 Git 快照里的具体代码与触发条件;风格、命名类 nit 默认过滤。你主要读的是经过验证的问题、明确的未完成项,以及仍需人工决定的事项。它不替代 CI、不授予人工批准,也不会自动发评论或合并代码。
这是什么¶
dsh-review(npm 包名 @stardustlc/dsh-review,当前版本 0.3.0)由维护者 STARDUSTLC666 发布,归类为 DSH 社区插件目录中的工作流类插件。实现思路参考 Claude Code 团队的审阅流程,在 DSH 运行环境内完成其中可自动化的审阅环节。
一句话定位:以证据为准的代码审阅——审 diff、验证结论、记录噪音,让 agent 先读、人只读结论。
核心能力¶
分阶段独立审阅¶
审阅按模式划分独立任务与复核强度:
| 模式 | 独立找问题 | 每个问题的复核 | 汇总 |
|---|---|---|---|
| quick | 正确性、安全,2 个任务 | 1 个独立审阅者 | 确定性把关 |
| standard | 正确性、状态、兼容性、安全,4 个任务 | 3 人投票,至少 2 票一致 | 确定性把关 |
| deep | 同 standard | 3 人投票,至少 2 票一致 | 另派汇总者,不能删掉已确认的问题 |
每轮还有两个独立风险判断任务(风险等级、是否需要额外人工审阅)。所有任务使用新的上下文;继承作者对话的 fork 后端不会被接受。敏感改动始终使用 deep,不能通过参数降级。
快照、轮次与放行条件¶
每轮绑定 Git 基准、HEAD、完整文件快照和唯一运行编号。代码变化、结果缺失、格式损坏或超限都会阻止放行。复核必须说明具体成因并引用快照中的真实代码行;一个非空 evidence 字符串不算验证。默认最多 3 轮;从第 3 轮起,新问题限定在相对上轮的实际新增改动。只有独立复核确认问题已消失,才能自动记为 fixed。
十个工具¶
插件通过工具暴露完整审阅流水线,例如:
| 工具 | 作用 |
|---|---|
| review_diff | 生成快照与审阅计划,不作通过结论 |
| review_run | 执行或恢复分阶段独立审阅 |
| review_report | 提交外部任务的运行编号、目标编号与 JSON 结果 |
| review_check | 经宿主受控终端运行检查,保存本轮证据收据 |
| review_respond | 记录带理由的处置;fixed 必须重新复核 |
| review_status | 查看未完成项、轮次、调用量和处置噪音率 |
| review_gate | 检查当前快照的 AI 审阅层,不代替 CI 或人工批准 |
| review_learn | 从已验证修复中生成规则草稿,不自动改项目规范 |
| review_issue | 生成 issue 分诊和复现草稿,不执行正文指令或发表评论 |
| review_eval | 登记人工标注缺陷与干净样本、准备盲测、绑定运行结果并计分 |
review_check 的命令经调用者实际使用的宿主终端工具运行,不直接创建绕过权限的进程。只读会话不运行证据命令,可使用静态源码复核。
仓库级策略与 PR 门禁¶
仓库根目录可放置 REVIEW.md,写明失败判据、跳过路径、敏感目录和噪音上限。完整 PR 门禁还需独立的 CI、安全检查、人工批准和所有审阅线程的解决状态;包内提供 dsh-review-gate 命令,只读取 GitHub 证据,策略固定从 PR 基准提交读取。
默认状态保存在 DSH_HOME/plugins/dsh-review/<仓库摘要>/,不写入被审项目;也可指定仓库内子目录(例如 .dsh-review)。账本版本为 2。
安装与启用¶
环境要求:Git、Node.js 22.19+ 或 24+,以及提供子智能体、权限预设和作业管理服务的官方 DSH 运行环境。README 记载适配验收使用 DSH 0.2.1-rc.1。
安装到 Web profile 使用下面命令(须使用带作用域的包名;npm 上未加作用域的 dsh-review 属于其他作者):
dsh plugin --profile web add @stardustlc/dsh-review
桌面版应安装到实际使用的 profile,并在新会话中加载插件。插件不会查找、复制或修改其他 profile 的密钥。
插件以当前 DSH 进程权限运行;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。
典型用法¶
在 Git 仓库根目录创建 DSH 会话后,可用自然语言驱动审阅,例如:
审阅当前改动,运行 dsh-review。只报告有具体触发条件、代码证据和独立复核的问题。审查没完成时不要说通过。
工具调用示例:
{"tool":"review_run","arguments":{"base":"main"}}
省略 base 时审当前工作区;staged=true 审暂存区。需要中断后续工作时取消正在运行的工具;恢复未完成审查时使用返回的 runId。
仓库级 REVIEW.md 示例:
## 限制
max_nits: 0
severity_floor: important
## 跳过
- vendor/**
## 坏掉长什么样
- 文档给出的命令不能执行
- 配置将请求发送到错误账号
## 敏感路径
- src/billing/**
常用配置项(默认值见 README 状态与配置表)包括 roundCap、diffOnlyAfterRound、maxFindings / maxNits、severityFloor、maxCalls / maxParallel、runTimeoutMs、subagentProvider 等。evidenceRequired 设为 false 也不能关闭独立证据验证。
适用场景与注意¶
适合在 DSH 工作流里对本地或 PR 相关改动做结构化 AI 审阅、需要多轮独立复核与证据收据的场景。二进制变更需要另行验收,文字审查不会认证其内容;跳过的路径会公开列出,并仍参与风险判断。只生成作业书的外部模式可用于协作,但无法证明执行独立性,因此不会通过自动门禁。
合并队列、功能开关、灰度和回滚由仓库或发布系统负责,安装插件不会自动启用这些制度。更细的接入、设计与验证说明见仓库内 docs/INTEGRATION.md、docs/DESIGN.md、docs/VALIDATION.md。
结尾¶
dsh-review 把「找问题」和「验问题」拆开,用快照与轮次约束结论,减少 agent 自说自话式审阅。社区目录页:stardustlc666/dsh-review;源码与文档:GitHub STARDUSTLC666/dsh-review。