
1. 背景AI 代码生成的两面性Claude Code 和 Codex 这类 AI 编程助手极大提升了开发效率但长期使用后你会发现一个共性痛点代码越写越脏。具体表现为大量冗余注释// 这里遍历列表这种废话重复的 import / 未使用的变量不一致的缩进和空行为了「安全」而生成的防御性 null 检查实际永远不会触发风格漂移同一个文件里混用多种写法这些「脏代码」不是 Bug但会显著降低可维护性让 Code Review 变成「人工去噪」。2. 为什么 Claude Code / Codex 会越写越脏根本原因在于 LLM 的上下文污染与过度生成倾向上下文累积每次对话都会把历史代码片段塞进上下文模型倾向于「模仿」之前输出的风格包括那些不完美的部分。安全优先模型宁可多写一行注释、多做一个 null 检查也不愿遗漏——这在生产环境是好事但在日常开发中就是噪音。缺乏全局视角每次只生成一个函数或一个文件没有「整个项目代码规范」的约束。3. Fallow 是什么Fallow 是一个轻量级的代码后处理层专门用于清理 AI 生成代码中的「脏」部分。它不修改业务逻辑只做格式化、去噪和风格统一。核心设计理念无侵入作为 Git pre-commit hook 或 CI 步骤运行不改变开发流程可配置哪些规则启用、哪些文件跳过完全由你控制幂等多次运行结果一致不会反复修改4. 快速上手安装# 通过 pip 安装pipinstallfallow# 或通过 npm如果项目是 Node.js 生态npminstall-gfallow基本配置在项目根目录创建fallow.config.yaml# fallow.config.yamlrules:# 移除无意义的单行注释如 // 获取用户列表remove_redundant_comments:true# 移除未使用的 importremove_unused_imports:true# 统一缩进为 2 空格indent_style:spaceindent_size:2# 移除多余空行连续超过 2 个空行压缩为 1 个compress_blank_lines:true# 修复不一致的引号风格统一为单引号quote_style:single# 排除目录exclude:-node_modules-vendor-generated运行# 清理当前目录下所有 AI 生成的代码fallow clean--path./src# 只检查不修改dry-run 模式fallow check--path./src5. 实战效果对比清理前Claude Code 输出# 获取用户列表defget_users():# 从数据库查询所有用户usersdb.query(SELECT * FROM users)# 执行 SQL 查询# 返回用户列表returnusers清理后Fallow 处理defget_users():usersdb.query(SELECT * FROM users)returnusers更复杂的例子——清理前// 计算订单总价functioncalculateTotal(order){lettotal0;// 初始化总价// 遍历订单项for(leti0;iorder.items.length;i){constitemorder.items[i];// 获取当前项// 累加价格totaltotalitem.price;// 加上当前项价格}// 返回总价returntotal;}清理后functioncalculateTotal(order){lettotal0;for(constitemoforder.items){totalitem.price;}returntotal;}注意 Fallow 不仅去掉了注释还把for循环改成了更现代的for...of写法——这是通过可选的代码现代化规则实现的。6. 集成到工作流方式一Git pre-commit hook# 安装 pre-commit hookfallow install-hook# 之后每次 git commit 都会自动清理暂存区的代码方式二CI 流水线# .github/workflows/code-cleanup.ymlname:Code Cleanupon:[pull_request]jobs:cleanup:runs-on:ubuntu-lateststeps:-uses:actions/checkoutv4-run:pip install fallow-run:fallow check--path ./src方式三与 Claude Code / Codex 配合在提示词prompt末尾追加生成完成后请运行 fallow clean --path . 清理输出。或者更彻底的做法让 AI 只生成逻辑Fallow 负责格式。这样你得到的是「干净的业务代码 统一的风格」而不是「AI 风格的脏代码」。7. 注意事项不要过度清理有些注释是必要的如复杂算法的解释、TODO 标记Fallow 默认只清理「明显冗余」的注释你可以通过规则配置调整敏感度。测试先行Fallow 不修改逻辑但建议在集成到 CI 前先在 dry-run 模式下跑一遍确认规则符合团队预期。语言支持目前 Fallow 对 Python、JavaScript/TypeScript、Java、Go 支持最好其他语言的部分规则可能不生效。8. 总结Claude Code 和 Codex 让写代码变快了但也让代码变「脏」了。Fallow 作为一层轻量清理层解决了这个副作用✅ 自动去噪移除冗余注释、未用 import、多余空行✅ 风格统一缩进、引号、空行规则一致✅ 无侵入作为 hook 或 CI 步骤运行不改变开发习惯✅ 可配置按项目需求开关规则如果你也在被 AI 生成的「脏代码」困扰不妨试试 Fallow——让 AI 负责「写」让 Fallow 负责「擦」。