1.1任务分解原则--MECE:

举例:“构建一个博客系统”

MECE(Mutually Exclusive,Collectively Exhaustive)是一个管理咨询中常用的概念,意思是“相互学习,完全穷尽”。

构建博客系统:

├─1.用户系统(注册、登录、个人资料)

├─2.文章系统(创建、编辑、删除、列表)

├─3.评论系统(发表、删除、回复)

├─4.分类标签(创建分类、打标签、按分类筛选)

└─部署上线(打包、配置服务器、域名)

这五个任务之间互不重叠(相互独立),合并在一起覆盖了博客系统的全部功能

1.2规范驱动开发SDD

规范是你和AI之间的“合同”

  • 要怎么做(功能需求)

  • 怎么做(技术需求)

  • 做到什么程度(质量需求)

1.2.1需求规范:PRD文档

PRD(Product Requirements Document,产品需求文档)描述的是“要做什么”。

用户故事(User Story)格式:

做为一个[角色],
我希望[功能],
以便[价值/目的]。

例如:

作为一个博客读者,
我希望能按标签筛选文章,
以便快速找到我感兴趣的内容。

验收标准(Acceptance Criteria)格式:

Given(前提条件):系统中有20篇文章,其中5篇标记了"python"标签
When(操作):用户点击"pyhton"标签
Then(预期结果):页面只显示5篇标记了"python"标签的文章

用AI辅助生成PRD的Prompt(提示词):

我想做一个个人书签管理工具。
​
请帮我生成一份完整的PRD文档,包括:
1.项目概述(一句话描述)
2.目标用户
3.核心功能列表(按优先级排列:Must Have/Should Have/Nice have)
4.每个功能的用户故事和验收标准
5.非功能需求(性能、安全、兼容性)
​
请用Markdown格式输出

1.2.2技术规范:SPEC文档

SPEC(Technical Specification,技术规范文档)描述的是“怎么做”。

一个完整的SPEC文档包含:

模块 内容 说明
系统结构 整体架构设计图 前后端如何交互
技术选型 使用什么技术和框架 比如Nest.js+Prisma+SQLite
数据模式 数据库表结构设计 有哪些表、每个表有哪些字段
API接口 接口定义 每个API的URL、请求参数、返回格式
目录结构 项目文件组织 代码放在哪个文件夹

让AI从PRD自动生成SPEC的Prompt:

基于以下PRD文档,请生成对应的技术规范文档(SPEC):
​
[粘贴你的PRD内容]
​
要求:
1.推荐技术选型并说明理由
2.设计完整的数据模型(包含字段类型和关系)
3.列出所有API接口(RESTful风格)
4.给出建议的项目目录结构

1.2.3质量规范

质量规范定义了“做到什么程度算合格”:

  • 编码规范:代码风格统一、命名规则、注释要求

  • 测试规范:需要覆盖哪些测试场景

  • 安全规范:输入验证、认证授权、数据保护

1.2.4规范文件的组织与管理

建议在项目根目录下创建一个spcs/文件夹,统一管理规范文件:

my-project/
├─specs/
│   ├─PRD.md            #产品需求文档
│   ├─SPEC.md           #技术规范
│   ├─ARCHITECTURE.md   #架构设计
│   └─API.md            #API接口文档
├─src/                   #源代码
├─CLAUDE.md              #给Claunde Code的项目说明
└─package.json

规范文件最大的价值之一是——可以直接作为AI工具的上下文输入。

1.3本部分小结

核心概念回顾

概念 一句话解释
AI辅助编程
Vibe Coding 跟着感觉走的编程方式,适合快速原型和小项目
Agentic Engineering 系统化的AI驱动开发方式,适合大型项目
Agent(智能体) 能自主规划、执行、验证任务的AI系统
SDD(规范驱动开发) 先写规范(PRD/SPEC),再让AI安规范执行
PRD 产品需求文档,描述“做什么”
SPEC 技术规范文档,描述“怎么做”

三者的关系

vibe coding(感觉驱动)
    项目变大、需要更多控制
