dsh-command-code-review

August 30, 2026 · View on GitHub

English | 中文

npm version GitHub release License

DSH(DeepSeek Harness)斜杠命令 bundle:一个 /code-review 命令即可对拉取请求或本地代码做完整代码审查 —— 五个并行审查视角、逐发现置信度打分。

/code-review 斜杠命令插件:自包含 bundle,可安装到任意 dsh profile。

目录

特性

  • 一个命令,两种模式 —— /code-review <PR 编号|链接> 审查拉取请求;/code-review [需求](或留空)审查本地代码。
  • 五个并行审查视角 —— dsh.md 合规、浅层 bug 扫描、git 历史、历史改动评论、代码注释合规。
  • 逐发现置信度打分 —— 并行子代理对每条发现打分,低于阈值的丢弃(默认 80)。
  • PR 自动回帖 —— 拉取请求结果用 gh 回帖到 PR;本地结果直接在对话中输出。
  • 可配置 —— 置信度阈值按 profile 配置(见「配置」)。
  • 审查报告文档 —— 本地审查完成后把结构化 Markdown 报告(内容为英文)写入文档,默认保存到 doc/;可用 --out <目录> 每次覆盖,或用 config.outputDir 按 profile 配置。文件名带当前 HEAD 后 7 位短 sha(非 git 仓库则省略)。
  • 自动化发布 —— release-please(版本 + CHANGELOG + Release 说明)+ npm 可信发布。

要求

  • 基于 @deepseek-ai/dsh-base 的 dsh profile(所有内置 profile 都满足),它提供 commands 服务以及工作流用到的子代理 / bash / todo 工具。
  • GitHub CLIgh)已安装并认证 —— 仅在拉取请求审查时需要。本地审查无需 gh

安装

从 npm:

dsh plugin --profile web add dsh-command-code-review

从本地目录或 tarball:

# 目录
dsh plugin --profile web add /path/to/dsh-command-code-review

# 打包的 tarball
dsh plugin --profile web add /path/to/dsh-command-code-review-<version>.tgz

dsh plugin add 会把包装进 profile,并且因为它的 package.json 声明了 dsh.bundle,会自动追加到 dsh.profile.bundles。重启或重新引导 profile 后生效。

使用

在 DSH web 界面

  1. 启动 web 界面并打开打印出的地址:dsh web(即 dsh --profile web)。
  2. 新建会话,在输入框输入 /code-review。命令会自动注册,无需额外配置。
  3. 拉取请求的结果会用 gh 回帖到 PR;本地审查的结果直接在对话中输出。

示例

/code-review 123                                  # 按编号审查一个拉取请求
/code-review https://github.com/owner/repo/pull/123
/code-review 审查 src/auth 的改动                  # 审查指定的范围
/code-review 审查整个工程                          # 审查整个仓库
/code-review                                      # 审查当前未提交的改动
/code-review 审查 src/auth 的改动 --out reports    # 报告保存到 reports/
/code-review --out docs 审查 src/auth 的改动       # --out 可放前也可放后

留空时会先探测当前分支的拉取请求,存在则审查它,否则审查当前未提交改动。

本地审查的报告还会写成 Markdown 文档 —— 默认保存到 doc/,或用 --out <目录>(或 config.outputDir)指定位置。git 仓库里文件名为 code-review-<sha7>-<slug>.md<sha7> 为当前 HEAD 后 7 位短 sha,<slug> 由审查范围生成),非 git 仓库则为 code-review-<slug>.md

工作原理

这个包是一个标准的 dsh bundle

  • package.json 声明 "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }
  • cordis.patch.yml 向 profile 层栈插入一行插件(id: command-code-review)。
  • lib/index.js 是一个 Cordis 插件,注入 commands 并注册 code-review 命令。handler 把 PR 编号 / URL 路由到拉取请求工作流,把其余输入(包括空输入)路由到本地审查工作流,再通过 agent.followup 投递。置信度阈值可配置(见「配置」),工作流会指示代理等待子代理完成通知而不是轮询。

用户可以在自己的 profile cordis.patch.yml 里禁用或覆盖该命令:

- disable: command-code-review

配置

  • 置信度阈值:工作流会丢弃低于阈值的发现(默认 80)。在你的 profile cordis.patch.yml 里覆盖:

    - id: command-code-review
      config:
        threshold: 90
    
  • 报告保存目录:本地审查报告的保存目录(默认 doc)。按 profile 覆盖:

    - id: command-code-review
      config:
        outputDir: reports
    

    或每次调用用 --out 覆盖:/code-review --out reports 审查 src/auth 的改动

  • 审查视角:5 个并行审查视角(dsh.md 合规、bug 扫描、git 历史、历史改动评论、代码注释合规)都定义在 lib/index.js 里,可按需增删。

故障排查

  • PR 上没有回帖:PR 已关闭 / 是 draft / 太简单 / 已审查过,或者没有发现达到 80 分。
  • 提示 gh 不存在:安装并认证 GitHub CLI(gh auth login);只有 PR 审查需要它。
  • 代码链接无法渲染:必须用完整 commit SHA,以及 #L[start]-L[end] 行区间格式。

目录结构

lib/index.js             # 注册 /code-review 命令的 Cordis 插件
lib/parse.js             # 输入解析(--out 参数)
test/smoke.test.mjs      # 冒烟测试
test/parse.test.mjs      # 解析器单元测试
cordis.patch.yml         # bundle patch
.github/workflows/       # ci.yml + release.yml + release-please.yml

开发

npm install
npm test        # node --test(冒烟 + 解析器单元测试)

贡献

欢迎提交 Issue / PR。

许可

MIT