mcpField
W
woocommerce-stale-pr-audit

woocommerce-stale-pr-audit

github.com/woocommerce测试与质量1645 次安装9 周前更新
代码仓库

关于 woocommerce-stale-pr-audit

面向维护者的只读审计技能,用于审查指定范围内不活跃的 WooCommerce 拉取请求。它指导收集请求、与当前主干比较、进行代表性用户测试并形成建议和清单报告,同时将分析与需授权的修改分开。

主要功能

  1. 01冻结不活跃 PR 范围
  2. 02对照当前主干审查变更
  3. 03指导代表性用户测试
  4. 04验证逐项审计记录
  5. 05生成清单报告

适用场景

  1. 01判断过期 PR 应关闭还是保留
  2. 02根据当前主干审查提议变更
  3. 03准备维护者决策清单

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/woocommerce/agent-skills --skill woocommerce-stale-pr-audit

安装后在 Claude Code 中输入/woocommerce-stale-pr-audit确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
audit-schema.md
workflow.md
scripts/
collect_cohort.py
fetch_live_state.mjs
fetch_review_dismissals.mjs
validate_audit.py

详细介绍

WooCommerce 过时 PR 审查

使用时机

当维护者想要审查一组明确界定的非活跃拉取请求,并决定每个 PR 应该关闭、保持打开,还是交由负责人决定时,请使用此技能。此技能涵盖群组收集、与当前主干比较、代表性用户测试、操作建议以及检查清单报告。

以只读方式运行审查。关闭、评论、添加标签、指派、推送或合并都属于单独的操作,需要明确授权。

必需输入

开始前收集以下信息:

  • GitHub 仓库,格式为 owner/name。
  • 正整数形式的非活跃天数阈值,例如 60 或 90 天。仅当用户未指定时,使用 90 天。
  • 用于计算截止时间的准确基准时间戳。
  • 默认分支和权威远程仓库。
  • 所需的输出位置,以及是否预期进行私有发布。
  • 可用的本地测试工具和安全的环境容量。

计算 cutoff = asOf - inactivityDays,并明确界定群组成员资格。随附的收集器会选取 updatedAt < cutoff 的打开 PR。

流程

  1. 完整阅读 references/workflow.md。 该文件定义了证据收集、与当前主干比较、运行时测试规则、并行工作的范围限制、检查清单持久化、发布以及变更边界。

  2. 在生成记录前阅读 references/audit-schema.md。 所有工作者均须遵循其中的字段约定、枚举值和整合不变量,不得更改。

  3. 使用 git status --short --branch 检查检出状态。保留无关工作,并使用隔离的工作树检查和测试分支。

  4. 获取当前默认分支,并记录其完整提交 SHA。

  5. 冻结群组:

    python3 scripts/collect_cohort.py \
      --repo woocommerce/woocommerce \
      --inactive-days 60 \
      --as-of 2026-08-25T00:00:00Z \
      --output work/cohort-raw.json
    

    保留 inactivityDays、asOf、cutoffExclusive、按顺序排列的 PR 编号以及已捕获的主干元数据。PR 后续发生变化时,不得重写群组成员资格。

  6. 对每个 PR,找出其预期结果,检查关联的问题和讨论,将确切变更与当前主干及历史进行比较,评估兼容性风险,依据仓库当前标签将其分类为 Bug 或 Enhancement,并在 PR 应保持打开时确定当前审核者或负责团队。

  7. 当行为可运行时,执行有代表性的用户流程。记录环境准备、准确的代码状态、测试夹具、用户步骤、预期和实际结果、断言、清理步骤以及已验证的清理结果。不得将 CI、单元测试、源码检查或成功构建称为“用户测试”。

  8. 为冻结群组中的每个成员编写一条审查记录。验证记录:

    python3 scripts/validate_audit.py \
      --cohort work/cohort-raw.json \
      --audit work/audit.json \
      --labels work/repository-labels.json
    
  9. 在报告前立即获取最新状态:

    node scripts/fetch_live_state.mjs \
      --repo woocommerce/woocommerce \
      --cohort work/cohort-raw.json \
      --output work/cohort-live-state.json
    
  10. 当有关审核批准丢失的观察很重要时,获取权威的撤销事件:

    node scripts/fetch_review_dismissals.mjs \
      --repo woocommerce/woocommerce \
      --cohort work/cohort-raw.json \
      --output work/review-dismissals.json
    
  11. 生成私有检查清单报告。将初始审查建议、GitHub 当前最终状态和用户已处理状态保留为不同层次。刷新产物时,保留已处理状态的选项和用户编辑。

验证

  • 群组数量、PR 编号顺序、阈值、基准时间戳和截止时间彼此一致。

  • 每个群组 PR 在审查记录中恰好出现一次,且没有额外 PR。

  • 关于当前主干的结论需引用已获取的 SHA 和具体证据。

  • 所有可运行测试均须注明测试所用的代码状态,并验证清理结果。

  • 拟添加的标签必须存在于仓库当前词汇表中,且尚未添加;须明确区分 Bug 与 Enhancement。

  • 保持打开和交由负责人决定的记录须注明审核者或团队,并说明原因。

  • 建议、相关性、优先级、复杂度和置信度的总数均须等于冻结群组的大小。

  • 所有四个打包副本均成功构建:

    node shared/scripts/skillpack-build.mjs --clean \
      --targets=codex,vscode,claude,cursor \
      --skills=woocommerce-stale-pr-audit
    

失败模式 / 调试

  • 审计期间群组发生变化: 保留原始成员,并且只在最终实时状态中记录变更。
  • GitHub 连接返回了更多数据: 对数据进行分页,或标记证据不完整。切勿默默将 first: 100 视为完整结果。
  • 旧分支无法运行: 将当前主干作为对照进行测试;必要时,尝试临时干净合并或最小化移植。区分已过时的分支和未解决的用户需求。
  • 不存在有代表性的工作流: 只有在有证据表明该工作流或子系统已不存在时,才使用 not-runnable-obsolete。仅仅过时并非证据。
  • 人工审核后数量发生变化: 显示初始和最终数量及其时间戳,不要覆盖历史记录。
  • 无法验证发布情况: 在本地保存产物,并报告访问或渲染方面的缺口。

升级处理

如果在检查源代码和讨论后,截止规则、仓库范围、关联问题的有效性、兼容性影响、产品归属或可接受的测试替代方案仍不明确,请询问维护者。在进行任何外部变更,或将本地环境的并发度提高到已知安全容量以上之前,也请先行询问。

评论

支持 Markdown