diff --git a/README.md b/README.md
index 7745d21..e21f63f 100644
--- a/README.md
+++ b/README.md
@@ -101,23 +101,27 @@
-在 AI 时代,把想法变成产品的人,往往技术不是最强,而是最先迈出行动。
+在 AI 时代,把想法变成产品的人,往往不是技术最强的那一个,而是最先迈出行动的那一个。
-很多人即便有了 AI 助手,依然会被“代码看不懂”、“环境不会配”劝退。**Easy-Vibe 为此而生。** 假设每个人都是零基础,手把手带你从写出第一行代码,到理解前后端逻辑,最后把产品上线。
-
-- **面向人群**:初学者、产品经理、前后端 / 全栈开发者
-- **主题**:AI 编程、全栈 Web 应用开发、AI Agent、工作流和 RAG 系统
+即便有了 AI 助手,"代码看不懂"、"环境不会配"依然足以让大多数人止步。Easy-Vibe 为此而来——假设每个人都是零基础,手把手带你从写出第一行代码,到理解前后端逻辑,最终把产品上线。
---
-Easy-Vibe 通过以下几个阶段,带你从 0 到 1:
+## 学习路径
-| 阶段 | 核心技能 | 产出 |
-| ------------ | -------------------------------- | ----------------------------------------- |
-| **第一阶段** | AI 编程入门、产品思维、原型设计 | 互动小游戏、Web 应用原型(新手入门 & PM) |
-| **第二阶段** | 全栈开发、AI 集成、数据库 | 完整的全栈 AI 应用 |
-| **第三阶段** | Claude Code 进阶、多平台开发 | 生产级多平台应用 |
-| **附录** | 帮你理解计算机、人工智能基础概念 | 9 大知识领域、80+ 交互式专题 |
+> 根据你的基础水平,推荐从不同阶段开始:
+> - **零基础**:从 Stage 0 开始,建立编程思维和产品意识
+> - **有一定经验**:从 Stage 1 开始,快速掌握 AI 编程工具和原型设计
+> - **开发者**:从 Stage 2 开始,深入全栈开发和 AI 集成
+> - **进阶开发者**:直接进入 Stage 3,探索 Claude Code 和多平台开发
+
+| 阶段 | 核心技能 | 产出 |
+| :--- | :--- | :--- |
+| **Stage 0** | 学习地图、AI 编程入门、寻找产品想法 | 互动小游戏、Web 应用原型 |
+| **Stage 1** | AI IDE、产品思维、原型设计、AI 能力集成 | 完整的产品原型 |
+| **Stage 2** | 全栈开发、数据库、AI 集成、部署运维 | 可上线的全栈 AI 应用 |
+| **Stage 3** | Claude Code 进阶、多平台开发 | 生产级多平台应用 |
+| **附录** | 计算机基础、AI 入门、9 大知识领域 | 80+ 交互式专题 |
## 🔥 News
diff --git a/docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md b/docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md
index 18c9953..f42e65f 100644
--- a/docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md
+++ b/docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md
@@ -1,3 +1,161 @@
# 大模型辅助编写接口代码与接口文档
-> 本章节正在编写中,敬请期待...
+在之前的课程中,我们学习了如何使用 Figma 等工具完成 UI 设计稿、如何借助 AI 快速生成前端静态页面,以及如何利用 Supabase 构建数据库并实现初步的用户身份验证。现在,一个自然而然的问题摆在了面前:前端页面中那些动感十足的按钮点击后,究竟是如何把数据悄无声息地存进 Supabase 的?当我们需要执行更复杂的业务逻辑(如并发支付、定时推送、数据敏感处理)时,直接让前端连接数据库是安全的吗?
+
+这就引出了现代 Web 开发架构中至关重要的一环——**后端 API 接口**。
+
+相比于过去纯手工敲出成百上千行的后端路由、控制器与参数校验逻辑,如今我们完全可以借助大模型的强大代码生成能力,将繁杂的基础代码交由 AI 编写。在本节课中,我们将跳出“AI 写的又虚又泛”的怪圈,以真实的业务场景为依托,向你展示如何通过高质量的提示词(Prompt)引导大模型写出健壮、符合行业规范的 Node.js 后端接口,并自动完成接口文档与测试用例的生成。
+
+> 💡 **前置知识**
+>
+> 在学习本节之前,建议你先了解以下内容:
+> - [从数据库到 Supabase](../2.2-database-supabase/) - 了解数据库和数据模型的概念。
+> - [Git 和 GitHub 工作流](../2.4-git-workflow/) - 熟悉如何在项目开发中进行版本控制。
+> - [什么是终端/命令行](/zh-cn/appendix/2-development-tools/command-line-shell) - 项目初始化与启动离不开基础的命令操作。
+
+# 你将学到
+
+1. **什么是 API 接口**:理解前后端通信的桥梁与 RESTful 设计规范。
+2. **大模型赋能服务构建**:如何通过结构化的 Prompt 让 AI 帮你搭建 Node.js + Express 基础工程。
+3. **接口逻辑开发**:引导大模型生成包含严谨业务校验、对接 Supabase 数据库的 CRUD(增删改查)接口。
+4. **自动化接口文档**:让大模型根据代码逆向生成跨团队协作标配的 OpenAPI/Swagger 文档。
+5. **测试与联调闭环**:利用大模型生成 Postman 测试合集与 Jest 单元测试用例,为代码质量兜底。
+
+---
+
+# 1. 为什么我们需要 API 接口?
+
+在传统的理解中,前端是“看得到的部分”,数据库是“存东西的仓库”。但这中间缺少了一个调度员。如果你把整个应用想象成一家餐厅:
+- **前端(客户端)** 是餐厅的菜单和点餐桌,客人在这里浏览菜品并提出需求。
+- **数据库(Supabase 等)** 是餐厅的后厨仓库,里面存放着所有的食材和账本。
+- **后端 API 接口** 就是餐厅的服务员。客人不能直接冲进后厨拿食材(不仅混乱,而且容易引发安全问题),而是需要把“点单诉求”(HTTP Request)告诉服务员。服务员进行核对(参数校验、权限鉴权)后,去后厨调取对应的内容,再将“做好的菜”(HTTP Response,通常是 JSON 格式的数据)端回给客人。
+
+通过 API 接口,我们实现了明确的**前后端分离**:前端只关心页面如何渲染,后端只专注于业务逻辑、数据处理与安全防护。
+
+---
+
+# 2. 项目架构设计与初始化
+
+一个结构清晰的项目骨架,是大模型能写出好代码的先决条件。我们在让 AI 写代码前,自己心里必须对工程结构有个底。
+
+## 2.1 常见的 API 工程结构
+即使是使用大模型生成代码,我们也绝不能把所有代码都塞进一个 `server.js` 文件中。一个易于维护的 Node.js 后端架构通常如下所示:
+
+```text
+my-api-project/
+├── .env # 敏感环境变量(如 API Keys、数据库连接串)
+├── server.js # 项目入口(服务器启动、全局中间件注册)
+├── package.json # 依赖管理文件
+├── src/
+│ ├── routes/ # 路由层:定义 URL 路径与请求方法
+│ ├── controllers/ # 控制器层:处理业务请求参数,调用服务并返回响应
+│ ├── services/ # 服务层:封装数据库交互和核心业务逻辑
+│ └── middlewares/ # 中间件:登录鉴权、错误全局捕获
+└── docs/ # API 文档存放目录
+```
+
+## 2.2 借助 AI 完成工程初始化
+与其手动 `npm init` 并一个个安装依赖,不如直接将上述规范以 Prompt 的形式喂给大模型:
+
+> 🗣️ **给大模型的提示词(Prompt 示例):**
+> "帮我搭建一个 Node.js 后端项目,要能连接 Supabase 数据库,结构清晰一点,方便以后维护。"
+
+运行 AI 返回的代码后,你就能在 `localhost:3000` 获得一个具备企业级雏形的后端应用了。
+
+---
+
+# 3. 核心实战:大模型辅助接口开发
+
+这是本章节最核心的部分。大模型写出的代码往往容易存在“逻辑漏洞”或“表面敷衍”,原因在于开发者给的上下文不足。**大模型不怕需求复杂,最怕需求模糊。**
+
+以我们在 [数据库章节](../2.2-database-supabase/) 中提到的 `menu_items` (菜单表) 的新增接口为例,看如何写出一份高质量的 Prompt。
+
+## 3.1 赋予大模型完整上下文
+在请求 AI 写接口之前,一定要提供**数据库字段定义(Schema)**和**具体的约束条件**。
+
+> 🗣️ **高质量提示词(Prompt)模板:**
+> "帮我写一个新增菜单的接口,菜单有商品名、价格、分类(汉堡、小食、饮料)、是否上架这几个信息。商品名和价格必须填,价格不能是负数。用户输入不对的时候要提示错误。"
+
+## 3.2 审查大模型生成的代码
+大模型生成的代码通常会像下面这样清晰地拆分了职责:
+
+```javascript
+// services/menuService.js
+const { createClient } = require('@supabase/supabase-js');
+const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY);
+
+exports.createMenuItem = async (menuData) => {
+ // 调用 Supabase SDK 将数据推入表内
+ const { data, error } = await supabase
+ .from('menu_items')
+ .insert([menuData])
+ .select();
+
+ if (error) throw new Error(`数据库插入失败: ${error.message}`);
+ return data[0];
+};
+```
+
+你可以发现,通过这种方式生成的代码,不仅结构合理,而且将 Supabase 的初始化、错误捕获以及异常处理都考虑在内,这与简单要求“写个新增接口”得到的面条式代码(Spaghetti Code)有着天壤之别。
+
+---
+
+# 4. 解放双手:自动生成接口文档
+
+对于开发团队而言,没有文档的 API 就是一个盲盒。前端工程师无法猜测你需要传入什么参数,也不能预测会返回什么结构。业界最通用的 API 描述规范是 **OpenAPI (此前也称 Swagger)**。
+
+过去,手写 YAML 或者 JSON 格式的 Swagger 文档极其痛苦且容易出错。现在,这也成了大模型最擅长的领域。
+
+你可以直接选中你刚才写的 `routes` 和 `controllers` 代码,然后丢给大模型:
+
+> 🗣️ **生成文档的提示词:**
+> "帮我根据上面的代码生成一份接口文档,要写清楚每个参数是什么意思、返回什么数据,方便前端同事对接。"
+
+在这个过程中,你甚至可以要求 AI 补全字段的说明(Description)和 Mock 数据(如 `price_cents: 1200` 代表 12 美元),极大地降低了沟通成本。
+
+---
+
+# 5. 保驾护航:生成测试代码与 Postman 集合
+
+代码写好、文档出炉,还差最后一步:验证代码到底能不能跑通。
+
+## 5.1 生成 Postman / Apifox 测试配置
+在接口开发中,我们通常使用 Postman 这样的可视化工具来模拟前端发送 HTTP 请求。如果不使用大模型,你需要手动填入 URL、逐个添加 Header(请求头)以及拼接 JSON 请求体。
+
+你只需向 AI 发送指令:
+> "帮我把这份接口文档转成 Postman 可以导入的格式,要包含正常请求和错误请求的例子。"
+
+拿到 JSON 文本后,保存为 `menu_api.json` 并拖入 Postman,你瞬间就获得了一套开箱即用的测试点击面板。
+
+## 5.2 编写自动化单元测试
+如果你追求更严谨的工程质量,可以让大模型帮你使用 `Jest` 等测试框架编写单元测试(Unit Tests),对核心业务逻辑进行边界测试(比如传入负数价格时,数据库层的校验是否生效)。
+
+---
+
+# 6. 后端接口必知的最佳实践
+
+即使有 AI 的协助,作为整个系统的“把关人”,你依然需要了解并审核以下这些核心准则:
+
+1. **RESTful 规范的路径命名**:
+ - 好的设计:`GET /api/users`(获取用户列表)、`POST /api/users`(创建用户)。URL 应该代表“资源”的名词。
+ - 错误的设计:`POST /api/getUser` 或 `POST /api/createUser`。动词应该交由 HTTP Method (GET/POST/PUT/DELETE) 来体现。
+2. **规范的 HTTP 状态码**:
+ - 200/201:请求成功 / 资源创建成功。
+ - 400:Bad Request,前端传参格式错误、少传了必填项。
+ - 401/403:Unauthorized / Forbidden,用户未登录或无权操作。
+ - 404:NotFound,资源不存在。
+ - 500:Server Error,后端代码报错或数据库挂了,绝对尽量避免将报错调用栈直接暴露给前端(会有安全隐患)。
+3. **永远不信任用户的输入**:前端的输入可能是伪造的,所有核心参数校验必须在后端接口中再做一次。
+
+# 7. 总结
+
+通过本章节的学习,你实现了开发视角的真正转变:你不再是被困在语法和标点符号中的“打字员”,而是上升成为了**系统设计师和架构指挥官**。
+你已经掌握了:
+1. **API 接口与前后端分离**的核心系统思维。
+2. **如何通过提供上下文与分层结构理念**,大幅提高大模型生成服务端代码的质量。
+3. 把繁琐的**文档编写**和**测试用例构建**,巧妙地转化为 AI 擅长的自动化任务。
+4. 结合此前学过的 **Supabase** 知识,打通了从客户端请求到底层数据库更新的完整数据流。
+
+::: tip 💡 下一步
+当你的数据流和后端服务都准备就绪后,它目前还只能在你的本地电脑上“自娱自乐”。在接下来的章节中,我们将学习如何把这套辛辛苦苦建立的服务**部署(Deploy)到公网服务器上**,让你的产品能被全世界的用户访问。
+:::
\ No newline at end of file
diff --git a/docs/zh-cn/stage-3/core-skills/workflow/index.md b/docs/zh-cn/stage-3/core-skills/workflow/index.md
index 9c8160a..18e8e04 100644
--- a/docs/zh-cn/stage-3/core-skills/workflow/index.md
+++ b/docs/zh-cn/stage-3/core-skills/workflow/index.md
@@ -1,684 +1,942 @@
-# Claude Code 工作流最佳实践
+# AI 辅助开发工作流
-## 前言
+在前面的章节中,我们学习了如何使用 AI IDE 进行代码编写、如何使用 Git 管理代码版本、如何设计和实现 API 接口。但是,当你面对一个真实的开发任务时,你可能会遇到这些问题:
-Claude Code 不仅仅是一个 AI 编程助手,更是一种全新的开发方式。它改变了开发者与代码、与工具、与团队的交互模式。掌握正确的工作流,可以让你的开发效率提升 10 倍,代码质量显著提高,同时减少重复性工作带来的疲惫感。
+- "这个项目有上千个文件,我该从哪里开始?"
+- "老板让我加个新功能,但我不熟悉这部分代码"
+- "这个 Bug 不知道在哪,代码太多了"
+- "要重构这堆代码,但怕改出问题"
-### 为什么需要专门的工作流?
+这些问题的本质是:**如何在真实的开发场景中,高效地使用 AI 工具完成工作?**
-传统的开发工作流是基于人类开发者设计的:阅读文档、理解代码、编写实现、手动测试、代码审查。而 AI 辅助开发需要一种全新的协作模式:
+在本节课中,我们将学习如何建立一套系统化的 AI 辅助开发工作流,让你能够在不同的开发场景下,都能高效地使用 AI 工具。我们会通过具体的案例,演示如何在新功能开发、Bug 修复、代码重构等场景下使用 AI。
-- **上下文管理**:AI 有上下文窗口限制,需要策略性地传递信息
-- **任务分解**:复杂任务需要拆分成 AI 可以理解和执行的小步骤
-- **验证机制**:AI 生成的代码需要系统化的验证流程
-- **知识沉淀**:团队需要共享 AI 的配置和项目知识
+> 💡 **前置知识**
+>
+> 在学习本节之前,建议你先了解以下内容:
+> - [AI IDE 基础](../../stage-1/ai-ide/) - 掌握 AI IDE 的基本使用
+> - [Git 和 GitHub 工作流](../../stage-2/backend/2.4-git-workflow/) - 了解代码版本管理
+> - [大模型辅助编写接口代码](../../stage-2/backend/2.3-ai-interface-code/) - 了解 AI 辅助开发的基本概念
-### 本文涵盖的内容
+::: info 📚 你将学到
-本文将系统介绍 Claude Code 在不同场景下的最佳实践,包括:
+1. 理解 AI 在开发流程中的定位和能力边界
+2. 掌握不同项目类型的 AI 辅助开发策略
+3. 学会在新功能开发、Bug 修复、代码重构等场景下使用 Claude Code
+4. 建立项目知识库,提高与 Claude Code 的协作效率
+5. 掌握提高 AI 协作效率的实用技巧
-1. **日常开发工作流** - 新功能开发、Bug 修复的标准流程
-2. **代码重构工作流** - 安全、高效地进行大规模重构
-3. **Code Review 工作流** - 利用 AI 提升代码审查质量
-4. **团队协作配置** - 共享配置、统一规范、知识管理
-5. **CI/CD 集成** - 将 Claude Code 融入自动化流程
-
-### 核心原则
-
-使用 Claude Code 需要建立正确的工作方式。它能力强大,但并非万能,需要合理的分工和有效的协作。
-
-**合理的分工**
-
-Claude 适合处理重复性工作,例如阅读代码、生成样板、查找 Bug、统一代码格式等。但架构设计、业务理解、关键决策等需要由人来把控。
-
-**建立信任**
-
-初次使用时,建议从简单任务开始(如变量重命名、简单函数重构),观察 Claude 的理解能力和执行效果。随着对其能力边界的了解,再逐步增加任务复杂度。
-
-**清晰的上下文传递**
-
-项目背景应通过 CLAUDE.md 文档提供,具体修改目标需使用 `@文件名` 明确指向,预期结果也要描述清楚。模糊的指令会导致偏离预期的输出。
-
-**验证环节不可省略**
-
-Claude 生成的代码需要经过测试验证、类型检查和风格审查。最终的代码质量责任仍在于开发者,AI 是辅助工具而非替代品。
-
-## 日常开发工作流
-
-日常开发占据了程序员大部分的工作时间。建立标准化的日常开发工作流,可以让你更高效地完成新功能开发和 Bug 修复,同时保持代码质量。
-
-### 新功能开发流程
-
-新功能开发是最常见的开发任务。一个完整的 AI 辅助开发流程包含以下步骤:
-
-```
-1. 理解需求 → 2. 分析现有代码 → 3. 设计实现方案
-→ 4. 编写代码 → 5. 测试与调试 → 6. 代码审查 → 7. 提交代码
-```
-
-#### 快速开始
-
-**1. 了解项目结构**
-
-```text
-@directory src/
-```
-
-让 Claude 快速浏览项目目录结构,了解:
-
-- 代码组织方式(是否分层、模块如何划分)
-- 使用的技术栈(框架、库类型)
-- 现有的命名和文件组织规范
-
-> **为什么?** 在不熟悉的项目中开发,盲目动手容易写出不符合项目风格的代码。让 Claude 先"看"一遍项目,生成的代码会更契合现有架构。
-
----
-
-**2. 查找相关代码**
-
-```text
-@grep "关键词" --glob "*.ts"
-```
-
-查找与当前任务相关的现有代码:
-
-- 是否已有类似功能可以复用
-- 其他人是如何处理类似场景的
-- 需要修改或关联哪些文件
-
-> **为什么?** 避免"重复造轮子",同时确保新代码与现有代码风格一致。
-
----
-
-**3. 制定计划**
-
-```text
-使用 /plan 或直接描述需求
-```
-
-让 Claude 制定详细的实施计划:
-
-- 涉及哪些文件的修改
-- 实现的先后顺序
-- 可能遇到的技术难点
-
-> **为什么?** 复杂任务拆分成小步骤后,执行更可控,出错也更容易定位。
-
----
-
-**4. 生成代码**
-
-```text
-让 Claude 根据计划生成代码框架
-```
-
-按计划逐步生成代码,从基础框架开始:
-
-- 先生成类型定义和接口
-- 再生成核心逻辑
-- 最后处理边界情况和错误处理
-
-> **为什么?** 框架先行可以确保结构合理,细节后填可以边写边验证。
-
----
-
-**5. 运行测试**
-
-```text
-!npm test
-```
-
-每次代码修改后立即运行测试:
-
-- 单元测试验证函数逻辑
-- 集成测试验证模块交互
-- 手动测试验证用户交互
-
-> **为什么?** 及早发现问题,避免错误累积到最后难以定位。
-
----
-
-**6. 代码审查**
-
-```text
-使用 /review 或让 Claude 审查变更
-```
-
-让 Claude 从多个维度审查代码:
-
-- 安全问题(SQL 注入、XSS 等)
-- 性能问题(N+1 查询、内存泄漏等)
-- 代码风格(是否符合项目规范)
-
-> **为什么?** AI 能发现人眼容易遗漏的问题,提高代码质量。
-
----
-
-**7. 提交代码**
-
-```text
-/commit
-```
-
-生成符合规范的提交信息:
-
-- 自动分析代码变更
-- 生成 conventional commit 格式的提交信息
-- 包含变更摘要和关键细节
-
-> **为什么?** 清晰的提交信息让代码历史更易读,后续回溯问题更方便。
-
-### Bug 修复流程
-
-Bug 修复需要快速定位问题、理解根因、实施修复并验证。
-
-**标准流程:**
-
-1. **收集错误信息** - 错误消息、复现步骤、环境信息
-2. **定位问题代码** - 搜索相关代码、分析调用链
-3. **分析根因** - 理解为什么会出错、评估影响范围
-4. **实施修复** - 编写修复代码、添加回归测试
-5. **提交修复** - 生成提交信息、记录 Bug 原因
-
-**实用命令:**
-
-```bash
-# 搜索错误信息
-@grep "错误消息" --glob "*.ts"
-
-# 查看函数调用链
-@grep "functionName" --context 5
-
-# 运行相关测试
-!npm test -- 文件名.test.ts
-
-# 查看最近改动
-!git diff
-```
-
-### 日常开发 Checklist
-
-| 阶段 | 检查项 | 操作命令/方法 |
-|-----|--------|--------------|
-| **开始前** | 了解项目结构 | `@directory src/` |
-| | 查看相关代码 | `@grep "keyword" --glob "*.ts"` |
-| **编码中** | 制定实施计划 | `/plan` |
-| | 生成代码框架 | 直接描述需求 |
-| **测试阶段** | 运行单元测试 | `!npm test` |
-| | 检查测试覆盖率 | `!npm run test:coverage` |
-| **审查阶段** | 自动代码审查 | `/review` |
-| | 类型检查 | `!npm run typecheck` |
-| **提交阶段** | 生成提交信息 | `/commit` |
-
-### 常见陷阱
-
-**陷阱 1:一次性给太多任务**
-
-```
-❌ "帮我实现一个完整的电商系统"
-✅ "先实现用户注册功能"
-```
-
-**陷阱 2:不提供足够的上下文**
-
-```
-❌ "修复这个 bug"
-✅ "登录功能报错'Invalid token',错误在 src/middleware/auth.ts"
-```
-
-**陷阱 3:不验证 AI 生成的代码**
-
-```
-❌ 直接接受所有修改
-✅ 每次修改后运行测试,手动验证关键功能
-```
-
-## 代码重构工作流
-
-重构就是"在不改变功能的前提下,改善代码结构"。听起来简单,但实际操作中很容易出问题。
-
-### 重构前:先看清楚再动手
-
-动手之前,先搞清楚两件事:要改哪些文件?这些文件被谁引用?
-
-```bash
-# 找出需要重构的文件
-@grep "旧模式代码" --glob "*.ts"
-
-# 看看这些文件被哪些地方引用
-@grep "import.*ModuleName" --glob "*.ts"
-```
-
-### 创建安全网
-
-重构就像走钢丝,需要安全网。
-
-```bash
-# 第一步:创建新分支,别在主分支上搞
-!git checkout -b refactor/描述你的重构
-
-# 第二步:确认现有测试都能通过
-!npm test
-```
-
-如果测试本来就不过,先修测试再重构。否则你根本不知道重构是不是搞坏了东西。
-
-### 自动验证配置
-
-让 Claude 每次改代码后自动跑测试,省心又安全:
-
-::: details 点击查看配置
-```json
-// .claude/settings.json
-{
- "hooks": {
- "afterEdit": ["npm run test:related"],
- "beforeCommit": ["npm run test"]
- }
-}
-```
:::
-这样配置后,每次 Claude 修改代码都会自动运行测试,失败了会提醒你。
+# 1. 理解 AI 的能力边界
-### 重构的核心原则
+在开始使用 AI 辅助开发之前,我们需要先理解 AI 能做什么、不能做什么。这样才能建立正确的协作方式。
-记住三句话:
+## 1.1 AI 擅长什么
-1. **小步走** - 别想着一次改完,改一点验证一点
-2. **有测试才动** - 没测试的代码先补测试,再重构
-3. **重构别改功能** - 只改结构,不改行为。想优化性能?另开一个 PR
+把 AI 想象成一个很聪明但需要明确指令的助手。它能根据你的描述快速生成代码框架,也能在几秒钟内读完几千行代码找到你要的部分。遇到明显的语法错误、常见的安全漏洞,它也能帮你发现。那些重复性的工作,比如批量重命名变量、格式化代码、生成文档注释,交给它最合适不过。
-### 重构检查清单
+简单来说,AI 擅长的是那些有明确规则、可以自动化的工作。
-每改完一批代码,跑一遍这些检查:
+## 1.2 AI 不擅长什么
-| 检查项 | 命令 | 通过标准 |
-|--------|------|----------|
-| 类型检查 | `npm run type-check` | 无类型错误 |
-| 相关测试 | `npm run test:related` | 相关测试通过 |
-| 全部测试 | `npm test` | 所有测试通过 |
-| 代码风格 | `npm run lint` | 无 lint 错误 |
-| 构建测试 | `npm run build` | 构建成功 |
+但 AI 也有它的局限性。它不了解你的业务逻辑——除非你详细告诉它,否则它不知道你们公司的订单流程是怎么走的。技术选型、架构设计这种需要权衡利弊的决策,它也做不了,因为这需要你的经验和对项目的理解。你们团队的特殊规范,比如"所有 API 都要加日志"、"错误码必须用枚举",AI 也不会知道,需要你配置或者明确告诉它。
-只要有一项不过,别继续改,先修复。
+最重要的是,AI 生成的代码不能直接用,你必须审查和测试。它可能会写出看起来对但实际有问题的代码,也可能忽略一些边界情况。
-## Code Review 工作流
+## 1.3 怎么和 AI 协作
-代码审查就是让同事检查你的代码,帮你发现问题和改进点。但这事儿挺累人的——看代码费眼,还容易漏掉问题。
+理解了 AI 的能力边界,协作方式就清楚了:你负责想清楚要做什么、做决策、把关质量;AI 负责执行具体的编码工作、查找信息、发现明显的问题。
-Claude 可以帮你做第一轮审查,把明显的问题先筛出来,人只要关注重要的东西就行。
+就像你和一个初级开发者合作一样——你告诉他要做什么,他去实现,然后你审查代码。区别是 AI 的执行速度快得多,但判断力不如人。
-### 审查要看什么?
+# 2. 不同项目类型的开发策略
-按优先级排个序:
+不同类型的项目,开发方式和 AI 使用策略也不一样。选择合适的策略可以大大提高开发效率。
-| 优先级 | 检查项 | 说明 |
-| :--- | :--- | :--- |
-| 🔴 最高 | 安全问题 | SQL 注入、密码硬编码、权限漏洞 |
-| 🟡 高 | 性能问题 | N+1 查询、内存泄漏 |
-| 🟢 中 | 代码质量 | 命名不规范、重复代码 |
-| ⚪ 低 | 风格问题 | 缺少空格、注释不完整 |
+## 2.1 全新项目(从零开始)
-### 提交 PR 前:先自己审一遍
+**项目特点:**
+- 没有历史包袱,可以自由设计
+- 需要建立项目结构和代码规范
+- 适合快速迭代和试错
-```text
-@file src/你改的文件.ts 审查这段代码,看看有没有安全问题
+**推荐工作流:**
+
+**第一步:规划项目结构**
+
+在开始编码之前,先让 AI 帮你规划项目结构和技术选型:
+
+```
+我要做一个任务管理应用,功能包括:
+- 用户注册和登录
+- 创建、编辑、删除任务
+- 任务分类和标签
+- 任务提醒
+
+请帮我:
+1. 推荐合适的技术栈
+2. 设计项目目录结构
+3. 规划数据库表结构
```
-让 Claude 帮你检查:
+**第二步:搭建基础框架**
-- 有没有安全漏洞
-- 有没有性能问题
-- 逻辑有没有明显错误
+根据规划,让 AI 创建基础的项目结构:
-### 写好 PR 描述
+```
+按照刚才的规划,帮我:
+1. 创建项目目录结构
+2. 初始化配置文件(package.json、.env 等)
+3. 创建基础的服务器代码
+```
-好的 PR 描述能让审查者快速理解你在做什么。
+**第三步:逐个实现功能**
-::: details 标准模板
+按照优先级,逐个实现功能模块:
+
+```
+现在实现用户注册功能,要求:
+- 邮箱和密码注册
+- 密码加密存储
+- 邮箱验证
+```
+
+**关键点:**
+- 一开始就建立好代码规范,让 AI 按照规范生成代码
+- 每完成一个功能模块就测试验证
+- 及时更新项目文档
+
+## 2.2 成熟项目(已有大量代码)
+
+**项目特点:**
+- 代码量大,有历史规范
+- 需要保持代码风格一致性
+- 修改需要考虑影响范围
+
+**推荐工作流:**
+
+**第一步:了解项目结构**
+
+在修改代码之前,先让 AI 帮你了解项目:
+
+```
+这是一个电商项目,我需要添加优惠券功能。
+请帮我:
+1. 分析项目的整体结构
+2. 找到订单相关的代码
+3. 看看其他类似功能是怎么实现的
+```
+
+**第二步:找到参考代码**
+
+让 AI 找到项目中类似的实现,作为参考:
+
+```
+找一下项目中其他促销活动(如满减、折扣)是怎么实现的
+```
+
+**第三步:模仿现有风格**
+
+让 AI 参考现有代码的风格来实现新功能:
+
+```
+参考满减活动的实现方式,帮我实现优惠券功能
+保持相同的代码风格和目录结构
+```
+
+**关键点:**
+- 先理解再动手,避免破坏现有架构
+- 保持代码风格一致性
+- 修改后要测试相关功能
+
+## 2.3 快速原型(验证想法)
+
+**项目特点:**
+- 追求速度,不太在意代码质量
+- 用于验证产品想法或技术方案
+- 可能会被丢弃或重写
+
+**推荐工作流:**
+
+**直接描述需求,快速实现:**
+
+```
+做一个简单的待办事项应用,要求:
+- 能添加、删除、标记完成任务
+- 数据存储在本地
+- 界面简洁,能用就行
+```
+
+**快速迭代:**
+
+```
+加个搜索功能
+改成深色主题
+添加任务分类
+```
+
+**关键点:**
+- 不用太在意代码质量和规范
+- 快速验证想法,及时调整方向
+- 如果原型成功,后续需要重构
+
+## 2.4 维护项目(修 Bug 为主)
+
+**项目特点:**
+- 代码已经稳定,主要是修复问题
+- 需要快速定位问题
+- 修改要谨慎,避免引入新问题
+
+**推荐工作流:**
+
+**第一步:定位问题**
+
+```
+用户反馈:点击"提交订单"按钮后,页面卡住不动
+控制台报错:TypeError: Cannot read property 'id' of undefined
+
+请帮我:
+1. 分析可能的原因
+2. 找到相关的代码
+```
+
+**第二步:分析根因**
+
+```
+看看这个错误是在什么情况下产生的
+检查一下数据流向
+```
+
+**第三步:实施修复**
+
+```
+修复这个问题,并:
+1. 添加防御性代码,避免类似问题
+2. 添加错误提示,提升用户体验
+```
+
+**关键点:**
+- 修复后要充分测试,确保不影响其他功能
+- 添加防御性代码,提高系统健壮性
+- 记录问题和解决方案,方便后续参考
+
+# 3. 常见开发任务的工作流
+
+在日常开发中,我们会遇到各种不同的任务。下面介绍几种最常见任务的 AI 辅助工作流。
+
+## 3.1 开发新功能
+
+**场景:** 产品经理给了你一个新需求,需要实现一个新功能。
+
+**完整工作流:**
+
+**步骤 1:理解需求**(你自己完成)
+
+在开始编码之前,先搞清楚:
+- 要实现什么功能?
+- 输入和输出是什么?
+- 有哪些边界条件和异常情况?
+- 性能和安全要求是什么?
+
+**步骤 2:了解现有代码**(让 AI 帮你)
+
+```
+我需要实现用户评论功能,请帮我:
+1. 看看项目中有没有类似的功能
+2. 找到用户数据和文章数据的存储方式
+3. 了解项目的数据库操作规范
+```
+
+**步骤 3:制定实现计划**(和 AI 一起)
+
+```
+基于刚才的分析,实现评论功能需要:
+1. 创建评论数据模型
+2. 实现评论的增删改查 API
+3. 在前端添加评论展示和发表功能
+
+请帮我确认这个计划是否合理,有没有遗漏的地方
+```
+
+**步骤 4:实现功能**(AI 生成,你审查)
+
+```
+按照计划,先实现评论数据模型
+要求:
+- 包含评论内容、作者、文章 ID、创建时间
+- 支持评论的嵌套回复
+- 添加必要的索引
+```
+
+```
+现在实现评论的 API 接口
+要求:
+- 发表评论
+- 删除评论(只能删除自己的)
+- 获取文章的所有评论
+- 支持分页
+```
+
+```
+最后实现前端的评论组件
+要求:
+- 显示评论列表
+- 评论发表表单
+- 支持回复评论
+```
+
+**步骤 5:测试验证**(你自己完成)
+
+- 手动测试主要流程
+- 测试边界情况(空内容、超长内容等)
+- 测试权限控制(不能删除别人的评论)
+- 让 AI 帮你写自动化测试
+
+**实际对话示例:**
+
+```
+你:我要加一个用户评论功能,用户可以对文章发表评论
+
+AI:好的,我先了解一下项目结构。
+ [AI 分析项目代码]
+ 我看到项目已经有用户系统(models/user.js)和文章系统(models/article.js)。
+
+ 实现评论功能需要:
+ 1. 创建评论数据模型(models/comment.js)
+ 2. 添加评论相关的 API(routes/comment.js)
+ 3. 在文章详情页添加评论展示和发表功能
+
+ 需要我开始实现吗?
+
+你:好的,开始吧。先创建数据模型
+
+AI:[生成 models/comment.js 代码]
+ 我已经创建了评论数据模型,包含以下字段:
+ - id: 评论 ID
+ - content: 评论内容
+ - userId: 作者 ID
+ - articleId: 文章 ID
+ - parentId: 父评论 ID(用于嵌套回复)
+ - createdAt: 创建时间
+
+ 接下来实现 API 接口吗?
+
+你:是的,实现 API 接口
+```
+
+## 3.2 修复 Bug
+
+**场景:** 用户报告了一个问题,需要快速定位和修复。
+
+**完整工作流:**
+
+**步骤 1:收集信息**(你自己完成)
+
+记录以下信息:
+- 错误信息是什么?
+- 如何复现这个问题?
+- 什么时候开始出现的?
+- 影响范围有多大?
+
+**步骤 2:定位问题**(让 AI 帮你)
+
+```
+用户反馈:点击"提交订单"按钮后,页面卡住不动
+浏览器控制台报错:TypeError: Cannot read property 'id' of undefined
+错误发生在 checkout.js 第 45 行
+
+请帮我:
+1. 分析可能的原因
+2. 找到相关的代码
+3. 检查数据流向
+```
+
+**步骤 3:分析根因**(和 AI 一起)
+
+```
+看看这个 user 对象是从哪里来的
+检查一下在什么情况下 user 会是 undefined
+```
+
+**步骤 4:实施修复**(AI 生成,你审查)
+
+```
+修复这个问题,要求:
+1. 添加防御性代码,检查 user 是否存在
+2. 如果 user 不存在,跳转到登录页
+3. 添加友好的错误提示
+```
+
+**步骤 5:验证修复**(你自己完成)
+
+- 按照原来的步骤复现,确认问题解决
+- 测试相关功能,确保没有引入新问题
+- 思考是否有其他地方存在类似问题
+
+**实际对话示例:**
+
+```
+你:用户反馈登录后刷新页面就退出了
+
+AI:这通常是 token 存储或验证的问题。让我检查一下:
+ 1. token 是存在哪里的?localStorage 还是 cookie?
+ 2. 刷新页面时有没有重新读取 token?
+
+ 请告诉我 token 相关的代码在哪个文件
+
+你:在 utils/auth.js
+
+AI:[分析 utils/auth.js]
+ 我找到问题了:token 存在 sessionStorage 里,
+ 刷新页面后 sessionStorage 会清空。
+
+ 解决方案:改用 localStorage 存储 token
+
+ 需要我修改吗?
+
+你:好的,改一下
+
+AI:[修改代码]
+ 已经修改完成,现在 token 会存储在 localStorage 中,
+ 刷新页面后不会丢失。
+
+ 建议你测试一下:
+ 1. 登录后刷新页面,确认还是登录状态
+ 2. 关闭浏览器重新打开,确认还是登录状态
+```
+
+## 3.3 重构代码
+
+**场景:** 代码变得难以维护,需要重构以提高代码质量。
+
+**完整工作流:**
+
+**步骤 1:确定重构目标**(你自己完成)
+
+明确以下问题:
+- 要解决什么问题?(代码重复?结构混乱?性能问题?)
+- 重构的范围有多大?
+- 能接受的风险程度?
+
+**步骤 2:制定重构计划**(和 AI 一起)
+
+```
+这三个函数(getUserList、getArticleList、getCommentList)
+有很多重复代码,都是做分页、排序、筛选。
+
+请帮我:
+1. 分析重复的部分
+2. 提出重构方案
+3. 评估重构的风险
+```
+
+**步骤 3:准备安全网**(让 AI 帮你)
+
+```
+在重构之前,先帮我写测试用例
+确保重构后功能不变
+```
+
+**步骤 4:逐步重构**(AI 执行,你验证)
+
+```
+按照刚才的方案,先提取公共函数
+```
+
+```
+现在优化数据结构
+```
+
+```
+最后更新调用的地方
+```
+
+**步骤 5:验证结果**(你自己完成)
+
+- 运行所有测试,确保通过
+- 手动测试关键功能
+- 检查代码质量是否提升
+
+**实际对话示例:**
+
+```
+你:这三个函数有很多重复代码,能帮我重构一下吗?
+ [贴上三个函数的代码]
+
+AI:我分析了一下,这三个函数的主要区别是:
+ - getUserList:获取用户列表
+ - getArticleList:获取文章列表
+ - getCommentList:获取评论列表
+
+ 它们的共同逻辑是:分页、排序、筛选
+
+ 重构方案:
+ 1. 提取通用的 getList 函数
+ 2. 将不同的部分作为参数传入
+
+ 这样可以减少 80% 的重复代码。
+
+ 需要我实现吗?
+
+你:好的,但是先帮我写测试用例
+
+AI:[生成测试用例]
+ 我已经为这三个函数写了测试用例,
+ 覆盖了主要的使用场景。
+
+ 现在可以开始重构了吗?
+
+你:可以,开始重构
+
+AI:[重构代码]
+ 重构完成。我创建了一个通用的 getList 函数,
+ 三个原来的函数现在都调用这个通用函数。
+
+ 请运行测试确认功能正常:npm test
+```
+
+## 3.4 代码审查
+
+**场景:** 同事提交了代码,需要你审查。
+
+**完整工作流:**
+
+**步骤 1:快速了解改动**(让 AI 帮你)
+
+```
+总结一下这次 PR 做了什么改动
+主要修改了哪些文件
+```
+
+**步骤 2:检查常见问题**(让 AI 帮你)
+
+```
+检查这次改动:
+1. 有没有安全问题(SQL 注入、XSS 等)
+2. 有没有性能问题(N+1 查询、内存泄漏等)
+3. 有没有明显的 Bug
+4. 代码风格是否符合项目规范
+```
+
+**步骤 3:深入审查**(你自己完成)
+
+- 业务逻辑是否正确
+- 是否考虑了边界情况
+- 是否有更好的实现方式
+- 是否需要添加测试
+
+**步骤 4:给出反馈**(你自己完成)
+
+- 指出需要修改的地方
+- 解释为什么要这样改
+- 提供改进建议
+
+**实际对话示例:**
+
+```
+你:帮我审查一下这个 PR
+ [提供 PR 链接或代码]
+
+AI:我审查了这次改动,发现以下问题:
+
+ 1. 安全问题:
+ - 第 23 行:用户输入没有转义,可能有 XSS 风险
+ - 第 45 行:SQL 查询直接拼接字符串,有注入风险
+
+ 2. 性能问题:
+ - 第 67 行:在循环里查询数据库,会产生 N+1 问题
+
+ 3. 代码质量:
+ - handleSubmit 函数太长(200 行),建议拆分
+ - 缺少错误处理
+
+ 需要我详细说明这些问题吗?
+
+你:详细说一下 SQL 注入的问题
+
+AI:在第 45 行:
+ ```javascript
+ const query = `SELECT * FROM users WHERE name = '${userName}'`;
+ ```
+
+ 这种写法直接将用户输入拼接到 SQL 语句中,
+ 如果用户输入 `' OR '1'='1`,就会变成:
+ ```sql
+ SELECT * FROM users WHERE name = '' OR '1'='1'
+ ```
+ 这会返回所有用户数据。
+
+ 正确的做法是使用参数化查询:
+ ```javascript
+ const query = 'SELECT * FROM users WHERE name = ?';
+ db.query(query, [userName]);
+ ```
+
+ 需要我修改吗?
+```
+
+# 4. 建立项目知识库
+
+为了让 AI 更好地理解你的项目,建议在项目中建立知识库。这样 AI 就能按照你的规范和习惯工作。
+
+## 4.1 创建项目说明文件
+
+在项目根目录创建 `CLAUDE.md` 或 `AGENTS.md` 文件,记录项目的关键信息:
```markdown
-## 做了什么
-用一句话说清楚改了啥
+# 项目说明
-## 为什么改
-说明改动的背景和原因
+## 项目概述
+这是一个在线教育平台,提供课程管理、用户学习、作业提交等功能。
-## 改了哪些地方
-- 改动点 1
-- 改动点 2
+## 技术栈
+- 前端:React 18 + TypeScript + Vite
+- 后端:Node.js + Express + PostgreSQL
+- 部署:Vercel(前端)+ Railway(后端)
-## 测试情况
-- [ ] 单元测试通过
-- [ ] 手动验证通过
+## 项目结构
+```
+src/
+├── components/ # React 组件
+├── pages/ # 页面组件
+├── api/ # API 调用
+├── utils/ # 工具函数
+└── types/ # TypeScript 类型定义
+```
+
+## 代码规范
+- 使用 ESLint 和 Prettier 格式化代码
+- 组件文件使用 PascalCase(如 UserProfile.tsx)
+- 工具函数使用 camelCase(如 formatDate.ts)
+- 常量使用 UPPER_SNAKE_CASE(如 API_BASE_URL)
+
+## 开发流程
+1. 从 main 分支创建功能分支
+2. 开发完成后提交 PR
+3. 代码审查通过后合并
+
+## 常见任务
+- 启动开发服务器:`npm run dev`
+- 运行测试:`npm test`
+- 构建生产版本:`npm run build`
+- 代码格式化:`npm run format`
## 注意事项
-如果会影响其他功能,在这里说明
+- 所有 API 调用都要添加错误处理
+- 用户输入必须做验证和转义
+- 数据库操作使用参数化查询,避免 SQL 注入
+- 敏感信息(密码、token)不能记录到日志
+
+## 数据库表结构
+- users: 用户表(id, email, password_hash, created_at)
+- courses: 课程表(id, title, description, teacher_id)
+- enrollments: 选课表(id, user_id, course_id, enrolled_at)
```
+## 4.2 记录常见问题和解决方案
+
+在项目中创建 `docs/troubleshooting.md`,记录常见问题:
+
+```markdown
+# 常见问题
+
+## 开发环境问题
+
+### 问题:npm install 失败
+**原因:** Node 版本不兼容
+**解决方案:** 使用 Node.js 18 或更高版本
+
+### 问题:数据库连接失败
+**原因:** 环境变量未配置
+**解决方案:** 复制 .env.example 为 .env,填写数据库连接信息
+
+## 功能问题
+
+### 问题:用户登录后刷新页面就退出
+**原因:** Token 存储在 sessionStorage
+**解决方案:** 改用 localStorage 存储 token
+
+### 问题:图片上传失败
+**原因:** 文件大小超过限制
+**解决方案:** 在前端添加文件大小检查,限制为 5MB
+```
+
+## 4.3 维护技术决策记录
+
+创建 `docs/decisions/` 目录,记录重要的技术决策:
+
+```markdown
+# ADR-001: 选择 PostgreSQL 作为数据库
+
+## 状态
+已采纳
+
+## 背景
+项目需要选择一个关系型数据库,候选方案有 MySQL 和 PostgreSQL。
+
+## 决策
+选择 PostgreSQL
+
+## 理由
+1. 更好的 JSON 支持,适合存储课程内容
+2. 更强大的全文搜索功能
+3. 团队成员更熟悉 PostgreSQL
+
+## 后果
+- 需要学习 PostgreSQL 特有的功能
+- 部署时需要 PostgreSQL 环境
+```
+
+# 5. 提高 AI 协作效率的技巧
+
+掌握一些实用技巧,可以让你和 AI 的协作更加高效。
+
+## 5.1 描述要清晰具体
+
+**不好的描述:**
+```
+这个功能有问题
+帮我优化一下
+```
+
+**好的描述:**
+```
+用户点击"提交"按钮后,表单没有提交
+浏览器控制台报错:Uncaught TypeError: Cannot read property 'value' of null
+错误发生在 form.js 第 23 行
+
+这个列表加载很慢,有 1000 条数据
+请帮我添加分页功能,每页显示 20 条
+```
+
+**关键点:**
+- 提供具体的错误信息
+- 说明期望的结果
+- 给出相关的上下文
+
+## 5.2 一次只做一件事
+
+**不好的做法:**
+```
+帮我实现登录、注册、找回密码、个人中心、
+修改密码、邮箱验证这些功能
+```
+
+**好的做法:**
+```
+先实现登录功能,要求:
+- 邮箱和密码登录
+- 记住登录状态
+- 错误提示
+
+(完成后)现在实现注册功能
+
+(完成后)现在实现找回密码功能
+```
+
+**关键点:**
+- 将大任务拆分成小任务
+- 每完成一个任务就测试验证
+- 确认没问题再继续下一个
+
+## 5.3 及时验证结果
+
+**不好的做法:**
+- 让 AI 连续修改了 10 个文件
+- 最后发现第一个就错了
+- 浪费了大量时间
+
+**好的做法:**
+- 修改一个文件,立即测试
+- 确认没问题,再继续
+- 发现问题及时纠正
+
+**关键点:**
+- 小步快跑,快速反馈
+- 不要盲目信任 AI
+- 保持对代码的掌控
+
+## 5.4 善用上下文
+
+**技巧 1:引用之前的对话**
+```
+按照刚才的方案实现
+参考之前的 getUserList 函数
+```
+
+**技巧 2:提供相关代码**
+```
+这是现有的用户模型代码:
+[贴上代码]
+
+请参考这个风格实现文章模型
+```
+
+**技巧 3:说明项目背景**
+```
+这是一个电商项目,使用 React + Node.js
+已经有用户系统和商品系统
+现在要添加购物车功能
+```
+
+## 5.5 保存有用的对话
+
+**场景:** 解决了一个复杂问题
+
+**做法:**
+1. 将解决方案记录到项目文档
+2. 下次遇到类似问题可以参考
+3. 分享给团队其他成员
+
+**示例:**
+
+在 `docs/solutions/` 目录创建文档:
+
+```markdown
+# 解决 N+1 查询问题
+
+## 问题描述
+获取文章列表时,每篇文章都要查询一次作者信息,
+导致性能问题。
+
+## 解决方案
+使用 JOIN 查询,一次性获取所有数据:
+
+```sql
+SELECT articles.*, users.name as author_name
+FROM articles
+LEFT JOIN users ON articles.author_id = users.id
+```
+
+**效果:** 查询时间从 2000ms 降低到 50ms
+
+## 5.6 学会提问的艺术
+
+**技巧 1:先问"为什么"**
+```
+为什么这段代码会导致内存泄漏?
+为什么要使用 useCallback 而不是普通函数?
+```
+
+**技巧 2:请求多个方案**
+```
+实现用户认证有哪几种方案?
+各有什么优缺点?
+```
+
+**技巧 3:请求解释**
+```
+这段代码是怎么工作的?
+能详细解释一下这个算法吗?
+```
+
+# 6. 常见问题解答
+
+## Q1:AI 生成的代码能直接用吗?
+
+**A:** 不能直接用,需要审查和测试。
+
+AI 生成的代码可能存在以下问题:
+- 逻辑错误或边界情况处理不当
+- 不符合项目的代码规范
+- 存在安全隐患
+- 性能不够优化
+
+你需要:
+- 仔细阅读生成的代码
+- 理解代码的逻辑
+- 测试各种情况
+- 确认符合项目规范
+
+## Q2:AI 理解错了我的意思怎么办?
+
+**A:** 及时纠正,重新描述需求。
+
+```
+不是这样的,我的意思是...
+这个理解不对,应该是...
+让我重新描述一下需求...
+```
+
+如果多次纠正还是不对,可以:
+- 提供更多上下文信息
+- 给出具体的代码示例
+- 拆分成更小的任务
+
+## Q3:遇到 AI 不会的问题怎么办?
+
+**A:** AI 不是万能的,有些问题需要你自己解决。
+
+AI 可能无法解决的问题:
+- 非常新的技术(AI 的知识有截止日期)
+- 你们团队特有的业务逻辑
+- 需要访问外部系统的问题
+- 复杂的性能优化问题
+
+这时你需要:
+- 查阅官方文档
+- 搜索相关解决方案
+- 咨询有经验的同事
+- 在社区提问
+
+## Q4:怎么判断 AI 的建议是否合理?
+
+**A:** 用你的经验和知识判断。
+
+评估标准:
+- 是否符合最佳实践
+- 是否考虑了边界情况
+- 是否有潜在的安全风险
+- 是否符合项目的技术栈
+- 性能是否可接受
+
+如果不确定,可以:
+- 让 AI 解释为什么这样做
+- 请求提供其他方案
+- 咨询团队成员
+
+## Q5:团队协作时怎么用 AI?
+
+**A:** 建立共同的规范和知识库。
+
+团队协作建议:
+- 共享项目的 CLAUDE.md 配置
+- 统一代码规范和风格
+- 记录常见问题的解决方案
+- 定期分享有用的提示词
+- 在代码审查时检查 AI 生成的代码
+
+## Q6:如何避免过度依赖 AI?
+
+**A:** 保持学习和思考,AI 是辅助工具而不是替代品。
+
+建议:
+- 理解 AI 生成的代码,不要盲目复制
+- 遇到不懂的概念,主动学习
+- 定期复习基础知识
+- 尝试自己解决问题,再用 AI 验证
+- 参与代码审查,学习他人的经验
+
+# 7. 总结
+
+通过本章节的学习,你已经掌握了:
+
+1. **AI 的能力边界**:理解 AI 擅长什么、不擅长什么,建立正确的协作方式
+2. **项目类型策略**:针对全新项目、成熟项目、快速原型、维护项目的不同开发策略
+3. **常见任务工作流**:掌握新功能开发、Bug 修复、代码重构、代码审查的完整流程
+4. **项目知识库**:学会建立项目文档,让 AI 更好地理解你的项目
+5. **协作技巧**:掌握提高 AI 协作效率的实用技巧
+
+**关键要点:**
+
+- **明确分工**:你做决策和把关,AI 做执行和辅助
+- **清晰沟通**:描述要具体,一次做一件事
+- **及时验证**:不要盲目信任,要测试验证
+- **持续学习**:了解 AI 的能力边界,不断优化协作方式
+
+记住:AI 是工具,不是替代品。它能让你更高效,但最终的代码质量还是要靠你把关。从简单任务开始,逐步建立信任,你会发现 AI 能帮你节省大量时间,让你专注于更有价值的工作。
+
+::: tip 💡 下一步
+在下一章节中,我们将学习如何使用 AI 进行代码审查和质量保证,确保代码的可维护性和安全性。
:::
-
-### 审查别人的 PR
-
-用 Claude 帮你快速了解 PR 的内容:
-
-```text
-帮我审查这个 PR,重点检查安全问题和性能问题
-```
-
-Claude 会列出发现的问题,你再重点看这些问题是否属实。
-
-### 本地预提交检查
-
-在提交前自动跑一遍快速检查:
-
-::: details 点击查看配置
-
-```bash
-#!/bin/bash
-# .git/hooks/pre-commit
-
-echo "检查代码..."
-
-claude "快速检查暂存的代码:
-1. 有没有明显的安全问题
-2. 有没有明显的 bug" --strict || exit 1
-```
-
-:::
-
-配置后,每次提交都会自动检查,发现问题会阻止提交。
-
-## 团队协作配置共享
-
-在团队中使用 Claude Code,需要建立共享的配置和知识库,确保所有成员都能获得一致的 AI 辅助体验。
-
-### 项目级配置
-
-将 Claude Code 配置提交到仓库,实现团队共享:
-
-**配置结构:**
-
-```text
-.claude/
-├── settings.json # 团队共享配置
-├── settings.local.json # 个人本地配置(不提交)
-├── CLAUDE.md # 项目主文档
-├── .claudeignore # 忽略文件配置
-└── memory/ # 项目记忆
- ├── project-context.md
- ├── conventions.md
- ├── architecture.md
- └── common-pitfalls.md
-```
-
-**团队共享配置示例:**
-
-::: details 点击查看 settings.json
-
-```json
-{
- "hooks": {
- "beforeEdit": ["npm run type-check"],
- "afterEdit": ["npm run lint"],
- "beforeCommit": ["npm run test"]
- },
- "permissions": {
- "allow": [
- "Bash(git status)",
- "Bash(git log:*)",
- "Bash(npm test:*)",
- "Edit(src/**/*.{ts,tsx})"
- ],
- "ask": [
- "Bash(git commit:*)",
- "Bash(git push:*)"
- ]
- }
-}
-```
-
-:::
-
-### 项目记忆系统
-
-**记忆系统结构:**
-
-- **project-context.md** - 项目整体上下文
-- **conventions.md** - 代码规范和约定
-- **architecture.md** - 架构设计说明
-- **common-pitfalls.md** - 常见陷阱和解决方案
-
-### 团队协作最佳实践
-
-| 实践 | 说明 | 实施方法 |
-| :--- | :--- | :--- |
-| **共享配置** | 将 .claude/ 加入版本控制 | `git add .claude/` |
-| **文档规范** | 在 memory/ 中记录项目约定 | 每次架构决策更新文档 |
-| **代码审查** | 用 Claude 辅助 Code Review | 提交前运行审查 |
-| **统一 Hooks** | 团队使用相同的 pre-commit hooks | 配置在 settings.json |
-| **知识同步** | 定期更新项目记忆 | 每迭代更新一次 |
-
-## CI/CD 集成
-
-将 Claude Code 集成到 CI/CD 流程中,可以实现自动化的代码审查、测试生成、安全检查等。
-
-### GitHub Actions 集成
-
-#### 场景 1:PR 自动审查
-
-::: details 点击查看配置
-
-```yaml
-# .github/workflows/claude-review.yml
-name: Claude Code Review
-
-on:
- pull_request:
- types: [opened, synchronize]
-
-jobs:
- claude-review:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
-
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version: '20'
-
- - name: Install Claude Code
- run: npm install -g @anthropic-ai/claude-code
-
- - name: Run Claude Review
- env:
- ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- run: |
- CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.(ts|tsx|js|jsx)$' || true)
-
- if [ -z "$CHANGED_FILES" ]; then
- echo "No relevant files changed"
- exit 0
- fi
-
- claude "审查以下文件的变更:
- $CHANGED_FILES
-
- 检查维度:
- 1. 安全漏洞
- 2. 性能问题
- 3. 代码质量
-
- 输出格式:
- - 🔴 严重问题(阻塞)
- - 🟡 警告(建议修复)
- - 🟢 建议(可选)" \
- --output pr-review.md
-
- - name: Comment PR
- uses: actions/github-script@v7
- with:
- script: |
- const fs = require('fs');
- const review = fs.readFileSync('pr-review.md', 'utf8');
-
- const hasBlockingIssues = review.includes('🔴');
-
- const header = hasBlockingIssues
- ? '## ❌ Code Review 未通过\n\n'
- : '## ✅ Code Review 通过\n\n';
-
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: header + review
- });
-
- if (hasBlockingIssues) {
- core.setFailed('发现严重问题');
- }
-```
-
-:::
-
-#### 场景 2:部署前安全检查
-
-::: details 点击查看配置
-
-```yaml
-# .github/workflows/pre-deploy-security.yml
-name: Pre-deploy Security Check
-
-on:
- push:
- branches: [main]
-
-jobs:
- security-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version: '20'
-
- - name: Install Claude Code
- run: npm install -g @anthropic-ai/claude-code
-
- - name: Security Scan
- env:
- ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
- run: |
- claude "对代码进行全面的安全扫描:
-
- 检查以下安全问题:
- 1. SQL 注入漏洞
- 2. XSS(跨站脚本攻击)
- 3. CSRF(跨站请求伪造)
- 4. 敏感信息泄露
- 5. 不安全的依赖项
-
- 输出格式:
- - 🔴 高危漏洞(立即修复)
- - 🟡 中危漏洞(建议修复)
- - 🟢 低危漏洞(可选修复)" \
- --output security-report.md
-
- - name: Check for critical issues
- run: |
- if grep -q "🔴" security-report.md; then
- echo "发现高危安全漏洞!"
- cat security-report.md
- exit 1
- fi
-```
-
-:::
-
-### 本地 Pre-commit Hook
-
-::: details 点击查看配置
-
-```bash
-#!/bin/bash
-# .git/hooks/pre-commit
-
-set -e
-
-echo "🔍 运行 Claude Code 预提交检查..."
-
-STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(ts|tsx|js|jsx)$' || true)
-
-if [ -z "$STAGED_FILES" ]; then
- echo "✅ 没有需要检查的代码文件"
- exit 0
-fi
-
-claude "对以下文件进行快速检查:
-$STAGED_FILES
-
-检查项目:
-1. 明显的语法错误
-2. 类型错误
-3. 明显的安全问题
-4. 代码风格问题
-
-如果发现严重问题,返回非零退出码。" \
- --strict || {
- echo "❌ 预提交检查失败"
- exit 1
- }
-
-echo "✅ 预提交检查通过!"
-```
-
-:::
-
-### CI/CD 集成最佳实践
-
-**分层检查策略:**
-
-```text
-本地开发 → Pre-commit → PR 审查 → 合并前检查 → 部署前检查
- ↓ ↓ ↓ ↓ ↓
- 快速检查 基础检查 深度审查 全面检查 安全检查
- (1-2秒) (10-30秒) (1-2分钟) (3-5分钟) (5-10分钟)
-```
-
-**成本控制:** 只在必要时运行 Claude 检查,通过条件判断避免不必要的 API 调用。
-
-## 工作流速查表
-
-| 场景 | 命令/操作 |
-| :--- | :--- |
-| **开始新功能** | `@directory src/` 了解项目结构 |
-| **查找代码** | `@grep "functionName"` |
-| **理解代码** | 直接描述代码文件让 Claude 解释 |
-| **重构代码** | 描述重构需求,让 Claude 制定计划 |
-| **修复 Bug** | 提供错误信息和复现步骤 |
-| **代码审查** | 让 Claude 审查指定文件或目录 |
-| **生成测试** | "为 xxx 文件生成单元测试" |
-| **提交代码** | `/commit` |
-
-## 总结
-
-掌握这些工作流后,你会发现:
-
-1. **日常开发**:用 @语法快速理解代码,让 Claude 处理重复工作
-2. **代码重构**:让 Claude 制定计划,逐步验证
-3. **Code Review**:自动发现潜在问题,提高代码质量
-4. **团队协作**:共享配置和记忆,保持团队一致性
-5. **CI/CD**:将 Claude 集成到自动化流程中
-
-**核心原则:**
-- 让 Claude 做它擅长的事:理解代码、生成代码、发现问题
-- 你做决策:审查结果、做架构选择、把控方向
-- 逐步信任:从简单任务开始,建立对 Claude 的信任
-- 持续优化:根据项目特点调整工作流