---
title: "2.2 VibeCoding 工作流"
description: "掌握 AI 原生开发的标准流程与提示词技巧"
chapter: "第二章"
---

# 2.2 VibeCoding 工作流

> **阅读完本节后，你将会收获：**
>
> - 掌握 VibeCoding 标准五步工作流：探索 → 规划 → 执行 → 验证 → 提交
> - 理解 Agent Native 开发思维，学会从"怎么做"转向"做什么"的产品导向思维
> - 学会编写高质量提示词：直接描述任务、提供上下文、给出具体约束
> - 掌握权限模式、斜杠命令、检查点功能等 Claude Code 核心交互方式
> - 了解多 Agent 并行协作机制，学会利用 AI 自动化能力提升开发效率

> 序言中提到的"Workflow（工具流）"是 Vibecoding 的核心，以及 VibeCoding 的标准开发流程。

## 前置知识

::: tip 什么是 Claude Code

Claude Code 是一个 AI 命令行工具，能直接读取项目文件、执行命令、自动修改代码和完成任务。
:::

::: tip 什么是 工作流

工作流（Workflow）是完成任务的标准化流程。AI 开发的工作流包含探索、规划、编码、提交等环节。
:::

::: tip 什么是 提示词

提示词（Prompt）是发送给 AI 的文本指令，描述你希望 AI 完成的任务。**好的提示词是工作流的一部分**。
:::
::: details 点击查看 Agent Native 开发思维



**Agent Native** = 以 AI Agent 为中心的开发思维

传统开发中，AI 是辅助工具（Copilot）；Agent Native 中，AI 是自主执行者（Autopilot）。


#### 传统思维 vs Agent Native

| 维度 | 传统 AI 辅助开发 | Agent Native 开发 |
|-----|----------------|------------------|
| **核心角色** | 人写代码，AI 帮忙 | AI 为主，代码是 AI 的实现细节 |
| **工作方式** | AI 是 Copilot | AI 是 Autopilot |
| **交互模式** | 人写 Prompt 指挥 AI | AI 主动提问、规划、执行 |
| **输出形态** | AI 生成代码片段，人来整合 | AI 自主完成完整任务 |
| **你的关注点** | 怎么写代码 | 写什么产品 |

### VibeCoding 的核心哲学：你是导演，AI 是演员

VibeCoding 的核心不是"让 AI 替你写代码"，而是"你驾驭 AI 写代码"。这个区别至关重要。如果你把 AI 当成替代品，你会逐渐失去对产品的控制权，最终做出的东西可能技术上完美，但产品上平庸。真正强大的用法是"一放一收"：放，是让 AI 在海量技术方案中自由探索，生成多种实现路径，帮你看到你原本看不到的可能性；收，是你在关键节点选定方向、拍板决策、承担责任。

你的作品价值不在于代码量有多大、技术栈有多新，而在于它体现了你选定的产品方向、你做出的架构判断、你愿意为此承担的责任。AI 可以帮你写出一万行代码，但只有你能决定这一万行代码应该解决什么问题。这就是为什么 PRD 如此重要——PRD 就是你对 AI 的"控制权"。没有 PRD，AI 是脱缰的野马，可能跑得很快但方向不对；有了 PRD，AI 是听话的执行者，它的每一步都在你的掌控之中。

### AI 与人的分工：预测与判断

在 VibeCoding 工作流中，理解 AI 和人的分工至关重要。AI 负责的是"预测"——它会基于海量的训练数据，生成多种代码方案、提供架构建议、推荐技术选型。这些方案通常是概率最高的、最符合最佳实践的选择。但 AI 不知道你的业务场景、不了解你的用户需求、也无法为产品方向负责。

这就是你的价值所在。你负责的是"判断"——在 AI 给出的多个方案中选择最适合的那个，基于你对业务的理解决定是否接受某段代码，基于你对用户需求的洞察决定产品往哪个方向走。这不是因为 AI 能力不足，而是因为分工本就如此：AI 擅长基于数据做预测，你擅长基于理解做判断。

权限模式（Default/Plan/Accept Edits）本质上就是在调节"预测与判断的脱钩程度"。Default 模式下，AI 的只读探索自动执行，但修改代码时需要你判断；Plan 模式下，AI 只能探索和分析，所有判断都由你做；Accept Edits 模式下，AI 可以自主运行命令和测试，但修改代码时仍需你判断。选择哪种模式，取决于你对当前任务的熟悉程度和风险承受能力。

#### Agent Native 的三大原则

```mermaid
graph TB
    A[Agent Native] --> B["意图驱动：告诉 AI '做什么'"]
    A --> C["异步协作：AI 持续工作"]
    A --> D["信任但验证：快速验证机制"]

    B --> E["不要管 '怎么做'"]
    C --> F["设定目标后可离线"]
    D --> G["默认信任，发现问题再修正"]
```

**1. 意图驱动**

告诉 AI 目标，让它自己决定实现方式：

```bash
❌ 传统思维：
"帮我写一个函数，接收数组参数，用 for 循环遍历，
遇到大于 10 的就 push 到新数组里..."

✅ Agent Native：
"过滤数组中大于 10 的元素，返回新数组"
```

**2. 异步协作**

AI 可以在你睡觉时工作：

```bash
# 你设定目标，AI 自主执行
"实现用户评论功能，包括：
1. 数据库 schema（Comment 模型）
2. CRUD API
3. 前端评论表单
4. 评论列表展示

完成后告诉我，我先去忙别的。"
```

**3. 信任但验证**

不要逐行检查 AI 的代码，而是：

```mermaid
graph LR
    A[AI 生成] --> B{功能正常?}
    B -->|是| C[接受]
    B -->|否| D[告诉 AI 问题]
    D --> A
```

**验证方式**：

- 功能测试：跑一下看看能不能用
- 类型检查：`tsc` 有没有报错
- 代码审查：只看关键逻辑，不看实现细节

#### 从开发者到编排者

Agent Native 时代，你的角色转变：

```mermaid
graph TD
    A[传统开发者] --> B[亲自动手]
    B --> C[写每一行代码]
    C --> D[调试每个 Bug]

    E[Agent Native] --> F[编排 Agent]
    F --> G[定义目标]
    G --> H[验证结果]
```

| 传统开发者 | Agent Native 编排者 |
|-----------|-------------------|
| 手写代码 | 描述需求 |
| 逐个修复 | 反馈问题 |
| 关注语法 | 关注产品 |
| 是工匠 | 是指挥官 |

