# 写码 · 跑通一次终端里的开发循环 · Anthropic · 一份会员该用的那部分

**作者** Aklman · **章节** 10 / 12 · **首发** 2026.07 · **语言** 中文为主, 中英双语
**原文** https://library.aklman.com/books/anthropic/10-claude-code
**全书 markdown** https://library.aklman.com/books/anthropic/llms.md
**上一章** https://library.aklman.com/books/anthropic/09-research-chrome/llms.md
**下一章** https://library.aklman.com/books/anthropic/11-tiers/llms.md

> 本章来自 Aklman · Library, 完整免费阅读。允许 AI 摘读、引用、问答; 转载请保留作者署名与原文链接 (CC BY-NC-ND 4.0, https://library.aklman.com/license)。

---

> 如果你完全不碰代码，这章可以跳过 —— 单拎出来就是为了让你跳得干净。碰的话：这一章你写一份真的 CLAUDE.md，然后用「先写验收标准、再让它实现、最后自己读 diff」跑通一次完整循环。

如果你完全不碰代码，这一章可以跳过 —— 把它单独拎出来，就是为了让你能干净地跳过，不必为一项用不上的能力分心。跳之前扫一眼第四节：那里有三件不写码的人也用得上的事。

> 本章产出：**一份真的 CLAUDE.md**（本章给你可抄的全文），加**一次跑通并验收的开发循环**。验收标准：它交给你的不是一句「我搞定了」，而是一段测试输出；而你读完 diff 之后，能说出哪一步它明显比你快、哪一步你还是得自己来。

### I · 碰代码的活，分四个地方放

| 你要做的 | 去哪做 | 为什么 |
|---|---|---|
| 问清一个概念、推敲一段思路 | 网页 chat | 一问一答，不碰文件 |
| 要一个能跑、能改的小东西 | Artifact（第 7 章） | 现做现改，不进仓库 |
| 在真实仓库里跨文件改、要跑测试 | Claude Code | 读仓库、改文件、跑命令、提 commit |
| 把 Claude 接进你自己的程序 | API（另一条账，第 11 章） | 程序化调用，按 token 计费 |

Claude Code 不是编辑器里的自动补全，是一个会读你整个仓库、自己跑命令的 agent：读代码库、改文件、跑命令，再看结果、自己调整，直到把一件事做完。[^1]它跑在终端、IDE、桌面与浏览器里，共用同一套引擎与同一份 CLAUDE.md。[^1]你的工作从「逐行写」变成「定义任务、审查结果」。

一件很多人不知道的事：**Pro 就包含 Claude Code**，用的是订阅额度，不需要另开 API 账户。[^2]它常被当成开发者专属的付费工具，其实你那份 $20 的 Pro 就能跑。代价是它吃额度 —— 重活比闲聊更快撞到限额，这一项会在第 11 章那本账里冒尖。

---

### II · 动手：写一份真的 CLAUDE.md

CLAUDE.md 是放在项目根目录的一份 markdown，它每开一个新会话都先读。它替你回答那些你本来每次都要重新交代的问题。

下面这份可以直接抄，把尖括号里的换成你项目的。它刻意短 —— 第一版写长了没人维护，而过期的 CLAUDE.md 比没有更糟。

_五段：这是什么、怎么跑、怎么验、别碰哪儿、我的偏好。第三段最重要 —— 没有那几条命令，它只能靠猜，也没法交证据。_
```text title="CLAUDE.md"

```markdown
# <项目名>

<一句话：这个项目是什么，给谁用。>

## Running it

- Install: `<npm ci>`
- Dev server: `<npm run dev>` (port `<3000>`)
- Env vars live in `.env.local`; see `.env.example`. Never read or
 write real secrets — ask me and I'll set them.

## Verifying a change (run these before saying you're done)

- Tests: `<npm test>`
- Lint: `<npm run lint>`
- Types: `<npx tsc --noEmit>`
- Build: `<npm run build>`

If any of these fail, fix the cause — do not skip the check and do not
use flags that bypass it.

## Off-limits

- `<src/generated/>` is generated; edit the generator, not the output.
- `<migrations/>` — never edit an existing migration; add a new one.
- Never force-push, never `git commit --no-verify`, never delete a
 file I didn't ask you to delete.

## Conventions

- <TypeScript strict; no new dependencies unless I approve them.>
- <Match the surrounding file's style rather than the project average.>
- Commit messages: `<type>(<scope>): <subject>`.

## How I want you to work

- Read the relevant files before changing them. Don't conclude about
 code you haven't opened.
- Make only the change I asked for. No drive-by refactors.
- When you're done, show evidence: the command you ran and its output.
 Not "it works".
```

```

- **先填「怎么验」那一段，别的都可以后补**:
 测试、lint、typecheck、构建四条命令写进去。这四行是全文的重心 —— 它们把「它说做完了」变成「它能证明做完了」，而这正是整章的验收标准。

- **写清禁区，用具体路径**:
 「小心点」没用，「migrations/ 里的现有文件一个都别改，要改加新的」有用。禁区那段是唯一一段值得你反复更新的 —— 每次它动错一个地方，就往这段加一行。

- **放进项目根目录，开一个新会话验一次**:
 开一个新会话，只问一句「这个项目怎么跑起来、怎么验证一个改动」。它答不上来，就是这份文件没写清 —— 这一问比读十遍自己写的文档管用。

---

### III · 动手：跑通一次循环

顺序是先写验收标准、再让它实现、最后自己读 diff。这三步的顺序比每一步本身更重要。

- **挑一个跨 3 个以上文件的小改动**:
 太小的（改个文案）显不出差别，太大的（重构整个模块）第一次容易失控。跨三个文件、有明确对错的那种最合适 —— 比如修一个你已经知道复现步骤的 bug。

- **先让它写一个会失败的测试**:
 这是整章最值钱的一步。先有一个能复现问题、现在会红的测试，验收标准就从「你觉得对不对」变成「这条测试红转绿了没有」。官方把「给它一个能自己跑的检查」称作最高杠杆，就是这个意思。

- **贴护栏，让它去改**:
 用下面那段护栏开场。然后别盯着它一行行看 —— 你要审的是结果，不是过程；盯着看只会让你忍不住替它写。

- **要证据，然后自己读 diff**:
 它说做完了，你要的是那条命令的输出。看完输出再读 diff —— 记下哪一步它明显比你快、哪一步你还是得自己改。这条分工就是你之后该不该开终端的依据。

**提示词 · Claude Code 起手护栏**

```text
动手前先读相关文件，没读过的代码不要下结论。
只做我要求的改动，别顺手重构、别加没要的抽象。
不可逆的动作（删文件 / force-push / 对外发消息）先问我；别用 --no-verify 这类绕过检查的捷径。
做完给我证据：跑了哪些命令、输出是什么，而不是一句「我搞定了」。
任务：<把任务贴这里>。验收标准：<哪条测试要从红变绿 / 什么行为要变>。
```

**示例**

```text
动手前先读 src/auth/session.ts 和它的测试，没读过的代码不要下结论。
只把这个登录超时的 bug 修掉，别顺手把整个 session 模块重构、别加没要的缓存层。
不可逆的动作（删 migration 文件 / force-push 到 main / 给 Slack 发上线通知）先问我；别用 --no-verify 这类绕过检查的捷径。
做完给我证据：跑了 npm test 之后的输出贴上来，而不是一句「我搞定了」。
任务：修复并发登录时 session 提前过期的问题。验收标准：tests/auth/session.concurrent.test.ts 从红变绿，其余测试不许变红。
```

越是放手让它自己跑，越要先给护栏。[^4]上面那段里最容易被删掉、也最不该删的是最后一句 —— **「给我证据，不是断言」**。官方把「给它一个能自己跑的检查」称作最高杠杆：能自己验的活，你才敢真走开；验不了的，diff 还得你一行行看。[^5]

让它做代码评审时，要反过来说一句：

**提示词 · Claude Code · 评审模板**

```text
评审这个 <diff / PR / 这几个文件>，别改代码，只给意见。
先读相关文件和它依赖的地方，没读过的别评。
全列出来、别替我过滤：按「会出错 / 安全 / 可简化」分类，每条标 文件:行 + 一句为什么。
能复现的问题给复现步骤；拿不准的也写上，标「拿不准」。
最后一句：这个改动能不能合，还缺什么。
```

**示例**

```text
评审这个 PR（登录超时的修复），别改代码，只给意见。
先读 src/auth/session.ts 和调用它的地方，没读过的别评。
全列出来、别替我过滤：按「会出错 / 安全 / 可简化」分类，每条标 文件:行 + 一句为什么。
能复现的问题给复现步骤；拿不准的也写上，标「拿不准」。
最后一句：这个改动能不能合，还缺什么（比如缺一个并发场景的测试）。
```

那句「全报、别替我过滤」是刻意的。你随口说一句「保守点、只报严重的」，它真会把查到的小 bug 咽回去不报 —— 宁可多报几条你再筛，也别让它默默吞掉一个真 bug。[^4]

---

### IV · 不写码，也用得上的三件事

#### 批量整理文件

一个装了三百张扫描件、命名乱七八糟的文件夹，按「年份-供应商-金额」重命名并分文件夹。给它护栏那句「不可逆动作先问我」，并且先让它把改名计划打印出来给你看，确认无误再执行。这件事 Cowork 也能做（第 8 章），区别是终端里你能先看到完整的计划。

#### 改配置文件

改一个你不太懂的配置文件（nginx、CI 的 yaml、某个工具的 toml），让它先解释每一行现在在做什么、再改。这一栏的价值不在改，在那句「先解释」—— 你会发现自己维护了两年的配置里，有三行谁也不知道是干嘛的。

#### 跑一次性脚本

「把这个 CSV 按某列拆成十二个文件」这种活，让它写一个一次性脚本跑掉，比在 Excel 里点二十分钟快。关键在于要它把脚本留下来 —— 下次同样的活，你只要改一个参数。这就是把一次性劳动变成一件资产。

---

### V · 边界：什么时候别开终端

- **没有验收标准的活**: 「让这段代码更好一点」在终端里最容易变成一场漫无目的的长会话。它最强的是「有明确验收标准」的活 —— 定不出标准，先回网页 chat 把标准想清楚。

- **你读不懂的 diff**: 它把瓶颈从打字挪到了读 diff。你审 diff 的速度就是你的速度 —— 如果那段代码你根本读不懂，交给它做只是把风险往后推了一步。

- **先别急着上自动化**: 再往上它能更自动：hooks 在它动作前后跑命令、subagents 并行做一件大任务的不同部分、background agents 让你一屏盯几个会话。[^3]但对个人用户，先把单会话用顺就够 —— 这些值不值得碰，看你的活是不是真能拆开并行。

- **Agent SDK 是另一回事**: 再往外的 Agent SDK 是给你自己搭定制 agent 的，那是开发者地界，这本书不展开。

> 一条能一直用的习惯：每次它动错一个地方，往 CLAUDE.md 的「禁区」那段加一行。三个月后你会有一份别人抄不走的文件 —— 它记录的不是这个项目的规范，是这个项目踩过的坑。

---

### VI · 收束 · 本章验收

- 项目根目录有一份 CLAUDE.md，含「怎么跑 / 怎么验 / 禁区」三段。

- 新开会话问「这个项目怎么跑、怎么验一个改动」，它答得上来。

- 跑了一次完整循环：先有一个会失败的测试，再让它实现。

- 它交回来的是命令输出，不是一句「我搞定了」。

- 你自己读完了 diff，并记下了哪一步它快、哪一步你还得自己来。

- 至少往 CLAUDE.md 的禁区那段加了一行 —— 来自这次真的踩到的地方。

> 终端里它做得快，
> 但 diff 还得你看

## 引用与参考

01 · Claude Code Docs · Overview —— Claude Code 是 agent 化编码工具：读代码库、改文件、跑命令，再评估并调整；在终端、IDE、桌面、浏览器里都能跑，共用同一套引擎与 CLAUDE.md。截至 2026-08。  (Claude Code Docs · Overview)
02 · Anthropic · Claude 套餐与价格 —— Claude Code 列在 Pro 及以上各档的功能内（Free 不含），用的是订阅额度，不需要另开 API 账户。截至 2026-08。  (Claude · Pricing)
03 · Anthropic · Enabling Claude Code to work more autonomously —— 后台 agent、子 agent 与 hooks，让一次会话并行推进多件事。  (Anthropic · Claude Code autonomy)
04 · Claude API Docs · Prompting best practices —— 给它护栏：不可逆动作先确认、别用 --no-verify 等破坏性捷径；代码评审要它「全报别过滤」；先读文件防幻觉、只做被要求的防过度工程。截至 2026-08。  (Claude API Docs · Prompting best practices)
05 · Claude Code Docs · Best practices —— 最高杠杆是「给它一个能自己跑的检查」，让它交证据（测试输出 / 命令 / 截图）而不是交断言。截至 2026-08。  (Claude Code Docs · Best practices)

---

*写码 · 跑通一次终端里的开发循环 · Anthropic · 一份会员该用的那部分 · Aklman 著 · CC BY-NC-ND 4.0 · https://library.aklman.com/books/anthropic/10-claude-code*
