<!-- title: 首条Prompt驱动Claude入门 -->

## 概述

很多新手装好 Claude Code 之后，面对一个闪烁的光标反而卡住了：到底第一句话该说什么？怎么让它真正"动手"而不是只动嘴？本教程聚焦**第一个真实任务的对话引导**——不再重复安装步骤，而是带你从一个空目录出发，用逐条精心设计的 Prompt，在 15 分钟内让 Claude Code 帮你写出一个可运行的命令行小游戏。你将学到 Prompt 解剖学、任务拆解、Diff 审查、上下文生命周期管理（`/context`、`/compact`、`/model`、`/clear`）等核心基本功。适用人群：已能成功启动 `claude` 命令、但还没完成过一个像样任务的零基础开发者。

## 前置条件

- 已通过官方推荐方式安装 Claude Code 并能正常启动交互界面（Mac/Linux 推荐 `curl -fsSL https://claude.ai/install.sh | bash`，Windows 推荐 `irm https://claude.ai/install.ps1 | iex`；注意 npm 全局安装已被官方标记为 deprecated）。
- 已完成首次认证（登录订阅账号或配置 API Key）。
- 终端里能执行 `claude --version` 并返回版本号。
- 本机有任意一种运行环境即可（本教程用 Node.js 做演示；换成 Python 完全等价）。
- 一个空的工作目录——哪怕是你桌面上的 `my-first-project` 文件夹。

---

## 正文

### Step 0：把 Claude Code 当成"会改文件的同事"

理解 Claude Code 的关键，是把它当成一个能读你整个项目、能改文件、能跑命令、但**需要你给清晰指令**的同事。它不是搜索引擎，也不是聊天机器人。你跟它说的每一句话，都会驱动它去**实际操作你的磁盘**。

打开终端，进入空目录后启动：

```bash
cd my-first-project
claude
```

你会看到一个交互式界面，底部是输入框。这就是你跟"同事"对话的地方。

**新手第一坑**：很多人第一次输入"你好"或"你能做什么"。这不会出错，但浪费了第一轮交互。更好的做法是直接给出一个具体、可验证的小目标。

### Step 1：先认得界面上的三个关键动作

在写第一条 Prompt 之前，你必须认得界面会出现的三个交互元素，否则后续会手忙脚乱：

| 元素 | 含义 | 你该怎么做 |
|------|------|-----------|
| **Diff 视图** | Claude 要修改文件时，会以绿色/红色展示"改了哪几行" | 像审 Code Review 一样逐行看 |
| **确认提示**（Yes / No / Escape） | 每次改文件或跑命令前会问你 | 看懂再按 `y`，看不懂按 `Esc` 打断 |
| **`Esc` 键** | 中断当前生成 | 发现它跑偏了，立刻按 Esc，别等它写完 |

记住一条铁律：**永远不要在没看懂 Diff 的情况下按 Yes**。Claude Code 是 agentic 的——你给它放权，它就会真改你的文件。

### Step 2：掌握第一条 Prompt 的"四要素解剖学"

一条能驱动 AI 干活的 Prompt，通常包含四个要素。新手最容易只写第一个，然后抱怨"AI 不懂我"。

```
[目标]    我想要一个命令行猜数字游戏
[上下文]  这是一个全新的 Node.js 项目，目录现在是空的
[约束]    只用 Node 内置模块，不要装任何依赖；代码放在 index.js
[完成标准] 我能用 node index.js 跑起来，猜对会提示并退出
```

把这四块拼成一句话，就是一条高质量的"启动 Prompt"。对比一下反面教材：

> ❌ 反面："帮我写个游戏。" —— 没说语言、没说放哪、没说怎么算完成。AI 会猜，猜错了你就得返工。

> ❌ 反面："用 React + Three.js 做一个 3D 猜数字。" —— 新手一上来就要全家桶，调试链路长，失败率高。

**原则：第一个任务越朴素越好**。朴素意味着你能 10 秒内判断它对不对。

