DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Yeti11H /

Yeti11H/dsh-code-review

Verified

Evidence-based code review for DeepSeek Harness: two-pass verification, code citations, and incremental rechecks.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@3888da58

dsh-code-review

让 AI 代码审查有据可查。 核对意见中的代码引用,修复后保留问题编号,审查反复不收敛时提示人工介入。

这是一个 DeepSeek Harness 插件,适合希望保留审查依据、业务规则和修复历史的开发者。0.2.0 增加 CI 命令、团队规则、人工反馈记忆和风险处理优先级。

真实 Web 演示 · 快速开始 · CI 接入 · 设计思路 · 真实模型评测

代码审查与增量复查演示

上图是官方 Harness Web 的真实操作:选择 DeepSeek Flash、提交审查、查看工具结果。使用真实模型,保留等待时间;片尾延长约 6.5 秒便于阅读。录制说明。旧版脚本模型动画仍在 assets/demo.gif 中,二者不要混淆。

核心能力

  • 🔎 代码证据可核对:固定 Git 快照,逐字核对文件、行号和引用原文。证据不足就降级。
  • 🔁 修复有历史:只扫描新增变化,复核受影响的问题,保留编号与历轮状态。
  • 🎯 业务规则前置:输入需求、规则和排除范围;不确定的业务判断保留待核查。
  • 🛑 不收敛就转人工:三个不同代码版本仍不收敛时提示人工介入;源码未变时跳过模型调用。
  • 🧩 适配团队流程:CI 命令、自定义规则线索、明确人工反馈记忆与风险排序。
  • 📋 保留审查记录:源码快照、精确模型输入输出、JSON 与 Markdown 报告。

引用正确不等于结论正确。真实小样本评测发现了过度确认和复查噪声,详见评测记录。completed 仅表示本轮分析完成,不代表批准合并。

适用场景

适合已有 Git 仓库、经常修复后复查、愿意输入业务规则的团队;也适合希望在 CI 留下可追溯报告的开发者。支付、权限和删除等关键业务可作为辅助审查,最终判断仍由负责人承担。

纯格式调整优先使用 ESLint/Prettier。没有 Git 提交的独立文件暂不支持。大规模重构建议先拆分,自动分批不能保证跨模块推理完整。它也没有提供合规认证或组织审批权限系统。

插件在本地运行,但使用 DeepSeek 等云模型时,选中的代码与上下文会发送到模型服务。请按团队的数据访问规则选择模型。

与其他审查方式如何选择

关注点 本插件 手动给模型贴代码 Copilot 等集成审查产品
原文引用校验 程序核对快照中的文件、行号和原文 取决于人工核对或自建脚本 需按具体产品版本确认,不作未经实测的断言
修复追踪 本地稳定编号、历史与增量复查 需自行保存记录和组织复查 按所选产品的 PR 与会话功能确认
团队业务规则 本轮输入+自定义文本规则线索 可放在提示词中 按产品提供的规则配置确认
留存与数据路径 仓库内审计文件;源码发往所选模型 取决于客户端和模型 按产品文档和组织设置确认
成本 模型用量,另有运行环境成本 模型用量或订阅 按当前套餐和计费方式确认

本项目尚未完成相同模型、相同样本的单轮/两轮对照,不宣称准确率优于上述产品。

兼容性: 适配 DeepSeek Harness 0.2.2-rc.1、Cordis 4.1.0,升级需重新验证。npm 包名为 @ooohyg/dsh-code-review,无作用域的同名包属于其他作者。

环境

  • Node.js 24.9.0 或更高版本。
  • Git,且待审仓库至少有一个提交。
  • 在 DeepSeek Harness 中配置可用的模型。插件默认复用调用会话选择的 provider/model,不单独保存 API 密钥。
  • Windows、macOS、Linux 均使用 Node 内置文件接口和不经过 shell 的 Git 调用。本次在 Windows 上验证。

本地安装与启动

标准插件安装(web profile,0.2.1 起)

先安装已验证的 Harness 版本及其插件管理器使用的 pnpm:

npm install -g @deepseek-ai/dsh@0.2.2-rc.1 pnpm
dsh plugin --profile web add @ooohyg/dsh-code-review

在需要审查的 Git 仓库中启动 dsh web,配置并选择可用模型,再发起审查。已经运行的 Web 服务安装后请重启。工具默认使用当前会话的工作目录;没有会话目录时回退到启动目录。该目录必须是已有提交的 Git 仓库,子目录会定位到仓库根目录。

0.2.1 包含 dsh.bundle.patch 和 cordis.patch.yml,由 profile 自动加载,无需另生成 overlay。已经使用下方手动 overlay 的用户,请选一种加载方式,避免把同一插件重复注册。

卸载:

dsh plugin --profile web remove @ooohyg/dsh-code-review

