我如何构建了一个检测代码库中 AI slop 的工具(以及我发现的模式)
发布: (2026年3月7日 GMT+8 10:48)
2 分钟阅读
原文: Dev.to
Source: Dev.to
问题
过去一年里,我大量使用 AI 编码助手——Cursor、Copilot、Claude 等各种界面。它们在提升开发速度方面非常出色,但我不断在代码审查中发现同样的懒散模式:
- 到处都是
TODO注释,且常常与实际实现相矛盾 - 占位符变量名,如
data2、temp、result_final - 只包含
pass的空except块 - 整块被注释掉的代码
- 名为
handle_it、do_stuff、process_data的函数却做了三件毫不相关的事
最糟糕的是?这些模式对传统的 linter 来说是不可见的。pylint 并不在意你的函数叫 processData 还是 handleStuff。flake8 也不会标记 TODO 注释。但每个人类审查员都会立刻发现它们,并质疑你是否真的理解自己提交的代码。
于是我创建了 roast‑my‑code —— 一个专门捕捉这些模式的 CLI 工具。
检测规则
分析器围绕三个类别构建:AI Slop、代码质量 和 风格。每个类别都有加权得分,其中 AI Slop 占整体得分的 50%。
AI Slop 模式(高严重性)
# Detect TODO/FIXME/HACK comments
TODO_PATTERN = re.compile(r'#\s*(TODO|FIXME|HACK|XXX)', re.IGNORECASE)
# Placeholder variable detection
PLACEHOLDER_NAMES = {
'foo', 'bar', 'baz', 'temp', 'data2', 'result2',
'test123', 'foo_bar', 'test_var'
}
# Hallucinated imports (common fake packages AI invents)
FAKE_IMPORTS = {
'magiclib', 'utils2', 'helpers.everything',
'common_utils', 'my_helpers'
}