审查开放拉取请求
SkillDev tools审计本 TGOSKits 仓库的开放 GitHub 拉取请求,找出需要当前用户审查的非本人拉取请求,根据当前精确提交的任务、步骤和日志把持续集成状态分为暂缓、跳过、成功或失败,不执行常规本地验证,只在直接修改 `apps/**` 且同一应用与目标缺少等价持续集成运行时执行真实应用,并通过可用任务清单统筹批次,再把每个符合条件的拉取请求交给 `review-single-pr`。适用于用户要求审查全部开放拉取请求、审查非本人拉取请求、复审上次审查后已有新提交的拉取请求,或协调逐项审查工作树与子代理。
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 审查开放拉取请求 skill
What this skill tells your AI
The instructions your AI receives, as published by rcore-os/tgoskits in .agents/skills/review-open-prs/SKILL.md and read by ahel’s review.
目标
找出真正需要当前用户关注的开放拉取请求,先分类当前精确提交的持续集成证据,再使用 review-single-pr 审查符合条件的每一项。本技能只负责多项发现与分派;单项审查标准、持续集成与应用验证、行内评论、批准、请求修改、冲突修复和最终提交规则均由 review-single-pr 负责。
默认不重复审查所有开放拉取请求。只处理当前用户从未审查的项目,或最新提交时间晚于当前用户最后一次已提交审查时间的项目。除非用户明确排除,否则包含草稿。
遵守全局子代理规则。即使使用子代理,最终 GitHub 审查提交仍由主代理负责,除非用户明确把该权限交给其他执行者。
批次任务清单门禁
完成资格与持续集成就绪检查后,为每个可审项目建立一个用户可见的批次任务项,并加入批次级最终提交刷新、审查提交核验、审查人分配和清理。CI_DEFERRED 或 CI_SKIPPED 项只进入对应的只读摘要,不建立单项审查任务。
有 update_plan 等任务清单工具时必须调用并等待成功,之后持续维护同一清单。工具没有报错但返回空结果时视为成功。工具不可用或确认失效时,才改用可见 Markdown 清单并说明原因。工具只支持待处理、进行中和已完成时,只有记录“有证据完成”“有具体理由不适用”或“有证据阻塞”后才能标记完成。
批次清单不能替代 review-single-pr 要求的拉取请求专属清单。每项详细审查都要识别当前范围,完整读取适用规范,建立完整专属清单,追加新发现范围,并在提交前后逐项核对。除非明确并行委派独立审查,否则批次中最多一项处于进行中。
资格检查
-
确定仓库和当前用户:
gh auth status gh repo view --json nameWithOwner,defaultBranchRef,url gh pr list --state open --limit 100 --json number,title,author,headRefName,headRepositoryOwner,baseRefName,updatedAt,isDraft,url,reviewDecision,mergeStateStatus,maintainerCanModify -
排除当前 GitHub 用户创建的拉取请求。
-
对其余项目取得最新提交、审查、变更文件和当前精确提交的持续集成状态:
gh api "repos/<owner>/<repo>/pulls/<pr>/commits?per_page=100" gh api "repos/<owner>/<repo>/pulls/<pr>/reviews?per_page=100" gh api "repos/<owner>/<repo>/pulls/<pr>/files?per_page=100" gh pr checks <pr> --repo <owner>/<repo> --watch=false gh api --paginate "repos/<owner>/<repo>/commits/<head-sha>/check-runs?per_page=100" gh api --paginate "repos/<owner>/<repo>/actions/runs?head_sha=<head-sha>&per_page=100" gh api --paginate "repos/<owner>/<repo>/actions/runs/<run-id>/jobs?per_page=100" -
当前用户从未审查,或最新提交时间晚于最后一次已提交审查时间时,标为符合条件。比较最新提交时间,不比较
updatedAt,因为评论、持续集成或讨论解决也会更新时间。 -
对每个初步符合条件的项目,把变更范围和声明映射到相关检查与任务。任何相关检查或任务处于
queued、pending、waiting或in_progress时,标记为CI_DEFERRED并停止处理。不得等待、轮询、创建专属清单或工作树、运行应用、详细读代码、解决讨论、提交评论或审查、创建或更新议题、修复冲突或更改审查人。最终只记录编号、当前精确提交散列值和未完成检查。只有给出与变更范围无关的具体理由时才可忽略未完成任务。 -
已在最新提交上由当前用户审查的项目默认排除,除非用户明确要求重新审查。
-
分别记录已排除、
CI_DEFERRED和CI_SKIPPED。排除理由包括本人创建、最新提交已审、已关闭、用户范围排除或明确约束阻止。
验证策略
项目通过未终结持续集成门禁后、分派前,为当前精确提交建立持续集成覆盖台账。依据包括检查、任务、步骤、日志、变更文件、描述、提交以及修改的文档或操作手册。台账要带入单项清单,不能代替单项清单。
每项变更行为或验证声明都映射到:检查与任务、当前提交散列值、结论、实际命令、体系结构或配置、用例或程序、相关日志、可观察后置条件和失败传播。只有当前精确提交的任务成功,且工作流与日志证明实际执行了同一目标行为时才接受为覆盖。检查名称或宽泛绿灯、旧提交、跳过的路径或矩阵项、不同命令或体系结构、缺少成功标记、失败被吞掉,以及无法证明新测试被发现并执行,都不算覆盖。
不执行普通本地格式化、构建、静态检查、测试、QEMU 测试、元数据、打包、发布或工具流程。相关非应用持续集成项失败时,交给单项审查归因;取消、缺失、陈旧、跳过、可疑或无法由日志证明时标为 CI_SKIPPED,不分派。唯一例外是 apps/** 下直接新增、修改或重命名的可运行应用缺少等价执行证据,且其他相关持续集成项都可接受;此时把精确应用和目标带入真实应用运行要求。持续集成不能代替代码、架构、接口二进制约定、生命周期、安全、文档或测试可信度审查。错误修复还需要来自测试逻辑、作者证据或专门持续集成的修复前失败证据。
最终报告区分:
CI_DEFERRED:当前精确提交和全部未完成相关检查或任务;CI_SKIPPED:当前精确提交、缺失或不可接受的相关证据,以及未分派原因;- 持续集成已覆盖:每个接受的检查与任务、命令、体系结构或配置、目标行为、日志、后置条件和失败传播;
- 应用证据:每个直接变更的可运行应用、目标、命令,以及由持续集成、本地真实运行或不可用实体板卡提供的状态;
- 错误修复证据:修复前独立失败来源和当前提交的成功来源。
分派单项审查
对每个符合条件的拉取请求调用 review-single-pr。提示中携带批次上下文,但把审查决定交给单项技能:
请使用 $review-single-pr 审查 <owner>/<repo> 的拉取请求 #<pr>。
来自 $review-open-prs 的上下文:
- 符合条件的原因:<当前用户从未审查 | 最新提交 <sha/time> 晚于当前用户上次审查 <time>>。
- 草稿状态:<draft|ready>。
- 合并状态:<mergeStateStatus>;维护者能否修改:<maintainerCanModify>。
- 用户要求的范围:<范围摘要>。
- 当前精确提交的持续集成摘要:<提交散列值、成功/失败/跳过数量、相关检查名、任务/步骤/日志证据;确认没有相关运行中任务,也没有会触发 CI_SKIPPED 的非应用证据缺口>。
- 持续集成与应用计划:<逐项覆盖台账>;<失败任务和待归因日志>;<直接改变的 apps/** 可运行应用>;<同应用同目标的持续集成证据或待执行真实应用>;<错误修复独立失败证据>。
只审查这一项。任何详细审查、任务清单、工作树、应用运行或 GitHub 写操作前,先按 $review-single-pr 刷新当前提交和相关持续集成。门禁通过后完整读取适用规范,建立并维护专属任务清单,按照 $review-single-pr 检查重复或取代关系、分析失败任务、按规则处理冲突,并提交 APPROVE 或 REQUEST_CHANGES。禁止普通本地验证;只有直接改变 apps/** 的可运行应用且同应用同目标缺少当前提交持续集成覆盖时,才运行真实应用。中文行内评论和总审查正文必须使用 $review-single-pr 的固定结构,提交前后都检查发布格式并逐项核对任务清单。
明确允许执行者或子代理时,每个执行者只负责一个拉取请求和一个工作树,并要求其:
- 使用
review-single-pr; - 在详细工作前刷新当前精确提交和相关持续集成,只在门禁通过后继续;
- 完整读取适用规范并维护专属任务清单;
- 只执行只读审查、日志分析和
review-single-pr允许的真实应用运行; - 不执行普通本地格式化、构建、静态检查、测试、QEMU 测试、元数据、打包、发布或工具流程;
- 不提交 GitHub 审查;
- 未明确分配冲突修复时不推送贡献者分支,即使已分配也优先只创建本地提交;
- 返回四态结论,并为每个阻塞问题提供
path、line、side=RIGHT和符合固定模板的中文评论; - 列出持续集成命令、任务、步骤、关键日志、应用证据、错误修复失败证据和清单核对结果;
- 清理临时工作树和文件,不安全时报告路径与原因。
提交执行者结论前,主代理必须刷新当前提交,确认问题仍位于当前右侧变更行,并遵守 review-single-pr 的提交与发布后格式检查。
冲突处理
符合条件但存在冲突的项目仍通过 review-single-pr 处理。该技能负责“本应批准、允许维护者修改时修复冲突”的策略。冲突修复本地只运行冲突标记和差异卫生检查,再依赖推送后当前提交的持续集成与日志;不得执行普通本地验证。用户明确要求处理冲突时,把要求写入分派提示。主代理必须把冲突修复与普通审查分开,禁止强制推送贡献者分支。
最终汇总
最终简要报告:
- 已审项目、决定和主要原因;
- 已排除项目及原因;
CI_DEFERRED项的当前提交和全部未完成相关检查,并确认未做详细审查或写操作;CI_SKIPPED项的当前提交、全部证据缺口和未提交审查原因;- 批次及单项任务清单的完成、不适用、阻塞和未完成状态;
- 每个直接变更应用的准备来源、体系结构或板卡、命令、后置条件、持续集成或真实运行证据,以及未运行板卡流程;
- 每个已审项目的当前提交持续集成命令、任务、步骤、日志、失败归因和错误修复先失败后通过证据;
- 失败或无法运行的应用命令,以及与文档声明不一致的流程;
- 因冲突、维护者修改权限、陈旧提交或相关持续集成失败而留给作者的项目;
- 无法安全清理的临时工作树或文件及原因。
Signals
- GitHub stars
- 67
- Forks
- 133
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
review-open-prs- Source
- github.com/rcore-os/tgoskits