fable-native-code 是一个专注于代码风格一致性的编码技能,目标是在既有代码库中写出的改动像文件长期维护者亲笔所写。
用途 该技能用于强制遵循代码库既有习语,并抑制外来 AI 模式。它要消除防御性冗余、过度注释、不必要的 try/catch、未经请求的日志,以及针对编码风格的对话式辩解。
主要能力
- 匹配文件风格:遵循命名、错误处理习语、注释密度、格式化和 import 组织方式;如果文件中每 200 行才有一条注释,新增代码基本不应带注释。
- 只注释不变量:注释仅陈述代码无法展示的约束、坑点和“为何不采用显然做法”,绝不叙述下一行做什么,也不叙述本次改动或为评审者辩解。
- 抑制防御性冗余:不为可正常运行的代码加 try/catch,不校验类型或调用方已保证的不变量,不添加无人要求的日志、配置或开关。
- 不叙述克制:想解释“我为什么没加注释”的冲动与加注释同源,只交付代码,除非用户询问风格。
- 干净退出:不留调试打印、注释掉的代码或自己创建的 TODO 碎片。
- 使用代码库词汇:命名取自既有概念,不为已有概念另造第二个名字。
使用方式 在编辑前阅读相邻函数以吸收文件约定;使用精确行替换工具避免空白与缩进漂移;不对同一文件未触碰的行重新格式化。若周围代码用早返回则用早返回;若错误向上冒泡则冒泡,不吞掉也不包进未要求的自定义错误;除非接口或文件强制要求,否则不加 docstring。完成后提供显示改动原生融入文件的精确 diff,并通过测试与 linter 检查;若 linter 报风格不符则严格遵循项目规则,若发现多余注释或调试打印则立即移除。
适用场景 在既有仓库编写或编辑代码时;在缺少 docstring、注释、类型标注或校验的文件中新增内容前;选择命名约定、错误处理模式或 import 结构时;提交前审查完整 diff 时。
限制 不适用于从零开始、无既定习语的新项目(使用 fable-architecture 或 fable-execute);不用于重构架构边界或解耦模块(使用 fable-simplify);不用于性能基准与算法优化(使用 fable-review)。完成标准为:diff 读起来像仓库主要维护者所写,零防御冗余、零未请求日志、零人造注释,代码可编译、通过既有风格检查与全部单元测试。