SuperAPI AI 工具集

pr-validate

编程与开发

查看项目

更新于 10-14 19:21

技能介绍

用途

PR Validate 是一个 PR 专用验证技能,用于在提交前确认变更是否干净、聚焦且就绪。它通过检查分支隔离性、上游对齐、范围收敛和质量门禁,给出提交就绪度的判定。

主要能力

该技能按以下工作流执行验证:

  1. 分支发现:识别分支及其上游。
  2. 上游对齐:首先检查 rebase 状态(阻塞项)。
  3. CONTRIBUTING.md:验证合规性(阻塞项)。
  4. 隔离检查:确认单一提交类型与主题一致的文件。
  5. 范围检查:验证变更是否匹配预期范围。
  6. 质量门禁:运行测试与 lint(非阻塞)。
  7. 报告生成:输出通过/失败摘要。

其中上游对齐为阻塞项,需优先检查,通过标准为落后上游少于 20 个提交且无冲突。隔离检查为阻塞项,要求所有提交共享同一前缀、变更文件与 PR 范围相关、范围可用一句话解释。范围检查从提交信息推断范围,并检查所有文件是否在预期范围内。

使用方式

输入为分支名,默认使用当前分支。建议在运行 $pr-prep 之前、$pr-implement 完成后,或怀疑存在范围蔓延时使用。

报告输出示例:

通过输出:

PR Validation: PASS

Branch: feature/suggest-validation (5 commits)
Upstream: main (in sync)

Checks:
  [OK] Isolation: Single type (refactor)
  [OK] Upstream: 0 commits behind
  [OK] Scope: 100% in internal/suggest/
  [OK] Quality: Tests pass

Ready for $pr-prep

失败输出:

PR Validation: BLOCKED

Checks:
  [FAIL] Isolation: Mixed types (refactor, fix, docs)
  [WARN] Upstream: 15 commits behind

Resolutions:
1. ISOLATION: Split branch by commit type
   git checkout main && git checkout -b refactor/suggest
   git cherry-pick <refactor-commits>

Run $pr-validate again after resolution.

适用场景

  • 提交 PR 前验证分支的隔离性与范围蔓延。
  • 作为 $pr-prep 之前的门禁检查。
  • 当怀疑存在范围蔓延时使用。

限制与注意事项

  • 上游对齐和隔离检查为阻塞项,未通过时需先解决再重新运行。
  • 质量门禁为非阻塞项。
  • 反模式:不要分析过时分支(应先检查上游)、不要跳过验证、不要忽略范围蔓延、不要混合 fix 与 refactor(应按类型拆分 PR)。
  • 常见问题:验证报告分支过时(上游已推进,需 rebase/merge 后重跑)、检测到范围蔓延(将无关变更拆分为后续 PR)、对齐检查失败(协调基础分支与验收标准)、输出不清晰(按阻塞与非阻塞严重程度排序发现项)。

参考文档:references/pr-validate.feature — 可执行规范:隔离 + 上游对齐 + 范围收敛 + 质量门禁检查 → 提交就绪度判定(soc-qk4b)。