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

Codex 审查 vitas/dsh-codex-review

DeepSeek 客户端
vitas30 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

用订阅制 Codex 模型审查当前变更集并输出报告

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

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/vitas/dsh-codex-review.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 审查当前变更集
  • 固定订阅版模型
  • 每聊天独立审查会话

给 DeepSeek Harness 加个确定性的 /review 命令:一个子代理做审查,固定用订阅版 Codex 模型,带设置卡片,每个聊天一个审查会话,/review reset 可清空。

README

由 DeepSeek 最新模型翻译生成
dsh-codex-review DeepSeek Harness 社区公告:Show Your Plugins! #8596。 给 DeepSeek Harness 用的确定性 /review 命令:把当前变更集发给一个审查者子代理,路由固定在你指定的那条线上——默认走订阅制的 openai-codex 路由。 默认情况下,每个聊天只有一个持续存在的审查者会话:第一次 /review 打开它,之后每次把新一版交给它,报告以消息形式回到对话里。把 conversation 设为 fresh,就改成一次性的子会话,报告作为命令自身的结果返回。 为什么需要它 让当前智能体审查自己的活儿,有两个毛病。代码是它写的,等于它在评判自己的推理;而在一个逐轮路由的 harness 里,「审查这个」很可能落到一个你没料到的模型上,由路由器挑,而不是由你挑。 DSH 本来就有这些零件:斜杠命令可以直接调用子代理服务,启动请求可以通过 agentOptions 固定子会话的路由。所以 /review 就是一条命令,只做这件事,不带 LLM 客户端,不自己管凭据,也不依赖当前会话跑的是哪个模型。 路由固定之后,这也是用 ChatGPT 订阅审查、而不是按 token 走 API 计费的办法:把 provider 指向 openai-codex,子会话的调用就走那条路由自己的认证。
展开完整文档(README 剩余 1 节)
dsh-codex-review

DeepSeek Harness 社区公告:Show Your Plugins! #8596。

给 DeepSeek Harness 用的确定性 /review 命令:把当前变更集发给一个审查者子代理,路由固定在你指定的那条线上——默认走订阅制的 openai-codex 路由。

默认情况下,每个聊天只有一个持续存在的审查者会话:第一次 /review 打开它,之后每次把新一版交给它,报告以消息形式回到对话里。把 conversation 设为 fresh,就改成一次性的子会话,报告作为命令自身的结果返回。

为什么需要它

让当前智能体审查自己的活儿,有两个毛病。代码是它写的,等于它在评判自己的推理;而在一个逐轮路由的 harness 里,「审查这个」很可能落到一个你没料到的模型上,由路由器挑,而不是由你挑。

DSH 本来就有这些零件:斜杠命令可以直接调用子代理服务,启动请求可以通过 agentOptions 固定子会话的路由。所以 /review 就是一条命令,只做这件事,不带 LLM 客户端,不自己管凭据,也不依赖当前会话跑的是哪个模型。

路由固定之后,这也是用 ChatGPT 订阅审查、而不是按 token 走 API 计费的办法:把 provider 指向 openai-codex,子会话的调用就走那条路由自己的认证。

输入 /review,别的都不用

命令不需要参数。审查者自带一份常驻简报——立场(只报告,绝不改文件)、检查顺序(正确性、失败处理、契约、安全、并发与状态)、证据门槛(你无法验证的说法是疑问,不是发现)——提示词还会告诉它怎么找到可评判的东西:当前变更集,包括未跟踪文件;工作区干净时用最新提交;工作区根本不是 Git 仓库时,用它内部报告了变更的那些仓库——会话工作区常常是一堆 checkout 的目录,全读一遍不叫审查。

命令后面输入的任何内容,收窄的是评判什么;它从不替换简报,也从不收窄审查者读什么。

/review 整个变更集 /review focus on the cache invalidation 同一次审查,瞄准一点 /review reset 忘掉审查者:下一次审查从头开始

/review reset 是唯一不算审查的输入。共享审查者是每个聊天一个会话,正因如此它才能告诉你上次之后有什么变化;光秃秃的 reset 一词会退掉那个会话,如果它还在干活就把它停下。只有整个输入才算数——/review reset the cache 审查的是缓存——而且没有任何东西会删除退掉的会话,所以重置之后、下一次审查之前如果宿主重启,它会重新认领那个会话。
简报就是该行的 instruction,所以配置档可以整体替换它——这个字段紧挨着设置卡片写入的那些字段。

安装

from the checkout
dsh plugin --profile web add /Users/vitas/git/dsh-codex-review
or as a dependency
dsh plugin --profile web add link:~/git/dsh-codex-review

