用途:/fix-pr 用于恢复拉取请求的预期工作流结果。它定位最早的因果失败,将其归类为 PRODUCT、WORKFLOW 或 EXTERNAL,施加最小的持久修复,然后针对每个必需检查验证修复后的提交。它不会弱化必需检查。
主要能力:接受一个仓库目标,形式包括 /fix-pr #123、/fix-pr https://github.com/acme/project/pull/123 或 /fix-pr <workflow-run-url>,并在可能时从 PR 或运行中推断相关工作流。它读取工作流运行、失败作业与步骤、日志、YAML、相关改动以及分支保护或规则集要求的检查。修复保持范围最小,绑定到准确的提交 SHA。
用法:本地记录使用文件系统协议和 python3 <skill-dir>/scripts/p2p_filesystem.py --repo <root> resolve .p2p/work/<slug>/contract.md 解析路径。使用 save .p2p/work/<slug>/contract.md <report-name> --from <file> 保存报告,以便在替换前保留历史。将诊断、修复结果和确切的旧/新候选标识保存到 .p2p/work/<slug>/ci-repair.md。将一次性日志放在 .p2p/tmp/ 中。编辑前检查分支和工作树;仅当当前分支和提交能识别目标 PR 头或工作流提交,且没有无关改动时,才继续。仅提交限定范围的修复,仅推送到目标 PR 头分支,绝不强制推送。仅当某个必需检查针对确切修复后的 SHA 成功时才计数。
限制:禁止的修复包括删除或跳过测试、禁用 lint 规则、降低覆盖率、使检查可选、吞掉失败、添加无条件 continue-on-error、任意重试或注释掉步骤。当工作树不安全、无法建立目标、凭据不可用、所需能力缺失、修复会削弱质量或只有一次无法解释的重跑通过时,停止并返回 NOT FIXED。它不会重新设计工作流或清理无关代码。输出 FIXED 或 NOT FIXED,以 Next steps: 和一个编号列表结尾。绿色 CI 不会刷新既有证明。