用途:backprop 是 cavekit 中的“缺陷→规格”协议。它针对“计划后执行”只修代码、忘记沉淀的问题,主张在修代码的同时修改规格,使同类问题无法复发。
触发时机:/build 验证时测试失败;用户报告 bug;生产事故复盘;/check 标记 VIOLATE 且已找到根因。
六个步骤:1. TRACE,读取失败输出或 bug 报告,定位错误行为的 file:line,用一句话说明根因。2. ANALYZE,问三个问题:新增 §V 不变量能否捕获这类 bug(最常见为是);§I 是否错误,规格声称了代码无法交付的形态;§T 是否错误,是否做错了东西。3. PROPOSE,起草规格变更,§B 必写,§V/§I/§T 视情况而定。模板为 §B 行:B<next>|<date>|<root cause>|V<N>;§V 行:V<next>: <可测试规则>。4. GENERATE TEST,先加失败测试,测试名引用不变量,如 TestV7_RefundIdempotent。5. VERIFY,修代码、跑测试、跑全量套件不得回归。6. LOG,将规格修改、测试、代码修复一起提交,提交信息格式为 backprop §B.<n> + §V.<N>: <一行原因>。
好不变量的标准:可在代码中测试(可 grep 或断言);限定于行为而非文件;尽量正面表述;引用适用的 §I 表面。
不应新增 §V 的情况:纯机械性拼写错误且无类别;一次性迁移修复;根因是外部依赖(应升级依赖并记入 §C)。但仍应追加 §B 条目,记录该失败模式已被考虑。
输出形态:每次 backprop 运行产生 §B 条目(总是)、§V 条目(通常)、测试文件(新增 §V 时)、代码修复,合并为一次提交。不使用仪表盘或日志文件,SPEC.md 加 git 即完整历史。
限制:资料未提供安装方式、平台支持、收费信息及具体命令细节。