Agentic Engineeering(系统化方法)
    需要精准的沟通“合同”
SDD(规范驱动开发)

2.1Harness体系

官方反复强调一个观点:决定claude code表现的,不只是背后的模型,还有围绕模型搭建的“脚手架Harness”。

  • 理解方式:模型能力决定下限,项目上下文、工具权限、规范文件和工作流决定上限。实际生产中,围绕模型搭建的工具生态会显著影响最终表现

本教程把Claude Code的工程化能力抽象成7个扩展点,建议按“从底到顶”的顺序理解——先打好上下文和规则基础,再接入更复杂的外部工具:

  • 图:Harness的7层扩展点——下三层是“纪律”(项目上下文、钩子、知识),上四层是“武器”(包分发、IDE、外部、子代理)

组件 作用 加载时机
CLAUDE.md 项目上下文文件(项目背景、约定、禁区) 每次会话自动加载
Hooks 会话生命周期钩子(启动/结束/文件写入等事件) 事件触发
skills 可复用的任务法论(如“代码审查””部署“) 按需加载
Plugins 打包一整套Skills+Hooks+MCP配置 装上后始终生效
LSP(语言服务器) 给AI装上“跳到定义/查找引用”等IDE级导航 始终生效
MCP服务器 打通Claude与外部工具(数据库、文档、票务系统) 始终生效
Subagents(子代理) 独立上下文窗口Claude实例,只返回结论 任务发出时创建
  • 注意:顺序重要!初学者不要在基础还没搭好时就急着上MCP或Subagents。先把CLAUSE.md、Hooks、Skills这三层基本功做好。

2.1.1Codex与Claude Code核心对比:

维度 Codex Claude Code
开源 CLI开源(Apache2.0) 否(闭源)
安全模式 sandbox+approval mode 权限规划与模式配置
指令文件 AGENTS.md(开放标准) CLAUDE.md(专用)
配置文件格式 TOML JSON
模型生态 GPT系列+任意 OpenAI兼容 Claude系列+Anthropic兼容接口
国内Coding Plan 需要自行配中转 国内厂商原生支持

2.1.2claude.md模板

第一层记忆

#项目名称
​
##项目概述
一句话描述这个项目做什么。
​
##技术栈
-前端:Next.js 14+TypeScript+Tailwind CSS
-后端:Next.js API Routes
-数据库:Prisma+SQLite
-部署Vercel
​
##项目结构
'''
src/
├─ app/             #Next.js App Router 页面
│   ├─ api/         #API 路由
│   ├─ layout.tsx   #全局布局
│   └─ page.tsx     #首页
├─ components/      #React 组件
│   ├─ ui/          #通用UI组件
│   └─ features/    #业务组件
├─lib/              #工具函数和配置
├─prisma/           #数据库 schema 和迁移
└─types/            #TypeScript 类型定义
'''
##编码规范
-使用函数式组件 + React Hooks
-组件文件使用PascalCase命名(如 Bookmarkcard.tsx)
-工具函数使用camelCase命名
-API路由返回统一格式:{success:boolean,data?:any,error?:string}
​
##当前开发状态
-项目初始化完成
-数据库Schema设计完成
-书签CRUD API开发中
-前端页面待开发
-搜索功能待开发
​
##注意事项
-SQLite数据库文本在prisma/dev.db,不要提交到Git
-环境变量在.env文件中,不要提交到Git
-所有新功能先创建Git分支再开发

两个官方推荐的创建姿势:

  • /init创建项目级:在项目根目录下运行claude后输入/init,cc会自动扫描项目并生成一份CLAUDE.md初稿,你再调整。

  • /memory编辑全局级:在cc会话里输入/memory选择“全局CLAUDE.md”,会用默认编辑器打开该文件供你修改。修改后需重启cc才能生效。

