dsh_review
为 DeepSeek Harness(DSH)提供类似 Codex CLI 的交互式代码审查体验。
在 DSH Web 输入框中执行 /review,即可通过多级菜单选择未提交改动、某个 commit、某个 branch,或输入自定义审查要求。插件会把选中的目标转换成清晰的审查任务,交给当前 agent 直接读取 diff、检查代码并输出带严重度和证据的审查结果。
本项目是面向 DSH 的第三方插件,借鉴 Codex CLI 的交互式 Review 工作流,并非 OpenAI Codex 的官方组件或移植版本。
功能特性
- 交互式目标选择:通过
/review菜单选择审查范围,无需手写 Git 命令。 - Commit / Branch 二级菜单:动态读取当前会话仓库最近的 commit、本地 branch 和远端 branch。
- 未提交改动审查:覆盖 staged、unstaged 及相关 untracked 文件,并以
HEAD为比较基准。 - 自定义审查要求:可直接描述审查范围、任务背景、验收标准或重点关注项。
- Agent 直接审查:当前 agent 重新读取相关 diff 和代码,完成去重、严重度判断和结论汇总。
- 结构化结果:要求每个问题包含严重度、准确位置、证据、影响和修复建议。
交互流程
在 DSH Web 输入框键入 / 并选择 review:
/review
├── Uncommitted changes 审查当前工作树相对 HEAD 的改动
├── Commit diff 选择最近的 commit,仅审查该 commit 引入的差异
├── Branch base diff 选择 branch,从 merge-base 审查到当前 checkout
└── Custom requirement 输入任意审查范围或要求
选择前三种模式后,插件会直接向当前 agent 排队一条明确的 review 请求;选择自定义模式后,可继续在输入框中补充要求再提交。
安装
要求本机已经可以运行 DSH,并已安装 Node.js 和 npm。
git clone https://github.com/CodeIdeal/dsh_review.git
cd dsh_review
npm install
npm run build
将插件安装进目标 DSH profile。以下示例使用 web profile:
dsh plugin --profile web add ./
包内的 dsh.bundle.patch 会自动应用 cordis.patch.yml。重启对应 DSH 会话后即可使用 /review,当前 agent 也会获得 review 工具。
卸载插件:
dsh plugin --profile web remove dsh_review
使用示例
交互式菜单
在输入框中选择:
/review → Commit diff → 选择目标 commit
插件会要求当前 agent 只审查该 commit 引入的差异,并以其第一个 parent 作为比较基准。
直接输入命令
也可以绕过菜单直接使用:
/review uncommitted
/review commit <commit-ref>
/review branch <branch-name>
/review custom 重点检查认证逻辑、异常处理和测试覆盖
自然语言请求
也可以直接对当前 agent 说:
审查当前工作树相对 main 的改动,任务是修复并发缓存失效问题,重点关注竞态条件和回归测试。
review 工具
除了 /review 命令,插件还注册了一个结构化 review 工具:
target(必需):uncommitted、working tree,或由targetKind指明语义的 Git 目标。targetKind:Git 目标必需,可选commit、branch或range。base:仅用于 commit 的显式父基准,或未提交改动的比较基准。task:原始 issue 或任务意图。spec:验收条件或规格。focus:额外关注点数组。
工具返回可执行的 diffCommand 和结构化 instructions,当前 agent 根据这些信息完成实际审查。
实现原理
插件由 Host 和 Web Client 两部分组成:
- Web Client 注册
/review弹出式菜单,并通过当前会话获取 commit / branch 选项。 - Host 提供 Git 选项接口,解析用户选择并生成准确的审查提示词。
- 选定目标后,Host 将 review 请求排队给当前 agent。
- 当前 agent 读取真实 diff 和相关代码,输出基于证据的审查报告。
主要模块:
src/client.ts:Web 端/review多级选择器。src/git-menu.ts:Commit / branch 菜单数据接口。src/review-command.ts:命令解析、提示词生成和任务排队。src/review.ts:无副作用的结构化审查计划生成器。src/index.ts:Cordis 插件入口和review工具注册。
配置
cordis.patch.yml 默认配置:
- insert:
- id: dsh-review
name: dsh_review
config:
toolName: review
可通过 toolName 修改注册给 agent 的工具名称。
开发
npm test
npm run check
npm run build
npm pack --dry-run
限制
- Commit 菜单最多展示最近 100 个 commit。
- 审查质量和可处理的 diff 大小受当前 agent 模型及上下文窗口限制。
- 插件负责选择目标和组织审查任务,最终审查由当前 agent 执行。
还没有评论,来写第一条。