返回 FEED
CLAUDE2026-05-30

Claude Code 六个大坑

很多人在装好 Claude Code 的第一分钟,就迫不及待地打出了那句话:

帮我把登录页面改一下。

终端刷得飞快,文件改了七八个,你觉得很爽。但半小时后,问题来了:越纠正它,它绕得越远,diff 越来越大。

这不是 Claude Code 不够聪明。是你把它当老员工用了,而它其实是个刚来第一天的新同事。

人聪明、手快,但你没给项目地图,没告诉它哪些地方不能碰,也没告诉它什么叫"做完"。这种情况下,它越勤快,你越累。

所以这份新手攻略的核心只有一句话:第一次用 Claude Code,不要先提需求。先做开工检查,再堵 6 个坑。


开工检查:先看 git status

进项目不要直接开 Claude Code。先确认一件事:当前工作区是不是干净的。

git status --short

如果什么都没输出,干净,可以继续。

如果已经有改动,进 Claude Code 后的第一句话要划清边界:

先不要修改任何文件。
请先查看 git status,告诉我当前有哪些未提交改动。
这些改动默认都是我手工改的,你不要覆盖。
等我确认后,再开始下一步。

成功标志:Claude Code 能说清楚当前有哪些改动,而且没有直接开始写代码。

这就像请师傅上门维修前,先告诉他"这面墙我昨天刚刷过,别碰"。你不说,他真有可能顺手给你重新刷一遍。


第 1 坑:没有 CLAUDE.md

Claude Code 里最重要的项目记忆文件是 CLAUDE.md——你可以把它理解成"给新同事看的入职纸条":项目怎么跑、哪些地方不能碰、改完怎么验收。

第一次进项目可以输入 /init,它会分析项目生成起步版。如果文件已存在,它通常只给改进建议,不会直接覆盖。

/init 生成的内容往往像"项目说明书",不一定像"干活规矩"。你需要补一层真正能管住它的规则。

CLAUDE.md 不是许愿墙,是施工规矩。

不要写成"保持代码整洁""注意性能"这种空话。要写能检查的动作——先看 git status、别乱加依赖、别碰 .env、没验证别说完成。

核心结构应该覆盖这几个维度:

  • 开工前:先看工作区状态,不确定项目结构时先读 README 和配置文件
  • 项目地图:源码入口、测试位置、配置入口、禁止主动修改的目录
  • 命令发现:不要假设工具链,先看锁文件,优先复用已有 scripts
  • 禁区:.env、密钥、破坏性命令、涉及 auth/billing/payments 时默认高风险
  • 验收:改了哪些文件、跑了哪些检查、还有哪些没验证

成功标志:项目根目录里真的出现了 CLAUDE.md,而且里面是能检查的动作,不是泛泛的建议。


第 2 坑:一上来就改代码

很多人第一句话就是"帮我加一个登录页面"。这句话太猛了——它还不知道你的技术栈、路由、组件风格、测试怎么跑,你就让它开始写。

更稳的第一句话应该是:

先不要修改任何文件。

请先阅读项目结构,找出:
1. 技术栈
2. 启动命令
3. 测试命令
4. 主要目录用途
5. 现有代码风格
6. 这个项目最容易踩的 3 个坑

整理完以后,再问我要不要进入开发。

关键只有一句:先不要修改任何文件。

做完以后看两个成功标志:

  1. git status --short 没有新文件或被修改的文件
  2. 它能说出项目的真实情况,而不是泛泛而谈

如果它顺手改了文件,立刻纠正:

停。我刚才要求只读扫描,不允许修改文件。
请先说明你改了哪些文件、为什么改、怎么恢复。
在我确认前,不要继续修改。

前面有没有把边界立住,决定了后面它会不会听话。


第 3 坑:工具箱没配齐

Claude Code 再聪明,也是你的电脑上干活。它要找代码、查文件、读 JSON。如果这些基础工具没配,它就会绕远路,速度慢,误判也多。

先在终端跑这三条:

rg --version
fd --version
jq --version

成功标志:三条都能打印版本号。

如果提示 command not found:

  • Mac:brew install ripgrep fd jq
  • Ubuntu/Debian:sudo apt install ripgrep fd-find jq(fd 有时叫 fdfind)
  • Windows:用 WSL 或者确认 Claude Code 运行环境里能调用类似工具

如果 fdfind 可用但 fd 不可用,在 CLAUDE.md 里补一句:本机查文件命令使用 fdfind,不是 fd。

这三把刀各有所长:rg 是找某句话在哪个文件,fd 是找某个文件在哪里,jq 是把 JSON 拆开看。刀顺手,做饭才不会乱。


