Fable Execute 是一个专注于执行单个已接受、有边界的工作卡的技能,旨在避免将有限的变更卡变成不可审查的漫游式会话。其使命是:执行阶段负责实现,而非架构发现。代理应做出满足已接受卡的最小 coherent 变更,保持不变量可见,立即验证,并在新事实使计划失效时停止。这里的“最小”指行为上完整的差异,而不一定是变更行数最少。
适用场景:当范围与验收标准明确、关键架构/外部事实已确定、无需发明新公共契约即可实现,或任务是有边界的静态/配置/文档变更(此时 TDD 无额外证明价值),或 TDD 技能已建立 RED 且实现准备就绪时激活。不适用于:行为变更仍需有效 RED(应使用 fable-tdd)、实现揭示新架构决策(应使用 fable-plan)、重复失败需要诊断(应使用 fable-recover)、或需要独立验证/审查现有差异(应使用 fable-verify/fable-review)。
使用方式遵循八阶段协议:1)对照当前工作区重读卡片,确认目标、自有范围、禁止范围、依赖/假设、验收证据和当前 git/工作区状态;若计划后工作区变化使假设失效,应停止并重新计划。2)在变更前检查确切目标代码及其直接契约/调用方/测试,识别必须保持的不变量。3)选择最小 coherent 变更,优先现有仓库模式、源而非生成输出、本地兼容而非推测抽象、可逆变更、一次一个行为变更。4)变更并记录影响,包括更改的文件/表面、新/变更契约、受影响的生成产物、所需验收命令;若编辑跨越卡片边界,暂停并解释。5)立即运行最窄有意义的验收证据,仅命令退出码不足以证明行为变更。6)失败时先分类:预期 RED、当前编辑引入的编译问题、错误实现假设、过期/构建/配置/harness 问题、隐藏依赖/架构变更;只有失败提供新信息才进行另一次变更。7)清理差异,移除调试输出、检查意外格式或生成噪音、确保无无关文件更改、必要时从源重新生成确定性输出、保留用户并发更改。8)交接给 fable-verify,提供卡片目标、差异/触及表面、验收命令/结果、考虑的不变量、生成/配置影响、残余风险和未验证表面。
决策规则包括:新关键未知→停止并路由到发现/研究/计划;新架构/公共契约决策→fable-plan,不得隐藏为实现细节;行为变更无有效回归测试→fable-tdd;请求生成文件→定位生成器/源并修改源后重新生成;目标文件存在用户/无关更改→保留并做最小上下文编辑;验收因明显引入的语法/类型错误失败→直接修复并重跑;类似实现假设重复失败→fable-recover,禁止任意重试循环;验收命令通过但未触及更改路径→不得声称完成,需加强验收或明确交接缺口。
不变量:卡片范围不静默扩展;用户/无关更改保留;适用时编辑源而非派生输出;每次有意义的变更使先前验证失效;除非正确性需要,不将无关清理捆绑到修复中;验收证据对应更改行为。失败分类包括本地实现缺陷、假设失败、隐藏依赖、harness/产物不匹配、验收弱点、并发工作冲突。反模式包括“顺便”重构、直接编辑生成文件、执行开始后广泛搜索/架构工作、用表面语法变化重试相同补丁、为小修复替换整个用户修改文件、接受构建通过作为功能证明、添加卡片未要求的抽象/可配置性、在实现中隐藏架构决策。完成标准:已接受行为在明确范围内实现;立即验收证据为绿或明确交接证明缺口;差异无意外/无关变更;新架构决策未被走私到实现中;验证专家获得精确的变更地图和待证伪内容。