用途
GitNexus PR Review 用于在合并前审查拉取请求。当用户想要审查一个 PR、理解 PR 改了什么、评估合并风险,或检查是否缺少测试覆盖时使用。典型触发语句包括:"Review this PR"、"What does PR #42 change?"、"Is this safe to merge?"、"What's the blast radius of this PR?"、"Are there missing tests for this PR?",以及审查他人代码改动。
主要能力
该技能围绕几个核心工具展开:
- detect_changes:将 PR diff 映射到受影响的执行流程。例如
detect_changes({scope: "compare", base_ref: "main"})会输出改动的符号数量、受影响流程(如 CheckoutFlow、RefundFlow、WebhookHandler)以及风险等级。 - impact:计算每个改动符号的爆炸半径。
impact({target: "validatePayment", direction: "upstream"})会列出 d=1(WILL BREAK)、d=2(LIKELY AFFECTED)等依赖项及其调用关系与置信度。加上includeTests: true可查看覆盖该符号的测试。 - context:理解某个改动符号的角色,展示其入站调用、出站调用以及所属流程中的步骤位置。
- 还可读取
gitnexus://repo/{name}/processes检查受影响的执行流程。
使用方式
工作流如下:
gh pr diff <number>获取原始 diffdetect_changes({scope: "compare", base_ref: "main"})将 diff 映射到受影响流程- 对每个改动符号执行
impact({target: "<symbol>", direction: "upstream"})计算爆炸半径 context({name: "<key symbol>"})理解调用方与被调用方- 读取
gitnexus://repo/{name}/processes检查受影响的执行流程 - 汇总发现并给出风险评估
若提示 "Index is stale",需先在终端运行 node .gitnexus/run.cjs analyze 再审查。
审查清单包括:获取 PR diff、用 detect_changes 映射流程、对每个非平凡改动符号执行 impact、检查 d=1(WILL BREAK)项的调用方是否已更新、对关键符号执行 context、检查受影响流程是否有测试覆盖、评估整体风险、撰写审查总结。
审查维度
- 正确性:context 展示调用方,判断它们是否都与改动兼容。
- 爆炸半径:impact 展示 d=1/d=2/d=3 依赖项,检查是否有遗漏。
- 完整性:detect_changes 展示所有受影响流程,判断是否都已处理。
- 测试覆盖:
impact({includeTests: true})展示哪些测试触及改动代码。 - 破坏性变更:PR 中未更新的 d=1 上游项即为潜在破坏点。
风险评估
- 改动触及少于 3 个符号、0-1 个流程:LOW
- 改动触及 3-10 个符号、2-5 个流程:MEDIUM
- 改动触及超过 10 个符号或大量流程:HIGH
- 改动触及认证、支付或数据完整性代码:CRITICAL
- 存在 PR diff 之外的 d=1 调用方:潜在破坏,需标记
输出格式
审查结果按以下结构组织:标题、风险等级(LOW/MEDIUM/HIGH/CRITICAL)、改动摘要(符号数、文件数、受影响流程数)、发现列表(含严重程度、GitNexus 工具证据、受影响调用方/流程)、缺失覆盖(PR 中未更新的调用方、未测试的流程)、建议(APPROVE / REQUEST CHANGES / NEEDS DISCUSSION)。
适用场景与限制
适用于合并前的代码审查、风险评估与测试覆盖检查。使用前需确保索引为最新,否则需先运行分析命令。具体支持的平台、收费方式与价格信息暂未提供。