用途
该技能是一个「PR 审查编排协议」,目标是自动审查 GitHub 拉取请求并发布两类输出:行内(inline)评论,以及一条合并所有发现的 PR 级摘要评论。其核心定位是「与技术栈无关」(stack-agnostic):技能本身不定义任何具体语言或框架的规则,而是先发现项目已经记录的内容(测试运行器、需求规格、架构约定、项目本地审查技能),再由各个子代理加载并应用该项目实际拥有的规则。它声明「从不发明特定技术栈规则,也不重复项目文档」。
主要能力
- 六类子代理并行审查:通过 Task 工具并行启动六个通用子代理,分别负责安全性、需求与完成度(Definition of Done)、测试覆盖、架构与约定、回归与幻觉检测、以及性能。每个子代理拥有独立的免责上下文,提示词中携带 {REPO}、{PR}、{SHA}、diff、PR 意图、已有评论位置与发现地图(DISCOVERY MAP)。
- 项目自适应发现:探测仓库并生成项目画像,包括测试运行器与布局、需求来源、架构/约定文档、项目本地审查技能路径,并以约定格式(TEST / REQS / CONVENTIONS / REVIEW_SKILLS)逐字传给每个子代理。
- 统一的严重级别标签:🚨 Critical(会导致失败的缺陷或逻辑错误)、🔒 Security(漏洞或数据暴露)、⚡ Performance(显著性能问题)、⚠️ Warning(代码异味或可维护性问题)、💡 Suggestion(可选改进)。
- 评论发布机制:支持对新增行发布行内评论、对已有评论线程回复,以及发布 PR 级摘要。要求将多行评论正文先写入临时文件,再用
--body-file或-F body=@file发布。 - 去重与已解决标记:若某 {path, line} 附近 ±3 行已有评论则跳过;若 diff 已修复某个已有评论所指问题,则通过 replies 端点在该线程回复「[RESOLVED] This appears resolved by the recent changes.」
- 置信度门槛:仅在 ≥80% 置信度时才报告发现;不确定时保持沉默。
- 正向提示:每个子代理在列出问题前至少指出一处做得好的方面。
使用方式
该技能需显式调用(声明 disable-model-invocation: true),在编码过程中绝不自动触发。执行分为三步:
- 初始化:从用户请求解析 PR 编号(缺失则询问);通过
gh repo view --json nameWithOwner -q .nameWithOwner获取仓库;通过gh pr diff {PR}获取 diff;通过gh pr view {PR} --json headRefOid -q .headRefOid获取 head SHA;通过gh api repos/{REPO}/pulls/{PR}/comments加载已有行内评论;通过gh pr view {PR} --json title,body,headRefName读取 PR 意图。随后进行项目发现并生成发现地图。 - 并行启动子代理:在一条消息中发起六个 Task 工具调用,同时启动。
- 启动合并子代理:将六个子代理的发现合并为一条摘要。
评论发布命令(技能原文要求逐字复制):
对新增行发布行内评论:
gh api repos/{REPO}/pulls/{PR}/comments \
-F body=@body.md -f commit_id={SHA} -f path={path} -F line={N} -f side=RIGHT
对已有评论线程回复:
gh api repos/{REPO}/pulls/{PR}/comments/{COMMENT_ID}/replies -F body=@body.md
发布 PR 级摘要:
gh pr review {PR} --comment --body-file body.md
其中 line={N} 指 head 文件中 RIGHT 侧的 1 基行号,从 hunk 头的 +c 起点起算,跨新增行与上下文行计数,而非 diff/hunk 偏移。-F/--field 会将 @file 展开为文件内容并对数字类型作处理,-f/--raw-field 则不会,因此正文应使用 -F body=@file 或 --body-file。
约束与规则
- 仅编排,不自行分析:编排者必须不分析 diff、不读源文件、不亲自撰写任何审查发现,只负责收集上下文、启动子代理、启动合并子代理。即使为节省时间、即使 diff 很小,也禁止自行完成审查。
- 禁用破坏性操作:绝不
--approve、绝不--request-changes、绝不修改文件,仅使用--comment。 - 评论白名单:仅在以
+开头的 diff 行(绝不+++)发布行内评论,并锚定到作为证据的那一行+。 - 无归属署名:评论正文绝不提及 AI、助手、模型或任何工具,以审查者身份撰写。
- 标记前缀:每条行内评论正文以
<!-- pr-review:{type} -->开头,{type} ∈ security | requirements | tests | architecture | regression | performance。 - 语气:具体、可执行、友善,始终解释原因(WHY)。
适用场景与限制
适用于使用 GitHub 托管、通过 gh CLI 操作的仓库拉取请求审查,可适配不同语言与框架的项目。限制包括:「技术栈无关」指语言与框架无关,而非宿主无关,GitLab/Bitbucket 托管的仓库(使用 MR 而非 PR)不在范围内。此外,技能为纯编排协议,其子代理数量、并行机制以及二级子代理(如性能子代理)的具体审查细则在所提供的资料中未完整给出,部分内容暂未提供。