SuperAPI AI 工具集

find-project-anomalies

部署与运维

查看项目

更新于 10-20 08:57

技能介绍

用途

find-project-anomalies 用于将某个 GitHub 里程碑中的每个 issue 和 PR 与 Main 项目看板逐一核对,发现并报告五类异常,然后修复经人工确认的问题。典型使用时机包括:发布前发现看板与里程碑之间的不一致;triage 会话后确认每个里程碑条目都被跟踪、有负责人且归属正确;以及任何人询问“X.Y.Z 里程碑在 Main 上是否干净”时。

版本参数

里程碑版本来自技能参数($ARGUMENTS)。可接受 2.17.0、v2.17.0、milestone 2.17.0,或任何明显包含一个 X.Y.Z 版本的文本。如果未给出且无法从参数或对话上下文推断,应停止并询问用户要检查哪个里程碑,不得猜测,也不得默认使用最新版本。

前置条件

  • gh CLI 已认证(gh auth status)
  • Python 3.8+
  • scripts/gh.py 用于 GitHub 查询,scripts/project-anomalies.py 用于检测与报告(python3 scripts/project-anomalies.py check --help)

主要能力与五类异常

运行检查命令:

python3 scripts/project-anomalies.py check "2.17.0"

explicit path:

python3 scripts/project-anomalies.py check "2.17.0" --output tmp/2.17.0-ANOMALIES.md

该脚本批量获取里程碑中的 issue 和 PR(每 50 项一次 GraphQL 调用),以同样方式解析外部条目,并覆盖 tmp/<MILESTONE>-ANOMALIES.md。报告中的每个编号都渲染为完整的 #N 或 #N 链接。

报告中按顺序列出五类异常:

  1. OPEN issue 对应 MERGED PR:修复已落地但 issue 未关闭(或重新打开)。修复方式:关闭 issue,或若修复并未在此落地则将其移出里程碑。
  2. 里程碑 issue,PR 在其他地方或 issue 不在 Main:合并的关闭 PR 属于其他里程碑(或无里程碑),或 issue 本身不在 Main 看板上。未合并 PR 的里程碑无意义,不会触发此类型。修复:对齐里程碑,或将 issue 加入 Main。
  3. 里程碑 PR,issue 在其他地方或不在 Main:仅针对已合并 PR 的镜像视图,即此里程碑发布的 PR 关闭了在其他地方跟踪(或不在 Main 上)的 issue。未合并 PR 不会触发此类型。修复:对齐里程碑,或将 issue 加入 Main。
  4. 需要 triage 的 issue 上有 MERGED PR:未经 triage 即落地。只有人工能做 triage,绝不自动移除标签。
  5. 未指派且非社区的 issue 上有 MERGED PR:无负责人且无社区贡献标签(在 issue 和 PR 两侧检查)。要么指派负责人,要么确认是社区工作。绝不虚构负责人。

范围说明(有意为之,非缺陷):项目成员资格仅在 issue 侧检查,PR 不是 Main 跟踪的单元,因此仅有未加入看板的 PR 不构成异常;一个没有里程碑、被里程碑 PR 关闭的 issue 会在此报告(类型 3),与 changelog 流程不同,这种配对总需要人工查看。

使用方式

修复缺失的里程碑分配

该技能唯一的机械性修复是分配缺失的里程碑。报告会在每个此类情况旁打印确切命令:

gh pr edit <PR> --milestone "<MILESTONE>" gh issue edit <ISSUE> --milestone "<MILESTONE>"

规则:仅当一侧缺少里程碑时应用。若两侧里程碑不同,由人工决定移动哪一侧,绝不自行选择。每次修复(或每小批)运行前与用户确认,并复述命令将更改的内容。其他所有工作(关闭 issue、triage、指派负责人、向 Main 看板添加条目)属于人工工作:指出即可,不要执行。

重复运行直至干净

修复落地后重新运行步骤 1,确认报告显示零异常。tmp/ 报告是临时输出(已 gitignore):在回复中引用或粘贴条目,不要提交。

关键原则

  • 无版本不运行:里程碑未知时停止并询问。
  • 先报告,不动手:未经逐项明确确认,不更改看板或里程碑。
  • 里程碑缺口自动修复;判断性决策不自动处理:只有缺失里程碑是机械性的,triage、归属和关闭/重开决策属于人工。
  • 每个编号可点击:没有完整 GitHub 链接的报告无用。

适用场景

适用于 Penpot 这类使用 GitHub 里程碑与 Main 项目看板管理发布流程的团队,在发布前、triage 后或例行核查看板一致性时使用。

限制

需要已认证的 gh CLI、Python 3.8+ 及仓库内脚本;仅自动修复缺失里程碑,其他异常需人工处理;未提供其他平台或非 GitHub 项目的支持信息;工具是否收费、具体性能指标未提供。