用途:write-rewrite 是叠加在基础 implement-task 规则之上的“重写纪律”,用于行为被允许有意改变的代码重写任务。它把变更约束到两个可证明面:delta(所有打算改变的行为)与保留的非 delta(其余一切)。若任务不改变可观察行为,应改标为重构;仅实现 API 变动而行为不变,是迁移;新增原本没有的能力,是功能。
主要能力与要求:行为 delta 必须在写代码前记录,来源(规格与变更计划)需列明输入处理、输出形态、错误、副作用、顺序、默认值等每个变化方面;未记录则先停下补齐。验收标准(AC)须同时覆盖新行为与保留行为。两类面用不同检查证明:delta 的每个变化行为由其命名检查验证,新测试需先翻转断言(或注释掉所走路径)使其失败、恢复后通过,并粘贴两次转变;非 delta 用等价性检查,如基于属性、差分(旧路径留在 shim 后做对比)或变更前固定的黄金输出。需对每个被改行为的调用方做全代码库检索,包括字符串形式(动态派发、注册表、反射、生成代码、配置),逐一更新或验证,并粘贴检索输出。若发现 delta 之外的新行为变化,必须停止:要么上游修订 delta 授权,要么改回保留原行为。
使用方式:开始前打开 references/task-template.md 复制到任务文件,随做随填,其中包含 delta 表、保留 AC、调用方清单、粘贴证据与自审。每批改动后运行检查并粘贴;命令从 AGENTS.md 解析,未定义时询问。不得对自己的工作出具评审结果。
限制:这些是评审包检查的约定,编辑时无强制机制;不得借重写之名重新设计周边模块,delta 之外的内容只能作为发现候选;不得把行为变化称为重构或反之;每个 delta 方面都必须明确归入 delta 或保留,不能留“大概保留”的模糊状态。官方文本未提供,具体命令与模板细节以仓库内文件为准。