代码语言
选择后全站课程跟随

前言

3,036 字 · 预计阅读 9 分钟

用了一段时间 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 可以在服务端给不同用户打开不同的行为

因为是复原的代码,读的时候记住三条:

  1. 看设计思路,别背参数。 具体的数字、开关的默认值,以官方文档为准
  2. CCB 改过的地方,书里会标出来。 比如第6节会讲到,CCB 改了 CLAUDE.md 进入上下文的方式
  3. 书里的源码都是简化过的示意。 只留主干,帮你看懂设计;就算哪天 CCB 仓库看不到了,书里的结论和 mini-cc 照样成立

这是一份复原的源码:用它理解设计,不要把它当成规格说明书。


三、五层架构:一次回车经过哪几层

五层架构各自承担不同职责

整个 Claude Code 可以分成五层:

本文是会员内容

全文 3,036 字,已试读约 30%。 开通专业版可阅读全文,并解锁全部课程与后续更新。

开通专业版

支持 7 天无理由退款 · 早鸟期前 500 名自动升级永久卡

下一节:Agent Loop