← 返回信息流
AI 资讯Hacker News·6 天前

Show HN: AISlop,一款用于检测AI生成代码异味(code smells)的CLI工具

原标题:Show HN: AISlop, a CLI for catching AI generated code smells

速览

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.gitdist 等目录,用户可通过 .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_scanaislop_fixaislop_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 辅助编程进入了一个新的阶段:从“生成可用代码”转向“维护代码健康”

  1. 填补工具链空白:现有的 Lint 工具(如 ESLint, Pylint)主要关注语法错误和风格规范,而单元测试关注功能正确性。AISlop 填补了“AI 特有反模式”的检测空白,这些模式往往具有隐蔽性,能编译通过但难以维护。
  2. 提升 AI 编码的可信度:通过提供量化的分数(0-100)和自动修复能力,AISlop 帮助团队建立对 AI 生成代码的信任。它不仅仅是一个检测器,更是一个质量守门员。
  3. 推动 AI 编程的最佳实践:通过强制性的 CI/CD 门禁和即时反馈,AISlop 促使开发者在使用 AI 代理时遵循更严谨的工程规范,防止技术债务的快速积累。
  4. 标准化 AI 代码审查:其提供的 MCP 集成和统一评分体系,有望成为未来 AI 编程工作流中的标准组件,使得不同团队、不同项目之间的代码质量具有可比性。

总之,AISlop

查看原文 →github.com