skills/review-code/SKILL.md
Orchestrate comprehensive code reviews by running scope, language, framework, library, and cognitive review skills in sequence, then aggregate findings into a unified report.
npx skillsauth add nesnilnehc/ai-cortex review-codeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
此技能本身并不执行代码分析。这是一项元技能,以固定的顺序编排其他原子审查技能,然后将其发现汇总到单个报告中。当用户要求完整的“审查代码”或“代码审查”并且您想要应用范围→语言→框架→库→cognitive技能并产生一个组合输出时,请使用它。对于单维度审核(例如仅 diff 或仅 security),直接调用相应的原子技能(review-diff、review-security 等)。
首要目标:通过按固定顺序安排原子审查技能并汇总其发现,生成全面的、重复数据删除的代码审查报告。
成功标准(必须满足所有要求):
验收测试:最终报告是否包含所有执行的原子技能的结果,没有重复,以及仅在聚合阶段得出的风险信号?
本技能负责:
本技能不负责:
review-diff、review-codebase、review-security等)review-diff仅用于 diff,review-security仅用于安全性等)转交点:汇总报告完成后,移交给用户进行审查或移交给开发工作流程以实施修复。
何时使用:当用户想要跨范围、堆栈(语言/框架/库)和cognitive维度进行组合审查时。当用户只需要一维(例如“查看我的差异”或“安全审查”)时,请使用原子技能。
|项目 |默认 |何时偏离| | :--- | :--- | :--- | | 范围 | 差异(当前更改)|用户选择“代码库”来查看给定的路径。 | | 范围 = diff — 未跟踪 | 在变更集中包含未跟踪的文件 |用户可以选择“仅比较,无未跟踪”。 | | 范围 = 代码库 — 路径 | 回购根目录 |用户选择一个或多个路径(提供:存储库根目录/当前文件的目录/列出要选择的顶级目录)。 | | 范围 = 代码库 — 大 | 按层(按模块/目录输出;没有单个浅层传递)|用户可以选择优先子集(例如一层或命名模块)。 | | 语言/框架 | 从范围内的文件推断 |如果不清楚,请提供选择:[.NET] [Java] [Go] [PHP] [PowerShell] [SQL] [Vue] [Skip];不要求用户输入。 |
在执行任何审核步骤之前,与用户一起解决以下问题。首选确认默认或从选项中选择;当存在默认值时,避免要求自由文本输入。
|项目 |如果不清楚|行动| | :--- | :--- | :--- | | 范围 |用户没有说“我的更改”/“差异”与“代码库”/路径(例如单独“审查”或“审查代码”=不清楚)| 必须询问。 提供:查看当前更改(差异) [默认] 或代码库(给定路径)? - 用户选择;不要假设。 | | 范围 = 差异 | — |确认:包括未跟踪的文件?默认是。确保 diff + 未跟踪的内容可用于审查 diff。 | | 范围 = 代码库 |未说明路径 |提供:查看存储库根目录? [默认] 或选择路径:[存储库根目录] [当前文件的目录] [列出顶级目录] — 用户选择,无需键入。 | | 范围 = 代码库,大 |整个仓库或非常大的目录 |默认值:按层输出(模块/目录)。选项:缩小到优先级子集? - 用户可以从列出的目录/模块中进行选择。 | | 语言/框架 |无法从文件推断 |提供:[.NET] [Java] [Go] [PHP] [PowerShell] [SQL] [Vue] [Skip] — 用户选择一项;如果跳过或没有匹配,则跳过并在摘要中注明。 |
预试后,运行管道,无需进一步询问范围;报告哪些步骤已运行,哪些步骤被跳过。
执行此技能时,顺序应用以下步骤。对于每个步骤,加载并运行相应技能的指令,收集其结果(采用标准格式:位置、类别、严重性、标题、描述、建议),然后继续下一步。
范围
根据用户意图选择一个:
语言
根据项目范围内的主要语言选择一个或无:
.ps1、.psm1、.psd1)。加载 review-powershell。框架(可选)
如果项目使用范围内已知的框架,请选择匹配的技能:
库(可选)
如果项目大量使用具有专门审阅技能的关键库,请运行它(例如review-entityframework(如果可用))。否则跳过。收集所有发现。
cognitive
按顺序运行:
聚合
将所有收集到的结果合并到一份报告中。按类别(“范围”、“语言-”、“框架-”、“库-”、“cognitive-”)或按文件/位置分组,最适合报告长度。使用相同的调查结果格式(位置、类别、严重性、标题、描述、建议)。如果有用,请在顶部添加简短的摘要(例如按严重性或类别进行计数)。
重复数据删除规则:如果多个结果共享相同的位置 + 标题并且跨步骤代表同一问题,请保留最高严重性并在描述中注明其他步骤(例如“还按语言和安全性进行标记”)。
风险信号聚合(仅限最后阶段)
从去重复的最终结果和显式变更上下文(例如文件或路径)中得出风险信号,而不是从任何孤立的原子技能中得出风险信号。将此映射集中在协调器中,以避免跨技能的风险标签不一致或重复。
[]),而不是猜测的风险。不要做这些(其他技能可以处理它们):
何时停止并交接:
聚合报告必须使用与原子技能相同的发现格式:
|元素|要求|
| :--- | :--- |
| 位置 | 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性能”的结果表明可测量的延迟/吞吐量/内存回归风险。 |
笔记:
development
Generate an LLM agent test suite (golden cases, mock-LLM unit tests, evaluator harness) from an agent implementation and its agent-test contract. Use when an agent has no tests, or a contract exists but the test code is missing.
development
After code changes, auto-detect the project's build system and local deployment method for a given directory, then build the project and restart its locally-deployed environment (Docker Compose / systemd / process manager). Never assumes — asks only when detection is ambiguous. Caches detected commands per project in .cortex/redeploy-local.yaml; re-invocations on the same project skip re-scanning until signal files change, the cache expires (30 days), or the skill version bumps.
tools
Publish a NATS message conforming to a cross-team contract, using NATS MCP tools. Authors the contract on first use if missing. Reads project-level cache (.cortex/nats.yaml) to avoid re-prompting basics across sessions.
tools
Drain pending NATS messages from a producer contract via NATS MCP tools (default batch / drain-style). Applies Tolerant Reader semantics and per-message ack/nak/term, returning aggregated stats. Reads project-level cache (.cortex/nats.yaml) to avoid re-prompting.