SuperAPI AI 工具集

finish-line

编程与开发

查看项目

更新于 10-16 01:08

技能介绍

用途:Finish Line 用于处理 remix-run/react-router 中被阻塞的社区 PR,在尊重贡献者所有权和仓库 PR 打包规范的前提下把 PR 推进到完成。调用方式为 /finish-line 或 $finish-line,并在 $ARGUMENTS 中给出目标 PR 编号或 URL;未提供目标时应先询问,再进行任何操作。

主要能力与流程:先分诊,用 git status --short --branch 检查本地状态,避免覆盖或暂存无关的脏文件;用 git fetch origin main 获取最新 main;再用 gh pr view、gh pr checks、gh pr diff --stat、gh pr view --comments 等命令收集 PR 上下文与检查结果,识别合并阻塞点。若 PR 只需维护者补充测试、change file 或文档,且贡献者分支可修改,可走贡献者分支工作流(gh pr checkout 签出分支)。

测试覆盖评估:检查 PR diff、变更文件、附近既有测试、评审意见和失败检查;若变更涉及运行行为、构建/插件行为、路由语义、生成类型、RSC 行为、文档渲染等可回归面,需新增或保留聚焦测试,并验证覆盖受影响的 React Router 模式(Declarative、Data、Framework、RSC Data、RSC Framework)。若变更仅为文档、打包或 change file 等非可执行行为,应在报告中说明无需测试的理由。若必要测试过大或风险过高,应先停下询问用户。

改动与文件规范:仅做缺失的收尾改动,不随意重构贡献者工作。推送前需向用户展示 change file 的包路径、文件名、类型和完整内容,或文档/测试的具体内容,并明确请求提交和推送批准。change file 位于 packages/<package>/.changes/<type>.<unique-meaningful-name>.md,<type> 可用 patch、minor、major 或 unstable,bug 修复和窄范围行为修复默认 patch,内容需简洁。跨包时优先选择直接面向用户的 API 或运行时行为的包;包或类型不明显时询问用户。文档默认不为普通 bug 修复添加;仅当变更文档化 API、引入需用户发现的新行为、改变示例或用户/评审明确要求时添加。应编辑源文档或 JSDoc,而非生成的 docs/api/ 输出;为 React Router 行为加文档时需包含模式上下文;由 JSDoc 生成的 API 文档需修改 packages/react-router/lib/ 中的注释,并注意可能需要运行 pnpm run docs。

最终报告:说明原始 PR 编号与阻塞点、改动是推送到贡献者分支还是另开替换 PR、分支、提交哈希与 PR URL、是否对旧 PR 执行评论或关闭、执行的或跳过的验证,以及测试覆盖决定(已添加、已存在或有意省略及理由)。

限制:若贡献者分支无法修改,应汇总证据并询问用户是等待贡献者还是维护者分支重做;阻塞点不明确时同样先询问。git push 失败时停止并报告,除非用户批准否则不要另开替换 PR。