mcpField
R
review-code

review-code

github.com/nesnilnehcTesting & quality872 installsUpdated 2d ago
Repository

About review-code

A skill that coordinates specialized review skills for a combined code review, then merges and deduplicates their findings into one report. It is for agents handling broad reviews, not direct code analysis or single-dimension checks.

Key features

  1. 01Runs review steps in a fixed order
  2. 02Confirms review scope before execution
  3. 03Combines findings into one report
  4. 04Deduplicates by location and title
  5. 05Derives risk signals from final results

Use cases

  1. 01Reviewing changes before a pull request
  2. 02Reviewing a codebase across multiple dimensions
  3. 03Applying a consistent review pipeline

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nesnilnehc/ai-cortex --skill review-code

After installing, type/review-codein Claude Code to confirm it loaded.

Bundled filesREADME.mdagent.yaml

Details

From the project README

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

目的 (Purpose)

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


核心目标(Core Objective)

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

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

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

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


范围边界(范围边界)

本技能负责:

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

本技能不负责:

  • 直接代码分析(使用原子审查技能:review-diff、review-codebase、review-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性能”的结果表明可测量的延迟/吞吐量/内存回归风险。

笔记:

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

Comments

Markdown supported