首页 > 教程攻略 > ai教程 >Claude Code 和 Codex 的代码越写越脏,我加了一层 Fallow 做代码清理

Claude Code 和 Codex 的代码越写越脏,我加了一层 Fallow 做代码清理

来源:互联网 时间:2026-06-05 07:25:40

最近在跟AI协作写代码的过程中,遇到了一个挺普遍的烦恼——项目代码越写越“脏”。

通常的做法是让第二个Agent做Review,比如Claude Code写完之后,让Codex去检查。但时间一长,项目里还是积累了大量没人用的export、没必要的依赖,package.json也越来越臃肿。关键是,这些问题ESLint根本发现不了。

后来发现了一个叫Fallow的工具,GitHub地址是github.com/fallow-rs/f…。它是用Rust写的静态代码分析工具,专门用来揪TypeScript和Ja vaScript项目里的死代码、重复代码,以及依赖管理问题。

Fallow 的安装与常用命令

安装很简单:

npm install --sa ve-dev fallow

常用命令涵盖了几个高频场景:

# 全量分析 npx fallow # 只检测死代码 npx fallow dead-code # 检测重复代码 npx fallow dupes # 变更风险 npx fallow audit # 预览清理结果(不实际修改) npx fallow fix --dry-run

实际项目测试

拿自己的项目You Pencil做了测试。虽然平时已经有意识地做代码清理,但扫完之后还是发现了不少隐藏问题。控制台输出内容太长,不太方便阅读。后来干脆把输出结果导出成Markdown格式,让AI自己去读:

npx fallow --format markdown > .fallow-report.md

然后告诉Claude Code去处理那些报告内容。

把 Fallow 集成到 Claude Code / Codex 工作流

手动执行还是有点繁琐,索性就把这步直接嵌入到工作流里。

Fallow内置了一个agent hook安装器,可以自动生成配置文件:

npx fallow hooks install --target agent --agent claude

执行后会在 .claude/ 下生成两个文件:

.claude/settings.json .claude/hooks/fallow-gate.sh

其中 settings.json 配置了一个Claude Code的PreToolUse hook。也就是说,每次Claude准备执行Bash命令时,都会先经过 fallow-gate.sh 这道关卡。

整体流程大致是这样的:

  1. Claude 执行 git commit
  2. hook 拦截,自动运行 fallow audit
  3. 如果检查失败,脚本 exit 2,并把结果输出到 stderr
  4. Claude 收到错误信息,自己尝试修复
  5. 修复完成后,重新 commit

最后形成了一个自动循环:commit 被拦住 → 读错误信息 → 自动修复 → 再次尝试 commit。

Codex的配置方式类似:

# Codex:自动在 AGENTS.md 中追加 managed block npx fallow hooks install --target agent --agent codex

人工改代码,也最好加一道拦截

上面那套主要防AI,但很多脏东西其实也是人手改出来的。所以后来又在Git层加了一层hook:

npx fallow hooks install --target git

这样无论谁提交代码,都得先过一遍检查。

目前的用法

走完这套流程之后,项目确实干净了不少。