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

大家好,我是印刻君。最近我一直在用 AI 写代码。

我一般会让第二个 Agent 做 Review,比如 Claude Code 写、Codex 查,但时间长了,项目还是越来越脏。

AI 很喜欢 export 一堆没人用的东西,package.json 里也会慢慢积累无用依赖。这类问题,ESLint 很难发现。

后来我发现了一个工具:Fallow。github.com/fallow-rs/f...

它是 Rust 写的静态代码分析工具,专门查 TypeScript / JavaScript 里的死代码、重复代码和依赖问题。

Fallow 的安装与常用命令

安装:

css 复制代码
npm install --save-dev fallow

常用命令:

bash 复制代码
# 全量分析
npx fallow

# 只检测死代码
npx fallow dead-code

# 检测重复代码
npx fallow dupes

# 变更风险
npx fallow audit

# 预览清理
npx fallow fix --dry-run

我自己的尝试

我拿自己的项目 You Pencil(youpencil.com)进行了尝试。

虽然我平时有意识地做了代码清理,还是扫出不少问题。

控制台输出太长,不太方便看。

我后来直接导成 Markdown,让 AI 自己读:

css 复制代码
npx fallow --format markdown > .fallow-report.md

然后告诉 Claude Code:

读一下 .fallow-report.md,把 Unused exports、Unused type exports、Unused dependencies 按优先级处理掉。

把 Fallow 塞进 Claude Code / Codex 工作流

不过手动执行还是太麻烦。我索性把这步集成到工作流里。

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

css 复制代码
npx fallow hooks install --target agent --agent claude

该命令会在 .claude/ 下生成两个文件。

bash 复制代码
.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. Claude 自己修复,再重新 commit

最后形成了一个自动循环:commit 被拦 → 读错误 → 修复 → 再 commit。

Codex 的配置方式类似:

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

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

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

css 复制代码
npx fallow hooks install --target git

这样无论是谁提交代码,都会先跑一遍检查。

目前就这么用着

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

以上就是我的使用过程,分享给有同样需求的人。

相关推荐
溪言18 小时前
【Claude基础】09.多代理协作:Agent Teams与编排模式
ai编程·claude
悟空码字18 小时前
显存不够?算力不足?多卡并行一站式解决方案
aigc·openai·ai编程
Holman18 小时前
Claude Code 用成这样,你早该知道的 5 个操作
ai编程
浩风祭月18 小时前
线上 JS 报错“TypeError: undefined is not a function”,我用了两天才找到原因
前端·ai编程
xpanxcom19 小时前
一份能让 Claude Code / Cursor 通用的 Skill 该怎么写、去哪找
claude
政采云技术19 小时前
从 Vibe Coding 到 SDD:AI 编程的工程化演进
ai编程·vibecoding
半亩码田19 小时前
为什么 AI 框架几乎全选 Python,而不选 C#?从历史、语言设计和生态三个维度拆解
python·ai编程
Rauser Mack19 小时前
编程零基础五分钟用AI做了个贪吃蛇(附prompt)
人工智能·python·html·prompt·ai编程
名不经传的养虾人19 小时前
从0到1:企业级AI项目迭代日记 Vol.32|企业AI的隐形工程:登录、接管、发布、资产——一个都不能少
大数据·人工智能·ai编程·企业ai·多agent协作