### Step 3：用 `/init` 给项目钉一块"记忆牌"

在写业务代码之前，先花 30 秒做一件回报极高的事——生成 `CLAUDE.md`。这个文件是 Claude Code 的"项目记忆"，每次启动都会自动读入。

在交互框里输入：

```
/init
```

Claude 会扫描你的目录结构、`package.json`（如果有）、README，然后生成一份 `CLAUDE.md`，内容包括项目用途、构建命令、测试命令、代码风格约定等。你可以把它当成项目说明书，**手动补充两行关键信息**往往就够了：

```markdown
## 项目说明
命令行猜数字游戏，教学练习项目。

## 常用命令
- 运行：node index.js
- 测试：node test.js（暂无，待添加）

## 约定
- 只使用 Node 内置模块
- 变量与注释用英文，对话用中文
```

为什么要这一步？因为之后你每说一句"加个功能"，Claude 都会默认遵守 `CLAUDE.md` 里的约束——比如它就不会突然给你 `npm install express`。这块记忆牌能省下无数次"我不是说了别装依赖吗"的扯皮。

### Step 4：实战——15 分钟做一个猜数字 CLI 游戏

现在进入核心环节。我们要用**逐条 Prompt、每条都验证**的方式，把游戏从零搭起来。整个过程演示"小步迭代"这一最关键的工程习惯。

#### 第 1 条 Prompt：搭最小骨架

在交互框粘贴：

```
在一个空的 Node.js 项目里，创建 index.js：实现一个猜数字游戏。
规则：程序随机生成 1-100 的整数，玩家通过命令行输入猜测，
程序回复"大了"或"小了"，猜对后打印"恭喜，用了 N 次"并退出。
只用 Node 内置模块（readline）。先给出实现思路，再写代码。
```

注意末尾那句**"先给出实现思路，再写代码"**——这是新手的秘密武器。它迫使 Claude 先做计划（Plan），你能在它动手前就发现方向错误。Claude 通常会先输出一段思路，然后展示 `index.js` 的 Diff。

**预期结果**：你会看到一个新增 `index.js` 的 Diff，代码大致长这样（仅供参考，实际可能略有差异）：

```javascript
const readline = require('readline'); // use built-in readline module

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

const target = Math.floor(Math.random() * 100) + 1;
let count = 0;

function ask() {
  rl.question('请输入 1-100 的数字：', (answer) => {
    count++;
    const guess = Number(answer);
    if (guess === target) {
      console.log(`恭喜，用了 ${count} 次`);
      rl.close();
    } else if (guess > target) {
      console.log('大了');
      ask();
    } else {
      console.log('小了');
      ask();
    }
  });
}

ask();
```

**验证**（这一步千万别跳）：在**另一个终端窗口**（或先按两次 Esc 退出交互）运行：

```bash
node index.js
```

亲手玩两局，确认"大了/小了"逻辑正确。**不要让 Claude 替你验证"它觉得对不对"**——你要的是"我确认它对不对"。

#### 第 2 条 Prompt：加一个小功能，且只加一个

确认骨架跑通后，回到 Claude Code，输入：

```
很好。现在加一个功能：游戏开始时让玩家选择难度，
简单(1-50)、普通(1-100)、困难(1-500)，
根据选择生成对应范围的随机数。只改 index.js，别动其他文件。
```

这条 Prompt 的设计要点：**明确范围（只改 index.js）+ 明确功能边界**。Claude 会再次给出 Diff，你重点看它有没有把你之前写好的"猜对退出"逻辑搞坏。

> 💡 **小步迭代原则**：每次只加一个功能。新手最爱犯的错是一条 Prompt 塞五个需求（"加难度、加计分、加排行榜、加存档、加颜色"），结果 Diff 几百行，根本审不动，一处错全盘崩。

#### 第 3 条 Prompt：让它写测试（学会让 AI 帮你把关）

```
为猜数字的核心判断逻辑写一个简单的测试文件 test.js：
不依赖第三方测试框架，直接用 Node 的 assert 模块。
把"判断猜测结果"抽成一个纯函数 guessCheck(guess, target)，
返回 'correct' | 'bigger' | 'smaller'，然后测试它。
```

