章节 6 / 29 · 课程总览 · 起始 17:53

章节主旨

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

核心论点

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

知识点详解

1. 先裸开发,再固化 CLAUDE.md 17:57

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

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

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

2. /init 生成高密度 CLAUDE.md 19:09

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

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

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

3. CLAUDE.md 作为 token 压缩层 23:15

是什么:有了 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

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

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

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

5. 反思提问 + lab notes 自沉淀 25:03

反思提问:作者在 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

价值放大:网站只是个刻意简化的例子;若把对象换成承载全部 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 里起什么作用?