Claude Code 入门:从安装到交付第一个能验收的小任务
摘要
很多人第一次接触 Claude Code,真正卡住的地方并不是“不会安装”,而是不知道安装之后应该做什么。
打开终端,输入 claude,Agent 开始读取项目、分析代码、修改文件、执行命令,看起来非常强大。但如果第一步就让它“帮我重构整个项目”,往往很难判断结果到底好不好;反过来,如果只把它当成一个聊天机器人,又无法真正体会 Agentic Coding 的价值。
更合理的入门方式,是从一个范围明确、结果可验证、风险可控的小任务开始:让 Claude Code 在真实项目中完成一次小型 Bug 修复、测试补充、配置调整或局部功能修改,并最终通过测试、Diff 和验收标准确认结果。
本文不把 Claude Code 当成一个普通的 AI 聊天工具介绍,而是从实际开发流程出发,完整讲清楚它是什么、如何安装、如何进入项目、如何建立项目上下文、如何提出第一条任务指令、如何控制权限、如何检查修改、如何运行验证,以及如何把一个“AI 帮忙改代码”的请求,变成一个真正可以验收的软件工程任务。
引言:第一次使用 Claude Code,最重要的不是让它写很多代码
第一次使用 Claude Code 的场景通常很相似。
你打开一个项目,进入终端:
claude
几秒钟后,一个 AI Agent 出现在终端里。
你可能会下意识地输入:
帮我看看这个项目有什么问题。
或者:
帮我把这个项目重构一下。
甚至:
把这个项目优化一下。
然后 Claude Code 开始工作。
它可能读取几十个文件,搜索代码,执行测试,修改多个模块,最后告诉你:
已完成重构。
问题是:
你怎么知道它真的完成了?
更重要的是:
你怎么知道它没有顺手修改一些不应该修改的东西?
这正是第一次学习 Claude Code 时最容易忽略的问题。
Claude Code 的价值,并不只是“它能写代码”。
真正重要的是,它可以进入一个真实代码仓库,理解项目上下文,通过工具读取和修改文件、执行命令,并围绕一个任务持续推进。
官方资料将 Claude Code 定义为运行在终端中的 AI Coding Agent,它可以读取实际代码库、修改文件、运行命令,并处理从 Bug 修复、重构到测试等任务。
这意味着开发者与它的协作方式发生了变化:
传统 AI 编程助手
人 → 提问 → AI → 代码片段 → 人复制 → 修改 → 测试
而 Agentic Coding 更接近:
人
↓
提出任务
↓
Claude Code
↓
理解项目
↓
定位问题
↓
制定方案
↓
修改文件
↓
运行验证
↓
查看 Diff
↓
人验收
所以,Claude Code 入门真正应该学习的不是:
“Claude Code 有哪些按钮?”
而是:
如何把一个开发需求交给 Agent,并最终拿回一个可以验证、可以审查、可以交付的结果。
一、Claude Code 到底是什么?
1.1 从聊天机器人到 Coding Agent
传统的 AI 编程助手通常围绕“生成代码”展开。
比如你问:
如何实现一个 JWT 登录接口?
AI 给你:
const token = jwt.sign(payload, secret);
然后你需要自己:
- 找文件
- 粘贴代码
- 修改代码
- 安装依赖
- 运行项目
- 执行测试
- 修复错误
- 检查 Diff
Claude Code 的工作模式更接近后者的自动化。
你告诉它:
用户登录接口返回 401。
请先定位原因,然后修复问题,并运行相关测试验证。
它可以自己完成多个连续动作:
理解任务
↓
搜索项目
↓
读取相关文件
↓
定位代码
↓
分析问题
↓
修改代码
↓
运行测试
↓
根据结果继续修复
↓
汇报结果
这就是 Agent 的核心区别。
二、理解 Claude Code 的三个核心能力
Claude Code 可以简单理解成三个能力的组合。
2.1 能看懂项目
它不是只看你当前复制进去的代码。
它可以根据任务在项目中搜索和读取相关文件。
例如你说:
检查用户注册流程。
它可能需要寻找:
src/
├── routes/
├── controllers/
├── services/
├── models/
├── middleware/
└── tests/
然后逐步确定:
请求入口
↓
Controller
↓
Service
↓
Database
↓
测试
2.2 能操作项目
它不只是给建议。
在获得相应权限后,它可以:
- 修改文件
- 创建文件
- 删除或移动文件
- 执行 Shell 命令
- 运行测试
- 运行构建
- 检查 Git 状态
- 查看 Diff
这也是为什么 Claude Code 的权限机制非常重要。
它不是一个“只读聊天窗口”。
它是真正能够改变工作目录内容的 Agent。
2.3 能围绕目标持续执行
这是最值得理解的一点。
普通问答:
问题 → 答案
Agent:
目标
↓
观察
↓
行动
↓
验证
↓
发现问题
↓
再次行动
↓
再次验证
↓
完成目标
因此,使用 Claude Code 时,最重要的能力不是“如何写一个超级复杂的 Prompt”,而是:
如何定义一个清晰的目标,以及如何定义完成标准。
三、为什么第一次任务应该“小”一点?
假设你刚安装 Claude Code。
不推荐第一句话:
帮我重构整个项目。
因为这个任务存在太多变量:
- 重构范围不明确
- 什么叫“更好”不明确
- 哪些文件可以修改不明确
- 测试标准不明确
- 性能目标不明确
- 是否允许修改 API 不明确
最后即使 Claude Code 改了几十个文件,你也很难判断结果。
3.1 一个好的入门任务应该具备四个特征
第一,范围小
例如:
修复 src/auth/login.ts 中的登录异常。
而不是:
优化整个认证系统。
第二,目标明确
例如:
当用户输入错误密码时,接口应该返回 401。
第三,可以验证
例如:
运行相关测试。
第四,修改风险低
例如:
只修改登录模块和对应测试。
这四点组合起来,就形成了一个非常适合第一次尝试的 Agent 任务。
四、什么叫“能验收的小任务”?
这是本文最重要的概念。
所谓“能验收”,不是指:
Claude Code 说“完成了”。
而是:
你能够用客观标准判断任务是否完成。
例如:
不好的任务
优化用户登录。
验收标准是什么?
不知道。
好一些的任务
修复用户密码错误时返回 500 的问题。
已经有明确问题。
更好的任务
修复用户密码错误时接口返回 500 的问题。
目标:
- 错误密码应该返回 HTTP 401。
- 不应该泄露用户是否存在。
- 增加对应测试。
- 不修改其他认证行为。
完成后运行相关测试,并展示最终 Diff。
这时候已经具备:
问题
+
目标
+
边界
+
测试
+
验收
Claude Code 的工作质量也会因此发生明显变化。
五、安装 Claude Code 之前,先准备好什么?
正式安装之前,先明确自己的工作环境。
Claude Code 的官方文档目前提供了面向终端的安装与快速开始路径;官方资料中的组织内推广示例也使用 curl -fsSL https://claude.ai/install.sh | bash 后进入代码仓库运行 claude 的流程。
实际安装方式会随操作系统和版本变化,因此建议以官方安装文档为准。
六、安装 Claude Code
6.1 macOS / Linux
当前官方资料提供的安装脚本方式是:
curl -fsSL https://claude.ai/install.sh | bash
安装完成后,可以检查:
claude --version
如果能够正常输出版本信息,说明 CLI 基本可用。
6.2 Windows
Windows 用户需要根据当前官方文档提供的 Windows 安装方式配置环境。
需要特别注意:
不要长期依赖几年前的博客安装教程。
Claude Code 更新速度比较快,安装方式、模型和权限选项都可能发生变化。
尤其是看到类似:
npm install -g @anthropic-ai/claude-code
之类的旧教程时,不要默认它就是当前推荐方式。
应该优先查看官方文档。
七、安装完成后,第一次启动
进入你的项目:
cd your-project
然后:
claude
如果第一次运行需要登录,按照终端提示完成身份验证。
启动后,你会进入 Claude Code 的交互环境。
可以把它理解成:
你的终端
↓
Claude Code
↓
当前项目
这里有一个非常重要的原则:
最好在项目根目录启动 Claude Code。
例如:
my-project/
├── package.json
├── src/
├── tests/
└── README.md
进入:
cd my-project
然后:
claude
这样 Agent 更容易围绕整个项目建立上下文。
八、第一次进入项目,不要急着修改代码
这是非常重要的习惯。
第一次进入一个项目,建议先让 Claude Code:
理解项目,而不是立即修改项目。
例如:
请先了解这个项目。
先不要修改任何文件。
请分析:
1. 项目使用什么技术栈;
2. 项目的主要目录结构;
3. 应用从哪里启动;
4. 测试如何运行;
5. 构建和开发命令是什么;
6. 主要模块之间是什么关系。
最后给我一个简洁的项目概览。
这个请求的价值很大。
因为你也可以同时观察:
Claude Code 是如何理解一个真实代码仓库的。
九、为什么建议先让 Claude Code“只读分析”?
因为 Agent 的一个重要风险是:
你给它的任务越模糊,它自主决策的空间越大。
例如:
帮我看看这个项目。
如果没有边界,它可能开始:
- 修改代码
- 添加依赖
- 创建文件
- 运行命令
- 调整配置
而:
先不要修改任何文件,只分析项目结构。
就明确限制了任务。
对于第一次使用,建议先建立这样的协作节奏:
观察
↓
理解
↓
计划
↓
执行
↓
验证
↓
验收
而不是:
一句话
↓
直接大规模修改
十、使用 /init 建立项目上下文
当你准备长期在一个项目中使用 Claude Code 时,可以进一步使用 /init。
官方资料目前推荐在项目中执行 /init,让 Claude Code 根据项目情况创建 CLAUDE.md,记录项目构建命令、架构信息和约定,从而减少以后重复解释项目背景的需要。
例如:
/init
它的核心作用可以理解为:
第一次:
Claude 认识项目
↓
生成 CLAUDE.md
↓
保存项目上下文
↓
以后进入项目
↓
Claude 自动读取项目规则
十一、CLAUDE.md 到底是什么?
可以把 CLAUDE.md 理解成:
写给 Claude Code 的项目说明书。
例如:
# Project Instructions
## Stack
- TypeScript
- React
- Node.js
- PostgreSQL
## Commands
- Install: npm install
- Dev: npm run dev
- Test: npm test
- Build: npm run build
## Conventions
- Use TypeScript strict mode.
- Prefer existing utilities.
- Do not introduce unnecessary dependencies.
- Add tests for behavior changes.
## Architecture
- API routes are under src/routes.
- Business logic is under src/services.
- Database access is under src/repositories.
这样以后你再说:
修复用户登录问题。
Claude Code 已经知道:
项目使用什么技术
测试怎么跑
代码在哪里
有哪些工程约定
十二、CLAUDE.md 不应该写成“百科全书”
一个常见误区是:
既然 Claude 会读取 CLAUDE.md,那我把整个项目全部写进去。
不建议。
当前 Claude Code 官方项目目录说明建议 CLAUDE.md 保持较短,示例建议控制在约 200 行以内;项目规则、特定任务知识等内容可以进一步拆分到 rules、skills 等机制中。
比较合理的是:
CLAUDE.md
↓
项目最重要的约定
而不是:
CLAUDE.md
↓
整个项目文档
↓
所有 API
↓
所有业务逻辑
↓
所有历史背景
十三、第一次真正交给 Claude Code 的任务
现在开始进入本文最核心的部分。
假设你有一个 Node.js 项目:
demo-project/
├── src/
│ ├── auth/
│ │ ├── login.ts
│ │ └── register.ts
│ └── server.ts
├── tests/
├── package.json
└── CLAUDE.md
现在发现:
用户输入错误密码时,接口返回 500。
这是一个非常适合第一次尝试的任务。
十四、不要这样描述任务
很多新手会直接说:
帮我修一下登录问题。
这个 Prompt 太短。
Claude Code 当然可能完成任务,但你给它留下了大量推断空间。
例如:
- 什么叫登录问题?
- 修哪个接口?
- 正确行为是什么?
- 是否允许修改数据库?
- 是否要添加测试?
- 是否允许修改 API?
- 如何判断修复成功?
十五、推荐使用“任务 + 边界 + 验收”的结构
可以这样写:
请修复用户登录接口的错误密码处理问题。
问题:
当用户输入错误密码时,接口目前返回 HTTP 500。
目标:
- 错误密码应该返回 HTTP 401。
- 响应中不要泄露敏感信息。
- 保持现有成功登录行为不变。
范围:
- 优先修改现有登录逻辑。
- 不要引入新的依赖。
- 不要修改无关模块。
测试:
- 为错误密码场景增加或更新测试。
- 运行相关测试。
完成标准:
- 相关测试通过。
- 现有登录测试不回归。
- 最终展示修改的文件和 Diff 摘要。
先分析问题,再实施修改。
这就是一个非常典型的 Agent Task。
十六、为什么这个 Prompt 更容易成功?
因为它实际上提供了一个完整任务模型:
任务
↓
问题是什么?
↓
目标是什么?
↓
允许改什么?
↓
不允许改什么?
↓
如何验证?
↓
什么时候算完成?
这比:
修一下登录
清晰得多。
十七、Claude Code 接下来可能做什么?
它可能按照类似流程工作:
1. 查看项目结构
↓
2. 找到登录入口
↓
3. 阅读认证逻辑
↓
4. 找现有测试
↓
5. 定位 500 的原因
↓
6. 修改实现
↓
7. 增加测试
↓
8. 运行测试
↓
9. 根据结果修复
↓
10. 查看最终 Diff
这里最重要的是:
不要把“代码修改”当成任务终点。
真正的终点应该是:
代码修改
+
验证
+
Diff
+
验收
十八、第一次使用,建议理解权限机制
Claude Code 可以执行命令、修改文件,因此它必须有一套权限控制机制。
官方资料说明,Claude Code 的不同权限模式可以控制 Agent 的自主程度。例如默认模式会在风险操作前请求确认,acceptEdits 可以允许文件编辑,而 plan 模式则可以先提出修改计划,让你在实际修改前进行审查。
可以简单理解为:
权限越低
↓
你控制得越多
权限越高
↓
Agent 自主性越强
十九、第一次操作为什么建议谨慎?
因为你还不了解 Agent 的行为方式。
第一次使用时,如果直接让它:
自动修改 30 个文件
执行各种 Shell 命令
安装依赖
修改配置
即使最后结果没问题,你也很难知道:
它为什么这么做?
更好的方式是先观察。
对于涉及多个文件的任务,可以先使用 Plan 模式,让 Agent 先描述计划,再决定是否执行。官方资料也建议把 Plan 模式作为建立信任、在多文件修改前检查方案的一种方式。
二十、Plan 模式适合什么任务?
例如:
把这个认证模块从 callback 改成 async/await。
这明显不是一个一两行的小修改。
可以先让 Agent:
分析当前实现,并给出修改计划。
暂时不要修改文件。
你可以先检查:
修改哪些文件?
为什么?
会不会影响 API?
测试在哪里?
有没有潜在风险?
确认之后再执行。
二十一、什么时候可以直接让 Claude Code 修改?
如果任务非常明确,而且风险低,例如:
给 Button 组件增加 disabled 状态测试。
或者:
修复一个明显的拼写错误。
可以直接执行。
原则不是:
永远让 Agent 先计划。
而是:
任务越大、影响范围越广、风险越高,就越值得先计划。
二十二、让 Claude Code 自己找问题,而不是直接告诉它答案
这是 Agent 很有价值的一种使用方式。
假设测试:
npm test
出现:
FAIL tests/auth/login.test.ts
Expected: 401
Received: 500
不要马上告诉 Claude:
把 500 改成 401。
可以告诉它:
这个测试失败了。
请定位导致 500 的根本原因,而不是直接把返回值改成 401。
找到原因后:
1. 解释根因;
2. 修改实现;
3. 更新必要测试;
4. 运行相关测试验证。
这样 Agent 更像一个工程调试助手,而不是一个文本替换工具。
二十三、为什么“根因”比“通过测试”更重要?
因为存在一种危险的 AI 工作方式:
测试失败
↓
修改代码
↓
测试通过
↓
结束
但真正可靠的软件工程应该是:
测试失败
↓
理解失败原因
↓
确认预期行为
↓
修改正确实现
↓
测试通过
↓
检查副作用
Anthropic 当前的提示工程资料也强调,在 Agentic Coding 中要避免为了通过测试而采用只针对测试输入的硬编码或临时绕过方案,应让测试验证正确性,而不是反过来定义一个仅仅“骗过测试”的实现。
二十四、第一次任务最好不要选择什么?
以下任务不适合作为第一次 Claude Code 实践。
24.1 整个项目重构
重构整个项目。
范围太大。
24.2 全量性能优化
优化整个项目性能。
“性能好”缺乏明确验收标准。
24.3 全面升级依赖
把所有依赖升级到最新版本。
风险较高,而且涉及兼容性问题。
24.4 大规模架构迁移
把整个项目从 Express 迁移到 NestJS。
这是一个完整工程项目,不适合第一次验证。
24.5 模糊需求
让这个项目更好。
这几乎等于把决策权全部交给 Agent。
二十五、适合第一次实践的任务有哪些?
更推荐下面这些:
任务一:修复一个明确 Bug
修复用户输入错误密码时返回 500 的问题。
任务二:补一个测试
为订单取消逻辑增加异常场景测试。
任务三:解释一个模块
分析 payment 模块的调用流程,不要修改文件。
任务四:修改一个局部功能
给用户资料接口增加 email 字段校验。
任务五:检查一个 Diff
检查当前 Git Diff,找出潜在的回归风险。
这些任务都有一个共同特点:
边界清晰,结果容易验证。
二十六、一个完整的第一次实战:修复登录接口
下面用一个假设项目进行演示。
说明:下面是一个假设场景,用于演示 Claude Code 的工作流程,不代表真实企业项目。
项目:
demo-auth/
├── src/
│ ├── auth/
│ │ ├── login.ts
│ │ └── password.ts
│ ├── routes/
│ │ └── auth.ts
│ └── server.ts
├── tests/
│ └── login.test.ts
├── package.json
└── CLAUDE.md
问题:
POST /login
正确密码:
200
错误密码:
500
期望:
错误密码:
401
二十七、第一步:让 Claude Code 调查
输入:
请调查登录接口错误密码返回 500 的原因。
先不要修改文件。
请:
1. 找到登录接口入口;
2. 找到认证逻辑;
3. 找到对应测试;
4. 分析为什么错误密码最终变成 HTTP 500;
5. 告诉我推荐的最小修改方案。
暂时只分析,不执行修改。
这一步的意义不是浪费时间。
它是在建立:
问题 → 代码 → 原因 → 方案
二十八、第二步:让 Claude Code 实施最小修改
如果分析结果合理,可以继续:
按照刚才的分析实施最小修改。
要求:
- 只修改解决这个问题所需的文件;
- 不引入新依赖;
- 保持成功登录行为不变;
- 为错误密码场景增加或更新测试;
- 修改完成后运行相关测试。
注意一个词:
最小修改。
这是 Agent Coding 中非常重要的工程思想。
不是:
能改多少改多少。
而是:
只改完成目标所需要的东西。
二十九、第三步:让 Agent 验证
代码改完之后,不要马上结束。
继续要求:
请验证这次修改。
至少检查:
1. 错误密码测试;
2. 正常登录测试;
3. 相关认证测试;
4. Git Diff;
5. 是否修改了无关文件。
如果测试失败,请继续定位原因并修复。
如果全部通过,请总结修改内容和验证结果。
这样整个任务才真正闭环。
三十、一个完整的 Agent 工作闭环
到这里,我们实际上已经形成了一套非常实用的流程:
┌──────────────┐
│ 1. 明确问题 │
└──────┬───────┘
↓
┌──────────────┐
│ 2. 调查代码 │
└──────┬───────┘
↓
┌──────────────┐
│ 3. 分析根因 │
└──────┬───────┘
↓
┌──────────────┐
│ 4. 制定方案 │
└──────┬───────┘
↓
┌──────────────┐
│ 5. 修改代码 │
└──────┬───────┘
↓
┌──────────────┐
│ 6. 编写测试 │
└──────┬───────┘
↓
┌──────────────┐
│ 7. 运行验证 │
└──────┬───────┘
↓
┌──────────────┐
│ 8. 检查 Diff │
└──────┬───────┘
↓
┌──────────────┐
│ 9. 人工验收 │
└──────────────┘
这比“让 AI 写代码”高级得多。
三十一、为什么 Diff 是整个流程中不可缺少的一环?
假设 Claude Code 告诉你:
测试全部通过。
这还不够。
因为:
测试通过
只能说明:
已执行的测试没有发现问题。
它不能证明:
所有修改都是合理的。
所以你还应该检查:
git status
以及:
git diff
重点观察:
- 修改了哪些文件?
- 修改了多少行?
- 是否出现无关修改?
- 是否删除了重要代码?
- 是否引入新的依赖?
- 是否修改配置?
- 是否改变 API?
- 测试是否被修改成“迎合实现”?
三十二、一个非常重要的原则:不要让 AI 自己当最终验收人
Claude Code 可以:
写代码
+
运行测试
+
解释结果
但是:
最终验收仍然应该由开发者负责。
原因很简单。
AI 可以:
- 理解错误
- 写测试
- 修改实现
- 运行测试
但业务需求最终是否满足,需要人确认。
尤其是:
权限
支付
数据删除
用户隐私
安全策略
数据库迁移
生产配置
这些场景不能简单地:
AI 说完成
=
任务完成
三十三、如何定义一个真正可验收的任务?
可以使用一个简单公式:
可验收任务
=
目标
+
范围
+
约束
+
验证方式
例如:
目标:
修复错误密码返回 500。
范围:
只修改登录模块和测试。
约束:
不引入新依赖,不修改成功登录行为。
验证:
运行认证测试,并检查 Git Diff。
这四项齐全之后,任务就非常清晰。
三十四、把“自然语言需求”变成“工程任务”
这是使用 Claude Code 最值得培养的能力之一。
例如产品需求:
用户输入错误密码的时候应该提示登录失败。
这句话对人来说没问题。
但对 Agent 来说还不够。
可以转换成:
目标:
错误密码返回 HTTP 401。
用户体验:
返回统一的登录失败信息。
安全:
不得暴露用户是否存在。
兼容性:
成功登录流程保持不变。
测试:
增加错误密码测试。
验证:
认证相关测试全部通过。
这就从:
产品语言
变成了:
工程语言
而 Agent 最擅长处理的正是后者。
三十五、什么时候应该让 Claude Code 先问问题?
如果需求存在明显歧义,不要强迫 Agent 猜。
例如:
优化用户登录。
这里至少存在:
- 性能优化?
- 安全优化?
- UX 优化?
- 代码重构?
- 错误处理?
- 登录速度?
这种情况下,可以告诉它:
在修改代码之前,如果任务存在影响实现方案的重要歧义,请先列出需要确认的问题。
这样可以减少错误假设。
三十六、什么时候不应该让它反复提问?
如果任务非常明确:
把 README 中的拼写错误修正。
没有必要让它问:
是否允许修改 README?
又比如:
给这个函数增加一个单元测试。
如果测试框架和位置都很清楚,也不需要人为增加沟通成本。
好的 Agent 协作不是:
AI 什么都问
也不是:
AI 什么都自己决定
而是:
低风险问题自主处理,高风险决策主动确认。
三十七、如何让 Claude Code 更少“自作聪明”?
可以明确加入几个约束。
例如:
请优先复用现有代码和项目约定。
不要为了当前任务引入新的抽象。
不要修改与任务无关的文件。
不要新增依赖,除非确实必要。
如果存在多个实现方案,优先选择改动最小、符合当前项目风格的方案。
如果发现需求存在重大歧义,请先询问。
这些规则的核心不是限制 AI,而是:
限制无关的决策空间。
Anthropic 当前针对 Agentic Coding 的提示建议也强调,不要为了假设性的未来需求增加不必要的抽象,应优先解决当前实际问题。
三十八、一个非常实用的 Claude Code 首次任务模板
以后第一次给 Claude Code 分配任务,可以直接参考:
请处理以下任务:
【任务】
{描述具体问题}
【目标】
{希望最终达到什么结果}
【范围】
{允许修改哪些模块/文件}
【约束】
- 不修改无关代码
- 不引入不必要依赖
- 遵循现有项目结构和代码风格
【验证】
- 运行相关测试
- 检查构建或 lint
- 检查 Git Diff
【完成标准】
- {验收条件 1}
- {验收条件 2}
- {验收条件 3}
执行方式:
1. 先理解相关代码;
2. 定位问题根因;
3. 提出最小修改方案;
4. 实施修改;
5. 运行验证;
6. 检查 Diff;
7. 最后总结修改内容、验证结果以及仍存在的风险。
如果任务存在会影响实现方案的重要歧义,请先询问。
这个模板比“帮我解决这个问题”可靠得多。
三十九、如何处理 Claude Code 的错误操作?
Agent 并不是不会犯错。
例如它可能:
误解需求
↓
修改错误文件
↓
测试失败
这时候不要立刻手工修改一堆代码。
先让它分析:
刚才的修改没有解决问题。
请重新检查:
1. 原始需求;
2. 当前 Diff;
3. 失败测试;
4. 实际执行路径。
不要继续叠加修改。
先找出刚才方案为什么错误,再提出新的修复方案。
这可以避免:
错误
↓
错误修复
↓
另一个错误
↓
继续修复
↓
项目越来越乱
四十、必要时使用 Rewind / 回退思路
Claude Code 提供了 checkpointing 和 /rewind 等能力,用于在 Agent 修改方向不对时回到之前的状态。官方资料将其作为纠正错误操作的一种工作流。
这类能力的意义很大。
传统 AI:
AI 写错
↓
你手动找哪里错
Agent:
Agent 修改
↓
发现方向错误
↓
回到较早状态
↓
重新执行
不过,在正式项目中,Git 仍然应该是重要的版本控制边界。
不要把 Agent 的回退能力理解成:
可以不需要 Git。
恰恰相反:
Agent 越强,版本控制越重要。
四十一、为什么 Git 是 Claude Code 的重要搭档?
因为 Agent 的工作特点决定了:
它可以在短时间内修改很多东西。
这意味着你需要:
可追踪
+
可比较
+
可回滚
Git 正好提供:
git status
git diff
git log
git checkout / restore
git commit
所以一个非常好的 Claude Code 工作习惯是:
开始任务前:
git status
任务执行中:
观察修改
任务完成后:
git diff
验证通过:
commit
四十二、第一次任务完成后,不要急着 Commit
建议先检查:
git status
再:
git diff
然后:
运行测试
↓
检查 Diff
↓
人工理解修改
↓
确认需求
↓
再 Commit
尤其不要形成:
Claude:
我完成了。
你:
git add .
git commit -m "fix"
git push
这相当于跳过了最重要的人工审核环节。
四十三、如何判断 Claude Code 这次任务完成得好不好?
可以用五个问题检查。
问题一:它真的解决了原问题吗?
不是:
修改了代码。
而是:
原问题消失了吗?
问题二:有没有修改不必要的东西?
检查:
git diff
问题三:测试是否真的覆盖需求?
例如需求是:
错误密码返回 401
测试不能只验证:
接口没有报错
应该验证:
HTTP 401
以及必要的响应行为。
问题四:有没有破坏原来的功能?
至少运行相关回归测试。
问题五:代码是否符合项目现有风格?
AI 可能写出:
理论上正确
但:
与当前项目风格不一致
这仍然会产生维护成本。
四十四、一个完整的“第一次 Claude Code 任务”检查表
可以保存下面这份 Checklist。
□ 我知道这个任务要解决什么问题
□ 我知道最终结果是什么
□ 我限定了任务范围
□ 我定义了验收标准
□ 我已经让 Claude Code 理解项目
□ 必要时已经使用 /init
□ 高风险任务先进行了 Plan
□ 修改后检查了 Git Diff
□ 运行了相关测试
□ 检查了是否存在无关修改
□ 确认没有引入不必要依赖
□ 确认没有破坏已有功能
□ 人工确认最终结果
□ 最后才 Commit
如果这些条件基本都满足,那么你已经不只是“尝试 Claude Code”,而是在使用一种真正的 Agentic Coding 工作流。
四十五、从第一个小任务开始理解 Agentic Coding
第一次任务完成以后,你应该关注的不是:
“Claude Code 能不能帮我写代码?”
而是:
“我能不能把软件工程任务交给一个 Agent,并控制它完成、验证和交付?”
这两个问题完全不同。
传统 AI 编程:
人负责:
理解问题
找文件
设计方案
写代码
测试
调试
提交
Agentic Coding:
人负责:
定义目标
提供约束
做关键决策
验收结果
Agent 负责:
搜索
阅读
修改
执行
测试
迭代
因此,人的工作没有消失。
人的工作正在从:
逐行编写代码
逐渐向:
定义问题、控制 Agent、验证结果
移动。
四十六、Claude Code 真正难学的地方,其实不是安装
安装只是开始。
真正值得学习的是下面这套能力:
任务拆解
↓
上下文管理
↓
Prompt 设计
↓
权限控制
↓
Agent 监督
↓
测试验证
↓
Diff 审查
↓
Git 管理
↓
持续迭代
如果只学:
claude
你只是学会了启动工具。
如果学会:
任务 → Agent → 验证 → 验收
你才真正开始掌握 Claude Code。
四十七、进一步理解 CLAUDE.md、Rules、Skills
当你开始长期使用 Claude Code,会逐渐遇到更多机制。
目前 Claude Code 的项目目录体系已经不只是一个 CLAUDE.md。
官方文档列出的项目/全局配置还包括:
CLAUDE.md
.claude/
├── settings.json
├── settings.local.json
├── rules/
├── skills/
├── agents/
└── ...
不同文件承担不同职责,例如:
CLAUDE.md
↓
项目长期上下文
rules/
↓
特定领域规则
skills/
↓
可复用工作流
agents/
↓
专门的子 Agent
settings.json
↓
权限、Hooks、环境等设置
官方项目目录文档对这些机制进行了详细区分。
不过对于初学者来说:
暂时不需要全部掌握。
先把第一个任务完整交付,再逐步深入。
四十八、不要一开始就追求“全自动”
很多人第一次接触 Agent,会追求:
让我完全不用管。
实际上这不是一个好的学习目标。
更合理的过程是:
第一阶段:
人观察 Agent
第二阶段:
人指导 Agent
第三阶段:
人和 Agent 协作
第四阶段:
低风险任务自动化
第五阶段:
复杂任务半自动化
最终目标不是:
人完全退出。
而是:
让人把精力集中在真正需要判断的地方。
四十九、一个成熟的 Claude Code 工作流是什么样?
经过一段时间使用后,可以形成:
需求
│
▼
明确验收标准
│
▼
Claude Code
│
┌──────┴──────┐
▼ ▼
分析 Plan
│ │
└──────┬──────┘
▼
修改
│
▼
测试
│
┌──────┴──────┐
▼ ▼
失败 成功
│ │
▼ ▼
修复 Diff 审查
│ │
└──────┬──────┘
▼
人工验收
│
▼
Commit
这就是一个完整的软件工程闭环。
五十、几个特别值得避免的错误习惯
错误一:一句话把整个项目交出去
把这个项目优化一下。
问题是:
目标没有定义。
错误二:只看 Agent 的最终总结
Agent 说:
All tests passed.
不能代替:
git diff
错误三:测试通过就直接提交
测试只是验收的一部分。
错误四:让 Agent 无限扩大任务范围
原本:
修一个 Bug
最后变成:
重构整个模块
需要及时控制范围。
错误五:不理解 Agent 修改的代码
即使 AI 能完成,也不意味着你可以完全不理解。
至少应该知道:
改了什么
为什么改
怎么验证
有什么风险
五十一、如何从“小任务”逐步升级?
可以按照下面的学习路线:
Level 1:理解代码
请解释这个模块。
Level 2:修复 Bug
请定位并修复这个错误。
Level 3:增加测试
为这个功能增加边界测试。
Level 4:局部功能开发
给现有接口增加一个字段。
Level 5:局部重构
重构这个 Service,但保持 API 不变。
Level 6:跨文件任务
修改 API、Service 和测试。
Level 7:完整 Feature
从需求到实现、测试和文档。
Level 8:复杂 Agent 工作流
进一步学习:
CLAUDE.md
Rules
Skills
Subagents
MCP
Hooks
Git 工作流
这时候,你才真正进入 Agentic Coding 的工程实践阶段。
五十二、如果你今天只做一件事
如果你刚刚安装 Claude Code,不需要马上学习所有功能。
今天只完成一个任务:
让它在一个真实项目里完成一个你能够独立验收的小问题。
例如:
修复一个测试失败
或者:
增加一个测试
或者:
修复一个明确的 Bug
然后完整走完:
理解
↓
计划
↓
修改
↓
测试
↓
Diff
↓
验收
这一次完整体验,比看几十篇“Claude Code 全功能介绍”更有价值。
五十三、最终的第一个 Claude Code 实战模板
如果你现在就准备开始,可以直接复制下面这段。
请处理下面这个小任务。
【问题】
{描述当前遇到的问题}
【目标】
{明确说明希望最终达到什么结果}
【范围】
- 只修改与任务直接相关的文件。
- 优先复用现有代码。
- 不引入不必要的依赖。
- 不修改无关模块。
【实现要求】
1. 先阅读相关代码。
2. 找到问题的根本原因。
3. 如果实现方案存在明显歧义,先询问我。
4. 否则采用最小改动方案。
5. 修改后增加或更新必要测试。
【验证要求】
- 运行相关测试。
- 如果项目有 lint 或 build,请根据需要运行。
- 检查 Git Diff。
- 确认没有无关文件被修改。
【完成标准】
- {验收条件 1}
- {验收条件 2}
- {验收条件 3}
最后请告诉我:
1. 根本原因是什么;
2. 修改了哪些文件;
3. 做了什么修改;
4. 测试是否通过;
5. 是否还有已知风险。
这段模板并不神奇。
它真正有效的原因在于:
它把一个模糊的“帮我写代码”,变成了一个可以执行和验收的工程任务。
五十四、结语:Claude Code 的第一步,不是让 AI 替你写代码
Claude Code 最值得学习的地方,并不是它能一次生成多少代码。
真正重要的是,它把 AI 从:
代码生成器
推进到了:
软件工程 Agent
这意味着开发方式开始变化。
过去:
需求
↓
人写代码
↓
人测试
↓
人修复
↓
人提交
现在可以变成:
需求
↓
人定义目标和验收标准
↓
Claude Code 调查
↓
Claude Code 修改
↓
Claude Code 测试
↓
Claude Code 迭代
↓
人检查 Diff
↓
人最终验收
但这里有一个非常重要的边界:
Agent 可以承担大量执行工作,但“什么叫正确”仍然需要人定义。
所以,真正高效的 Claude Code 使用方式,并不是一句:
“帮我把这个项目做好。”
而是:
这是问题。
这是目标。
这是范围。
这是约束。
这是验收标准。
请完成它,并让我能够检查结果。
当你能够把需求拆成这样的任务,Claude Code 才真正开始发挥价值。
而你的第一个任务,也不需要多么宏大。
修一个 Bug、补一个测试、调整一个局部功能,都可以。
重要的是完整走完一次:
提出问题 → 理解项目 → 定位根因 → 实施修改 → 自动验证 → 检查 Diff → 人工验收 → 完成交付。
这才是从“安装 Claude Code”走向“真正会用 Claude Code”的分界线。
延伸阅读 / 学习路径
建议按照以下顺序继续深入:
Claude Code 基础
↓
安装与启动
↓
项目上下文
↓
CLAUDE.md
↓
Prompt 与任务拆解
↓
权限与 Plan 模式
↓
Git + Diff + 测试
↓
Rules
↓
Skills
↓
MCP
↓
Hooks
↓
Subagents
↓
复杂 Agent 工作流
↓
Agentic Coding 工程实践
Claude Code 官方文档是持续更新的,因此涉及安装命令、模型、权限模式等版本敏感内容时,应优先以官方文档为准。Anthropic 的官方文档也持续更新当前模型与相关能力,旧教程中的命令、模型名称或配置方式可能已经过时。
关键词
Claude Code、AI 编程、Agentic Coding、AI Coding Agent、Claude Code 安装、Claude Code 入门、CLAUDE.md、Agent、代码生成、软件工程、AI Agent、Git、自动化测试、代码审查
转载自 CSDN-专业IT技术社区