这条 Prompt 体现了进阶技巧：**把副作用（读写输入）和纯逻辑分开**。Claude 会重构出 `guessCheck` 函数，并写测试。运行：

```bash
node test.js
```

看到类似 `All tests passed` 就成了。从此你有了一道安全网——以后每次改代码，先跑测试。

### Step 5：掌控上下文生命周期——四个命令决定你能走多远

任务做久了，你会发现 Claude 开始"忘事"或变慢。这几乎都是上下文窗口（Context Window）的问题。掌握下面四个命令，你就能像管理内存一样管理对话：

```mermaid
flowchart LR
    A[新任务开始] --> B["/init 生成记忆"]
    B --> C[逐条 Prompt 迭代]
    C --> D{"看 /context"}
    D -->|"占用 < 50%"| C
    D -->|"占用 > 70%"| E["/compact 压缩"]
    E --> C
    C --> F{"换需求/换项目?"}
    F -->|是| G["/clear 清空"]
    G --> A
    C --> H{"任务很重?"}
    H -->|是| I["/model 切 Opus"]
    H -->|否| J["/model 切 Sonnet/Haiku"]
```

四个核心命令逐个解释：

- **`/context`** —— 查看当前上下文占用百分比。养成习惯：每隔几轮瞄一眼。占用逼近 70%-80% 时，Claude 会开始"看不见"早期信息，准确率下降。
- **`/compact`** —— 把前面的对话压缩成摘要，腾出空间但保留要点。**长会话续命的关键**。压缩后你可以接着干，不必从头复述需求。
- **`/clear`** —— 彻底清空对话，从零开始。**切换到完全不同的任务时用**。注意它是不可逆的，清空前确保关键结论已写进代码或 `CLAUDE.md`。
- **`/model`** —— 切换模型。重活（架构设计、复杂重构）用最强模型；轻活（改个文案、跑个小脚本）用更快的模型，既省额度又快。

> ⚠️ **常见误区**：很多人把 `/compact` 和 `/clear` 混用。记住：**`/compact` 是"压缩续命"，`/clear` 是"推倒重来"**。同一个任务做长了用 compact；要换完全不相干的活了才用 clear。

在交互框里直接输入 `/` 然后停顿，会弹出所有可用命令的自动补全列表——这是最好的"说明书"，比死记硬背强一百倍。

### Step 6：审查 Diff、跑测试、提交 Git

一个小任务的标准收尾流程，是把成果固化下来：

1. **逐行审 Diff**：让 Claude 再展示一遍本次会话改了哪些文件（可以直接问"总结一下你这次改了哪些文件"）。
2. **跑一遍**：`node index.js` 手动玩，`node test.js` 跑测试，双保险。
3. **提交 Git**：你可以让 Claude 帮你写提交信息：

```
帮我把这次改动用 git 提交，提交信息用中文，概括"新增猜数字游戏与难度选择"。
```

Claude 会执行 `git add` 和 `git commit`（同样会先给你看命令再执行）。确认无误后放行。

> 🔒 **安全习惯**：涉及 `git push`、删除文件、安装依赖这类不可逆或有副作用的操作，Claude 一定会先征求你同意。新手阶段建议**全部亲自过目命令**再按 Yes，养成肌肉记忆。

---

## 常见问题与解决方案

| 问题现象 | 根因 | 解决办法 |
|---------|------|---------|
| Claude 不动手，只给文字建议 | Prompt 太像"咨询"而非"任务" | 明确加动词："创建文件""修改函数""运行命令" |
| 一次改动太多，Diff 审不动 | 单条 Prompt 塞太多需求 | 拆成多条，每条只做一个可验证的小目标 |
| 跑着跑着 Claude 开始"忘事" | 上下文窗口快满 | 先 `/context` 查看，再 `/compact` 压缩 |
| 它装了我没要的依赖 | 没有项目记忆约束 | 用 `/init` 生成 `CLAUDE.md` 并写明"只用内置模块" |
| 改新功能把旧功能改坏了 | 没有回归保护 | 让它先抽纯函数 + 写测试，每次改动后跑测试 |
| 按 Yes 太快，改错了文件 | 没看 Diff | 按 `Esc` 中断，用 `git diff` 检查，必要时 `git checkout` 回滚 |
| 界面里 `Esc` 按了没反应 | 正在等待网络响应 | 多按一次，或等当前流式输出结束再中断 |