第 4 坑:直接在主分支上试

Claude Code 最大优点是手快,但副作用是一次可能改很多文件。如果直接在主目录里试,跑偏后清理起来很累。

用 git worktree 给它开一个隔离目录:

git status --short  # 先确认当前状态
git worktree add ../myproject-ai-first -b ai/first-claude-task
cd ../myproject-ai-first
# 再启动 Claude Code

成功标志是 git worktree list 能看到两个工作区:

/Users/you/myproject           abc1234 [main]
/Users/you/myproject-ai-first  abc1234 [ai/first-claude-task]

主项目是正屋,worktree 是旁边临时搭出来的练习间。它可以在练习间里拆、装、试,不用担心一锤子砸到承重墙。

做完如果不需要了:git worktree remove ../myproject-ai-first

刚开始不用开很多,先拿一个低风险任务试一次,比如改一个按钮文案、补一个小测试、修一个明确报错。先养成这个习惯,你心里会踏实很多。


第 5 坑:不写验收标准

Claude Code 很会总结,它改完会说"已完成""已修复""测试通过",语气很稳。但你不能只看它怎么说——代码能不能交,要看证据。

以后不要这样提需求:

修一下登录失败的问题。

换成这种:

任务:修复用户 session 过期后重新登录失败的问题。

范围:
1. 只看 src/auth 和 src/api/session 相关文件;
2. 不要重构整个登录模块;
3. 不要修改数据库结构。

要求:
1. 先说明当前登录流程;
2. 找到最小修改方案;
3. 如果项目有测试,优先补一个能复现问题的测试;
4. 修改后运行最小相关测试;
5. 最后输出 git diff --stat;
6. 如果某个检查无法运行,直接说明原因,不要说已经验证。

这段话看着长,其实是在给它尺子。没有尺子它只能凭感觉修。有了尺子,它至少知道边界、目标和交卷方式。

改完以后你自己也要跑两条:

git status
git diff --stat

如果是代码改动,再让它做一次只读 review:

请只读 review 这次 diff。

重点看:
1. 有没有改动超出需求范围;
2. 有没有漏掉测试;
3. 有没有破坏项目已有约定;
4. 有没有安全、数据或权限风险;
5. 哪些地方需要我人工确认。

不要修改文件,只输出 review 结果。

成功标志不是它说"好了",而是你手里有三样东西:改了哪些文件、跑了哪些检查、还有哪些没验证。这三样比一句"完成了"可靠得多。


第 6 坑:所有事塞进一个会话

很多人用 Claude Code 还是以前用聊天机器人的习惯——修 Bug 问一句,顺手让它解释一个文件,又回到 Bug,中途再让它写提交说明。

这会把会话变成杂物间。Claude Code 的上下文会保存对话、读过的文件、命令输出和修改过程。一个会话塞得越满,早期规则越容易被冲淡。

最简单的习惯:一个会话只做一个任务。

任务结束后如果要换主题,输入 /clear。如果感觉上下文快满了,可以先看 /context,需要压缩时用 /compact。如果它走错方向想回到检查点,用 /rewind

判断标准:同一个问题纠正它两次,它还是绕不出来,就不要在原会话里继续纠缠。把已知信息整理成一个新提示,重新开始。

我们重新开始这个问题。

已知信息:
1. 报错出现在登录回调阶段;
2. token 刷新逻辑可能有问题;
3. 刚才尝试修改 session 存储方向失败;
4. 不要重构整个登录模块。

请先阅读 src/auth 相关文件,找出最小修改方案。
在给出计划前,不要修改代码。

这就像桌面太乱了,不是继续把新文件堆上去,而是先把桌子清一下,再摊开下一件事。


完整检查清单

第一次用 Claude Code,就按这个顺序走:

[ ] 0. 进项目后先跑 git status --short
[ ] 1. 用 /init 建 CLAUDE.md,再补上项目规矩
[ ] 2. 先发"不要修改任何文件"的只读扫描提示词
[ ] 3. 检查 rg / fd / jq 是否可用
[ ] 4. 用 git worktree 给它开隔离目录
[ ] 5. 每个任务都写清范围、验收和不能碰的地方
[ ] 6. 任务结束后 /clear,别把所有事塞进一个会话

你现在就可以做一件很小的事:打开你正在用 Claude Code 的项目,先别让它写新功能。先跑 git status --short,然后输入 /init,再把 CLAUDE.md 模板贴进去改成你的项目地图。

这一步不酷,但管用。工具越能动手,越要先给它地图、工具箱和验收尺。你把这 6 步做完,再让 Claude Code 写代码,它才更像一个能配合你的助手,而不是一个很勤快但到处乱改的新同事。