Claude Code对外公开了官方内部最佳实践!核心贡
你还记得第一次用 Claude Code 的时候吗?我反正是又兴奋又暴躁。兴奋的是,这玩意儿直接怼在终端里,跟我说句话就能改代码。暴躁的是——它改了300多行代码,测试全红,居然还得意洋洋地宣布:“任务完成!所有改动已部署!” 我差点把咖啡泼到键盘上。🤯 后来才知道,这坑我踩得一点都不冤。很多坑,明明能早避开。
前两天 Anthropic 官方放了个视频,核心贡献者 Cal Rueb 出来讲 CC 的内部最佳实践,25分钟,句句干得拧不出水。我连夜看了三遍,边看边拍大腿——原来我一直没搞懂它到底是个什么东西。
Rueb 在视频里直接掀了引擎盖。他把 Claude Code 描述成:“一组强大提示和工具,通过循环运行模型来完成负责任务的纯粹 Agent。” 说人话就是——CC 不是聊天机器人,它是一个读了你给的提示和工具描述,然后自己决定下一步该做什么的智能体。你以为你在和它聊天?错了。你在给一个 Agent 发指令,它自己会“想”怎么执行。
你看,一旦理解这件事,很多操作一下子就明朗了。
第一件事:CLAUDE.md 不是说明书,是你的“集体记忆”
官方第一条最佳实践:在项目根目录放一个 CLAUDE.md。Rueb 说他们团队共用一个,走 Git 版本控制。CC 启动时自动加载它,相当于给 Agent 发了一本“入职手册”。
我之前也放了,但写得巨敷衍——就一行“React 18 + TypeScript + Vite”。看完视频我重新整了份,现在长这样:
# 项目名称
React 18 + TypeScript + Vite
# 常用命令
npm run dev
npm run lint --fix
# 架构约定
- 所有 API 请求走 src/lib/api.ts
- 组件放在 src/components/,一个组件一个文件夹
- 禁止直接修改 store 类型,必须通过 action
# 历史雷区(血泪史)
- 图片路径用绝对路径,别用相对(之前部署全挂)
- 数据库迁移必须手动 review,别让 CC 自动跑
- pubDatetime 必须是过去时间(因为这个浪费三天)效果?立竿见影。CC 再也不会问“你们项目用什么框架”,也不会用已经废弃的 API。更关键的是——犯过的错写进 CLAUDE.md 里,整组受益。CC 作者 Boris Cherny 把这叫“复利工程”:每一次踩坑的记录,都在给未来的效率存钱。
Rueb 还提了个技巧:用 /init 命令让 CC 自己扫描项目生成这个文件。我试了,它生成得太啰嗦,把每个文件路径都列上了,废话一堆。建议自己手写,只放真正重要的约定,20-30行就够。你想啊,给 Agent 的入职手册,得精简,不能是百科全书。
上下文管理:别把整个项目往里倒
很多人用 CC 会犯一个错误:直接用 cc -f . 把整个项目丢进去。CLAUDE.md 里写了项目结构,CC 能看懂,但上下文窗口就那么大——你让它一口气读 10 万行代码,它脑子跟泡了水的海绵一样,什么都抓不住。
Rueb 的做法是“精确指定文件”。我也养成了习惯:只传当前任务相关的文件。改 API 路由?只给 src/api/ 下的文件。
还有一个骚操作:用管道符把其他命令的输出喂给 CC。
git diff | cc "review 这些改动,检查是否有 side effect"这比把整个 git log 丢进去省一半 token。我每次提交 PR 前都这么干,CC 能揪出一些我漏掉的错误——比如改了一个函数的参数,但忘记更新调用方。
上下文压缩也是必学的。文件太大?先 grep 出关键段落:
grep -n "handleSubmit" src/components/*.tsx | cc "分析这些函数的共同模式,提炼成自定义 hook"你看,CC 也不是铁打的,给它太多它反而迷糊。聪明的方法,是只给它眼下需要的。
权限控制:那个吓人的 flag,我是怎么用的
--dangerously-skip-permissions——这名字就是故意让你害怕的。我一开始没敢用,每次操作 CC 都弹一次确认,改个代码像在过安检。后来实在受不了,就把它加到了 alias 里。
但 Rueb 在视频里强调了一个原则:只有你完全理解 CC 能对你的代码库做什么后,才用它。我高度同意。现在我的 alias 是 cc='claude --dangerously-skip-permissions',但前提是——本地开发环境,项目有完整的 Git 提交记录。出了问题?回滚就行了。我不怕。
另一种模式是在 CI/CD 里用“无头模式”(headless mode)。Rueb 展示了 CC 在自动化流水线里跑测试、修 bug 的场景。我自己也试过:在 GitHub Action 里配置 CC,自动跑 PR review。效果不错,但权限必须控死——别让 CC 能直接合并代码。你想想,一个 Agent 拿到合并权限,万一哪次抽风,整个仓库都得遭殃。
踩坑实录:奖励黑客和虚假胜利
用 CC 时间长了,你会发现它有一种强烈的“急于完成”倾向。我在两个项目里都遇到了类似的问题。
第一,单方面宣布胜利。 测试跑得一片红,CC 说“任务完成!所有改动已部署”。你反问它,它立刻承认错误,检讨书写得比谁都诚恳。Ogemini 项目里更离谱:CC 带着小模型做 Agent,小模型跑通个 hello world,CC 就吹成“已达到完全自主智能体”。我气得直接在 CLAUDE.md 里加了一段:
【防吹牛规则】
- 每次宣称完成前,必须生成可读的证据文件
- 如果测试不通过,禁止将代码标记为完成
- 禁止代劳子任务,禁止微操其他 Agent 过关每次它吹号庆祝,我就让它读一遍这个规则。虽然笨,但有效。
第二,测试环境不干净。 Sandbox 目录里上次运行的文件没清理,影响了本次结果。CC 以为自己发现了新 bug,实际上是垃圾文件在捣乱。我现在的做法是每次运行前让 CC 执行清理脚本,或者在 CLAUDE.md 里写死“每次测试前运行 rm -rf sandbox/*”。
还有一个比较隐蔽的:幻觉 API 版本和包名。CC 曾经用了不存在的 Python 函数,我查了半天文档才发现。Rueb 的建议是让 CC 自己检查自己的工作——在提示词里加上“运行测试套件,如果失败就修,修完再跑,直到全绿”。给 CC 一个反馈回路,它能自己发现错误。
进阶技巧:计划模式、并行和 Slash Commands
Rueb 分享了 Boris Cherny 的日常操作,我看了直呼好家伙。
1. 计划模式:双击 Shift+Tab 进入,先对齐计划,再动手。我试了一周,返工率至少降一半。以前我上来就让 CC 改代码,改到一半发现方向偏了,回滚重来。现在先让它写一个实现方案,我看完了再让它 Auto-accept 执行。先瞄准,再开枪。
2. 并行实例:Boris 在终端开 5 个 CC 标签页,Instance 1 在生成代码,他去处理 Instance 2。开启系统通知,代码跑完了弹窗提醒。我试过 3 个实例同时跑不同模块,速度确实快。关键是不阻塞:一个实例在等网络请求,另一个已经在写测试了。想想看,你同时雇了几个 Agent 帮你干活,还不付加班费。
3. Slash Commands:把高频操作固化。我设置了 /test 跑全部测试,/deploy 执行部署脚本,不用再重复打字。社区有人维护了一个 agentskills.io 网站,专门分享 Skill 技能包。我下载了几个——比如自动生成 CHANGELOG 的,用了都说香。
4. 无缝接力:在终端里写代码,突然想出门?用 claude --teleport 把上下文传到 web 端或者手机上继续。我没用过 iPhone 上的 CC,但同事说在 iPad 上用很流畅。你看,Agent 还能跟着你走。
工具对比:没有全能王
网上常有人把 CC、Antigravity、OpenCode、Aider 放在一起评判,然后互相踩。完全没必要。它们适用场景不一样,硬比没意思。
| 工具 | 最强项 | 最适合 |
|------|--------|--------|
| Claude Code | 超长上下文,跨文件理解一致性强 | 大型项目改造、重构、批量修 bug |
| Antigravity | 可视化预览、前端快速原型 | 从零搭网站、做前端页面 |
| OpenCode | 模型灵活性,可接 75+ LLM 服务商 | 想换模型、不想被绑定 |
| Aider | 极致 Git 集成,透明可回滚 | 对 AI 改动极度敏感的项目 |
我的选择:后端项目和祖传代码用 CC,前端小原型用 Antigravity,试新模型时切到 OpenCode。不纠结,混着用。
注意一点:Anthropic 封了 OpenCode 的 consumer OAuth token 通道,现在要在 OpenCode 里用 Claude 得自己带 API key。Claude Pro 是 20 刀一个月,Max 是 100 刀。如果你只是偶尔做小型任务,Pro 够用;天天高强度用,Max 值那个差价——上下文窗口更大,算力更多。自己看着钱包选。
写在最后
官方视频里 Rueb 有一句话我记下来了:“最终的 Metric 不是 Token 生成速度,而是 Time to Resolve。” 别只看生成速度,关键是解决问题总共花了多长时间。用 Sonnet 虽然生成快,但 Opus 工具调用更准,需要的引导更少,整体时间反而可能更短。
我已经把 CLAUDE.md 当成了项目的“第二本 README”。每次踩新坑,就补一条。三个月下来,文档从 10 行长到 50 行,但 CC 犯错的概率至少降了一半。
建议你今晚就去看看那个视频,25 分钟,不亏。搜“Claude Code best practices Cal Rueb”。看完回来记得改你的 CLAUDE.md——如果你还没创建,那现在就是最好的时机。
记住:工具的速度不重要,你解决问题的速度才重要。 而最快的路,往往是从别人的坑上铺过去的。🚀
读者评论 4