概述
机械式改动(文件拆分、函数移动、模块抽取、重命名)的正确性必须可机器校验,而不是靠肉眼判断——证明应当是可以被任何人、在任何时间重新运行的。
一个性质:某个提交是一次纯搬移。一个证明:复现——用忠实原语从基线提交重新生成这次移动,运行格式化工具,与目标做逐字节比对。
空差异 = 证明成立。任何残留 = 夹带了非搬移改动,会被暴露出来以供审查。
重塑不应搭车同行:拆分为可选的 prepare + 通过认证的 move + 可选的 postpare(见 guide-split.md)。
命令 — 你想做什么?
该技能接受一个参数,指定三种命令之一;不带参数调用时,请选择与你的任务匹配的一行。
split <base>..<tip> — 编写一个合规的重构分支:把它拆成多个提交,满足契约(抽取、移动、文件拆分)→ guide-split.md:§1 把 PR 拆分为已分类的片段(链式契约:分类格式、正确标注、证明 PASS、非机械提交经过正确性审查);§2 把单个片段拆分为 prepare + move + postpare(案例配方与反模式)。参数是要编写的链(或单个提交 / 对要拆分改动的描述)。
construct <base>..<tip> [--match REGEX] [--out DIR] — 构造证明,针对链或单个提交 → guide-construct-proof.md:§1 生成并发布整条链的证明文件夹(这些参数属于生成器:scripts/mechanical_refactor_proof_generator.py <base>..<tip> --match REGEX --out DIR);§2 证明单个提交——只传 <commit>(使用生成器,或在生成器报告 UNSUPPORTED 时手写 Repro)。
verify --base <base> --branch <branch> --proof <folder> [--jobs N] [--skip-passed] — 验证他人的证明:整条链 / PR 分支 → guide-verify-proof.md:用这些精确参数运行链验证器(scripts/mechanical_refactor_reproduction_cli.py)——它检查每个提交是否声明了 mechanical_provable 或 non_mechanical_provable,运行每个可证明提交的证明(绝不抽样),并写出一份完整报告;然后审计作者编写的表面与 HUMAN_REVIEW 行。重新运行单个提交的脚本仅用于诊断。
判断某个改动是否算作干净的移动 → spec-reproduction-utils.md:该性质、完整白名单 / 不允许列表,以及每个原语的契约。这是复现模块的唯一事实来源;若其他文件与之冲突,以它为准。
修改该技能本身(编辑引擎、生成器或规范)→ guide-modify-skill.md:规范优先规则、忠实性不变量,以及改动在被信任前必须通过的测试标准。
文件
guide-split.md — 把 PR 拆分为已分类的片段(§1,链式契约),并把每个片段拆分为 prepare + move + postpare(§2:案例配方、哪些保持机械、反模式)。
guide-construct-proof.md — 产出证明:整条链的证明文件夹 + 发布(§1),以及单个提交的证明——生成器或手写 Repro(§2)。
guide-verify-proof.md — 消费证明:整条链验证器、单提交重跑、判定结论,以及针对作者编写表面的审计清单。
spec-reproduction-utils.md — 干净移动性质与复现原语的规范性规范。
spec-reproduction-cli.md — 已验证链性质的规范性规范:分类词规则、证明义务、报告与退出码。
guide-modify-skill.md — 修改引擎、生成器或规范:规范优先规则、逐字节忠实性不变量与测试标准。
scripts/mechanical_refactor_proof_generator.py — 生成器:从提交的 diff 推断复现配方,并为每个提交生成/运行一个独立、可审计的脚本,给出 PASS / RESIDUAL / UNSUPPORTED 判定。
scripts/mechanical_refactor_reproduction_utils.py — 证明引擎:Repro 构建器的忠实搬移原语,以及工作树 + pre-commit + 逐字节差异的脚手架。自包含——只依赖 git 和标准库。
scripts/mechanical_refactor_reproduction_cli.py — 链验证器:对 base..branch 中的每个提交进行分类,从证明文件夹运行每个可证明提交的证明,并输出完整链报告。
scripts/tests/ — pytest 测试套件,每个模块一个文件夹:reproduction_utils/ 对应证明引擎,proof_generator/ 对应生成器,reproduction_cli/ 对应链验证器。