---

## 实战案例回顾：一个完整可运行的项目

经过 Step 4 的三条 Prompt，你最终得到的项目结构如下：

```
my-first-project/
├── CLAUDE.md          # 项目记忆（/init 生成 + 手动补充）
├── index.js           # 主程序：猜数字游戏 + 难度选择
├── test.js            # 纯逻辑测试（Node assert）
└── .git/              # 已提交版本
```

完整运行体验：

```bash
$ node index.js
选择难度：1-简单 2-普通 3-困难: 2
请输入 1-100 的数字：50
小了
请输入 1-100 的数字：75
大了
请输入 1-100 的数字：63
恭喜，用了 3 次

$ node test.js
All 3 tests passed.
```

这个项目虽小，却完整覆盖了"记忆 → 计划 → 编码 → 测试 → 提交"的真实工程闭环。你掌握的不是某个游戏怎么写，而是**用对话驱动 AI 完成任意任务的方法论**。把"猜数字"换成"写个脚本批量重命名文件""做个 Markdown 转 HTML 工具"，流程完全通用。

---

## 延伸阅读

- **官方文档 - Quickstart**：`https://code.claude.com/docs/en/quickstart` —— 官方推荐的最短上手路径。
- **官方文档 - Commands**：`https://code.claude.com/docs/en/commands` —— 所有斜杠命令的权威说明。
- **Claude Code 官方仓库 README**：`https://github.com/anthropics/claude-code` —— 最新安装命令与变更（npm 安装已 deprecated）。
- 交互界面里输入 `/help` —— 最快、永远最新的命令清单。

---

## 训练营适用性评估

- **适合的训练营类型**：零基础编程入门营、AI 辅助开发入门营、前端/全栈新人破冰营、企业内部"AI 提效"第一课。
- **教学时长**：建议 **90 分钟**。其中 15 分钟讲解 Prompt 四要素与界面交互，45 分钟带领学员实做猜数字项目（三条 Prompt + 验证），20 分钟练习上下文管理四命令，10 分钟答疑。
- **学员产出**：课程结束时每位学员都有一个可运行、已测试、已 Git 提交的小项目，成就感强。
- **进阶衔接**：本教程结束后，可自然过渡到"CLAUDE.md 工程化""自定义斜杠命令""MCP 工具集成"等中阶主题。
- **不适合**：已有大量 Claude Code 实战经验的高级用户（对他们而言内容偏基础）。

---

## 参考来源

1. [Claude Code 官方 README - GitHub](https://github.com/anthropics/claude-code) — 最新安装命令（curl/brew/irm/winget），确认 npm 安装已 deprecated。
2. [Claude Code Docs - Commands](https://code.claude.com/docs/en/commands) — 官方斜杠命令完整参考，`/init`、`/compact`、`/context`、`/model`、`/clear` 权威说明。
3. [Claude Code Docs - Quickstart](https://code.claude.com/docs/en/quickstart) — 官方新手快速上手与首个代码改动的推荐流程。
4. [Claude Code Cheat Sheet - ComputingForGeeks](https://computingforgeeks.com/claude-code-cheat-sheet/) — 第三方整理的命令、快捷键、CLI flags 速查表（2026 版）。
5. [Claude Code for Beginners: Zero to First Project](https://theplanettools.ai/guides/claude-code-for-beginners-zero-to-first-project-2026) — 实战型新手首项目工作流，强调 `/init` 与 CLAUDE.md 的基础地位。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
