
📌 本篇核心认知:CLAUDE.md 不是给人看的说明文档,而是给 Claude 用的项目级配置文件。理解这个区别,是用好 Claude Code 的第一步。
如果你正在用 Claude Code 开发一个内容型知识库项目——比如一个 Markdown 驱动的技术文档站、一个 FAQ 知识库、或者一个公众号素材管理系统——你大概率经历过这样的场景:
每次打开 Claude Code,开始一个新会话,你都要交代一遍项目背景:
"这个项目是一个内容型知识库,用 Next.js + TypeScript 搭建,内容源文件全部在 content/ 目录下,
用 Markdown 写,每篇有 frontmatter,包含 title、slug、category、tags 这些字段。
构建的时候会先解析内容,生成索引,然后渲染页面。对了,slug 不能随便改,因为它直接关联 URL 和搜索索引……"
说完这段,Claude 终于"理解"了你的项目。然后你让它改一篇内容的分类字段,它改得很好。
第二天,新会话。一切归零。
你又要从头解释一遍。
这还不是最糟的。最糟的是——有时候你忘了交代某个关键约束(比如"slug 不能改"),Claude 就真的把 slug 改了,导致页面 URL 断裂、搜索索引失效、内链全部 404。
你花了半小时排查,才发现问题出在"你没提醒它"。
这个场景每天都在无数开发者的工作流里重复发生。
而 CLAUDE.md,就是为了终结这个问题而存在的。
大多数开发者第一次听到 CLAUDE.md,会本能地把它和 README.md 归为一类——"不就是个项目说明文件嘛"。
这个理解是错的。而且这个错误认知,是导致很多人用不好 CLAUDE.md 的根本原因。
CLAUDE.md 和 README.md 最本质的区别在于:
README.md 是写给人看的。
它假设读者是一个新加入项目的人类开发者,需要了解项目背景、怎么安装、怎么运行、架构是什么样。它追求的是"全面"和"可读性"。
CLAUDE.md 是写给 Claude Code 用的。
它假设读者是一个 AI 协作代理,需要在进入项目的第一秒就知道:
它追求的不是"全面",而是高信号密度——每一条信息都应该直接影响 Claude 的行为质量。