最佳实践:

  1. 保持更新:项目级CLAUDE.md应该动态的——项目加了功能、踩了坑、就同步更新。

  2. 足够具体:技术栈写明具体版本号,目录结构要与实际一致。

  3. 写明禁忌:把“不要做什么”也写清楚(如“不要修改数据库迁移文件”)。

  4. 适度简洁:不要写成论文,AI需要的是关键信息而非赘述。

  5. 只放“顶层不变原则”:随着实践你会发现,CLAUDE.md不该塞太多。如卡帕西发布的[claude.skills],写点“顶层、不变、须严守”的东西就够了。

    https://github.com/multica-ai/andrej-karpathy-skills

第二层记忆:Auto Memory(cc自己的笔记本)

如果说CLAUDE.md是你主动立下的规矩,那Auto Memory就是cc在干活过程中默默记下的设计笔记。

如何启动:

#在cc会话中输入
/memory

#在弹出的菜单里选择第一个选项“启用Auto Memory”
#启用后菜单里会多出“打开自己记忆文件夹”选项

Auto Memory会记哪几类东西:

类型 含义 举例
user 关于你 你的角色、偏好(如“不喜欢深色UI”)
feedback 你给过的反馈 “不要这样做”、“对,就这样”
project 项目相关 进度、决策、技术选型
reference 外部资源索引 “某份设计文档在docs/design.md”

使用手感:

  • 它只在当前项目生效(文件存在项目目录下),换项目需重新积累

  • 启用后cc不会每次都把所有记忆全部加载进上下文,只会读一份memory.md索引——遇到问题才会取读对应的子文件,占token很少

  • 随时可以用快捷键crtl+o在会话框中查看实际被调用过的记忆内容

  • 记错了就跟它说:“忘掉刚刚说的不喜欢深色主题”,它会自己删掉

第三层记忆:自建参考文档(渐进式披露)

除了上面两层,你还可以仿照Skill的“渐进式披露”机制为cc手动打造一套专项参考文档。

应用场景:某些东西不适合全部塞进CLAUDE.md(太长、太专门),但cc需要的时候必须能查到。比如做个产品,你希望:

  • 品格视觉规范:颜色、字体、间距→docs/brand-visual.md

  • 产品文本风格:语调、术语表→docs/copywriting-style.md

  • API约定:请求响应格式、错误码→docs/api-conventions.md

然后在CLAUDE.md里加上指引:

##外部参考文档

-修改前端视觉、调颜色、调间距时→必读"docs/brand-visual.md"
-写产品文案、按钮文字、提示语时→必读"docs/copywriting-style.md"
-写API、定义返回格式时→必读"docs/api-conventions.md"

这样cc只在”需要的时候“才去读完整文档,既保证了准确性,又不占多余上下文。

claudeignore文件

类似于.gitignore,用来告诉Claude Code哪些文件/目录不需要关注:

#.claudeignore示例

node_modules/    #依赖包目录(太大了,AI不需要看)
.next/           #Next.js构建产物
dist/            #编译输出
*.log            #日志环境
.env             #环境变量(包含敏感信息)

2.2核心命令与日常使用

2.2.1启动与基本交互

#最基本启动方式
$claude

#指定项目目录启动
$claude --project-dir /path/to/your/prooject

#使用指定模型启动
$claude --model sonnet

2.2.2核心命令详解

命令 作用 使用场景
/help 显示帮助信息 忘记命令时查看
/model 查看/切换当前模型(高/中/低档) 需要换用更强/更快的模型时
/compact 压缩当前对话的上下文 对话时间太长,AI开始”遗忘“早期内容时
/clear 完全清空当前对话 开始全新的任务时
/context 详细查看上下文占比(各MCP/Skill各占多少) 优化token、诊断哪里挨上下文
/memory 查看/编辑CLAUDE.md与自动记忆 管理项目/全局记忆、开启Auto Memory
/status 查看会话状态 确认模型、Token消耗
/cost 查看当前会话费用 监控花了多少钱
/review 对当前项目进行代码审查 完成功能后检查质量
/init 自动生成项目的CLAUDE.md 进入新项目后的第一件事
/plan 切入Plan Mode(只读规划模式) 复杂任务起手
/rewind 回滚cc之前的修改 ”后悔药“
/resume 选择历史会话恢复 上次话题还没聊完
/btw ”顺便问一句“,不污染主上下文 主任务进行中想问个无关问题

