review-code

Installation
SKILL.md

技能(Skill):审查代码(Orchestrator)

目的 (Purpose)

此技能本身并不执行代码分析。这是一项元技能,以固定的顺序编排其他原子审查技能,然后将其发现汇总到单个报告中。当用户要求完整的“审查代码”或“代码审查”并且您想要应用范围→语言→框架→库→cognitive技能并产生一个组合输出时,请使用它。对于单维度审核(例如仅 diff 或仅 security),直接调用相应的原子技能(review-diffreview-security 等)。


核心目标(Core Objective)

首要目标:通过按固定顺序安排原子审查技能并汇总其发现,生成全面的、重复数据删除的代码审查报告。

成功标准(必须满足所有要求):

  1. 范围确认:在执行之前确认用户的审查范围(差异或代码库路径)
  2. 遵循执行顺序:技能按固定顺序运行(范围→语言→框架→库→cognitive)
  3. 执行所有适用的技能:运行范围技能+语言技能(如果适用)+框架技能(如果适用)+所有cognitive技能(安全、性能、架构、测试)
  4. 结果汇总:使用标准格式(位置、类别、严重性、标题、描述、建议)收集原子技能的所有结果并将其合并到单个报告中
  5. 结果重复数据删除:重复的结果(相同位置+标题)被合并,保持最高严重性
  6. 衍生的风险信号:风险信号是根据最终的重复数据删除结果和变化背景生成的(而不是根据个人技能)

验收测试:最终报告是否包含所有执行的原子技能的结果,没有重复,以及仅在聚合阶段得出的风险信号?


范围边界(范围边界)

本技能负责

  • 按固定顺序编排原子审查技能
  • 与用户确认审查范围(差异与代码库、路径、语言/框架)
  • 收集每个原子技能的发现
  • 将调查结果汇总并删除重复数据到单个报告中
  • 从最终结果中得出风险信号

本技能不负责

  • 直接代码分析(使用原子审查技能:review-diffreview-codebasereview-security等)
  • 单维审查(直接使用原子技能:review-diff仅用于 diff,review-security仅用于安全性等)
  • 实施修复(使用开发/重构技能)
  • 测试写作(使用测试技巧)

转交点:汇总报告完成后,移交给用户进行审查或移交给开发工作流程以实施修复。


使用场景(用例)

  • 完整代码审查:用户要求“审查代码”或“审查我的更改”,并期望一次性获得影响、语言/框架约定、安全性、性能和架构。
  • 预 PR 或预提交:运行完整的管道(差异 + 堆栈 + cognitive)并获取一份报告。
  • 一致的管道:每次执行顺序相同,因此光标或代理可以通过遵循该技能的说明来模拟技能链。

何时使用:当用户想要跨范围、堆栈(语言/框架/库)和cognitive维度进行组合审查时。当用户只需要一维(例如“查看我的差异”或“安全审查”)时,请使用原子技能。


行为(行为)

仅编排

  • 不要自己分析代码。 按顺序调用(或模拟调用)以下技能,然后汇总他们的发现。
  • 执行顺序是固定的,以便Cursor或代理可以逐步遵循它。

交互(Interaction)政策

  • 首选默认值和选择:使用下表中的默认值;为用户提供用于确认或选择的选项(例如 [diff] [codebase]、[Repo root] [Current dir]),并避免在存在默认值时要求自由文本输入。
  • 范围(差异与代码库):如果用户没有明确指示(a)差异/当前更改(例如“我的更改”、“差异”、“我更改的内容”)或(b)代码库/路径(例如“此目录”、“src/foo”、“repo”),请用户选择。特别是,如果他们只说“审查”、“审查代码”或“代码审查”,没有范围提示,不要假设 - 提供:审查当前更改(差异) [默认] *或代码库(给定路径)?*并在运行任何审查技能之前等待他们的选择。
  • 如果语言/框架不明确并且无法从范围内的文件推断,提供选择([.NET] [Java] [Go] [PHP] [PowerShell] [SQL] [Vue] [Skip]);如果仍然不清楚,请跳过并在最终摘要中注明跳过
  • 始终说明执行了哪些步骤以及跳过了哪些步骤(有原因)。

