7dgroup-ai/dsh-skill-7d-code-reviewer
这是一个专业级的 DSH(DeepSeek Harness)代码审查技能插件,由 7DGroup 团队开发,专为 AI 辅助代码审查场景设计。基于 TypeScript + Cordis 开发,以组合包(bundle)形式安装,通过 ctx.skills 注册 7d-code-reviewer 技能:五步审查流程、严重/中等/轻微三级问题分级、四维度评分标准,文本摘要与 HTML 报告双输出。零核心改动——安装即启用,移除 bundle 行即卸载。
这是一个 DeepSeek Harness(DSH)插件。本站汇总其 GitHub README、安装信息、维护状态与公开安全信号。
English | 中文
@7dgroup/dsh-skill-7d-code-reviewer
作者: 7DGroup
这是一个专业级的 DSH(DeepSeek Harness)代码审查技能插件,由 7DGroup 团队开发,专为 AI 辅助代码审查场景设计。基于 TypeScript + Cordis 开发,以组合包(bundle)形式安装,通过 ctx.skills 注册 7d-code-reviewer 技能:五步审查流程、严重/中等/轻微三级问题分级、四维度评分标准,文本摘要与 HTML 报告双输出。零核心改动——安装即启用,移除 bundle 行即卸载。
📌 项目信息
| 项目 | 值 |
|---|---|
| 作者 | 7DGroup |
| 版本 | 0.1.0-rc.5 |
| 运行环境 | Node `^22.19.0 |
| Peer 依赖 | @deepseek-ai/cordis · @deepseek-ai/dsh-skill · @deepseek-ai/dsh-invariants |
| 技能名称 | 7d-code-reviewer |
| 仓库地址 | github.com/7dgroup-ai/dsh-skill-7d-code-reviewer |
| 许可证 | MIT |
🖼️ 插件效果
在 dsh 会话中调用技能:

由纯占位符模板生成的 HTML 报告示例:

核心能力:
- 模板驱动模式——职责分离:
SKILL.md决定审什么、多严重,templates/只负责呈现。HTML 报告模板保持纯占位符,所有占位符必须填充,动态内容一律 HTML 转义。 - 五步审查流程——接收任务 → 快速浏览 → 逐行审查(按需加载
references/)→ 问题分级 → 生成报告。 - 三级问题分级——🔴 严重(必须修复)/ 🟡 中等(建议修复)/ 🟢 轻微(可选改进)。
- 四维度评分标准——代码质量 / 安全性 / 性能 / 可维护性,各维度 1–10 分,另有总体评分与自动生成的摘要描述。
- 双格式输出——文本摘要供快速浏览,完整 HTML 报告另存为
code-review-report-{时间戳}.html。 - 内置知识库——编码规范、安全检查清单(SQL 注入、XSS、认证授权、敏感信息泄露)与审查示例,按需加载而不撑大提示词。
- 零核心改动——纯组合包挂载,不打 DSH 核心补丁,安装与卸载均安全。
应用场景:
- 提交 / 合并请求前的代码审查
- 存量代码的安全审计
- 重构前的代码质量评估
- 团队编码规范的落地执行
- dsh 对话中的任意代码质量咨询
✅ 功能特性
- ✅ 五步模板驱动审查流程
- ✅ 三级问题分级与修复建议
- ✅ 四维度评分标准(代码质量 / 安全性 / 性能 / 可维护性)
- ✅ 文本摘要 + HTML 报告双格式输出
- ✅ 纯占位符 HTML 报告模板与强制填充规则
- ✅ 填充内容 HTML 转义规则文档化
- ✅ 按需加载的知识库(编码规范 / 安全检查清单 / 审查示例)
- ✅ 技能包不附带任何可执行脚本
- ✅ 支持 GitHub(
github:简写)、npm、tarball 三种安装方式 - ✅ git 安装构建自包含(
prepare钩子,仅转译)
📂 项目结构
dsh-skill-7d-code-reviewer/
├── src/ # 源代码目录
│ ├── index.ts # Cordis 插件:注册技能提供者
│ └── invariant.ts # 伴生插件:包所有权不变量
├── assets/7d-code-reviewer/ # 随包发布的技能资源
│ ├── SKILL.md # 审查逻辑 + 模板选择决策
│ ├── references/ # 知识库(按需加载)
│ │ ├── coding-standards.md # 命名规范、代码复杂度
│ │ ├── security-checklist.md # SQL注入、XSS、认证授权、泄露检查
│ │ └── review-examples.md # 审查示例参考
│ ├── templates/
│ │ └── report-template.html # 纯占位符 HTML 报告模板
│ └── scripts/
│ └── html-report-generation.md # 填充内容的 HTML 转义规则
├── tests/ # vitest 测试
│ └── skill-7d-code-reviewer.spec.ts
├── screenshots/ # README 截图
│ ├── skills.png # 技能调用
│ └── report-preview.png # HTML 报告示例
├── cordis.patch.yml # 组合层补丁
├── tsdown.config.ts # 构建配置(仅转译)
├── 7dgroup-dsh-skill-7d-code-reviewer-0.1.0-rc.5.tgz # 预构建 tarball
├── package.json
└── README.md
🚀 快速开始
前置条件:dsh CLI、Node ^22.19.0 || >=24.0.0、pnpm 10+。
在 dsh 会话中安装(推荐)
最直接的方式——在任意 dsh 会话中直接告诉助手,它会替你执行安装。使用 GitHub 地址形式(npm 包名 @7dgroup/dsh-skill-7d-code-reviewer 需等发布到 npm 后才能使用):
安装插件 github:7dgroup-ai/dsh-skill-7d-code-reviewer
助手会在会话内通过 Shell 执行对应的 dsh plugin 命令。git 安装时会遇到同样的 pnpm allowBuilds 门禁,助手会打印需要添加进 profile 的 pnpm 设置文件(~/.dsh/profiles/<name>/pnpm-workspace.yaml)的确切授权键;添加后让助手重试即可完成安装。
在 dsh 中直接安装(CLI)
一条命令直接安装,github: 简写是最快捷的方式:
dsh plugin --profile <name> add github:7dgroup-ai/dsh-skill-7d-code-reviewer
<name> 是你要用 dsh --profile <name> 启动的 profile;profile 是什么、如何取名、文件放在哪里,见下文「什么是 dsh profile?」。
完整 URL 写法等价:
dsh plugin --profile <name> add git+https://github.com/7dgroup-ai/dsh-skill-7d-code-reviewer.git
dsh plugin 会把 bundle 追加进 profile 的 dsh.profile.bundles,本 bundle 自带的 patch 层在基础组合之上挂载 skill-7d-code-reviewer 行。
pnpm 在得到显式允许前会拒绝运行 git 依赖的构建脚本,所以第一次 add 会失败。把 pnpm 打印的确切包键复制进该 profile 的 pnpm 设置文件——~/.dsh/profiles/<name>/pnpm-workspace.yaml——然后重新执行:
allowBuilds:
'@7dgroup/dsh-skill-7d-code-reviewer@git+https://github.com/7dgroup-ai/dsh-skill-7d-code-reviewer.git#<sha>': true
(使用 github: 简写时,授权键为 @7dgroup/dsh-skill-7d-code-reviewer@github:7dgroup-ai/dsh-skill-7d-code-reviewer#<sha> 形式;一律以 pnpm 打印的确切键为准。)
允许构建意味着让该包的代码在安装时于你的机器上执行,且不在任何 agent 沙箱之内。建议锁定 commit(...#<sha>),让后续推送无法悄悄改变实际运行的内容。
什么是 dsh profile?
每次运行 dsh 都会启动一个 profile——一个命名环境,其配置存放在 harness 主目录下的 ~/.dsh/profiles/<name>(若设置了 DSH_HOME 环境变量则为 $DSH_HOME/profiles/<name>)。一个 profile 目录包含:
| 文件 | 作用 |
|---|---|
package.json | profile 清单:dsh.profile.bundles 列出按顺序挂载的插件 bundle;dependencies 存放树外插件 |
cordis.patch.yml | 你自己的补丁层,在所有 bundle 层之后应用 |
pnpm-workspace.yaml | profile 的 pnpm 设置;allowBuilds 授权键写在这里 |
node_modules | pnpm 管理的插件依赖 |
dsh 没有默认 profile——每次运行都必须带 --profile <name>(dsh web 是 dsh --profile web 的简写)。内置的 web 与 headless profile 会在首次启动时自动初始化;其他名字则在你第一次执行 dsh plugin --profile <name> ... 命令时自动创建,并打印创建位置:
dsh plugin --profile tui add github:7dgroup-ai/dsh-skill-7d-code-reviewer
# dsh: initialized profile tui at ~/.dsh/profiles/tui
查看已有 profile:列出 ~/.dsh/profiles/ 目录,每个子目录就是一个 profile 名。自定义名字必须先这样创建才能启动——对未知的自定义名字执行 dsh --profile <name> 会失败,并提示 create it with 'dsh plugin --profile <name> add <package>'。
从 tarball 安装(免构建授权)
仓库根目录已附带预构建 tarball——直接下载即可安装:
dsh plugin --profile <name> add ./7dgroup-dsh-skill-7d-code-reviewer-0.1.0-rc.5.tgz
或者发布到 npm 后:
dsh plugin --profile <name> add @7dgroup/dsh-skill-7d-code-reviewer
以上两种形式携带预构建代码,无需 allowBuilds 授权。
推荐配置——安装进 web profile
大多数会话默认启动 web profile(dsh web 是 dsh --profile web 的简写),因此推荐直接把技能装进 web,无需新建 profile:
第 0 步——确保 pnpm 可用。 dsh plugin 会在 profile 目录内转发给 pnpm,所以 pnpm 必须先安装并在 PATH 上:
corepack prepare pnpm@latest --activate # 或:npm install -g pnpm@10
第 1 步——使用 github: 简写安装。 git 安装会运行包的 prepare 构建,pnpm 在得到显式允许前会拒绝——所以第一次 add 会失败:
dsh plugin --profile web add github:7dgroup-ai/dsh-skill-7d-code-reviewer
把 pnpm 打印的确切键复制进 ~/.dsh/profiles/web/pnpm-workspace.yaml:
allowBuilds:
'@7dgroup/dsh-skill-7d-code-reviewer@github:7dgroup-ai/dsh-skill-7d-code-reviewer#<sha>': true
然后重新执行同一条命令。建议锁定 commit——在地址后追加 #<sha>(github:7dgroup-ai/dsh-skill-7d-code-reviewer#<sha>),让后续推送无法悄悄改变实际运行的内容。
不想授权构建? 改用预构建 tarball——携带可直接运行的代码,不会触发 allowBuilds 门禁:
dsh plugin --profile web add ./7dgroup-dsh-skill-7d-code-reviewer-0.1.0-rc.5.tgz
安装完成后的状态。 profile 清单 ~/.dsh/profiles/web/package.json 会新增依赖与 bundle 行:
{
"name": "dsh-profile-web",
"private": true,
"dependencies": {
"@7dgroup/dsh-skill-7d-code-reviewer": "<版本>"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"@7dgroup/dsh-skill-7d-code-reviewer"
]
}
}
}
其余文件无需改动——cordis.patch.yml 保持 [],因为 bundle 自带的 patch 层会自动挂载 skill-7d-code-reviewer 行。用 dsh --profile web --dump-config 验证挂载,重启会话(bundle 变更在下次启动时生效),然后执行 /7d-code-reviewer。
用的是其他 profile? 把上面的 web 换成你实际启动的名字(dsh --profile <name>);技能只在被安装进的 profile 中生效。
构建与测试
pnpm install
pnpm build # tsdown;git 安装时也会以 prepare 钩子运行
pnpm test # vitest
💡 使用方式
技能在你提出代码审查需求时自动生效,既可以用斜杠命令,也可以直接自然语言描述:
/7d-code-reviewer 审查这个模块:……
五步审查流程:
| 步骤 | 做什么 |
|---|---|
| 1. 接收审查任务 | 接收用户提交的代码或文件路径;确定语言与业务场景 |
| 2. 快速浏览 | 判断改动性质(新业务 / 修 bug / 重构);识别核心文件与关键逻辑 |
| 3. 逐行审查 | 按需加载对应 references;逐项检查命名、安全、性能与异常处理 |
| 4. 问题分级 | 🔴 严重——必须修复 · 🟡 中等——建议修复 · 🟢 轻微——可选改进 |
| 5. 生成报告 | 填充占位符 HTML 模板;输出文本摘要与 code-review-report-{时间戳}.html |
输出示例(文本摘要)
✅ 优点
- 函数意图明确,返回用户数据
⚠️ 问题
🔴 严重:SQL 注入风险
位置:get_user() 第 2 行
描述:直接使用 f-string 拼接用户输入到 SQL 语句
建议修复:使用参数化查询,如 cursor.execute("SELECT * FROM users WHERE id=?", [uid])
📊 总体评分:3/10
代码质量: 5/10 | 安全性: 1/10 | 性能: 7/10 | 可维护性: 4/10
完整 HTML 报告保存为 code-review-report-{时间戳}.html,并告知你报告文件路径。
📊 分级与评分标准
问题分级:
| 级别 | 标识 | 定义 | 处理要求 |
|---|---|---|---|
| 严重 | 🔴 | 安全漏洞、崩溃风险 | 必须修复 |
| 中等 | 🟡 | 性能隐患、逻辑缺陷 | 建议修复 |
| 轻微 | 🟢 | 命名优化、注释补充 | 可选改进 |
四维度评分(各维度 1–10 分):
| 维度 | 优秀(8-10) | 良好(6-7) | 需改进(4-5) | 差(1-3) |
|---|---|---|---|---|
| 代码质量 | 命名清晰,结构合理,无重复代码 | 基本规范,少量问题 | 命名混乱或复杂度过高 | 严重违反编码规范 |
| 安全性 | 无安全风险,参数化查询,完整验证 | 基本安全,小瑕疵 | 存在安全隐患 | 有严重安全漏洞 |
| 性能 | 算法高效,使用缓存,无N+1查询 | 性能可接受 | 有明显性能问题 | 严重性能缺陷 |
| 可维护性 | 文档完善,模块化,测试覆盖高 | 基本可维护 | 缺少注释或测试 | 难以维护 |
总体评分区间:9-10 优秀 · 7-8 良好 · 5-6 中等 · 3-4 较差 · 1-2 很差(必须立即修复)。
📈 HTML 报告
- 评分圆环——总体评分(1-10 分)与自动生成的摘要描述
- 问题统计条——严重 / 中等 / 轻微问题数量与优点数量
- 维度评分卡片——代码质量 / 安全性 / 性能 / 可维护性
- 按严重级别分组的问题——位置、描述与修复建议(含修复代码示例)
- 代码优点与改进建议章节
- 纯占位符模板——所有占位符必须填充;动态内容按
scripts/html-report-generation.md一律 HTML 转义 - 空章节遵循"无内容填充规则"(如"🎉 未发现严重问题!")
⚠️ 注意事项
- 该提供方只贡献一个固定 skill,不提供运行时自定义。
- 报告质量依赖模型遵循占位符填充与 HTML 转义规则;没有任何机制校验生成的报告。
- prepare 构建不附带类型声明;dsh Loader 只加载运行时入口。
- 构建只做转译(
dts: false),没有 lint 或类型检查脚本——类型错误只能在编辑器/IDE 中暴露。 - 本仓库提交消息遵循简体中文规范:
【类型】简短描述(九个固定类型标签)。
❓ 常见问题
问:第一次 dsh plugin add 为什么失败?
答:pnpm 在得到显式允许前会拒绝运行 git 依赖的构建脚本。把 pnpm 打印的确切包键复制进该 profile 的 pnpm-workspace.yaml → allowBuilds,然后重新执行即可。
问:如何锁定具体 commit?
答:在地址后追加 #<sha>,如 git+https://github.com/7dgroup-ai/dsh-skill-7d-code-reviewer.git#<sha>——后续推送无法悄悄改变实际运行的内容。
问:如何卸载?
答:执行 dsh plugin --profile <name> remove @7dgroup/dsh-skill-7d-code-reviewer(pnpm 移除依赖并自动对账掉 bundle 行),或手动编辑该 profile 的 package.json,从 dsh.profile.bundles 中移除对应行。不会留下任何核心补丁。
问:可以不授权构建直接安装吗?
答:可以——使用仓库根目录的预构建 tarball,或发布后的 npm 包,两者都不需要 allowBuilds。
问:应该装进哪个 profile?
答:装进你实际启动的那个——dsh 每次运行都必带 --profile <name>,技能只在被安装进的 profile 中生效。大多数会话启动 web(dsh web),所以 dsh plugin --profile web add ... 是最常见的命令。
问:dsh plugin 报 "pnpm not found"?
答:dsh plugin 会在 profile 目录内转发给 pnpm——先安装 pnpm 并加入 PATH(corepack prepare pnpm@latest --activate 或 npm install -g pnpm@10),然后重试。
📄 许可证
MIT · Copyright (c) 2026 7DGroup
安全与安装证据
该分数只基于公开仓库元数据与本站登记的安装证据,不等同于代码安全审计。
来自公开插件目录,并链接到公开 GitHub 仓库。
仓库声明 MIT 许可证。
最近 180 天内有代码更新。
尚未登记可复验的精确安装元数据,请按仓库说明手动检查。
检测到 prepare,安装前请审阅脚本。
lifecycle-scripts