AI Slop Detector v2.6.1 自审:我植入了3个坏文件——它抓住它们了吗?

发布: (2026年1月14日 GMT+8 02:59)
5 分钟阅读
原文: Dev.to

Source: Dev.to

AI 代码看起来可以“生产就绪”,但实际上几乎没有实现任何功能。

  • 它通过了 lint。
  • 它遵循了清晰的架构。
  • 它可以发布。

然而——当你追踪执行路径时——几乎没有任何承载负载的逻辑。

这就是 AI slop:不是坏代码,而是 看似完整却空洞的代码

我构建了 AI Slop Detector,把那种模糊的“感觉不对”转化为可检查的信号。

随后我不得不面对一个令人不安的可信度测试:

这个工具会指责我自己的仓库吗?

v2.6.1 是一次可信发布

此版本侧重于 可审计性稳定性

  • 依赖规则不再是“代码中的魔法”——它们已移至 YAML 并动态加载(减少隐藏假设)。
  • 测试 + 覆盖率加固:165 个测试整体覆盖率 85 %,以及 CI 门禁覆盖率从 0 % → 88 %

目标:让工具更难出现回退,更容易被信任。

自我审计

我像任何人一样对其自身代码库运行检测器:

slop-detector --project .

整体结果:CLEAN
赤字得分:19.78 (数值越低越好)
行话膨胀度:0.11

原文报告注释: 我将完整的自检报告以 PDF 原样发布——不做编辑、不做删减、不重新排版,也不做解释性修改

“CLEAN”并不意味着“完美”。
它的含义是:这里有足够真实的实现,值得进行审查

真正的实验:我植入了 3 个“已知有问题”的文件

单靠得分很容易产生怀疑,于是我特意在仓库中添加了三个故意有缺陷的示例,以观察检测器是否 因正确的原因触发

1) 空壳

一个 0 行 的文件得分 100.00,报告直白说明:

“空文件:无可分析内容 → 删除 / 实现 / 标记为存根。”

翻译:有时代码“存在”却什么也不做——这应该被显而易见地标记出来。

2) 危险结构(structural_issues.py

得分 71.21,标记出会悄然腐蚀系统的模式:

  • 捕获所有异常
  • 可变默认值
  • 星号导入
  • 全局状态

翻译:代码可以运行,但仍会在以后变得难以信任或调试。

3) 行话 + slop 鸡尾酒(generated_slop.py

得分 96.77,触发了诸如:

  • “state‑of‑the‑art”
  • “transformer”
  • “optimized”

……以及经典的 slop 模式。

翻译:华丽的语言和薄弱的实质常常相伴而生。

反转

它甚至标记了我自己的措辞:cli.py 中的 “production‑ready”
该工具不仅审计代码——还审计 声明

为什么这是 AI 时代的审查问题

大多数工具回答的是过去的问题:

  • “语法是否有效?”
  • “是否安全?”
  • “是否复杂?”

AI 时代的工作流需要先问一个问题:

这里是否真的有有意义的实现?

AI Slop Detector 不是裁决机器。
它是一个 审查信号,把“看起来不错,但……”转化为可度量的后续行动。

快速开始

pip install -U ai-slop-detector

# 单文件
slop-detector mycode.py

# 整个项目扫描
slop-detector --project .

CI 门禁模式(软 / 硬 / 隔离)

# 软:仅报告(永不失败)
slop-detector --project . --ci-mode soft --ci-report

# 硬:阈值触发构建失败
slop-detector --project . --ci-mode hard --ci-report

# 隔离:逐步强制执行
slop-detector --project . --ci-mode quarantine --ci-report

一个快速审查问题

“这个函数实际上与它包装的内容有什么不同?”

如果答案回到文档字符串的承诺而不是具体行为,通常说明它只是脚手架。

如果你尝试了它

我期待真实案例:

  • 你遇到的误报
  • 它漏掉的令人信服的空洞
  • 能代表你在 PR 中看到的情形的示例想法
Back to Blog

相关文章

阅读更多 »