用了一段时间 Claude Code,你脑子里大概已经攒了不少「结论」:
- CLAUDE.md 是建议,不是规定
- Skill 按需加载,装 500 个也只占一点地方
- 子代理只带回结论
- 权限规则按 deny → ask → allow 的顺序检查
- Hook 的
exit 2能拦下一次工具调用
这些结论大多来自官方文档和使用经验。它们是对的,但你不一定知道为什么。
这本书做一件事:把 Claude Code 拆开,去源码里找每个结论背后的那几行代码。每读完一块,就动手给一个 30 行的小 Agent 加上同样的功能。读完全书,你手上会有一个六百多行、真能干活的迷你版 Claude Code,下面简称 mini-cc。
这本书适合谁
- 用过 Claude Code,知道 CLAUDE.md、Skill、MCP、Hook 大概是什么
- 能看懂 Python,TypeScript 能连蒙带猜读下来就行
- 想知道「为什么」,而不只是「怎么用」
读过第一本《VibeCoding 体系化学习》会更顺,但不是必须。每节开头都有一个「前情提要」,把需要的结论先摆出来。
一、为什么要读源码

文档告诉你「是什么」,源码告诉你「为什么」。
举个例子。文档说 CLAUDE.md「不保证严格遵守」。可你明明在里面写了「必须」「绝对不要」,它为什么还是偶尔不听?
答案藏在一行代码里:CLAUDE.md 不在系统提示词里,而是作为一条用户消息发给模型的(第6节)。对模型来说,系统提示词是「入职时老板给的规矩」,用户消息是「对话里有人说的话」。话说得再重,位置决定了它的分量。
知道了这一点,很多问题你能自己推出来:
- 绝对不能发生的事,就不该只写在 CLAUDE.md 里,要交给权限规则和 Hook
- 重要的约束别和一堆杂项混在一起写
- 想要系统提示词级别的分量,得换一个入口
知道为什么,遇到文档没写到的情况,你才能自己推出该怎么做。
二、我们读的是什么:CCB
Anthropic 没有开源 Claude Code。
这本书读的是 CCB(claude-code-best-practice),一个社区项目。它把官方发布的安装包反编译、复原出来,整理成一个能运行、能调试的工程。
读的时候,你会到处看到三种写法,先认识一下:
| 你在源码里看到 | 意思 |
|---|---|
feature('XXX') |
编译期开关。官方对外发布时,关掉的功能连代码都会被删掉。CCB 打开了其中不少,所以你能看到很多官方版里没有的功能 |
process.env.USER_TYPE === 'ant' |
内部员工分支。ant 指 Anthropic 员工,他们用的 Claude Code 和你的不完全一样 |
getFeatureValue_CACHED_MAY_BE_STALE('tengu_xxx') |
远程开关。Anthropic 可以在服务端给不同用户打开不同的行为 |
因为是复原的代码,读的时候记住三条:
- 看设计思路,别背参数。 具体的数字、开关的默认值,以官方文档为准
- CCB 改过的地方,书里会标出来。 比如第6节会讲到,CCB 改了 CLAUDE.md 进入上下文的方式
- 书里的源码都是简化过的示意。 只留主干,帮你看懂设计;就算哪天 CCB 仓库看不到了,书里的结论和 mini-cc 照样成立
这是一份复原的源码:用它理解设计,不要把它当成规格说明书。
三、五层架构:一次回车经过哪几层

整个 Claude Code 可以分成五层: