Show HN: AISlop,一款用于检测AI生成代码异味(code smells)的CLI工具
速览
AISlop 是一个开源的命令行界面(CLI)工具,专门用于分析代码库以发现由 AI 生成的代码中存在的“代码臭味”。该工具帮助开发者识别 AI 辅助编程中常见的冗余、低效或不良实践,从而提升代码质量和可维护性。对于广泛使用 AI 编码助手的团队而言,这是一个实用的质量检查手段。
AI 深度解读
Show HN: AISlop,一个用于捕捉 AI 生成代码“异味”的 CLI 工具
背景
随着 Claude Code、Cursor、Codex 和 OpenCode 等 AI 编程代理(Coding Agents)的普及,开发者越来越依赖这些工具来生成代码。然而,这些工具虽然能生成编译通过且测试通过的代码,却往往会在代码库中留下人类工程师绝不会编写的“模式”或“异味”(Code Smells)。
这些“AI 垃圾”(AI Slop)包括:在自解释代码上方的冗余叙事性注释、被吞掉的异常处理、随意的类型断言(as any)、幻觉导入(Hallucinated Imports)、重复的辅助函数、死代码、待办事项存根(TODO stubs)以及体积过大的函数。尽管 Lint 检查通过,测试用例也通过,但代码质量却在悄然腐烂。
为了解决这一痛点,开发者发布了 AISlop,一个旨在捕捉并修复这些由 AI 生成的代码劣化模式的命令行工具(CLI)。
核心内容
AISlop 是一个开源的、MIT 许可证的 CLI 工具,专门用于扫描和修复代码中的 AI 生成痕迹。其核心设计理念是“确定性”和“零配置启动”,不依赖大语言模型(LLM)进行运行时推理,而是通过静态分析技术确保结果的可重复性。
1. 工作原理与规则引擎
AISlop 包含 40 多条检测规则,覆盖 7 种主流编程语言:TypeScript/JavaScript、Python、Go、Rust、Ruby、PHP 和 Java。它通过并行运行六个确定性引擎来工作,这些引擎基于正则表达式、抽象语法树(AST)以及标准工具链(如 Biome、oxlint、knip、ruff、golangci-lint 等)。
- 评分机制:对每一次代码变更进行 0-100 分的评分。权重设计使得“糟糕的模式”比单纯的风格噪音受到更严厉的惩罚。
- 确定性:由于不涉及 LLM 推理或 API 调用,输入相同的代码,输出必然相同的分数,确保了 CI/CD 流程中的稳定性。
- 速度:扫描过程在亚秒级完成。
2. 核心功能模块
扫描与评分
用户无需安装即可通过 npx 直接运行:
npx aislop scan
支持指定目录、仅扫描变更文件(--changes)、仅扫描暂存文件(--staged)以及输出 JSON 格式结果。默认排除 node_modules、.git、dist 等目录,用户可通过 .aislop/config.yml 自定义排除规则或扩展配置。
自动修复(Auto-fix)
AISlop 优先处理机械性、无需上下文的问题:
npx aislop fix:执行安全自动修复,如格式化、移除未使用的导入、清理死代码。npx aislop fix -f:执行激进修复,包括处理依赖项和未使用的文件。
智能代理集成
对于需要上下文判断的问题,AISlop 可以将剩余问题连同完整的诊断信息传递给 AI 编程代理。它支持广泛的代理工具,包括:
- 运行时适配器:Claude Code、Cursor、Gemini CLI(支持扫描+反馈闭环)。
- 规则读取模式:Codex、Windsurf、Cline、Kilocode、Antigravity、Copilot 等(代理仅读取规则)。
- 其他支持:Aider、Goose、OpenCode、Warp、Kimi、Antigravity、Deep Agents、VS Code 等。
使用示例:
npx aislop fix --claude
npx aislop fix --cursor
npx aislop fix --prompt # 生成通用提示词,代理无关
编辑钩子(Hooks)与质量门禁
AISlop 允许在每次代理编辑后运行扫描,实现即时反馈。
- 安装钩子:
npx aislop hook install --claude可在 Claude Code 等代理每次编辑后自动触发扫描。 - 质量门禁:可以设置基线分数,如果分数低于基线则阻断流程。
npx aislop hook install --claude --quality-gate npx aislop hook baseline # 重新捕获基线
MCP 工具支持
AISlop 暴露为 MCP(Model Context Protocol)工具,可直接集成到 Claude Desktop、Cursor 和 Codex 中。配置文件示例:
{
"mcpServers": {
"aislop": {
"command": "npx",
"args": ["-y", "aislop-mcp"]
}
}
}
提供的工具包括 aislop_scan、aislop_fix、aislop_why(解释为什么得分低)和 aislop_baseline。
CI/CD 集成
- CLI 模式:
npx aislop ci输出 JSON,若分数低于阈值则退出码为 1。 - GitHub Actions:支持标准步骤或复合动作(Composite Action)。
- uses: actions/checkout@v4 - uses: scanaislop/[email protected] - 严格模式:
npx aislop init --strict可创建企业级门禁,涵盖所有引擎、类型检查,并默认设置最低分数为 85。
3. 安装与配置
支持 npm、yarn、pnpm 安装,也可全局安装或通过 GitHub Packages (@scanaislop/aislop) 获取。
配置文件 .aislop/config.yml 支持继承父级配置,并可自定义 CI 失败阈值(failBelow)。
关键要点
- 解决“AI 垃圾”问题:专门针对 AI 编程代理留下的特定代码异味(如冗余注释、
as any、幻觉导入等)进行检测,而非通用的 Lint 工具。 - 完全确定性:基于正则、AST 和标准工具链,无 LLM 参与运行时,确保“同进同出”,适合自动化流水线。
- 快速反馈闭环:亚秒级扫描速度,支持编辑钩子(Hooks),在代理每次修改后立即反馈,防止代码质量随迭代退化。
- 广泛的代理兼容性:不仅支持主流工具(Cursor, Claude Code),还通过 MCP 协议和通用提示词支持众多其他 AI 编程助手。
- 分层修复策略:先通过自动修复解决机械性问题(格式化、死代码),再将复杂问题连同上下文移交给人工或 AI 代理处理。
- 企业级 CI/CD 支持:提供质量门禁(Quality Gate),可设置分数阈值阻断低质量代码合并,支持 GitHub Actions 集成。
- 零配置起步:
npx aislop scan即可在任何项目中运行,降低使用门槛。
意义与影响
AISlop 的出现标志着 AI 辅助编程进入了一个新的阶段:从“生成可用代码”转向“维护代码健康”。
- 填补工具链空白:现有的 Lint 工具(如 ESLint, Pylint)主要关注语法错误和风格规范,而单元测试关注功能正确性。AISlop 填补了“AI 特有反模式”的检测空白,这些模式往往具有隐蔽性,能编译通过但难以维护。
- 提升 AI 编码的可信度:通过提供量化的分数(0-100)和自动修复能力,AISlop 帮助团队建立对 AI 生成代码的信任。它不仅仅是一个检测器,更是一个质量守门员。
- 推动 AI 编程的最佳实践:通过强制性的 CI/CD 门禁和即时反馈,AISlop 促使开发者在使用 AI 代理时遵循更严谨的工程规范,防止技术债务的快速积累。
- 标准化 AI 代码审查:其提供的 MCP 集成和统一评分体系,有望成为未来 AI 编程工作流中的标准组件,使得不同团队、不同项目之间的代码质量具有可比性。
总之,AISlop
