
Claude Code 核心工作流别把它当聊天框让它真正干活本文是《Claude Code 实战》系列第 2 篇。第 1 篇讲了 Claude Code 的定位——它不是补全插件而是一个能在终端里读写文件、执行命令、自主推进任务的 AI agent。本篇解决更实际的问题怎么和它配合才能稳定、可控地完成一次真实开发任务。同样一个需求两种结局给一个 Node.js 项目加一个批量导出功能。新手丢一句帮我加个导出功能Claude 哗啦啦改了 6 个文件新增路由、修改 ORM 层、替换了依赖还顺手优化了三个不相关的模块。你翻 git diff 翻了 20 分钟最后git reset --hard。老手先让它读src/routes/和package.json然后说只看不要改先告诉我你打算怎么加。等计划确认后指定只动export.ts和routes/index.ts加完跑npm test。15 分钟收工diff 清爽测试全绿。差别不在工具在工作流。一次好任务的组织四段式结构把一次任务拆成四个阶段每一步人和 AI 各司其职阶段人做什么Claude Code 做什么喂上下文引用关键文件告诉它先读哪几个读取并理解代码结构与现状定目标与约束明确结果、范围、验收标准提出实现方案走 Plan 模式先想清楚执行切换到 acceptEdits 或 Manual逐轮 review编辑文件、跑命令、验证改动审查git diff或直接用 Claude 审查输出跑测试/构建证明改动正确给出 diff 摘要这不是理论框架。它直接对应 Claude Code 的三个核心能力读文件、改文件、跑命令。而控制这三者的阀门是权限模式和提示策略。喂上下文让 AI 先看懂再动手Claude Code 的上下文窗口是它最重要的资源。每一条消息、每一个文件读取、每一次命令输出都占据窗口上下文越满模型表现越差——开始遗忘早先指令犯更多错误。所以不是塞得越多越好而是塞得越精越好。具体做法用精准喂文件不要描述utils 目录下有个文件处理函数直接src/utils/file.ts。Claude 会先读文件再回应。比手打路径描述快且准。让 Claude 自己去读你不需要手动贴代码。告诉它先读src/controllers/下所有文件搞清楚现有的 CRUD 模式它会自己遍历读完再汇报——比你自己翻代码快。CLAUDE.md跨会话的持久记忆有些东西每轮都要用——构建命令、代码规范、项目架构。把它们写进项目根目录的CLAUDE.md# Build test commands npm run build # TypeScript compilation npm test # vitest, coverage in ./coverage/ # Architecture - src/routes/ : API route definitions - src/services/ : business logic - src/db/ : Prisma schemas and migrations IMPORTANT: Never modify files under src/db/migrations/ directly. Use npx prisma migrate dev instead.每次会话启动时 Claude 自动加载它。执行/init可以让 Claude 自己根据项目结构生成初稿。没有它每次都要重新解释一遍。有经验的用户还会给特定目录放子级CLAUDE.md——Claude 进入该目录干活时自动加载适合微服务架构中的每个子项目有自己的规范。先探索再规划再动手不要把建模、设计、编码揉成一句话丢进去。拆开// 第一步探索 切换到 Plan 模式。先读 src/api/ 和 prisma/schema.prisma 告诉我现在的数据结构和接口是怎样的。 // 第二步规划 基于上面的分析给添加批量导出功能出一个详细实现计划。 要动哪些文件、每个文件改什么、验收标准是什么。 // 第三步执行 切换到 acceptEdits。按照计划实现只动 export.ts 和 routes/index.ts。 改完后跑 npm test测试不过就修复。Plan 模式下 Claude 只读不改可以放心让它随意探索代码库。这是保护机制也是效率工具——在它真正动刀之前你有机会纠正方向。Claude Code 官方文档也推荐这个四段式Explore → Plan → Implement → Commit。明确说如果改动用一句话就能描述清跳过 Plan改动跨多文件或你对代码不熟悉时Plan 最有用。从对话到多文件改动读—改—验证循环Claude Code 做完一次目标不是改完文件而是改完且验证通过。它的循环是读文件理解现状 → 编辑按计划改动 → 跑命令测试/构建/lint → 读输出判断是否通过 → 没通过修复回到第三步 → 通过了报告结果这循环能跑起来的前提是你给了它可以运行的验证手段。这是 Anthropic 团队内部排在第 1 位的最佳实践——“给 Claude 一个它能跑的通/不通检查”。没有它AI 只能靠看起来对来判断错误会等着你来发现。验证手段可以是npm test/pytest/go testnpm run build的退出码eslint --fix的输出甚至是一个对比产出的自定义脚本一旦有了验证手段你可以让 Claude 在同一轮里自循环修复告诉它改完后跑测试不过就继续修最多循环 3 次。这样你从盯着屏幕变成偶尔扫一眼。控制改动范围权限模式是开关不是装饰Claude Code 提供了五种权限模式由ShiftTab循环切换。它们不只是省得点击而是工作流的核心控件模式行为适合场景Manual默认每次编辑、每条非只读命令都弹确认改核心逻辑、你不熟悉的代码acceptEdits文件编辑 常用命令mkdir/rm/mv/sed自动批准已确认方向信任具体实现Plan只读不写所有编辑阻止探索、出方案、需要你点头再动手auto分类器模型预审只拦截风险操作大任务、想长时间放手但怕出事bypassPermissions全部放行沙箱环境、CI、你完全信任实际使用中一个高效的工作流节奏是这样Plan 模式探索 出方案 → 确认acceptEdits执行 → 一边干一边看 diff遇到敏感操作切回Manual→ 逐条确认改完切回Plan→ 让它审查自己的改动acceptEdits 模式下文件写入和mkdir、mv、sed等常用命令自动通过但只限于工作目录和additionalDirectories内。超出范围或触及.git、.claude/等受保护路径时仍会弹确认。这个设计让信任和安全的边界很清晰——你信任它在你划定的范围内干活但不会给它全盘钥匙。如果想让审批更省心用/permissions把已知安全的命令如npm run lint、git status加入 allowlist。更激进的做法是开启 auto 模式——一个独立分类器模型实时审查每条命令只拦截风险行为越权访问、未知基础设施操作等。一个完整示例给模块加功能并补测试假设项目是 TypeScript vitest要给userService加一个getActiveUsers()。第一步喂上下文 Plan切换到 Plan 模式。 src/services/userService.ts src/services/__tests__/userService.test.ts 先读这两个文件告诉我当前的实现和测试覆盖情况。 然后出一个计划怎么加 getActiveUsers()、怎么补测试。 只读不改等我确认。Claude 读完代码输出计划当前 userService 有getUser(id)和createUser(data)使用 Prisma。计划在userService.ts新增getActiveUsers(filter)查询 status‘active’ 的用户在测试文件中新增 3 个 test case正常查询、空结果、filter 参数改动仅限这两个文件你确认“计划没问题开始。”第二步执行切换到 acceptEdits。 按计划实现完成后跑 npm test -- userService。 如果测试失败分析原因并修复最多循环 3 次。Claude 动手编辑userService.ts加入函数 → 编辑测试文件加入 3 个 case → 跑npm test -- userService→ 看到 3 个新测试全绿 → 报告完成。第三步审查切换到 Plan 模式。 用 git diff 看一下你改了什么给我一个改动摘要。 确认没有改其他文件、新函数有类型注解、测试覆盖了边界情况。Claude 列出 diff 摘要确认只动了两个文件函数有完整 JSDoc 和类型测试覆盖正常/空/带参三种情况。整个过程你做的一次确认计划、一次批准执行、一次最终审查。三句话15 分钟。对比一把梭的后果Claude 可能在不知情的情况下动了prisma.schema、改了其他 service、或者写了个能跑但没测试的函数——等你发现时已经改了一堆回滚也麻烦。反模式哪些用法会让它失控目标模糊——“帮我优化下这个模块”。给 AI 一个明确的可验证目标“把getUser的数据库查询从 3 次 N1 减少到 1 次用include预加载关联”。一次要求太多——“重构整个 API 层”。拆成单文件、单模块的任务每轮有明确边界。不给上下文——不文件不让它先读相关代码让它自己猜。AI 会猜错而且猜错的代价在代码里特别贵。不 review 直接接受——acceptEdits 快速通过后不看 diff。autopilot 是能力但代码最终是你的责任。上下文耗尽后继续——上下文快满时 Claude 开始犯错。如果任务大拆到多个会话做用 CLAUDE.md 传递关键信息。或者用/compact压缩对话历史。小结把 Claude Code 用好的核心心法就一条把它当成一个能干但需要引导的初级工程师不是魔法棒。你负责定方向、给约束、做审查它负责执行、验证、修复。这套四段式工作流——喂上下文 → 定目标 → 执行 → 审查——配上权限模式的分段控制是一句话丢进去和稳定出活之间的分水岭。第 3 篇深入 Plan 模式不只让 AI 先想清楚而是让它想得更深、更系统、更可审查。那种不知道 AI 会改成什么样的不安感Plan 模式就是解法。标签Claude Code、AI编程、AI Agent、开发工作流、AI辅助编程、开发工具