---
title: '06 启动新项目'
video_id: UPtmKh1vMN8
part: 6
---

> 章节 6 / 29 · [[00-总览|课程总览]] · 起始 [17:53](https://youtu.be/UPtmKh1vMN8?t=1073)


## 章节主旨

演示接手一个已有代码但没有 CLAUDE.md 的项目时，作者的标准起手流程：先裸跑一阵，再用 `/init` 生成 CLAUDE.md 当作项目的压缩记忆层，然后在开发中不断把偏好和错误教训沉淀回这个文件。

## 核心论点

1. **别过早写 CLAUDE.md**——先不带任何系统提示裸开发一段时间，摸清 Claude 开箱能力后再固化约定。([[#1-先裸开发再固化-claudemd-1757|→ 详解1]])
2. **`/init` 把整个 workspace 压成一份高信息密度摘要**，用可控的「不够全面」换极高的信息密度。([[#2-init-生成高密度-claudemd-1909|→ 详解2]])
3. **CLAUDE.md 的本质是 token 压缩层**：它让每次提问省掉一轮 agentic 全盘检索，而 context 越长质量往往越低。([[#3-claudemd-作为-token-压缩层-2315|→ 详解3]])
4. **偏好要迭代注入**，边开发边把「我要你怎么做」写进 CLAUDE.md，让下次不必重复交代。([[#4-迭代注入个人偏好-2353|→ 详解4]])
5. **让 Claude 反思并自记错误**：用「怎样能更快更省」提问 + meta prompt 让它把教训写成 lab notes。([[#5-反思提问--lab-notes-自沉淀-2503|→ 详解5]])

## 知识点详解

### 1. 先裸开发，再固化 CLAUDE.md [17:57](https://youtu.be/UPtmKh1vMN8?t=1077)

是什么：接手一个已有一些代码、但没有 CLAUDE.md、也没有任何 System Prompt Harness 的项目，作者的第一步不是急着写配置，而是先在没有 CLAUDE.md 的状态下正常开发一阵子。

为什么：Claude 开箱即用已经很强，官方还在把越来越多能力做进原生。真正的智能来自模型本身，harness 只是与之协作，过早把主观意见「烤进」CLAUDE.md 反而会束缚它。

怎么用：先裸跑，感受默认行为的边界；等你对项目和 Claude 的默认表现都有体感了，再开始沉淀约定，避免一上来就写一堆自以为是的规则。

### 2. `/init` 生成高密度 CLAUDE.md [19:09](https://youtu.be/UPtmKh1vMN8?t=1149)

是什么：在项目里执行 `/init`，Claude 会读遍 workspace 的每个文件，末尾产出一份高度优化的 CLAUDE.md。

内容涵盖：构建 / dev / lint 命令、架构概览、关键依赖及其角色、代码风格约定，甚至标注「本项目无测试框架」这类事实。

原理：它把整个 workspace 逐行内容大幅提升信息密度，代价是牺牲了完整全面性——你得到的是一份「一切的摘要」，而非逐字复刻。作者提到用 fast mode 跑 `/init` 会更快。

### 3. CLAUDE.md 作为 token 压缩层 [23:15](https://youtu.be/UPtmKh1vMN8?t=1395)

是什么：有了 CLAUDE.md 这份摘要后，下次问关于项目的问题，Claude 无需再逐文件跑一遍 Agentic Search，直接读摘要即可。

对比实测：问「我对 dark mode 的偏好是什么」，没有 CLAUDE.md 时它要发起 agentic 检索翻遍 readme 才在 gemini.md 里找到，一条工具链耗掉约五六千 token；写进 CLAUDE.md 后再问，`/context` 只占 0.2%。压缩比同样惊人：app.jsx 约 827 词≈1100 token，CLAUDE.md 里对应描述仅 22 token，约 45 倍压缩。

为什么重要：Token 与输出质量成反比——context window 里 token 越多，不仅越费钱，输出质量通常越低。因此把项目信息压进 CLAUDE.md，既省钱又提质，是双赢。

### 4. 迭代注入个人偏好 [23:53](https://youtu.be/UPtmKh1vMN8?t=1433)

是什么：`/init` 不是终点，作者接着把自己的使用偏好一条条写进 CLAUDE.md。

举例：他发现「visualize app」时 Claude 只启动 dev server 给个链接、还得他再手动点开，于是让它把「当我说跑 dev server 或打开 app 时，直接在我的 Chrome 实例里帮我打开」存进 CLAUDE.md。下次它就会自动开浏览器，而不是甩个链接。

怎么用：在开发中一旦某个交互让你觉得别扭，就即时把期望行为固化成一条偏好。作者建议把这类偏好归到 CLAUDE.md 的 user preferences 小节，长期维护一份变更日志。

### 5. 反思提问 + lab notes 自沉淀 [25:03](https://youtu.be/UPtmKh1vMN8?t=1503)

反思提问：作者在 Claude 完成任务后追问一句「你怎样能更快、用更少 token 达成刚才这一切？」。例如它刚才用 20 次 sequential edit 逐行改 CSS 花了约 30 秒，反思后得出：应先读整个文件、在脑中重写、再用一次 write 整体替换 index.css。然后让它把这条经验存进 CLAUDE.md 的 user preferences。

meta prompt / lab notes：作者惯用的做法是在 CLAUDE.md 里放一条 Meta Prompt：每当你犯错，就把「下次不要再试的事」追加进一份 running log。执行后 CLAUDE.md 里就多出一个「lab notes / what not to do」小节，像研究者的实验笔记，记录失败与学习，供未来的 Claude 实例参考。[25:50](https://youtu.be/UPtmKh1vMN8?t=1550)

价值放大：网站只是个刻意简化的例子；若把对象换成承载全部 SOP、日常工作、待办的业务 workspace，这套「压缩摘要 + 偏好 + 错误日志」会在开发与生产力各层面都极有价值。

## 术语

- `/init`（Claude Code 内置命令，读遍 workspace 生成 CLAUDE.md 摘要）
- CLAUDE.md（项目根的记忆 / 约定文件，充当上下文压缩层）
- fast mode（更快的运行模式，作者用它加速 `/init`）
- meta prompt（写进 CLAUDE.md 的元指令，规定 Claude 犯错后如何自我记录）
- lab notes（CLAUDE.md 里的「不要再做的事」运行日志小节）
- dev server（npm run dev 等启动的本地开发服务器）

## 自检问题

1. 作者为什么建议接手新项目时先不写 CLAUDE.md？
   
2. CLAUDE.md 省 token 的机制是什么？用课里的数字说明。
   
3. 「怎样能更快更省 token」这类反思提问有什么用？举课里的例子。
   
4. meta prompt / lab notes 在 CLAUDE.md 里起什么作用？
   