CPR(clean → PR)是一个将“清理代码差异”与“创建或更新 PR/MR”两个步骤串联执行的工作流技能,中间不询问用户。它适用于工作已完成、希望分支最终以他人可读的 PR 形式呈现的场景,触发方式包括 /cpr、“clean and PR”、“tidy it up and push the PR” 或任何类似的交接请求。
用途 该技能的核心用途是:在代码提交和发布 PR 之前,先对当前 diff 做一次打磨,然后按主题组织提交并创建或刷新 PR/MR,最终给出可点击的链接。它强调顺序性——先清理,再发布。
主要能力
- 清理(clean):重新阅读 diff,删除死代码和调试日志,优先扩展现有辅助函数而不是并行新建一套,匹配邻近代码风格。此阶段仅做打磨,不运行测试、tsc 或 lint。
- 塑形与发布(pr-update):进行主题化提交,撰写能够描述整体变更的标题和正文,保留已有正文中的媒体内容(逐字保留),文字内容通过 no-tropes 处理。
- 最终输出:以 Markdown 链接形式给出 PR/MR,包含编号和完整的 forge URL。
使用方式 该技能本身是一个序列文件,实际执行的是 clean 和 pr-update 两个技能,而不是替代它们的内容。使用时按顺序调用即可,无需在两步之间询问用户。
适用场景
- 工作已完成,需要将分支整理为可读的 PR。
- 用户发出 /cpr、“clean and PR”、“tidy it up and push the PR” 等指令。
- 任何需要将代码交接为 PR/MR 的场合。
限制与停止条件
- 顺序不可颠倒:必须先清理再提交。若先提交再清理,提交拆分描述的是已被丢弃的代码,PR 正文描述的也是已不存在的 diff。
- UI 工作:在用户对 UI 满意之前不应开始(ui-only)。
- 无可清理内容是一个有效结果:用一行说明后直接进入第二步。
- 不要在清理阶段停滞:如果打磨持续扩大,属于范围蔓延,应发布窄版本。
- 范围之外:CI 与评审线程(pr-ready)、分类与抢救(pr-triage)、堆叠基础(stacked-pr)以及合并操作。
其他说明 该技能的官方文本暂未提供。