2.2.3快捷键速查

快捷键 作用
Enter 发送消息/确认信息
Shift+Enter 也是发送
option+Enter(mac) 换行输入
Ctrl+Enter(Windows) 换行输入
Ctrl+C 中断当前操作
Esc 取消正在生成的内容
Esc * 2(双击) 启动/rewind回滚界面
Shift+Tab 三种运行模式循环切换(Normal/Auto-Accept/Plan)
↑/↓ 浏览历史消息
Ctrl+B 让当前运行的命令到后台跑(不阻塞对话)
Ctrl+O 查看Auto Memory记录的具体内容

2.2.4扩展管理命令

命令 作用 使用场景
/skill <名称> 直接调用某一个Skill 手动代理,不要等AI自己决定
/agent 创建、查看、调用子代理(SubAgent) 手工创建专项SubAgent
/plugun 插件管理界面(discover/installed) 发现、安装、卸载插件
/login 使用Claude官方订阅会员登录 有Claude Pro/Max会员时首选
/simplify 派3个子agent从代码质量/性能/复用性三个角度优化 快速全面优化已有代码

2.3Claude Code实战工作流

2.3.1官方推荐工作流:explore→Plan→Implement→Commit

Claude Code的常见推荐工作流可以概括为四阶段:

  1. Explore(探索):Plan Mode下读代码、搜引用,搞清楚现状

  2. Plan(规划):出方案、评估边界情况,你审核

  3. Implement(实施):切出Plan Mode,按方案执行

  4. Commit(提交):生成Commit message,提交

一轮结束后,回到第一步开始下一个任务。

各阶段详解:

阶段 你该做什么 AI在做什么 推荐模式
①Explore(探索) 告诉AI要改动的区域 读取相关文件、grep、跟引用 Plan Mode
②Plan(规划) 让AI出详细方案并由你审核 生成计划、评估边界情况 Plan Mode
③Implement(实施) 切出Plan Mode按计划执行 按顺序修改文件、运行构建 Normal/Auto-Accept
④Commit(提交) 让AI生成提交消息并commit 生成commit message、可选开PR Normal

2.3.2项目设置(6个应该习惯性做的动作)

在开始一个新项目之前,完成一下6项设置能让后续开发顺利多倍:

step1:项目初始化
  ↓ 描述项目目标 → AI生成项目骨架
step2:建立CLAUD.md(项目上下文)
  ↓ 可运行'/init'让AI自动生成
step3:配置权限与默认模式
  ↓ .claude/settings.json、复杂项目可以默认Plan模式
step4:功能开发
  ↓ 一次一个功能,逐个Explore → Plan →Implement
step5:代码审查与测试
  ↓ 用 /review 让AI生成测试并跑起来
step6:提交代码
  ↓ git commit 保存进度

2.4Claude Code最佳实践

2.4.1Prompt编写技巧

1.任务描述要具体,不要模糊

差:帮我做一个登录功能
好:在/api/auth/目录下创建登录API:
  -POST /api/auth/login
  -接受{email,password}
  -使用bcrypt验证密码
  -成功返回JWT token
  -使用项目已有的prisma client查询User表

2.引用已有代码作为参考

好:参考/api/bookmarks/route.ts的风格
  为/api/tags/创建类似的CRUD接口
  数据模型参见prisma/schema.prisma中的Tag表

3.先让AI制定计划,确认后再执行

好:我想给书签管理器添加搜索功能。
  请先分析一下需要修改哪些文件,列出计划,
  等我确认后再开始实现。

4.一次只做一件事

差:帮我同时添加搜索功能、标签管理、用户认证和导出功能
好:帮我先实现书签搜索功能。具体要求:
  -在书签列表页面添加搜索框
  -支持按标题和描述搜索
  -搜索实时过滤结果(前端过滤即可)
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