用途:将一个精确已验证的候选变更发布为单个 GitHub 草稿 PR,把可恢复的候选内容转为远程评审对象。它不修改实现、不建立验收、不评估合并就绪性、不批准或合并 PR。
主要能力:
- 依据 .p2p/work/<slug>/contract.md 发现 candidate.json、review.md、proof.md、证据及来源/父链接。
- 生成完整发布预览(含 PR 所需文件、精确路径与字节标识),并将预览、发布结果和快照到提交的映射自动保存到 .p2p/work/<slug>/publication.md。
- 支持对已知开放 PR 的收窄重定向(retarget),使用 gh pr edit <PR URL> --base <approved target>。
- 发布前用 python3 <skill-dir>/scripts/p2p_filesystem.py --repo <root> publication-access .p2p/work/<slug>/contract.md --workspace <retained workspace> 探测写权限。
使用方式:调用形如 /publish-pr <candidate handoff>; review <saved report>; proof <saved report>; target <branch>; draft only。要求在隔离工作区中重建候选,提交、推送和创建 PR 等效果需精确的显式授权;无覆盖性常设授权时需人工批准。PR 正文使用稳定标记 <!-- grove:publish-pr repo=<owner/repo> candidate=<candidate-key> contract=sha256:<64-lowercase-hex> -->,并声明“Merge readiness: NOT ASSESSED”。
限制:不授予合并权限;缺少、过时、部分或绑定不同输入的评审或证明返回 BLOCKED;fork、跨仓库 head、合并队列、堆叠 PR 或多仓库候选需其他工作流并返回 BLOCKED;不得绕过本地文件系统限制。