**记住**：代码是实现细节，产品才是目的。Agent Native 让你从"怎么做"中解放出来，专注于"做什么"。

:::

## 核心概念

### Vibecoding 的核心理念

```
Vibecoding = Prompt（提示词） + Workflow（工具流）
```

**Prompt 告诉 AI 做什么**
**Workflow 决定怎么做**



```mermaid
graph TB
    A[任务] --> B["Prompt: 需求描述"]
    B --> C["Workflow: 执行流程"]

    C --> D[探索项目结构]
    C --> E[规划实现步骤]
    C --> F[编写代码]
    C --> G[测试验证]
    C --> H[提交代码]

    D --> I[高质量输出]
    E --> I
    F --> I
    G --> I
    H --> I
```


### 提示词的核心原则

AI 是一个强大的编程助手，它理解技术术语、熟悉各种框架、能快速分析代码。

**沟通的关键是：直接、具体、有上下文。**

❌ **绕弯子**：

```
"你是一位资深的全栈工程师，精通各种技术栈..."
```

→ AI 不需要角色扮演，它知道自己能做什么

✅ **直接说事**：

```
"检测这个 React 组件的类型安全问题"
```

→ 一句话讲清楚要做什么

❌ **模糊描述**：

```
"帮我优化一下代码"
```

→ AI 不知道优化什么方向

✅ **具体需求**：

```
"优化登录页面的加载性能：
1. 添加图片懒加载
2. 延迟加载非关键资源
3. 使用 Next.js 的动态导入"
```

→ 明确优化目标和实现方式

## 提示词原则

### 好提示词的特征

```mermaid
graph TB
    A[好提示词] --> B["明确任务上下文"]
    A --> C["具体输出要求"]
    A --> D[提供出口]

    B --> E["不要让 AI 猜"]
    C --> F["不要含糊其辞"]
    D --> G["不要强行编造"]
```

### 提示词对比：欠佳 vs 推荐

| 类型 | 欠佳 | 推荐 |
|------|------|------|
| **角色扮演** | "你是一位拥有 20 年经验的全栈工程师，精通 React、Vue、Angular、Node.js、Python..." | 直接说任务："实现用户登录功能" |
| **模糊指令** | "帮我优化一下代码" | "优化登录页面的加载性能：添加图片懒加载、延迟加载非关键资源" |
| **无边界限制** | "写一个完整的电商系统" | "实现用户评论功能，包括：评论表单、列表展示、数据持久化" |
| **强行要求** | "你必须给出正确答案，不能说不知道" | "如果不确定，请明确说'我不确定'，而不是编造答案" |
| **具体任务** | "帮我写一个登录功能" | "实现用户登录功能：用户名+密码登录，使用 Next.js 16 App Router，Drizzle ORM + PostgreSQL，包含表单验证和错误处理" |
| **提供上下文** | "修复这个 Bug" | "修复 Bug：文件 app/login/page.tsx，问题：用户登录后没有跳转到首页，预期：跳转到 /dashboard" |
| **指令要具体** | "添加测试" | "为 app/login/page.tsx 编写测试用例，框架：Playwright，覆盖场景：密码错误、账号不存在、网络错误" |

**核心原则**：

- 不要让 AI 猜 → 提供明确上下文
- 不要含糊其辞 → 给出具体要求
- 不要强行编造 → 给 AI 一个"不确定"的出口

### 让 AI 反复提问

```
"我要开发一个任务管理应用。
请反复问我问题，直到你完全理解我的需求。
不要猜测，直接问。"
```

### 提示词模板

#### 代码生成模板

```
"实现 [功能名称]

技术栈：
- Next.js [版本]
- TypeScript
- Drizzle ORM
- [其他技术]

需求：
1. [具体需求1]
2. [具体需求2]
3. [具体需求3]

注意事项：
- 遵循项目现有代码风格
- 不要引入新依赖，除非必要
- 包含错误处理"
```

#### Bug 修复模板

```
"修复 Bug

文件路径: [完整路径]
错误信息:
[完整报错日志]

当前代码:
[相关代码片段]

期望行为: [描述]
实际行为: [描述]

请分析原因并提供修复方案"
```

## 标准工作流

### AI 的自动化能力

在开始工作流之前，记住：**AI 能自动处理很多任务**。

::: info Claude Code vs 其他 AI 工具

**关键区别**：

| 特性 | Claude Code | Cursor/Windsurf | ChatGPT 网页版 |
|------|-------------|-----------------|----------------|
| **项目上下文** | ✅ 自动读取整个项目 | ✅ 自动读取 | ❌ 手动粘贴 |
| **命令执行** | ✅ 直接运行 bash | ✅ 集成终端 | ❌ 复制到终端 |
| **文件修改** | ✅ 自动编辑多个文件 | ✅ 多文件编辑 | ⚠️ 逐个复制 |
| **版本控制** | ✅ 自动提交 | ✅ Git 集成 | ❌ 手动操作 |
| **工作流** | ✅ 标准化流程 | ⚠️ 需要手动 | ❌ 随意对话 |

**为什么 Claude Code 更适合 Vibecoding**：

1. CLI 原生：命令行是开发者的原生环境
2. 自动化程度高：减少手动操作
3. 标准化流程：探索 → 规划 → 实现 → 验证 → 提交
4. 完整上下文：理解整个项目结构
:::

```mermaid
graph TB
    A["你需要做的"] --> B["描述任务目标"]
    A --> C["提供必要上下文"]
    A --> D["验证结果并反馈"]

    E["AI 自动做的"] --> F[探索项目结构]
    E --> G["选择合适工具"]
    E --> H["处理错误重试"]
    E --> I["生成提交信息"]
```

**AI 的自动化能力**：

- ✅ 自动探索项目结构（你不需要告诉它看哪些文件）
- ✅ 自动选择合适的工具（Read、Edit、Bash）
- ✅ 自动处理错误（失败会重试或换方案）
- ✅ 自动生成提交信息（根据修改内容）
- ✅ 自动识别依赖关系（知道修改会影响哪些文件）

**你需要做的**：

- 清楚描述任务目标
- 提供必要的上下文
- 验证结果并反馈

**不需要做**：

- ❌ 指定具体步骤（"先读文件A，再读文件B"）
- ❌ 告诉它用哪个工具（"用 Read 工具读取"）
- ❌ 手动组合命令（"运行 git add 然后 git commit"）
- ❌ 手动处理错误（"如果失败就重试"）

### 权限模式

::: tip 场景：为什么需要切换模式