默认值(首选确认或选择;避免要求自由文本输入)

项目 默认 何时偏离
范围 差异(当前更改) 用户选择“代码库”来查看给定的路径。
范围 = diff — 未跟踪 在变更集中包含未跟踪的文件 用户可以选择“仅比较,无未跟踪”。
范围 = 代码库 — 路径 回购根目录 用户选择一个或多个路径(提供:存储库根目录/当前文件的目录/列出要选择的顶级目录)。
范围 = 代码库 — 大 按层(按模块/目录输出;没有单个浅层传递) 用户可以选择优先子集(例如一层或命名模块)。
语言/框架 从范围内的文件推断 如果不清楚,请提供选择:[.NET] [Java] [Go] [PHP] [PowerShell] [SQL] [Vue] [Skip];不要求用户输入。

飞行前:运行前确认

在执行任何审核步骤之前,与用户一起解决以下问题。首选确认默认从选项中选择;当存在默认值时,避免要求自由文本输入。

项目 如果不清楚 行动
范围 用户没有说“我的更改”/“差异”与“代码库”/路径(例如单独“审查”或“审查代码”=不清楚) 必须询问。 提供:查看当前更改(差异) [默认] 或代码库(给定路径)? - 用户选择;不要假设。
范围 = 差异 确认:*包括未跟踪的文件?*默认。确保 diff + 未跟踪的内容可用于审查 diff。
范围 = 代码库 未说明路径 提供:查看存储库根目录? [默认] 或选择路径:[存储库根目录] [当前文件的目录] [列出顶级目录] — 用户选择,无需键入。
范围 = 代码库,大 整个仓库或非常大的目录 默认值:按层输出(模块/目录)。选项:缩小到优先级子集? - 用户可以从列出的目录/模块中进行选择。
语言/框架 无法从文件推断 提供:[.NET] [Java] [Go] [PHP] [PowerShell] [SQL] [Vue] [Skip] — 用户选择一项;如果跳过或没有匹配,则跳过并在摘要中注明。

预试后,运行管道,无需进一步询问范围;报告哪些步骤已运行,哪些步骤被跳过。

执行顺序

