SuperAPI AI 工具集

template-check

测试与质量

查看项目

更新于 10-27 02:39

技能介绍

用途

template-check 用于比较 issue 或 pull request 正文中的标题与该仓库应遵循的模板标题。它报告每个缺失、重命名、顺序错位或内容为空的模板标题。该技能仅作报告,不负责修复;调用方拥有正文必须满足的规则,并负责修改正文。

主要能力

  • 检查正文中的 Markdown 标题(ATX 形式,如 ## Title)是否与模板逐项一致:存在、原文相同、顺序正确且有内容。
  • 报告不匹配的模板标题。
  • 支持检查草稿(--body FILE 或 --body - 读取标准输入)以及已发布的正文(--pr N 或 --issue N)。
  • 支持按 GitHub 的查找位置自动发现模板:
    • PR:根目录、docs/、.github/ 下的 pull_request_template.md 或 PULL_REQUEST_TEMPLATE/ 文件夹。
    • Issue:issue_template.md 或 ISSUE_TEMPLATE/ 文件夹中的模板与 issue 表单。
  • --root 可指定另一份检出目录。
  • --repo OWNER/REPO 为 --pr 和 --issue 指定仓库;在没有 --root 时从其默认分支读取模板。
  • 存在多个模板时,用 --template-name 按模板 front matter 名称或文件名指定正文遵循的模板。未指定时使用最接近的匹配,出现平局则报错。应根据正文用途(如 issue 或 PR 的标签、标题)选择;仅在无法判断时才询问。--template PATH 可跳过模板发现。
  • --json 输出一个包含相同结果的 JSON 对象。

使用方式

在正文所属仓库的检出目录中,以如下方式运行:

python3 "$SKILL_DIR/scripts/check_template.py"

其中 SKILL_DIR 为该技能的目录。

检查草稿:使用 --body FILE,或 --body - 从标准输入读取,并配合 --kind issue 或 --kind pr。检查已发布正文:使用 --pr N 或 --issue N。

结果解读

  • 退出码 0 且 match:每个模板标题都按顺序原文出现且有内容。
  • 退出码 0 且 no-template:仓库没有带标题的模板,无可比较内容。
  • 退出码 1 且 mismatch:按报告逐项修复正文中的标题后重新检查。
  • 退出码 2 且 operational-error:检查无法比较(例如不在 git 检出中、仓库不可达、无法读取 issue 表单,或正文同时同等匹配多个模板)。应按其提示的原因修复,并按提示传入 --repo、--template-name 或 --template PATH;绝不能将其视为通过。

限制

  • 仅识别 ATX 形式的 Markdown 标题(## Title);不识别 Setext 标题和列表项内的标题。
  • 读取会在 pull request 的 review note 处停止(即空行后的 --- 分隔线之后跟一行 Edit:),使该 note 不被视为最后一个模板章节的内容。
  • 该技能只报告差异,不修改正文。