你正在调试一个功能，每次运行测试都要点"确认"，一分钟内点了 5 次。效率很低。

你试着按 **Shift+Tab** 切换到 **Accept Edits 模式**，测试命令自动执行，只有修改代码时才询问。瞬间清净了。

这就是**权限模式**的作用：在不同场景下，平衡效率和安全。

:::

#### 三种权限模式

| 模式 | 快捷键 | 特点 | 何时使用 |
|------|--------|------|----------|
| **Default** | Shift+Tab | 读自动，写询问 | 日常开发（推荐） |
| **Plan** | Shift+Tab | 只读不写 | 想先了解代码，怕误改 |
| **Accept Edits** | Shift+Tab | 写需确认，其他自动 | 频繁测试/运行命令 |

**快速决策**：

- 不确定时 → Default
- 只想看代码 → Plan
- 频繁跑命令 → Accept Edits

**试试交互模拟，感受不同模式的区别：**

<PermissionModeSwitcher />

#### Default 模式（推荐）

只读操作（读取文件、搜索代码、查看状态、列出文件）自动批准，修改操作（编辑文件、删除文件、运行命令、网络请求、Git push）需要确认。

**权限弹窗选项**：

- **Yes**：同意本次操作
- **Yes, don't ask again for this tool**：同意本次，且后续同类操作不再询问
- **No, and tell AI what to do differently**：拒绝并告诉 AI 换个方式

#### Plan 模式（代码审查）

仅允许只读操作，所有修改操作都会被阻止。

**适用场景**：

- 代码审查
- 了解代码库结构
- 探索性分析

::: tip Plan 模式深度解析

Plan 模式不只是"只读"——它是 Claude Code 内置的**结构化规划流程**，让 AI 在动手之前先充分理解代码库。

**内部机制**：

```mermaid
graph LR
    A[用户切换 Plan 模式] --> B[AI 进入只读探索]
    B --> C[分析代码结构和依赖]
    C --> D[生成实施方案]
    D --> E[用户审批方案]
    E -->|批准| F[切回正常模式执行]
    E -->|修改| B
```

当你切换到 Plan 模式时，Claude Code 会：

1. **限制为只读工具**——只能读取文件、搜索代码、浏览目录，不能编辑或执行命令
2. **深度探索代码库**——自动遍历相关文件，理解架构和依赖关系
3. **输出结构化方案**——包含修改哪些文件、每个文件改什么、执行顺序

**何时使用 Plan 模式**：

| 场景 | 是否推荐 | 原因 |
|------|---------|------|
| 新功能涉及 3+ 文件 | ✅ 强烈推荐 | 避免改到一半发现遗漏 |
| 大规模重构 | ✅ 强烈推荐 | 需要全局视角 |
| 不熟悉的代码库 | ✅ 推荐 | 先理解再动手 |
| 架构决策（选型） | ✅ 推荐 | 需要对比分析 |
| 单文件 bug 修复 | ❌ 不需要 | 直接修就行 |
| 简单文案修改 | ❌ 不需要 | 过度流程化 |

**实战示例**：认证模块从 Session 迁移到 JWT

```
# 先切换到 Plan 模式（Shift+Tab 切换）
"帮我把用户认证从 express-session 迁移到 JWT"

# AI 会自动：
# 1. 读取当前 auth 相关文件
# 2. 分析 session 的使用位置
# 3. 输出迁移方案（哪些文件要改、改什么、顺序）
# 4. 等你确认后，切回正常模式执行
```

**Plan 模式 vs 口头说"先规划"**：

口头说"先帮我规划一下"也能让 AI 输出方案，但 Plan 模式有本质区别：

- **工具级别的限制**：Plan 模式下 AI 只能使用只读工具，确保规划阶段专注于分析
- **结构化审批**：方案输出后由你审批确认，再切回正常模式执行
- **探索更充分**：因为不能写，AI 会把更多 token 花在理解代码上

:::

编辑操作需要确认，其他操作自动批准。

```bash
# 示例行为
"读取配置文件"
"运行测试"
# AI 直接执行（非编辑操作）

"修改函数签名"
"删除这个文件"
# AI 会询问（编辑操作需确认）
```

**适用场景**：

- 需要频繁运行命令/测试
- 对文件修改要谨慎
- 高度信任的自动化工作流

#### 模式切换

# 快捷键

Shift+Tab  # 在三种模式间循环切换


### 常用交互命令

在 Claude Code 中，以 `/` 开头的命令称为斜杠命令，用于快速执行特定操作：

| 命令 | 功能 | 使用场景 |
|------|------|----------|
| **/clear** | 清空对话上下文 | 开始新任务时 |
| **/model** | 切换 AI 模型 | 需要更强能力时切换到 Opus |
| **/status** | 查看使用额度和计费 | 检查剩余额度 |
| **/config** | 打开配置界面 | 修改设置 |
| **/resume** | 恢复最近的会话 | 重启后继续之前的工作 |
| **/rewind** | 恢复到上一个检查点 | 代码改错需要回退 |
| **/agents** | 管理 Agent | 创建/查看自定义 Agent |
| **/init** | 生成 CLAUDE.md 模板 | 新项目快速配置 |
| **/compact** | 压缩对话上下文 | 上下文太多时精简 |
| **/export** | 导出对话记录 | 分享或保存对话 |
| **/statusline** | 自定义状态栏显示 | 隐藏/显示状态信息 |
| **/vim** | 启用 Vim 键绑定 | 熟悉 Vim 的用户 |

**常用场景**：

```bash
# 开新任务时清空上下文
/clear

# 查看剩余额度
/status

# 切换到更强模型
/model opus

# 恢复到之前的状态
/rewind
```

### CLI 命令与启动选项

::: details 基本命令（必读）

| 命令 | 描述 | 示例 |
|------|------|------|
| **claude** | 启动交互式 REPL | `claude` |
| **claude "query"** | 使用初始提示启动 REPL | `claude "解释这个项目"` |
| **claude -p "query"** | 查询后退出（无头模式） | `claude -p "检查代码类型错误"` |
| **claude -c** | 继续上一次对话 | `claude -c` |
| **claude -r "id"** | 恢复指定会话 | `claude -r "abc123"` |
| **claude --continue** | 加载最近的对话 | `claude --continue` |
| **claude --resume** | 显示会话选择器 | `claude --resume` |

:::

::: details 常用启动选项

| 选项 | 功能 | 示例 |
|------|------|------|
| **-p "query"** | 执行查询后退出 | `claude -p "运行测试"` |
| **--model** | 指定模型 | `claude --model opus` |
| **--permission-mode** | 设置权限模式 | `claude --permission-mode plan` |
| **--add-dir** | 添加工作目录 | `claude --add-dir ../shared` |

:::

::: details 快捷键与输入控制（必读）

| 快捷键 | 功能 | 上下文 |
|--------|------|--------|
| **Ctrl+C** | 取消当前输入或生成 | 标准中断 |
| **Ctrl+D** | 退出会话 | EOF 信号 |
| **Ctrl+L** | 清除终端屏幕 | 保留对话历史 |
| **Ctrl+R** | 反向搜索命令历史 | 搜索以前的命令 |
| **Esc+Esc** | 回退代码/对话 | 恢复到之前状态 |
| **Tab** | 切换扩展思考 | 开启/关闭思考模式 |
| **Shift+Tab** | 切换权限模式 | 循环切换权限模式 |

**多行输入方法**：

| 快捷键 | 上下文 |
|--------|--------|
| **\ + Enter** | 适用于所有终端 |
| **Option+Enter** (macOS) | macOS 默认设置 |
| **Shift+Enter** | 配置后可用 |

**快速命令前缀**：

| 前缀 | 功能 | 示例 |
|------|------|------|
| **#** | 内存快捷方式，添加到 CLAUDE.md | `# 添加项目上下文` |
| **/** | 斜杠命令 | `/clear` |
| **!** | Bash 模式，直接运行命令 | `! npm test` |
| **@** | 文件路径引用 | `@src/app/page.tsx` |

:::

::: details 进阶：高级 CLI 标志

**完整 CLI 标志列表**：

| 标志 | 描述 | 示例 |
|------|------|------|
| `--add-dir` | 添加额外工作目录 | `claude --add-dir ../apps` |
| `--agents` | JSON 格式定义 Agent | `claude --agents '{...}'` |
| `--allowedTools` | 允许的工具列表 | `claude --allowedTools "Read,Bash"` |
| `--disallowedTools` | 禁止的工具列表 | `claude --disallowedTools "Edit"` |
| `--system-prompt` | 替换整个系统提示 | `claude --system-prompt "..."` |
| `--system-prompt-file` | 从文件加载系统提示 | `claude -p --system-prompt-file ./prompt.txt` |
| `--append-system-prompt` | 附加到默认提示 | `claude --append-system-prompt "..."` |
| `--output-format` | 输出格式（text/json/stream-json） | `claude -p --output-format json` |
| `--input-format` | 输入格式（text/stream-json） | `claude -p --input-format stream-json` |
| `--verbose` | 启用详细日志 | `claude --verbose` |
| `--max-turns` | 限制轮数 | `claude -p --max-turns 3` |
| `--dangerously-skip-permissions` | 跳过权限提示 | `claude --dangerously-skip-permissions` |

**系统提示标志区别**：

| 标志 | 行为 | 模式 | 用例 |
|------|------|------|------|
| `--system-prompt` | **替换**整个默认提示 | 交互 + 打印 | 完全控制行为 |
| `--system-prompt-file` | **替换**为文件内容 | 仅打印 | 从文件加载 |
| `--append-system-prompt` | **附加**到默认提示 | 交互 + 打印 | 添加特定指令 |

:::

::: details 进阶：Vim 模式

使用 `/vim` 启用或通过 `/config` 永久配置。

**模式切换**：

| 命令 | 操作 | 来自模式 |
|------|------|----------|
| `Esc` | 进入 NORMAL 模式 | INSERT |
| `i` | 在光标前插入 | NORMAL |
| `a` | 在光标后插入 | NORMAL |
| `o` | 在下方打开行 | NORMAL |

**导航（NORMAL 模式）**：

| 命令 | 操作 |
|------|------|
| `h/j/k/l` | 左/下/上/右移动 |
| `w` | 下一个单词 |
| `b` | 上一个单词 |
| `0/$` | 行首/行尾 |
| `gg/G` | 输入开始/结束 |

:::

::: details 进阶：后台 Bash 命令

**后台运行的工作原理**：

- 异步运行命令，立即返回任务 ID
- 输出被缓冲，可用 BashOutput 工具检索
- Claude Code 退出时自动清理

**常见后台命令**：

- 构建工具（webpack, vite, make）
- 包管理器（npm, yarn, pnpm）
- 测试运行器（jest, pytest）
- 开发服务器

**按 Ctrl+B** 将常规 Bash 调用移到后台。

**Bash 模式（! 前缀）**：

```bash
! npm test
! git status
! ls -la
```

- 将命令和输出添加到对话上下文
- 显示实时进度
- 支持 Ctrl+B 后台运行

:::

::: details 进阶：Agent 配置格式

**`--agents` 标志接受 JSON**（通常不需要手动使用，`/agents` 命令会自动处理）：

```bash
claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer",
    "prompt": "You are a senior code reviewer",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'
```

**必需字段**：

- `description`：何时调用（自然语言）
- `prompt`：系统提示

**可选字段**：

- `tools`：可用工具数组
- `model`：模型别名（sonnet/opus/haiku）

:::



### 五步工作流

::: tip 工作流是建议而非强制

VibeCoding 五步工作流是一个**推荐的实践模式**，适合大多数开发场景。但你可以根据实际情况灵活调整：

- ✅ **推荐遵循**：复杂功能、不熟悉的项目、团队协作
- 🔄 **可以简化**：简单修改、熟悉的项目、个人开发
- ⚡ **可以跳过**：微小改动、明显的问题修复

**核心原则**：理解每步的目的后，根据实际情况灵活应用，而非机械执行。

:::

**交互式工作流演示 —— 点击每步查看详情：**

<WorkflowStepper />

#### 1. 探索项目结构

先了解项目现状，能在 prompt 中给出更精准的上下文——比如"项目已有 Comment 表，请复用"、"代码风格参考 src/modules/posts"。上下文越明确，AI 的输出越贴合你的项目。

**先探索，再动手**：

```bash
"探索这个项目的结构，告诉我:
1. 使用的技术栈
2. 文件组织方式
3. 现有的功能模块
4. 配置文件的作用"
```

**你会得到**：

```
项目使用 Next.js 16 + TypeScript + Drizzle
- app/: 页面和 API
- components/: 可复用组件
- src/db/: 数据库模型（已有 User 表，可关联）
```

**关键信息**：已有 User 表 → 直接关联，省去建表 + 10 分钟。

#### 2. 规划实现步骤

**目的**: 先想清楚再动手，减少返工

```bash
"我要添加用户评论功能。
请规划实现步骤，包括:
1. 需要创建哪些文件
2. 需要修改哪些现有文件
3. 数据库 schema 变更
4. 实现顺序"
```

**输出示例**:

```
步骤:
1. 更新 Drizzle schema (添加 Comment 模型)
2. 运行 npx drizzle-kit push
3. 创建 API route (app/api/comments/route.ts)
4. 创建评论组件 (components/CommentForm.tsx)
5. 集成到详情页
```

#### 3. 编写代码

**目的**：按计划实现功能

**AI 的自动拆分能力**：

复杂任务会被自动拆解：

```bash
# 你只需要说
"实现用户评论功能"

# AI 会自动拆分为：
1. 更新 Drizzle schema
2. 运行数据库迁移
3. 创建 API 端点
4. 编写前端组件
5. 集成到页面
6. 测试验证
```

你不需要手动指定每个步骤，AI 会：

- 识别任务依赖关系
- 确定执行顺序
- 并行处理独立部分
- 验证每个步骤的结果

**当然，你也可以分步执行**：

```bash
"按照步骤 1，更新 Drizzle schema"
```

```bash
"按照步骤 2，生成并运行迁移"
```

```bash
"按照步骤 3，创建评论 API"
```

#### 4. 测试验证

**目的**：确保功能正常

```bash
"测试评论功能:
1. 验证 API 能正常创建评论
2. 验证评论能正确显示
3. 验证错误处理"
```

#### 5. 提交代码

**场景：AI 改崩了代码，想回退**

AI 为了修一个 Bug，改了 10 个文件，结果功能全乱了。你想回退，但发现没有存档点。

**解决方案**：让 AI **自动提交代码**。

**配置方法**：在 CLAUDE.md 中添加：

> "每当你完成一个独立功能的开发，或修复完一个 Bug 并验证通过后，请自动运行 git commit 提交代码，并生成一句简洁的中文 commit message。"

**效果**：

- AI 写完登录功能 → 自动 `git commit -m "feat: 实现登录"`
- AI 写完首页 → 自动 `git commit -m "feat: 添加首页"`
- AI 搞崩了代码 → `git log` 找到上一个版本，`git reset` 回退

**自动提交 vs 检查点**：

| 方式 | 能回滚什么 | 不能回滚什么 | 适用场景 |
|------|-----------|-------------|---------|
| 检查点 | AI 写入的文件 | 终端命令产生的变更 | 快速回退 |
| Git 提交 | 所有已跟踪文件 | 未跟踪文件 | 重要里程碑 |

**建议**：两者都用。检查点用于快速试错，Git 提交用于重要节点。

#### 6. 检查点功能

**场景：代码改崩了，想回滚**

你让 AI 重构代码，结果功能全乱了。按 `Esc+Esc`，选择之前的检查点，代码恢复。松了口气。

**但注意检查点的局限**：

你用 `/rewind` 回滚到早期版本，然后 `ls` 一看——

- `index.html` 恢复了 ✓
- `node_modules/` 还在（AI 删不了）
- 数据库表也还在（AI 动不了）

**原因**：检查点只回滚 AI **写入的文件**，终端命令（`npm install`、`mkdir`）产生的变更无法回滚。

**正确姿势**：

- 小改动 → 检查点快速回滚
- 大改动 → `git commit` 后再让 AI 动手

**使用方法**：
按 `Esc+Esc` 或 `/rewind`，选择：

- 仅对话：回退消息，保留代码
- 仅代码：恢复文件，保留对话
- 两者都恢复

::: details 进阶：检查点工作原理

**自动跟踪**：

- 每个用户提示创建新检查点
- 检查点在会话间持久存在
- 30 天后自动清理（可配置）

**限制**：

- Bash 命令更改（rm、mv、cp）无法回退
- 外部编辑无法回退
- 检查点用于快速恢复，Git 用于永久历史

:::

## 理解 Agent

### 什么是 Agent

**Agent** = AI 本身

AI 本身就是一个 **Agent**，它的工作是：

- 理解你的意图和需求
- 做决策（用什么工具、先做什么后做什么）
- 协调各种工具完成任务

可以把 Agent 理解为一个**任务执行器**：

- 接收你的指令（提示词）
- 调用各种工具完成任务
- 返回执行结果

**与普通 AI 对话的区别**：

| 普通 AI 对话 | Agent |
|-------------|--------|
| 只能聊天 | 能调用工具 |
| 被动回答 | 主动决策 |
| 单轮交互 | 持续执行 |

### 什么是自定义 Agent

**自定义 Agent** = 你创建的专门 Agent

自定义 Agent 是主 Agent 可以调用的"专门助手"。每个自定义 Agent：

- 有特定的用途和专业领域
- 有独立的上下文窗口（不污染主对话）
- 有自定义的系统提示（专门训练）
- 可以限制工具访问权限

**使用自定义 Agent 的优势**：

| 优势 | 说明 |
|------|------|
| **上下文保留** | 主对话保持简洁，自定义 Agent 独立处理复杂任务 |
| **专业分工** | 针对特定任务优化（如代码审查、调试） |
| **并行处理** | 多个 Agent 可同时工作，提高效率 |
| **灵活权限** | 可限制 Agent 只能用特定工具，提高安全性 |

**Agent 类型**：

| 类型 | 说明 | 示例 |
|------|------|------|
| **官方内置** | 系统自带，自动调用 | Plan（计划模式专用） |
| **用户自定义** | 你创建的专门 Agent | code-reviewer、debugger |
| **通用 Agent** | Task 工具调用的通用 Agent | general-purpose、Explore |

::: tip 官方内置 Agent：Plan

**Plan Agent** 是 Claude Code 自带的专门 Agent，专门用于**计划模式**：

- **模型**：使用 Sonnet 进行更强大的分析
- **工具**：Read、Glob、Grep、Bash（代码库探索）
- **目的**：搜索文件、分析代码结构、收集上下文
- **自动调用**：在计划模式中研究代码库时自动使用

**工作原理**：

```
你：[在计划模式] 帮我重构认证模块
我：让我先研究一下你的认证实现...
[内部调用 Plan Agent 探索认证相关文件]
[Plan Agent 搜索代码库并返回发现]
我：基于研究，这是我的建议方案...
```

:::

### 创建自定义 Agent

使用 `/agents` 命令创建你自己的自定义 Agent。

**第0步：在 Claude 内输入 `/agents` 回车**

---

**第一步：选择创建方式 (Creation Method)**

这里决定了 Agent 的"大脑"（系统提示词）是如何生成的。

| 选项 | 含义 | 适用场景 |
|-----|------|----------|
| **Generate with Claude** | 让 Claude 帮你生成 | 90% 的情况推荐。用自然语言描述需求，Claude 自动转化为专业 Prompt |
| **Manual configuration** | 手动配置 | 高级用户。已有写好的 Prompt，或需要精确控制每个字符 |

::: tip 快捷方式：直接对话修改

创建 Agent 后，你可以直接在对话中用 `@agent名字` 来修改或者使用它：

```bash
# 直接告诉 AI 你的需求
"@code-reviewer 以后检查代码时，特别关注安全性问题"

@翻译agent 把这段翻译成英文，但保持技术术语不变
```

AI 会自动更新 Agent 的配置，无需手动编辑配置文件。

:::

---

::: details 完整流程（第二步至最后一步）

**第二步：选择底层模型 (Select Model)**

这里决定了 Agent 运行时的"智商"、速度和成本。

| 选项 | 说明 |
|-----|------|
| **Sonnet** | 平衡性能和速度 |
| **Opus** | 最强能力，成本较高 |
| **Haiku** | 最快速度，简单任务 |
| **Inherit from parent** | 继承父级模型，跟随主对话切换 |

---

**第三步：选择工具权限 (Select Tools)**

这里决定了 Agent **能干什么**（安全管控的关键）。

| 选项 | 权限 | 适用场景 |
|-----|------|----------|
| **All tools** | 全权授权 | 需要完整能力的 Agent |
| **Read-only tools** | 只读权限 | 代码审查、文档分析 |
| **Edit tools** | 编辑权限 | 修改代码、创建文件 |
| **Execution tools** | 执行权限 | 运行终端命令（风险最高） |
| **MCP tools** | 外部工具 | 调用 MCP 服务器连接的服务 |

---

**第四步：选择存储位置 (Choose Location)**

这里决定了 Agent **在哪里**可以被看见和使用。

| 选项 | 含义 | 适用场景 |
|-----|------|----------|
| **Project (.claude/agents/)** | 项目级私有 | 专门为当前项目服务的 Agent |
| **Personal (~/.claude/agents/)** | 用户级全局 | 通用工具（翻译、发邮件等），随处可用 |

---

**第五步：选择背景颜色 (Choose background color)**

纯视觉设置，用于在终端里区分不同的 Agent。建议按功能分类：

- **红色**：危险操作（删除文件）
- **蓝色**：辅助查询
- **粉色/紫色**：创意写作

---

**最后一步：确认并保存 (Confirm and save)**

| 按键 | 操作 |
|-----|------|
| `s` 或 `Enter` | 保存并创建 |
| `e` | 保存后立刻进入编辑器（微调 Prompt） |
| `Esc` | 放弃创建 |

:::

## 多 Agent 并行协作

::: tip 什么是多 Agent 协作

Claude Code 会**自动启用多 Agent**来并行处理独立任务，每个 Agent 有独立的上下文窗口，专注完成特定工作。

**两种方式**：

1. **自动并行**：我识别到独立任务，自动创建通用 Agent 并行处理
2. **专门协作**：调用你创建的自定义 Agent（如 code-reviewer）

:::

### 自动启用

Claude Code 根据任务描述**主动委派任务**，使用 **Task 工具**创建通用 Agent 并行处理：

- 任务描述中的关键词：**"并行"、"同时"、"多 Agent"**
- 自定义 Agent 配置中的 `description` 字段
- 当前上下文和可用工具

::: tip Task 工具

当 Claude Code 识别到独立任务时，会自动使用 **Task 工具**创建通用 Agent 来并行处理。

**通用 Agent vs 自定义 Agent**：

| 类型 | 调用方式 | 用途 |
|------|----------|------|
| **通用 Agent** | Task 工具自动创建 | 通用任务（探索、搜索、读取文件） |
| **自定义 Agent** | `/agents` 命令创建 | 特定领域（代码审查、调试、测试） |

**特点**：

- 处理大量文件读取和搜索时更高效
- 多个通用 Agent 可以并行工作，加快速度
- 不需要预先配置，Claude 自动创建

:::

### 多个并行 Agent

| 关键词 | 效果 |
|--------|------|
| **"并行"** | 同时执行多个独立任务 |
| **"同时"** | 多个 Agent 一起工作 |
| **"多 Agent"** | 明确使用多个 Agent 协作 |

::: info 并行能力说明

**Claude 的并行能力**：

在单个响应中，Claude 可以并行调用**多个独立工具或子代理**（具体数量取决于任务复杂度和上下文窗口剩余空间）。

这意味着如果你有多个独立的任务（比如同时读取多个文件、执行多个独立的搜索等），Claude 可以在一条消息里一次性发出所有请求，大大提高效率。

**举例 1**：并行调研多个技术文档

```
任务：了解 Prisma、Drizzle、Supabase 三种数据持久化方案

串行方式：
读 Prisma 文档 → 等待 → 读 Drizzle 文档 → 等待 → 读 Supabase 文档 → 等待 → 总结对比

并行方式：
1 个消息 → 同时发起 3 个文档调研请求 → 收集所有信息 → 生成对比报告
```

**举例 2**：并行编写多个相关组件

```
任务：开发用户设置页面的多个功能模块

串行方式：
写头像上传 → 等待 → 写密码修改 → 等待 → 写通知偏好 → 等待 → 集成测试

并行方式：
1 个消息 → 同时启动 3 个 Agent 分别编写 3 个模块 → 收集所有代码 → 统一集成测试
```

**最佳实践**：

- 确保任务之间没有依赖关系
- 在提示词中使用"同时"、"并行"等关键词
- 让 Claude 自动识别哪些任务可以并行

:::

### 使用示例

```bash
# 自动并行 - AI 自动识别独立任务
"同时做这三件事：
1. 编写后端 API（用户认证）
2. 编写前端 UI（登录表单）
3. 编写数据库 schema（User 表）"

# 明确使用多 Agent
"使用多 Agent 并行开发任务模块：
- Agent 1 做 CRUD API
- Agent 2 做任务列表和表单
- Agent 3 做 Task 数据模型"
```

::: tip Agent 团队与多视角分析

除了简单的并行任务，Claude Code 还支持更高级的 **Agent 团队模式**和**多视角分析模式**。

**Agent 团队模式**

让不同专业的 Agent 协作完成复杂任务，每个 Agent 专注自己的领域：

```mermaid
graph TD
    A[用户需求] --> B[主 Agent 拆解任务]
    B --> C[架构 Agent]
    B --> D[前端 Agent]
    B --> E[安全 Agent]
    C --> F[汇总结果]
    D --> F
    E --> F
    F --> G[输出最终方案]
```

**简单并行 vs Agent 团队**：

| 维度 | 简单并行 | Agent 团队 |
|------|---------|-----------|
| 任务关系 | 完全独立 | 有协作关系 |
| 典型场景 | 同时读 5 个文件 | 架构师+前端+安全联合评审 |
| 结果处理 | 各自返回 | 汇总整合 |
| 提示词 | "同时做 A、B、C" | "从 X、Y、Z 角度分析" |

**多视角分析模式**

对同一段代码或决策，从多个专业角度同时分析：

```
"从以下角度分析这个 API 设计：
1. 安全性：是否有注入风险、认证漏洞
2. 性能：N+1 查询、缓存策略
3. 可维护性：命名规范、职责划分
4. 向后兼容：API 版本策略"
```

**适用场景**：

| 场景 | 推荐视角组合 |
|------|-------------|
| 代码审查 | 安全 + 性能 + 可读性 |
| 技术选型 | 成本 + 生态 + 学习曲线 + 扩展性 |
| 重构决策 | 风险 + 收益 + 工作量 + 影响范围 |
| Bug 排查 | 复现路径 + 根因 + 影响面 + 修复方案 |

**自定义 Agent 配置**

你可以在项目中创建专属 Agent，让 Claude Code 在特定场景自动调用：

```bash
# 创建自定义 Agent（放在 .claude/agents/ 目录）
# 例如：security-reviewer.md
---
name: security-reviewer
description: 安全审查专家
model: sonnet
tools: [read, grep, glob]
---

你是一个安全审查专家。检查代码中的：
- SQL 注入
- XSS 漏洞
- 硬编码密钥
- 不安全的依赖
```

然后在对话中通过 Task 工具调用这些 Agent，实现团队化协作。

:::

**两个选项**：

- `--continue`：自动继续最近的对话
- `--resume`：显示对话选择器

**使用示例**：

```bash
# 继续最近的对话
claude --continue

# 使用特定提示继续
claude --continue -p "显示我们的进度"

# 显示对话选择器
claude --resume

# 非交互模式继续
claude --continue -p "再次运行测试"
```

**工作原理**：

1. 对话自动保存在本地
2. 恢复时加载完整消息历史
3. 工具状态和结果被保留
4. 上下文完整恢复

:::

::: details 进阶：并行会话与 Git Worktrees

**使用场景**：同时处理多个任务，完全隔离代码

**创建 worktree**：

```bash
# 使用新分支创建
git worktree add ../project-feature-a -b feature-a

# 使用现有分支创建
git worktree add ../project-bugfix bugfix-123
```

**在每个 worktree 中运行 AI**：

```bash
cd ../project-feature-a
claude
```

**管理 worktrees**：

```bash
# 列出所有 worktrees
git worktree list

# 删除 worktree
git worktree remove ../project-feature-a
```

**优势**：

- 每个工作目录完全隔离
- 更改不会相互影响
- 共享相同的 Git 历史

:::

::: details 进阶：Unix 风格实用程序用法

**添加到验证流程**：

```json
// package.json
{
  "scripts": {
    "lint:claude": "claude -p '你是 linter。检查 vs main 的更改，报告拼写错误。每行一个文件名和行号，第二行描述问题。不返回其他文本。'"
  }
}
```

**管道输入输出**：

```bash
# 管道数据
cat build-error.txt | claude -p '简明解释构建错误的根本原因' > output.txt

# 控制输出格式
cat data.txt | claude -p '总结数据' --output-format text > summary.txt
cat code.py | claude -p '分析代码 bug' --output-format json > analysis.json
cat log.txt | claude -p '解析日志错误' --output-format stream-json
```

**输出格式**：

- `text`：纯文本响应（默认）
- `json`：完整对话日志的 JSON 数组
- `stream-json`：实时 JSON 对象流

:::

### 人在环路

AI 能够自主完成很多任务，但以下场景**建议保持人工审查**：

| 场景 | 原因 | 建议做法 |
|------|------|----------|
| **生产环境部署** | 影响所有用户 | AI 生成方案，人工审核后执行 |
| **数据库结构变更** | 难以回滚，影响数据 | 先 review schema，再执行迁移 |
| **安全相关代码** | 漏洞后果严重 | 代码审查必不可少 |
| **支付/财务逻辑** | 涉及资金安全 | 测试+双人验证 |
| **性能关键路径** | 影响用户体验 | 性能测试+基准对比 |
| **API 兼容性变更** | 影响第三方集成 | 版本管理+通知机制 |

::: warning 小白提示

如果你是编程新手，遇到上述场景**不确定如何处理**：

1. **不要独自承担风险**
   - 在测试环境先验证
   - 让 AI 解释风险点和注意事项
   - 在技术社区寻求帮助

2. **渐进式信任**
   - 从简单任务开始让 AI 自主完成
   - 复杂/高风险任务逐步增加人类审查
   - 建立 checklist 确保关键点都被检查

3. **寻找帮助的途径**
   - 技术社区（Stack Overflow、GitHub Issues）
   - 让 AI 解释风险点："这样做有什么风险？"
   - 付费咨询有经验的开发者

:::

::: details 需要人工审查的信号

**AI 建议时保持警惕**：

- AI 说"可能破坏XXX"
- AI 建议删除大量代码
- AI 修改核心配置文件
- AI 建议重构核心模块

**操作建议**：

1. 要求 AI 解释改动原因
2. 检查受影响的文件列表
3. 考虑先在分支测试
4. 必要时寻求第二意见

:::

## Hooks 自动化

::: tip 什么是 Hooks

**Hooks** = 在特定事件时自动执行的 Shell 命令

当 Claude Code 触发某些事件（如工具调用、用户提交提示）时，可以自动执行你注册的脚本命令。

**常见用途**：

- 代码写完后自动格式化（运行 prettier/eslint）
- AI 要删除重要文件时先拦截确认
- 提交代码前自动运行测试

:::

::: warning 安全提示

Hooks 会以你的用户权限执行 Shell 命令，**配置前请理解它在做什么**。

**新手建议**：

- 🟢 从简单场景开始（如自动格式化）
- 🟡 复杂场景寻求有经验的人帮助
- 🔴 只使用可信来源的 Hooks

:::

### 使用 Hooks

**运行 `/hooks` 打开交互式配置界面**，这是最推荐的创建方式。

**配置流程**：

1. 选择 Hook 事件类型：
   - `PreToolUse` - 工具调用前
   - `PostToolUse` - 工具调用后
   - `PostToolUseFailure` - 工具执行失败后
   - `Notification` - 发送通知时
   - `UserPromptSubmit` - 用户提交提示时（推荐）

2. 配置 Hook 行为：
   - 选择触发条件（matcher）
   - 编写执行的 Shell 命令
   - 设置超时时间（默认 60 秒）

3. 保存并生效

::: info 重要说明

- **每个事件可注册多个 Hooks**，并行执行
- **`/hooks` 目录外的修改需要重启**才能生效
- **超时时间**：60 秒
- **权限**：以你的完整用户权限执行

:::

### 常用场景

| 场景 | 事件 | 触发时机 | 执行命令 |
|------|------|----------|---------|
| 自动格式化 | PostToolUse | Write/Edit 后 | `prettier --write $FILE` |
| 保护敏感文件 | PreToolUse | 要修改 .env 时 | 拦截并警告 |
| 运行测试 | UserPromptSubmit | 提交包含"测试"的提示时 | `npm test` |
| 添加上下文 | UserPromptSubmit | 每次提交提示前 | 自动加载项目信息 |

::: details 进阶：配置文件说明

**注意**：以下内容仅供参考，**一般不需要手动编辑配置文件**。

配置位置（优先级从高到低）：

- `.claude/settings.local.json` - 本地项目设置（不提交）
- `.claude/settings.json` - 项目设置
- `~/.claude/settings.json` - 用户全局设置

**常用事件对照**：

| 事件 | 触发时机 | 典型用途 |
|------|---------|---------|
| `PreToolUse` | 工具调用前 | 验证、修改输入、权限控制 |
| `PostToolUse` | 工具调用后 | 格式化、通知、验证结果 |
| `PostToolUseFailure` | 工具执行失败后 | 错误处理、回滚操作 |
| `Notification` | 发送通知时 | 自定义通知渠道、记录日志 |
| `UserPromptSubmit` | 用户提交提示时 | 验证提示、添加上下文 |
| `Stop` | 主代理完成响应时 | 最终检查、清理、记录统计 |

:::

::: details 实用示例

#### 自动格式化

```json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [{
          "type": "command",
          "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/format-code.sh"
        }]
      }
    ]
  }
}
```

除了执行命令（`type: "command"`），还可以用 LLM 做智能决策（`type: "prompt"`）。

**适用场景**：需要理解内容后再决定是否放行。

#### 敏感文件保护

```python
#!/usr/bin/env python3
# .claude/hooks/protect-files.py

import json, sys

data = json.load(sys.stdin)
path = data.get('tool_input', {}).get('file_path', '')

# 阻止写入敏感文件
if any(p in path for p in ['.env', '.key', '.pem']):
    print("受保护：不允许写入敏感文件", file=sys.stderr)
    sys.exit(2)
```

:::


::: details 进阶：Hook 输入输出格式

**输入**（通过 stdin 接收 JSON）：

```json
{
  "session_id": "会话ID",
  "cwd": "当前工作目录",
  "hook_event_name": "事件名称",
  "tool_name": "工具名称",
  "tool_input": {...}
}
```

**输出方式**：

- 退出代码：0=成功，2=阻止操作
- JSON 输出：可返回 decision、reason 等字段

:::

## 安全注意事项

::: warning 安全注意事项

**不要把敏感信息发送给 AI**：

- ❌ API 密钥、密码
- ❌ 生产数据库连接字符串
- ❌ 用户隐私数据

**使用环境变量**：

```bash
# .env 文件（不要提交到 Git）
DATABASE_URL="postgresql://..."
OPENAI_API_KEY="sk-..."

# .gitignore
.env
```

**不要让 AI 修改敏感配置文件**：

- 项目根目录的 .env
- SSH 密钥
- 生产环境配置
:::



## 核心理念

**Workflow 让 AI 开发可预测、可复现**。

```mermaid
graph TB
    A["无 Workflow"] --> B["想到哪做到哪"]
    B --> C["返工多"]
    B --> D["质量不稳定"]

    E["有 Workflow"] --> F["结构化思考"]
    F --> G["一次通过率高"]
    F --> H["质量稳定"]
```

**记住工作流五步曲**：探索 → 规划 → 执行 → 验证 → 提交（根据情况灵活应用）

::: tip 灵活应用

- **复杂任务**：严格遵循五步，减少返工
- **简单修改**：可以跳过探索，直接执行
- **紧急修复**：最小化流程，快速解决

关键是有意识地思考每一步是否需要，而不是机械执行。

:::

## 提示词自检清单

发送提示词前检查：

- [ ] 任务描述清晰具体
- [ ] 提供了必要的上下文
- [ ] 明确了输出格式
- [ ] 给了 AI"不确定"的出口
- [ ] 包含了必要的约束条件
- [ ] 避免了冗长的角色设定
- [ ] 没有包含敏感信息（API Key、密码等）

## 常见问题

### Q1: 提示词越长越好吗？

**A**: 不是。

提示词的质量在于**精确**，不在于长度。

**简洁但具体的提示词** > **冗长但模糊的提示词**

### Q2: AI 还是会编造答案怎么办？

**A**: 加强约束：

```
"只使用项目已有的依赖。
如果需要新功能，先告诉我。
不要编造不存在的 API。"
```

### Q3: 为什么不直接让 AI 写代码？

**A**: 直接写容易返工。

探索 → 规划 → 编写，这个流程能让你：

- 避免重复造轮子
- 发现潜在问题
- 保持代码风格一致

### Q4: 工作流会不会太慢？

**A**: 不会。

看似多了步骤，实际上减少了返工时间。整体效率更高。

**对比**：

- 直接写：10 分钟，返工 30 分钟
- 按流程：15 分钟，一次通过

### Q5: 什么时候该停止对话？

**A**: 信号：

- 连续 3 轮没有进展
- AI 开始重复相同的建议
- 问题需要更多信息（如查看生产环境日志）

**策略**：切换模型或换思路

## 相关内容

- 详见：2.3 MCP、插件与 Skills
- 详见：2.4 项目规则配置
- 前置：2.1 AI 编程的经济学
- 后续：2.5 高效调试心法