执行此技能时,顺序应用以下步骤。对于每个步骤,加载并运行相应技能的指令,收集其结果(采用标准格式:位置、类别、严重性、标题、描述、建议),然后继续下一步。

  1. 范围
    根据用户意图选择一个

    • review-diff:当用户只想查看当前更改(git diff、暂存 + 未暂存)时使用。加载 review-diff 并在差异上运行它。
    • review-codebase:当用户想要查看给定路径、目录或存储库的当前状态时使用。加载 review-codebase 并在指定范围上运行它。 运行所选范围的技能;收集所有调查结果。
  2. 语言
    根据项目范围内的主要语言选择一个或无

    • 评论-dotnet:.NET (C#/F#)。加载 review-dotnet
    • 评论-java:Java。加载 review-java
    • 回顾-去:去。加载 review-go
    • 评论-php:PHP。加载 review-php
    • 审查-powershell:PowerShell(.ps1.psm1.psd1)。加载 review-powershell
    • review-sql:SQL 或查询密集型代码。加载 review-sql。 如果没有匹配,则跳过此步骤。在相同范围内运行所选语言技能;收集所有调查结果。
  3. 框架(可选)
    如果项目使用范围内已知的框架,请选择匹配的技能:

    • review-vue:Vue 3.加载review-vue
    • (为将来保留:review-aspnetcore、review-react 等) 如果没有匹配,则跳过。运行所选的框架技能;收集所有调查结果。
  4. 库(可选)
    如果项目大量使用具有专门审阅技能的关键库,请运行它(例如review-entityframework(如果可用))。否则跳过。收集所有发现。

  5. cognitive
    按顺序运行:

  6. 聚合
    将所有收集到的结果合并到一份报告中。按类别(“范围”、“语言-”、“框架-”、“库-”、“cognitive-”)或按文件/位置分组,最适合报告长度。使用相同的调查结果格式(位置、类别、严重性、标题、描述、建议)。如果有用,请在顶部添加简短的摘要(例如按严重性或类别进行计数)。
    重复数据删除规则:如果多个结果共享相同的位置 + 标题并且跨步骤代表同一问题,请保留最高严重性并在描述中注明其他步骤(例如“还按语言和安全性进行标记”)。

  7. 风险信号聚合(仅限最后阶段)
    去重复的最终结果和显式变更上下文(例如文件或路径)中得出风险信号,而不是从任何孤立的原子技能中得出风险信号。将此映射集中在协调器中,以避免跨技能的风险标签不一致或重复。

    • 发出具有唯一信号名称的紧凑“risk_signals”列表。
    • 可以选择包含每个信号的“risk_confidence”(0.0-1.0)。
    • 如果没有明确的信号存在,则发出一个空列表([]),而不是猜测的风险。

游标/代理摘要

  • 执行此技能时,依次应用:
    1. review-diff review-codebase(范围)
    2. review-dotnet review-java review-go review-php review-powershell review-sql(语言,可选)
    3. 复习-vue或其他框架技能(可选)
    4. 图书馆技能(可选,如果有的话)
    5. 审查安全性,然后审查性能,然后审查架构,然后审查测试(cognitive)
    6. 将调查结果汇总并删除重复内容到一份报告中
    7. 从最终结果 + 变更背景中得出最终的“risk_signals”(和可选的“risk_confidence”)
  • 使用标准调查结果格式将所有调查结果汇总到一份报告中,然后在最后阶段发出风险信号。请勿在此技能中分析代码;仅协调和聚合。

输入与输出 (Input & Output)

输入(输入)

  • 用户意图:要查看的内容(例如“我的更改”→ 范围 = diff;“此目录”→ 范围 = 代码库)以及可选的项目类型(例如 .NET、Java、Vue)以选择语言/框架。
  • 代码范围:差异或路径,由用户在调用技能时提供。

输出(输出)

  • 单一聚合报告包含上述步骤的所有结果,采用标准格式(位置、类别、严重性、标题、描述、建议),按类别或位置分组,并带有可选摘要。
  • 可选风险摘要在聚合阶段得出:“风险信号”(和可选置信度),基于最终的重复数据删除结果和变更上下文。

限制(限制)

硬边界(Hard Boundaries)

  • 不要在此技能内执行任何代码分析。只协调其他技能并聚合。
  • 不要改变执行顺序;保持范围→语言→框架→库→cognitive。
  • 不要发明发现;仅包括您运行的原子技能产生的结果。
  • 要求每个原子技能发出风险信号。风险标签由协调者拥有,并且仅在最终聚合时生成。

技能边界 (Skill Boundaries)

不要做这些(其他技能可以处理它们):

  • 直接代码分析或 linting — 使用原子审查技能(“review-diff”、“review-codebase”、“review-security”等)
  • 单维度审查——直接调用“review-diff”、“review-security”、“review-performance”或其他原子技能
  • 实施修复或重构代码——使用开发/重构技能
  • 编写或修改测试——使用测试技能或“运行自动化测试”

何时停止并交接:

  • 汇总报告完成后 → 移交给用户进行审查或开发 工作流程
  • 当用户仅要求特定维度(例如“安全审查”)时 → 移交给相应的原子技能
  • 当需要对发现的结果采取行动时 → 移交给实施或“运行修复循环”技能

自检(Self-Check)

核心成功标准

  • 范围确认:在执行之前确认用户的审查范围(差异或代码库路径)
  • 执行顺序:技能按固定顺序运行(范围→语言→框架→库→cognitive)
  • 执行所有适用的技能:范围技能 + 语言技能(如果适用)+ 框架技能(如果适用)+ 所有cognitive技能均已运行
  • 结果汇总:收集原子技能的所有结果,并使用标准格式将其合并到一份报告中
  • 重复发现结果:合并重复发现结果(相同位置 + 标题),保持最高严重性
  • 衍生风险信号:风险信号是根据最终的重复数据删除结果和变更背景生成的(而不是根据个人技能)

验收测试

  • 最终报告是否包含所有执行的原子技能的结果,没有重复,以及仅在聚合阶段得出的风险信号?

示例(示例)

示例 1:.NET 项目的差异审查

  • 输入:用户说“查看我的代码”并提供 git diff;项目是C#。
  • 预期:运行 review-diff → review-dotnet → review-security → review-performance → review-architecture → review-testing (如果不是 Vue 或其他,则跳过框架/库);将所有调查结果汇总到一份报告中,类别为“范围”、“语言点网”、“cognitive安全”、“cognitive表现”、“cognitive架构”、“cognitive测试”。

示例 2:Vue 前端的代码库审查

  • 输入:用户说“查看 src/frontend”并且项目使用 Vue 3。
  • 预期:在 src/frontend 上运行 review-codebase → review-vue → review-security → review-performance → review-architecture → review-testing;汇总成一份报告。

边缘情况:没有语言匹配

  • 输入:项目是 Rust 或其他尚无原子技能的语言。
  • 预期:运行范围(review-diff或review-codebase)→跳过语言和框架→运行review-security、review-performance、review-architecture和review-testing;总计的。报告应指出跳过了语言/框架审查(没有匹配的技能)。

示例 3:PowerShell 脚本的差异审查

  • 输入:用户要求查看当前差异中更改的“.ps1”文件。
  • 预期:运行 review-diff → review-powershell → review-security → review-performance → review-architecture → review-testing;汇总调查结果并将 PowerShell 问题分类为“语言 powershell”。

附录:输出合约

聚合报告必须使用与原子技能相同的发现格式:

元素 要求
位置 path/to/file.ext(可选行或范围)。
类别 范围语言-*框架-*库-*cognitive-*(包括cognitive测试
严重性 “批评”、“主要”、“次要”、“建议”。
标题 简短的一行摘要。
描述 1-3 句话。
建议 具体修复或改进(可选)。
风险信号 可选 risk_signals: string[];值必须来自“附录:风险信号映射(聚合器拥有)”中的映射。当没有明确信号存在时使用“[]”。
风险信心 可选 risk_confidence: { [signal: string]: number };键必须是“risk_signals”的子集,值必须在“[0.0, 1.0]”中。

按类别或位置对结果进行分组。可以选择在报告顶部包含一个汇总表(例如按严重性或按类别进行计数)。

附录:风险信号映射(聚合商拥有)

发出风险信号时,应用来自最终结果/变更背景的集中映射:

信号 触发启发式(示例)
auth_change 调查结果提到身份验证流程、令牌/会话处理、登录逻辑、SSO/OAuth 或身份验证中间件更改。
permission_change 调查结果提到授权检查、ACL/RBAC 策略更改、IDOR 风险或角色/权限矩阵更新。
数据丢失 调查结果表明破坏性数据操作、不可逆突变、不安全删除/截断、迁移回滚间隙或具有丢失风险的幂等性破坏。
向后不兼容 调查结果表明,如果没有版本控制/弃用处理,API/合约/架构行为就会中断。
配置更改 调查结果参考了行为关键配置/默认更改(超时、功能标志、环境设置、运行时旋钮)。
external_api_change 调查结果表明上游/下游 API 合约、请求/响应形状、Webhook/事件格式或客户端 SDK 期望发生了变化。
sql_migration 调查结果涉及 DDL/索引/约束迁移脚本或 SQL 更改集中的架构演化风险。
ci_script_change 调查结果涉及 CI/CD 工作流、构建/发布脚本、部署自动化或测试门控脚本。
加密安全 调查结果提到加密/散列/签名/密钥管理问题或加密算法更改。
性能回归 “语言-”、“框架-”、“语言-sql”或“cognitive性能”的结果表明可测量的延迟/吞吐量/内存回归风险。

笔记:

  • 使用证据优先的映射;在没有至少一项支持发现或明确改变的产品的情况下,不要推断信号。
  • 每个信号发射一次;保持列表稳定并消除重复。
Related skills
Installs
71
GitHub Stars
7
First Seen
Feb 6, 2026