01 · 什么是 AI slop
什么是 AI slop
在生成式开发里,slop 指看起来完成了、实际在增加维护负担的产出。仓库没有给出一个单独的定义,但它的规则覆盖了六类具体症状:
| 类型 | 典型症状 | 仓库的对策 |
|---|---|---|
| 文字 | 复述代码的注释;"used to / no longer";引用不存在的 "decision 7";强调泛滥;比喻和含糊词 | dsh-prose-standard、dsh-trim-cot-leakage、docs/AGENTS.md 的 slop 清单、verify-concrete-terms |
| 代码 | 重复代码;any 和 as unknown 绕过类型;层层 ?.;空 catch;藏在 run() 里的默认值 | strict、oxlint、jscpd、verify-no-unknown-casts |
| 设计 | 投机抽象;没人用的配置项;只有一个调用方的公共方法;全局单例 | packages/AGENTS.md、docs/defensive-patterns/、dsh-find-simplifications |
| 证据 | 只测 mock;断言模型的自述;用全量跑一遍代替思考;汇报没跑过的命令 | docs/testing.md、dsh-pre-push-checks、PR 模板的 Proof 区 |
| 文档 | 同一事实写在多处;"已实现!" 之类的状态标注;手抄目录;段落墙 | 一事实一归属、生成目录加 --check、字数预算 |
| 模型面 | prompt 里混进 UI 或传输术语;无界输出;没有记录的模型输入 | "模型可见 ⟺ 已记录"、agent-experience skill、snapshots |
两条判定标准
把仓库各处规则合起来看,判断一段产出是不是 slop 只需要问两个问题:
- 可验证性:一个只看 HEAD 的读者,不看会话记录、PR 讨论和未提交的草稿,能否解析每个引用、验证每个断言?这条来自
dsh-trim-cot-leakage的 "the one test"。 - 必要性:这个抽象、选项、防御性拷贝或兼容路径,有没有当前的契约或生产环境消费者?这条来自
packages/AGENTS.md的 "Require a current owner and need"。
答案为"否"的内容要么重写,要么删除。后面各章是这两个问题在不同产物上的具体化。