Claude Code 的 Hooks 能弥补 AI 协作中的常见问题,尤其在大型项目里效果明显。它们会在 Claude 修改代码时 自动执行,提供即时反馈并阻止常见错误。
TypeScript 类型检查 Hook
Claude 修改函数签名时,经常忘记更新所有调用点。例如为 schema.ts 中函数添加
verbose 参数后,main.ts 的调用还保持旧签名,导致类型错误。
解决办法是使用 PostToolUse Hook,在每次编辑后运行 TypeScript 编译器:
- 运行
tsc --noEmit做类型检查 - 收集错误
- 将错误反馈给 Claude
- 提示 Claude 修复相关文件
对于其他强类型语言,也可以使用类似的类型检查流程;弱类型语言则可改用自动化测试。
防止重复查询的 Hook
在有大量数据库查询的项目中,Claude 有时会重复造轮子。例如你要求它“增加一个超过三天未处理订单的 Slack
提醒”,它可能重新写查询而不是复用 getPendingOrders()。
该 Hook 的思路是加入“二次审查”流程:
- 当 Claude 修改
./queries目录下的文件时触发 - 程序化启动另一个 Claude Code 实例
- 让第二个实例检查是否已有相似查询
- 若发现重复,反馈给原 Claude
- 提示删除重复代码并复用现有实现
实现注意点
TypeScript Hook 较轻量,速度快;查询重复 Hook 更消耗资源,因为它会启动额外 Claude 实例。
- 收益:减少重复代码,提升一致性
- 成本:每次修改都要额外调用,耗时并消耗 API
- 建议:只监控关键目录,避免过度开销
这些 Hook 使用 Claude 的 TypeScript SDK,通过编程方式让一个 Claude 去审查另一个 Claude 的输出。
可扩展思路
- 用编译器或 linter 输出做即时反馈
- 用独立 AI 实例做自动代码审查
- 重点监控高价值目录
- 权衡自动化收益与性能成本
关键是找出你流程中的痛点,并用 Hook 自动解决。