Book 序言:为什么要把这些分析整理成一本书
第一部分:导言

序言:为什么要把这些分析整理成一本书

从这本书的目标、边界和阅读方式开始,明确它不是零散专题合集,而是一条围绕 Claude Code 运行时展开的主线。

前面这批专题文档,已经把 Claude Code 的很多局部都拆开了。

但“拆开”不等于“读懂”。

如果只是做研究笔记,专题化拆分已经够用了;可如果目标是更进一步:

  • 真正吃透 Claude Code 的设计思路
  • 把这份源码里有迁移价值的部分尽量榨干
  • 最后把它翻成一套 C# 运行时

那就需要再做一步,把这些结论从“并列的专题”收束成“一条能顺着走的主线”。

现在这本书已经把那一步做完了。

1. 这本书不解决什么

先把边界说清楚,避免读到一半期待错位。

这本书不打算做这几件事:

  • 不逐行解释所有源码文件
  • 不假装这份快照是完整 monorepo
  • 不把每一条推断都包装成确定事实
  • 不追求和官方文档一样“面向使用者”

它现在更像一本:

面向实现者的 Claude Code 运行时设计书。

换句话说,读这本书时你最好带着下面这种问题意识:

  • Claude Code 到底把哪些东西当 runtime 来做
  • 哪些抽象值得在 C# 里原样保留
  • 哪些只是 TS/React/Ink 时代的宿主实现
  • 哪些地方是产品策略,哪些地方是工程骨架

2. 这本书真正想解决什么

这本书现在主要在回答三个问题。

2.1 它到底是什么

Claude Code 表面上长得像一个命令行工具。

但源码真正透露出来的东西是:

  • 它不是“会调模型的 CLI”
  • 它也不是“终端 UI 套一个 agent”
  • 它更接近一套长生命周期的 agent runtime

所以第一步,必须先把对象认清。

2.2 它到底怎么活起来

源码里最值钱的,不是某个单独工具,而是整条生命周期:

  • 启动
  • 建 session
  • 跑 turn loop
  • 调工具
  • 压缩上下文
  • 恢复会话
  • 热更新配置
  • 接远端 session

这条线一旦理顺,很多看似零散的文件就会自动归位。

2.3 它怎么迁成 C#

如果目标只是“懂”,那读完源码大概就够了。

但我们现在的目标更明确:

要把 Claude Code 的设计思想迁成一套 C# 版。

所以这本书会一直带着迁移视角。

每一章都会不断问同一个问题:

  • 这块在 C# 里应该叫什么
  • 应该拆成接口、服务还是宿主层对象
  • 哪些地方该保留
  • 哪些地方该换一种更适合 .NET 的组织方式

3. 这本书现在是怎么排的

整本书现在按六部分来排。

3.1 第一部分:导言

先建立整体判断:

  • 这份源码快照的边界是什么
  • Claude Code 的总体定位是什么
  • 它为什么应该被看成一个 runtime,而不是一个 CLI

3.2 第二部分:运行时主链路

这一部分是全书的主脊梁:

  • 启动和宿主模式怎么分流
  • query.ts 的 turn loop 怎么跑
  • 工具运行时和权限系统怎么接在一起

只要这部分吃透了,Claude Code 的“心脏”就差不多看见了。

3.3 第三部分:本地执行面

这部分看的是 Claude Code 最厚的一层本地能力面:

  • Bash 和本地文件工具
  • 搜索、Web、LSP、REPL 包装

也就是 Claude Code 真正落到本地工作区里干活的那一面。

3.4 第四部分:扩展与协作

这部分开始看 Claude Code 怎么把“一个 agent”扩成“一个会协作的 runtime”:

  • Agent、Skill、Task、MCP
  • 协作控制工具
  • 运行时辅助工具
  • 元工具层

也就是 Claude Code 真正往多主体、多控制面方向长出来的地方。

3.5 第五部分:会话续航与治理

Claude Code 之所以不像一次性 CLI,就因为它特别重视续航:

  • 附件和上下文注入
  • transcript、resume、compact、overflow recovery
  • bridge、remote、managed settings、policy、settings sync

这一部分决定它能不能活得久、跑得稳、被组织化治理。

3.6 第六部分:迁移与附录

最后一部分开始收束和补全:

  • 核心模块应该怎么映射到 C#
  • 全部工具怎么挂回总索引
  • 还剩哪些高价值模块值得继续挖

4. 读这本书时要记住的三个判断

为了避免读到后面又重新掉回“它是不是个 CLI”的直觉里,我建议一直记住下面三个判断。

4.1 它最值钱的不是某个工具,而是运行时组织方式

单看工具表,你能学到很多协议设计。

但 Claude Code 真正难抄、也真正值钱的,是它怎么把这些东西编织成一个会话 runtime。

4.2 它把“宿主外壳”和“对话内核”分开了

REPL、headless、bridge、remote attach,看起来很不一样。

但底下真正的会话、工具、上下文、权限、恢复逻辑,又尽量被压回同一套 runtime。

这对 C# 迁移非常重要。

4.3 它已经在往“会话系统”演化,而不是停留在本地 CLI

这句话在后面的章节里已经一遍遍出现:

  • transcript 是 journal
  • resume 是恢复管线
  • bridge 是环境宿主
  • remote attach 是会话投影
  • managed settings 是组织治理面

这些都说明它早就不是一个“只在本地 terminal 里转一圈”的工具了。

5. 读完这本书,你应该得到什么

读完当前这版书,你至少应该能带走这些东西:

  • 一张清楚的 Claude Code 总体地图
  • 一条从启动到 session 结束的主链路
  • 一套区分宿主层、运行时层、执行面、治理面的视角
  • 一份能直接转进 C# 的接口和模块拆法

如果这几件事能成立,那这本书就不是把笔记重新排版,而是真的把前面那堆研究材料组织成了一套可以落地的设计理解。