Claude Code神仙配置全自动修Bug告别重复教AI
使用Claude编写代码的同学,想必都经历过这样的循环:写代码 → 测试报错 → 耐心向Claude解释问题所在 → Claude修复 → 结果又把其他部分弄坏了。每次开启新的会话,同样的轮回便会从头再来一遍。Boris Cherny —— Claude Code的创始人,最近在一次访谈中透露了一个

使用Claude编写代码的同学,想必都经历过这样的循环:写代码 → 测试报错 → 耐心向Claude解释问题所在 → Claude修复 → 结果又把其他部分弄坏了。每次开启新的会话,同样的轮回便会从头再来一遍。
Boris Cherny —— Claude Code的创始人,最近在一次访谈中透露了一个内部秘密:他们团队早已停止人工修复Claude产生的错误,转而让Claude自我纠错。
核心在于一套精心设计的配置,它能让Claude自动发现错误、自动修复,并记住不再重蹈覆辙。Boris Cherny在访谈中详细拆解了这套机制。以下直接奉上干货。

问题根源与基础配置
为什么Claude会反复犯相同的错误
根本原因其实很简单:Claude不具备跨会话记忆能力。每次新会话都是从零开始,你昨天花费20分钟修复的bug,明天会照样出现,一切努力白费。
CLAUDE.md 正是为了解决这个问题而存在的。Anthropic官方使用指南中明确指出:每当Claude做错某件事,就将其添加到CLAUDE.md中,告诉它不要再犯同样的错误。
具体操作方法:每次纠正Claude之后,在消息末尾加一句:“更新你的CLAUDE.md,这样你就不会再犯这个错了。”
实际上,Claude很擅长为自己编写规则,但绝大多数人从未让它这样做过。
第一步:打造能自动成长的CLAUDE.md
CLAUDE.md 应该随着每次错误的纠正不断扩充。注意,这里需要写入的是具体、可执行的规则,而不是类似“你是一个编程助手”这样的人格设定。
## 规则
-绝对不要重构、重命名或清理无关代码
-所有数据库查询走 services/,不要写在组件里
-每次改完代码运行 npx tsc --noEmit
-每次改完跑测试,失败了先修好再继续
-提交前缀规范:feat:、fix:、docs:、refactor:、test:、chore:
-绝对不用 enum,用字面量联合类型代替
-绝对不要 force push,会覆盖共享历史
-先跑 migration 再跑测试,顺序不能反
## 从错误中学到的
-不要在 packages/ui 里装本该装在 apps/web 的包
-不要把两种现有模式平均一下,选一种跟到底
-不确定文件夹结构时,先查现有文件
-stop-loss 函数必须返回数字,不是布尔值(2026-05-12 生产环境出过问题)其中最关键的是“从错误中学到的”这一节。每次纠正Claude之后,就补充一句:“更新CLAUDE.md,这样你就不会再犯这个错了。”
坚持一个月,CLAUDE.md 会积累该项目中Claude犯过的所有错误。错误率自然会下降,因为Claude在开始工作前会先读取这份“不该做的事情清单”。
不过也别贪多。研究表明,规则的甜蜜点大约是12条、200行以内。超过这个范围,执行率会明显下降。
实时监控:利用钩子自动捕捉错误
第二步:PostToolUse钩子,实时抓住错误
钩子会在特定时机自动触发。PostToolUse 在Claude写完或编辑完文件后立即运行,在问题扩散之前就将其抓住。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.ts)",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $file"
}
]
},
{
"matcher": "Write(*.ts)",
"hooks": [
{
"type": "command",
"command": "npx tsc --noEmit 2>&1 | head -20"
}
]
},
{
"matcher": "Write(*.tsx)",
"hooks": [
{
"type": "command",
"command": "npx eslint --fix $file"
}
]
}
]
}
}每个 .ts 文件触发两个动作:先通过Prettier自动格式化,再进行类型检查。每个 .tsx 文件则触发ESLint自动修复。
这样,Claude在同一轮会话中就能看到类型报错,立刻修复后再继续。
没有钩子时是什么场景?Claude写完5个文件,你手动运行类型检查,发现3个文件共12个报错,然后逐个解释。有钩子呢?每个文件写完立刻检查,错误实时得到修复。
第三步:Stop钩子,质量门禁
这是整套机制中最关键的一环。Stop钩子在每次Claude说“我完成了”时触发,在Claude真正结束之前验证工作是否达标。
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "npm test 2>&1 | tail -5; echo "Exit code: $?""
}
]
}
]
}
}如果测试失败,Claude看到失败输出后会自动继续工作修复,完全不需要人工干预。
对于更复杂的验证场景,还可以使用 prompt 类型的钩子,让Claude自行评估工作结果:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "prompt",
"prompt": "检查所有任务是否已完成。检查代码改动中是否有bug、遗漏的边界情况和测试覆盖。如果有未完成或有问题的地方,继续工作。如果一切正常,确认完成。"
}
]
}
]
}
}需要提醒一下:Stop钩子里一定要检查 stop_hook_active。当这个值为true,说明Claude已经因为前一个Stop钩子在继续工作,此时直接 exit 0 退出。不加这个检查,钩子会让Claude永远卡在循环里出不来。
防御前置与跨会话记忆系统
第四步:PreToolUse钩子,在错误发生前拦截
PreToolUse 在Claude执行工具之前运行,专门用来过滤输入、阻止代价高昂的操作。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash(cat *log*)",
"hooks": [
{
"type": "command",
"command": "grep -n 'ERROR|WARN' $file | head -50"
}
]
},
{
"matcher": "Write(**/.env*)",
"hooks": [
{
"type": "command",
"command": "echo 'BLOCKED: Cannot write to .env files' && exit 1"
}
]
}
]
}
}举个例子:Claude想要读取一个1万行的日志文件?钩子先过滤,只给它50行错误信息。Claude想要写入 .env 文件?直接拦截,该操作根本不会发生。
第五步:自动重试模式
对于需要多次尝试的任务,可以加入重试次数限制:
修复这些失败的测试。最多尝试3次。
每次尝试之后:
1. 跑测试
2. 如果通过,完成
3. 如果失败,读错误信息,换一种思路
4. 如果3次都失败,说明你尝试了什么、还有什么没修好
不要尝试同一个修法两次。结合第三步的Stop钩子,这就构成了一个自我修复的闭环:Claude写代码 → 测试运行 → 失败后读取错误重新尝试 → 直到通过或耗尽尝试次数。
重点:必须设置次数上限。没有上限,Claude可能会陷入无限重试,消耗大量token。
第六步:跨会话记忆系统
钩子解决的是单次会话内的错误,而记忆系统解决的是跨会话的重复错误问题。
# 查看Claude已记住的内容
/memory
# 手动添加规则
/memory add "这个项目用 pnpm,不是 npm"
/memory add "auth 模块在5月15日重构了,新模式在 src/lib/auth/v2/"如果开启 Dreaming 功能,Claude会在后台处理历史会话、自动积累持久知识,完全不需要手动添加。
总结一下这套三层组合:CLAUDE.md 负责捕获项目级规律,/memory 负责捕获会话级学习,Dreaming 则在每晚自动整合。三管齐下,重复错误基本无处遁形。
完整配置方案与效果对比
完整配置,可直接复制使用
{
"permissions": {
"allow": [
"Read", "Glob", "Grep", "LS", "Edit", "MultiEdit",
"Write(src/**)", "Write(tests/**)",
"Bash(npm test *)", "Bash(npx tsc *)", "Bash(npx prettier *)",
"Bash(npx eslint *)", "Bash(git add *)", "Bash(git commit *)"
],
"deny": [
"Read(**/.env*)", "Write(**/.env*)",
"Bash(rm -rf *)", "Bash(git push *)"
],
"defaultMode": "acceptEdits"
},
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.ts)",
"hooks": [
{ "type": "command", "command": "npx prettier --write $file" },
{ "type": "command", "command": "npx tsc --noEmit 2>&1 | head -20" }
]
},
{
"matcher": "Write(*.tsx)",
"hooks": [
{ "type": "command", "command": "npx prettier --write $file" },
{ "type": "command", "command": "npx eslint --fix $file" }
]
}
],
"PreToolUse": [
{
"matcher": "Bash(cat *log*)",
"hooks": [
{ "type": "command", "command": "grep -n 'ERROR|WARN' $file | head -50" }
]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "command": "npm test 2>&1 | tail -10; echo "Exit: $?"" }
]
}
]
}
}配置前后的效果对比
配置之前:
- Claude写代码,你手动跑测试,发现4个失败
- 你逐一解释每个失败原因
- Claude修好了3个,却顺带引入了1个新bug
- 你再次解释
- 每个功能来回折腾45分钟
- 同样的错误明天还会再次出现
配置之后:
- Claude写代码,钩子自动格式化并检查每个文件
- Claude宣布完成,测试自动运行
- 测试失败,Claude读取错误并继续修复
- CLAUDE.md 阻止昨天的错误重演
- 记忆系统阻止上周的错误重演
- 每个功能只需10分钟,大部分时间无需人工盯着
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:Claude Code神仙配置全自动修Bug告别重复教AI要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点高盛最新报告分析了人工智能推动下的美股市场状况。报告指出,标普500指数近期创下数十年来最强劲涨幅,市场出现一定过热迹象,例如市场广度收窄、高估值股票交易活跃度接近高位。然而,通过综合评估股价、交易活动、投资者情绪及企业情绪等九项关键指标,其中位数排名处于历史第86个百分位,仍远低于互联网泡沫时期和
西藏芒康一名司机在山路行驶时,主动停车礼让一群横穿马路的散养小鸡。就在他重新启动车辆后不久,发现前方道路因山体塌方而被巨石完全封堵。司机事后表示,从停车礼让到发现险情,前后仅间隔一两分钟,正是那短暂的等待让他恰好避开了塌方发生的时刻。这一事件引发网友对文明驾驶与行车安全之间微妙联系的讨论,相关安全提
针对近期网络上流传的凯越机车资金链断裂、向前创始人张雪求助等传闻,张雪本人已发布视频明确回应,称凯越方面从未联系过自己,并了解到凯越经营状况平稳。此前,凯越机车已于6月6日发布正式声明,驳斥了“破产”、“销量大跌”等一系列不实言论,并表示已固定证据并向公安机关报案,将追究造谣者责任。张雪作为品牌初创
光刻机巨头ASML市值近日攀升至约4 5万亿元人民币,超越其他欧洲企业成为市值第一。这一变化源于投资机构对其EUV光刻机产能的乐观预期,预计年产量将远超市场此前预估。与此同时,其高端光刻机售价高昂,最新机型单价约达25 8亿元人民币。尽管市值登顶欧洲,但与部分下游芯片客户相比,其规模仍存差距,反映了
- 日榜
- 周榜
- 月榜
热点快看