分类为「工具与能力」。已添加 dsh-plugin topic,社区目录会按自己的扫描与核验流程决定收录;npm 发布不等于已经收录。目录为 独立社区项目,与 DeepSeek 官方无隶属关系。目前只声明已验证的 Harness Web 0.2.2-rc.1,桌面版与其他 DSH 版本尚未验证,不据此承诺可用。

手动 npm 安装与指定仓库

在独立工具目录运行:

mkdir review-tools
cd review-tools
npm init -y
npm install @ooohyg/dsh-code-review@0.2.1
node node_modules/@ooohyg/dsh-code-review/scripts/load.mjs "D:/code/my-project"
npx @deepseek-ai/dsh@0.2.2-rc.1 web --patch ./local-overlay.yml

将示例路径替换为待审 Git 仓库的绝对路径。安装包名带 @ooohyg/,源码项目与工具名保持不变。

使用交付的安装包

从 v0.2.1 下载页 下载 ooohyg-dsh-code-review-0.2.1.tgz。

在独立的工具目录中安装本地 .tgz 文件。路径请替换成下载位置:

mkdir review-tools
cd review-tools
npm init -y
npm install "D:/Downloads/ooohyg-dsh-code-review-0.2.1.tgz"
node node_modules/@ooohyg/dsh-code-review/scripts/load.mjs "D:/code/my-project"
npx @deepseek-ai/dsh@0.2.2-rc.1 web --patch ./local-overlay.yml

此安装方式从 npm 下载 Harness 依赖,但插件本身来自本地安装包。启动后还需要在 Harness 中配置模型。

使用源码

解压源码并进入插件目录:

npm install
npm run build

为你的代码仓库生成加载配置。将路径换成真实 Git 仓库的绝对路径:

npm run overlay -- "D:/code/my-project"

macOS/Linux 可填写 /Users/you/code/my-project。命令生成 local-overlay.yml,里面会写入插件和仓库的绝对路径。

启动官方 Harness:

npx @deepseek-ai/dsh@0.2.2-rc.1 web --patch ./local-overlay.yml

选择已配置的模型,在聊天中输入:

请调用 start_review 审查当前仓库的未提交改动。需求:新版本构建完成后发布知识索引。业务规则:旧版本不能覆盖已经发布的新版本;索引未构建完整时不能参与检索。本次不涉及查询排序策略。不要修改源码,也不要运行测试。

工具返回会话 ID、问题数量、报告路径和 Markdown 报告。随后可以说:

我已经修复,请调用 recheck,sessionId 使用刚才返回的会话 ID,不执行测试。

查看历史:

请调用 check_review_status 列出本仓库的审查会话。

插件载入后注册四个模型可调用工具:start_review、recheck、check_review_status、set_review_issue_status。这些是模型工具名。0.2.0 另提供 dsh-review 非交互命令,用于 CI 发起新审查;复查仍通过 Harness 工具进行。详见 CI 接入。

工具参数

start_review

{
  "target": "unstaged",
  "requirement": "新版本构建完成后发布索引",
  "businessRules": ["旧版本不能覆盖已发布新版本"],
  "outOfScope": ["查询排序策略"]
}

unstaged 是沿用原方案的兼容名称,实际包含 暂存+未暂存+非忽略的未跟踪文件。working 是同义值。填 main 等分支名时,比较 merge-base(main, HEAD) 与已提交 HEAD;不会把脏工作区混入分支审查。

需求或业务规则可以留空,但依赖业务确认的结论会标成待核查,不由模型自行补齐。

recheck

{ "sessionId": "RV-实际返回的UUID", "executeTests": false }

没有代码变化时保留原结果,不增加轮次。变化包括相关上下文文件;并不限于原 PR 的几行。原问题若仍存在,保留稳定编号;已解决问题重新出现时,重新打开原编号。

复查扫描使用上一轮到当前快照的变化,代码证据引用当前快照。旧问题不能仅凭行号变化或代码消失就自动解决。存在未知影响时交给人工检查。

check_review_status

{ "sessionId": "RV-实际返回的UUID" }

省略 sessionId 列出会话。指定 ID 时同时检查代码是否已变化;已过期的报告会明确标记。

set_review_issue_status

{
  "sessionId": "RV-实际返回的UUID",
  "issueId": "ISS-001",
  "action": "wont_fix",
  "reason": "负责人明确接受此风险,原因是……"
}

action 取 wont_fix、false_positive 或 reopen。学习模式见 团队定制说明。通过 Harness 批准后记录原因,接受的风险仍在报告中可见。它只记录使用者的决定,不替代组织的负责人权限管理。不要让模型为了结束审查而自行接受风险。

CI、风险排序与团队定制

  • CI 命令和 GitHub Actions 示例:JSON 产物、退出码与用量。
  • 风险、自定义规则与反馈记忆:规则命中仅是线索,风险分数不批准合并,反馈不自动屏蔽问题。

