Fable Anti-Slop Engineering 是一套面向软件工程全流程的 AI 编码防垃圾(anti-slop)规范与检查技能,使命是交付“最小且连贯、正确、可维护、由独立证据支撑的改动”,主张绝不为了 CI 通过而牺牲契约完整性、安全或可审查性,且同等适用于人类与 AI 编写的改动。
用途 该技能用于在每一轮编码与生命周期阶段执行专业工程标准,保护既有契约、测试完整性与安全边界;在代码提交或合并前检测并阻断 AI 编码垃圾:弱断言或同义反复断言、被跳过的测试、吞掉的异常、类型抑制、安全绕过以及不受约束的 diff 膨胀。
主要能力与工作机制 核心是每次编码轮次都执行的 7 道关卡协议: 0. 发现(Discover):检查仓库架构、包清单、锁文件、既有测试与约定,不自行臆造约定。
- 脚手架与依赖合理性:新项目或模块优先使用官方生成器(uv init、cargo init、bun create);新增依赖时解析并固定最新稳定版。
- 锁定测试基线:编辑前先检查既有测试,保护断言,绝不弱化测试以迎合错误行为。
- 外科式实现:修改既有抽象,保持最小且合理的复杂度,不建立平行重复抽象,UI 组件中不出现开发笔记或元对话。
- 超越“变绿”的验证:运行真实单元、集成与契约测试,覆盖率与 lint 仅作信号而非证据。
- 用原生引擎扫描 diff:运行 get-fable anti-slop --base HEAD --fail-on-blocker 或 fable-anti-slop scan。
- 证据与决策:基于机器校验的证据给出 PASS / REVIEW / REWORK / BLOCK 合并结论。
判定规则
- BLOCK(失败即关闭):测试未经批准被禁用或跳过、断言被弱化、生产路径吞异常、UI 中泄露开发笔记(DEV_NOTE_IN_UI)、认证或安全检查被禁用、硬编码凭据、构建失败;退出码 2。
- REWORK:不必要的代码重复、无理由的新依赖、测试实现细节而非契约、未审查的生成物变更。
- REVIEW:diff 新增超过 400 行、类型抑制(any 或 @ts-ignore)、有理由的契约更新。
- PASS:满足全部验收标准、零阻断项、新鲜测试通过、diff 聚焦干净。
输入与输出 输入包括任务规格(需求或验收标准)、当前 diff(统一 git diff 或干净代码检查时的文件树)、仓库上下文(测试套件、架构契约、错误处理惯例、安全策略)。输出包括:按 Blocker、Review、Warning 分级的 slop 审计报告(注明文件与行号)、diff 完整性证据(证明当前 diff 无阻断级问题的新鲜通过证据)、可用于 CI/CD 集成和自动代码扫描的 SARIF 2.1.0 标准报告。
使用方式 在每次编码轮次按 7 关协议执行;用原生引擎扫描统一 git diff 并加 --fail-on-blocker;通过 get-fable anti-slop scan --base HEAD --fail-on-blocker --json-v1 等命令获取机器校验证据,用 get-fable evidence pass test 记录新鲜测试证据,并用 git diff --stat 提供可验证的 diff 统计。禁止用 shell 执行绕过 pre-commit 钩子或验证标志。若出现阻断项,不得绕过或重设基线,须定位根因、回退 slop 模式、恢复断言并重新扫描;连续失败达 2 次即转向 fable-recover 诊断环境或执行路径问题。
适用场景 规划或实现功能与缺陷修复且需保持既有契约;修改测试断言、测试夹具、快照或基准数据集;审查 PR 与 diff 中的隐藏回归、作弊模式或膨胀;在各类编码会话中运行提交前、推送前与生命周期完成关卡;审计智能体生成的代码是否存在静默吞错、滥用 mock、UI 开发笔记泄露或安全边界逃逸;并把新观察到的 AI slop 固化为诊断目录模式、智能体指令与自动 diff 守卫启发式(NOTED_SLOP)。
限制与不适用 不适用于缺乏已验证基线契约的推测性、未经验证的重写或大规模重构;不用于与行为契约无关的风格挑剔或格式争执;不能替代可执行测试套件、真实动态测试或渗透扫描。
其它要点 交付物按固定顺序:结论、范围、保持或改变的行为、验证(命令与结果)、带精确文件/行号的发现、测试修改及理由、风险与限制、合并建议,并区分基线失败与新增失败,必要时如实使用 NOT RUN 和 UNKNOWN。技能还附有反模式目录、测试完整性政策、PR 审查协议、安全与运维、工程判断、证据与来源、评估用例、PR 审查模板与运行报告模板等渐进资源。资料中的定价与平台支持信息暂未提供。