这个包是一个 bundle:安装它会挂载 codex-review 行和 /review 命令。行本身不需要重启,但命令只有在配置档重新组合之后才会出现。

它需要的路由

/review 不做任何认证。它需要一条由 provider 指定名称的路由存在并能正常工作。走订阅这条路时,那就是 openai-codex 服务商——要么是 pi-ai 自带的那个(用你的 ChatGPT Plus/Pro 账号做 OAuth 登录),要么是插件根据你的 Codex 命令行登录信息注册的那个:

- dsh-codex-auth —— 从 ~/.codex/auth.json 注册 openai-codex,这样你已有的命令行登录就是凭据,不用再登录一次。
- dsh-subagent-codex —— 形态不同:一个名为 codex 的子代理后端,在进程外运行 codex exec。用法是设置 backend: codex,再加一条由命令行自己解析的路由。

如果调用失败,失败信息就是服务商自己的消息,随命令结果一起返回——可能是声明了路由却没有凭据,也可能是未知的模型 id。

配置

有两个写入方会动这一行。在 Web UI 里打开 Plugins → dsh-codex-review:卡片上可以选择路由和审查模型(它的列表就是当前运行组合自己的模型目录,所以路由插件注册的订阅模型也会出现在那里)、记忆模式、推理强度,以及命令名。同样的字段也属于你配置档里的 cordis.patch.yml(随附的默认值和带注释的说明见 cordis.patch.yml):

| 字段 | 默认值 | 含义 |
| backend | spawn | 子代理后端:spawn(进程内新建子进程)、fork(继承当前对话),或插件提供的后端,比如 codex |
| provider | openai-codex | 审查器固定使用的 LLM 路由 |
| model | gpt-5.6-sol | 该路由上的模型 id |
| conversation | shared | shared 为每个聊天保留一个审查会话,能记住之前的审查;fresh 每次调用都启动一次性审查器 |
| reasoningEffort | null | 取 off…max 之一,或 null 让路由自己决定 |
| childMaxDepth | null | 0 禁止审查器继续向下委派;null 不发送任何内容(对不支持 depthLimit 能力的后端是安全的) |
| persona | null | 每个子进程的人设文本,前提是后端支持 |
| command | review | 斜杠命令名 |
| instruction、diffCommand、statusCommand | 见 patch | 告诉审查器什么,以及它先运行什么 |
| maxOutputChars | 40000 | 返回的审查文本上限 |

补丁里的 config 会整体替换该行的配置——它不是深度合并。覆盖某个字段时,把想保留的字段一并重写。

它刻意不做的事

- 不自动审查。 只有人输入命令时它才运行。按轮次或按工具调用自动审查是另一个功能,成本结构也不同(每轮一次模型调用,或每次工具调用一次)。
- 不修复。 审查者只读、只报告;实现由主智能体负责。
- 不带凭据,也没有运行时依赖。 凡是需要认证的事,都归路由自己管。
- 默认 spawn 后端不继承父对话:审查者看到的是仓库和它自己早先的审查记录,而不是产生这次改动的那个论据。这正是重点;想要相反的效果就用 backend: fork。

审查者记忆,以及为什么报告是一条消息

conversation: shared 建立在 DSH 自己的可续子节点上,而不是本插件的存储:第一次 /review 调用 subagents.startContinuable,之后每次都能通过持久子节点目录(subagents.listChildren)再次找到那个子节点,并用 sendMessage 把提示词交给它。有三个后果值得知道:

- 命令自身的结果是一张回执,不是审查报告。子节点把回答写进对话——正因如此,主智能体才能看到审查内容。conversation: fresh 才是等待子节点、并把报告作为命令结果返回的模式。
- 记忆能挺过宿主重启:已经空闲的子节点会由投递本身从它自己的持久会话中冷恢复,所以审查者仍然记得上次标记了什么。
- /review 会继续会话中最新一个带 reviewer 标签的可续子节点,目前还没有重置。想从头开始,就用 conversation: fresh 跑一次审查,或者开一个新聊天。

之后每次提示词都更短,只问增量:修好了什么,还有什么没解决,新增了什么。

验证

npm run build # esbuild → lib/client.js, the browser card; ship it, the host never builds it
npm run check # syntax of every module + tsc --noEmit
npm test # node:test, no test dependencies

然后,对着真实配置档跑:

dsh --profile web --dump-config | grep -A3 codex-review # the row composed

并在会话里输入 /review。对这条路由最诚实的测试就是第一次真实调用:它要么返回一份审查,要么返回服务商的错误。

许可证

MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓vitas/dsh-codex-review
分享 · DeepSeek Harness Hub
vitas/dsh-codex-review

用订阅制 Codex 模型审查当前变更集并输出报告

回到顶部