可选测试验证

只有安装者在配置里指定测试命令,且使用者明确请求并通过 Harness 批准,才会执行。没有批准服务时拒绝执行。

在 local-overlay.yml 的 config 中增加:

        testCommands:
          - file: node
            args: ["--test", "tests/index.test.js"]
        testTimeoutMs: 60000

然后请求 recheck 且 executeTests: true。命令通过参数数组启动,不接受模型生成的 shell 脚本。Windows 上不要直接配置 npm.cmd;可用 node 运行测试入口,或配置 Node 与 npm-cli.js 的完整路径。

测试会执行仓库代码,可能产生输出文件或副作用。报告记录真实命令、退出码、输出与对应快照;测试通过不会自动证明每条问题成立或解决。分支快照与工作区不一致时拒绝运行测试。测试更改源码会使报告过期。

配置与覆盖限制

可在 overlay 的 config 中设置:

配置 默认值 作用
cwd 当前会话目录;缺失时为启动目录 安装者明确指定的仓库优先;子目录自动定位到 Git 根目录
provider / model 调用会话的选择 必须一起设置,或一起省略
maxChangedLines 500 每批最大改动行数;大文件也拆分
maxFileBytes 512000 单个源文件读取限制
maxSnapshotBytes 20000000 当前源码快照的字节预算
maxSourceFiles 2000 当前源码快照的文件数量预算
maxPromptChars 90000 单次请求字符上限,至少 4000
maxCandidates 20 每批疑点上限,超限明确报错
modelTimeoutMs 120000 单次模型调用超时
testTimeoutMs 60000 单条测试命令超时
customRules [] 团队提供的正则核查线索
learningMode false 复用仍匹配的明确人工反馈

二进制、符号链接、过大文件、依赖和生成目录、.env 与常见私钥文件默认排除。因读取限制遗漏的文件写入报告并转人工。文件名过滤不能识别所有硬编码秘密;使用者应按所在团队的数据访问规则配置 Harness 模型。

上下文通过相对导入、函数名文本搜索和有界代码窗口补充。第一版没有完整 AST、跨语言调用图或自动证明功能。 上下文文件存入快照,但并不意味着模型审查了每个文件的每一行。模型请求中不提供任何工具。

存储与审计

你的仓库/
└── .dsh-review/
    ├── RV-<UUID>.json
    └── RV-<UUID>.md

JSON 包含源码快照、所有轮次、精确模型输入/输出和运行记录;Markdown 供人阅读。模型请求在发送前落盘,失败或取消也保留未完成状态。会话文件通过临时文件+替换写入;仓库级互斥锁阻止并发复查覆盖。

这些文件包含代码,应在目标仓库的 .gitignore 中加入 .dsh-review/。插件会主动排除自己的输出,避免报告不断进入下一轮审查。插件不自动修改 .gitignore。

进程异常退出可能留下 .dsh-review/.lock。确认旧进程已经停止后再手动删除该空目录;不要在仍有审查运行时清锁。

开发、验证和发布

npm run typecheck
npm test
npm pack

测试使用真实临时 Git 仓库、官方 Cordis / tools / LLM 运行时及本地脚本模型。并发示例通过可控暂停点实际复现旧覆盖,并验证条件发布修复。

脚本模型测试验证工程行为,不是 DeepSeek 检出率。 已完成一次真实接口的小样本评测,发现有效风险线索,也发现证据不足的确认结论,见 评测报告。这不是稳定准确率或成本基准;复测方法见 examples/live-evaluation.md。

环境、既有版本检查结果与限制见 docs/VALIDATION.md。

npm pack 生成可安装的 .tgz。源码与试用安装包通过 GitHub 仓库、Release 页面 和 npm 作用域包 @ooohyg/dsh-code-review 分发。项目未自动向社区发帖。

与原计划的调整

  • 采用真实 name/inject/apply、defineTool 与 ctx.llm.stream(),不使用示意 API。
  • 只声明实际所需 Harness peer 包;没有额外业务运行时依赖。Harness 自身仍有传递依赖,不宣称绝对零依赖。
  • 无法通过引用校验的结论降级,而非宣称能够杜绝幻觉。
  • 收敛检查包含最新一轮,无变化复查保留人工介入状态。
  • 维护性问题和可选建议分开判断,报告分组不重复。
  • completed 不等于允许合并;发布和风险决策仍由人负责。

官方接口依据

  • Your first plugin
  • Build a tool
  • Tool authoring reference
  • LLM runtime

MIT License。审查方法参考文中讨论的两轮核查、业务上下文和复查收敛原则,未复制各团队的私有实现。

—/ 5

No ratings yet

Verified DSH bundle

Commit 3888da58ca4e

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout