跳到主要内容

dsh-code-review

已验证

dsh-code-review · v0.1.2 · Apache-2.0

代码审查模式 (Code Review Mode) agent preset for the dsh web GUI: a read-only code-review agent — reviews correctness, bugs, security, performance, style and test coverage, and outputs a structured review report with severity ranking and file/line locations. On

安装

dsh plugin add dsh-code-review

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

标签

作者

说明文档

dsh-code-review

DSH Web GUI 的代码审查模式 agent preset 插件(host-only:启动时同步预设 + 系统提示通告)。

新建会话的预设选择器出现「代码审查模式」:只读代码审查 Agent——审查正确性、缺陷、安全、 性能、规范与测试覆盖、设计坏味道,输出带严重程度分级与文件定位的结构化报告。

快速开始

npm 安装(已发布):

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

本地源码安装(开发调试,需先构建):

cd packages/dsh-code-review
pnpm install
pnpm run build
# 挂载(在插件目录内运行,file:$PWD 自动展开为当前绝对路径;必须 file: 而非 link:):
dsh plugin --profile web add file:$PWD

安装后重启 dsh web 进程,新建会话的预设选择器出现「代码审查模式」即生效。

⚠️ 必须用 file: 而不是 link::link: 只建 junction、不安装本包依赖,运行时 import 解析不到依赖会让 dsh web 启动即崩溃。

能力

项目 说明
声明预设 dsh 0.1.7+:把 presets/code-review 读成 registry 声明并 ctx.agentPresets.register(...)(0.1.7 起 registry 不再扫描目录),卸载/停用时自动释放声明
同步预设 dsh 0.1.5 / 0.1.6:同一份 preset 仍同步到 ~/.dsh/.agent-presets/code-review(幂等;升级插件自动更新)
选择即用 新建会话选「代码审查模式」→ 只读代码审查 Agent
审查范围 正确性、缺陷、安全、性能、规范与测试覆盖、设计坏味道
输出格式 严重程度分级(critical / high / medium / low / nit)+ 文件定位(路径 + 行号)+ 具体修复建议
只读约束 默认只读:read/grep/glob 与只读 shell 命令;不修改文件、不运行变更命令、不提交(除非用户明确要求)
同步安全 目录同步路径带 .dsh-code-review.sync 归属标记:用户手写的预设内容永不被覆盖;junction/符号链接不跟随;写入走临时目录原子替换
降级安全 registry 缺失(≤0.1.6)或声明被拒时只 warn 并回退目录同步,绝不让宿主组合加载失败

配置

无独立配置项。预设根目录按 DSH_HOME 解析(DSH_HOME 环境变量,默认 ~/.dsh)。

原理一句话

该模式是一个只读代码审查 Agent 预设:基于官方 Standard 预设的完整工具面 (shell / fs / 搜索 / 后台任务 / skills / goals 与 /goal 命令 / plan mode / 子代理 / workflow / web 搜索 / 交付物 present),只把 persona 替换为代码审查 Agent。

宿主半边的发布方式随内核变化:

  • dsh 0.1.7+:预设是 registry 声明。@deepseek-ai/dsh-agent-preset-registry 的 README 原文是 "Definitions are ordinary plugin rows; the registry neither scans directories nor accepts preset paths." ⇒ 插件把自带 preset 读成 { id, name, description?, order?, plugins } 并 await ctx.agentPresets.register(...)(照 @linxin666/dsh-liangshen 的软查写法:ctx.get('agentPresets') 查不到就回退,不把服务变成硬依赖)。
  • dsh 0.1.5 / 0.1.6:内核按目录发现预设,插件把 presets/code-review 同步进 ~/.dsh/.agent-presets(幂等、原子、不覆盖用户内容)。

详见 presets/code-review/agent.cordis.yml、src/preset.ts、src/composition.ts、src/sync.ts。

文档

文档 内容
presets/code-review/agent.cordis.yml 预设本体(persona / 工具面声明)
presets/code-review/NOTICE 派生来源声明(Standard preset / dsh-liangshen)
../../docs/PACKAGE-TEMPLATE.md 本仓库插件包统一规范

测试

node test/code-review-preset.test.js   # 0.1.7 registry 声明:YAML 读取器 / 声明字段 / 行集对齐 / 服务软查 / 注册路径(10 条)
node test/code-review-sync.test.js     # 预设校验 + 同步生命周期/归属/链接防护(9 条)

构建与检查:

pnpm install          # 首次 / 依赖变更后
pnpm run typecheck    # tsc --noEmit
pnpm run build        # node build.mjs:lib/index.js + lib/types
pnpm publish --dry-run  # 发布预演

pnpm 11 默认拦截依赖的构建脚本(esbuild 的 postinstall),已在 pnpm-workspace.yaml 配置 onlyBuiltDependencies: [esbuild] 与 minimumReleaseAge: 0。lib/ 为构建产物:改 src 后必须 pnpm run build 再测。

版本与兼容

包名 dsh-code-review · Apache-2.0(同步机制派生自 @linxin666/dsh-liangshen,Apache-2.0; 预设改编自 DSH 内置 Standard preset,MIT,见 NOTICE 与 presets/code-review/NOTICE) · 目标 DSH 0.1.7-rc.2(本机官方运行时 @deepseek-ai/[email protected] / Node 24.18.1: 逐行 schema 校验 29 PASS + 3 个 cordis:group、0 失败;声明对象与内置 preset-standard 的 id 集、 row name、config 键、group isolate realm 与子行顺序全等)· 同时保留 0.1.5 / 0.1.6 的目录同步路径。

  • 0.1.2(当前):适配官方桌面端 0.1.7——①宿主半边改为 ctx.agentPresets.register(...) 声明预设 (新增 src/preset.ts 与零依赖 src/composition.ts;0.1.7 起 registry 不再扫描目录,服务缺失或声明失败 只 warn 并回退目录同步,不把 agentPresets 变成硬依赖);②预设 32 行对齐 0.1.7 的 standard: workflow-worker-thread(0.1.7 已无此包)→ workflow-ptc,补 command-goal / present / tool-plugin-manager,tool-subagent 补 modelSelectionSettings,codex/claude-code 两行 enableRunInBackground → backgroundMode: one-shot;③新增 test/code-review-preset.test.js(10 条)。
  • 0.1.1:修复 critical——persona 配置键 text → prefix(旧键让 dsh-persona Config 校验失败、整个插件树挂载抛错);同步重写为归属标记 + 源哈希(用户内容拒覆盖、 legacy 字节一致子集自动接管、二次修改拒绝并提示删标记强刷);junction 不跟随;临时目录 原子替换;移除 retire 死代码;校验器放宽裸包名误报并新增 persona 行 prefix 防回归规则; 通告文案 DSH_HOME 动态解析。
  • 0.1.0:初版(预设同步 + 系统提示通告)。

目录结构

packages/dsh-code-review/
├── package.json           # 包清单 + dsh.bundle.patch 声明
├── cordis.patch.yml       # bundle 插件行(insert code-review)
├── build.mjs              # esbuild 构建 host bundle + tsc 声明
├── presets/code-review/   # 预设(preset.yml + agent.cordis.yml + NOTICE)
├── src/
│   ├── index.ts           # 插件体:声明/同步预设 + 系统提示通告
│   ├── preset.ts          # preset.yml + agent.cordis.yml → registry 声明;agentPresets 软查
│   ├── composition.ts     # 零依赖 YAML 子集读取器(块标量 / !!js / 组行 config 数组)
│   ├── sync.ts            # 幂等预设同步(派生自 @linxin666/dsh-liangshen)
│   ├── schema.ts          # agent.cordis.yml 结构校验(同上)
│   ├── dsh-home.ts        # DSH_HOME 解析(同上)
│   └── mount-once.ts      # 进程内单实例守卫(同上)
├── lib/                   # 构建产物(lib/index.js + lib/types)
├── LICENSE                # Apache-2.0
├── NOTICE                 # 派生来源声明
└── README.md