Learn Claude Code
Back To Learning Path
Deep Dive

Teaching Scope

When This Page Helps

What this repo teaches, what it deliberately leaves out, and why.

這份文件不是講某一章,而是說明整個教學倉庫到底要教什麼、不教什麼,以及每一章應該怎麼寫才不會把讀者帶偏。

這份倉庫的目標

這不是一份“逐行對照某份原始碼”的註釋倉庫。

這份倉庫真正的目標是:

教開發者從 0 到 1 手搓一個結構完整、高保真的 coding agent harness。

這裡強調 3 件事:

  1. 讀者真的能自己實現出來。
  2. 讀者能抓住系統主脈絡,而不是淹沒在邊角細節裡。
  3. 讀者對關鍵機制的理解足夠高保真,不會學到不存在的機制。

什麼必須講清楚

主線章節必須優先講清下面這些內容:

  • 整個系統有哪些核心模組
  • 模組之間如何協作
  • 每個模組解決什麼問題
  • 關鍵狀態儲存在哪裡
  • 關鍵資料結構長什麼樣
  • 主迴圈如何把這些機制接進來

如果一個章節講完以後,讀者還不知道“這個機制到底放在系統哪一層、儲存了哪些狀態、什麼時候被呼叫”,那這章就還沒講透。

什麼不要佔主線篇幅

下面這些內容,不是完全不能提,而是不應該佔用主線正文的大量篇幅

  • 打包、編譯、釋出流程
  • 跨平臺相容膠水
  • 遙測、企業策略、賬號體系
  • 與教學主線無關的歷史相容分支
  • 只對特定產品環境有意義的接線細節
  • 某份上游原始碼裡的函式名、檔名、行號級對照

這些內容最多作為:

  • 維護者備註
  • 附錄
  • 橋接資料裡的平臺擴充套件說明

而不應該成為初學者第一次學習時的主線。

真正的“高保真”是什麼意思

教學倉庫追求的高保真,不是所有邊角細節都 1:1。

這裡的高保真,是指這些東西要儘量貼近真實系統主幹:

  • 核心執行模式
  • 主要模組邊界
  • 關鍵資料結構
  • 模組之間的協作方式
  • 關鍵狀態轉換

換句話說:

主幹儘量高保真,外圍細節可以做教學取捨。

面向誰來寫

本倉庫預設讀者不是“已經做過複雜 agent 平臺的人”。

更合理的預設讀者應該是:

  • 會一點程式設計
  • 能讀懂基本 Python
  • 但沒有系統實現過 agent

所以寫作時要假設:

  • 很多術語是第一次見
  • 很多系統設計名詞不能直接甩出來不解釋
  • 同一個概念不能分散在五個地方才拼得完整

每一章的推薦結構

主線章節儘量遵守這條順序:

  1. 這一章要解決什麼問題
  2. 先解釋幾個名詞
  3. 最小心智模型
  4. 關鍵資料結構
  5. 最小實現
  6. 如何接到主迴圈裡
  7. 初學者最容易犯的錯
  8. 教學邊界

這條順序的價值在於:

  • 先讓讀者知道為什麼需要這個機制
  • 再讓讀者知道這個機制到底是什麼
  • 然後馬上看到它怎麼落地

這裡把最後一節寫成 教學邊界,而不是“繼續補一大串外圍複雜度清單”,是因為教學倉庫更應該先幫讀者守住:

  • 這一章先學到哪裡就夠了
  • 哪些複雜度現在不要一起拖進來
  • 讀者真正該自己手搓出來的最小正確版本是什麼

術語使用規則

只要出現這些型別的詞,就應該解釋:

  • 軟體設計模式
  • 資料結構名詞
  • 併發與程序相關名詞
  • 協議與網路相關名詞
  • 初學者不熟悉的工程術語

例如:

  • 狀態機
  • 排程器
  • 佇列
  • worktree
  • DAG
  • 協議 envelope

不要只給名字,不給解釋。

“最小正確版本”原則

很多真實機制都很複雜。

但教學版不應該一開始就把所有分支一起講。

更好的順序是:

  1. 先給出一個最小但正確的版本
  2. 解釋它已經解決了哪部分核心問題
  3. 再講如果繼續迭代應該補什麼

例如:

  • 許可權系統先做 deny -> mode -> allow -> ask
  • 錯誤恢復先做 3 條主恢復路徑
  • 任務系統先做任務記錄、依賴、解鎖
  • 團隊協議先做 request/response + request_id

文件和程式碼要一起維護,而不是各講各的

如果正文和本地 agents/*.py 沒有對齊,讀者一開啟程式碼就會重新混亂。

所以維護者重寫章節時,應該同步檢查三件事:

  1. 這章正文裡的關鍵狀態,程式碼裡是否真有對應結構
  2. 這章正文裡的主迴路,程式碼裡是否真有對應入口函式
  3. 這章正文裡強調的“教學邊界”,程式碼裡是否也沒有提前塞進過多外層複雜度

最穩的做法是讓每章都能對應到:

  • 1 個主檔案
  • 1 組關鍵狀態結構
  • 1 條最值得先看的執行路徑

如果維護者需要一份“按章節讀本倉庫程式碼”的地圖,建議配合看:

維護者重寫時的檢查清單

如果你在重寫某一章,可以用下面這份清單自檢:

  • 這章第一屏有沒有明確說明“為什麼需要它”
  • 是否先解釋了新名詞,再使用新名詞
  • 是否給出了最小心智模型圖或流程
  • 是否明確列出關鍵資料結構
  • 是否說明了它如何接進主迴圈
  • 是否區分了“核心機制”和“產品化外圍細節”
  • 是否列出了初學者最容易混淆的點
  • 是否避免製造原始碼裡並不存在的幻覺機制

維護者如何使用“逆向原始碼”

逆向得到的原始碼,在這套倉庫裡應當只扮演一個角色:

維護者的校準參考。

它的用途是:

  • 校驗主幹機制有沒有講錯
  • 校驗關鍵狀態和模組邊界有沒有遺漏
  • 校驗教學實現有沒有偏離到錯誤方向

它不應該成為讀者理解正文的前提。

正文應該做到:

即使讀者完全不看那份原始碼,也能把核心系統自己做出來。

這份教學倉庫應該追求什麼分數

如果滿分是 150 分,一個接近滿分的教學倉庫應同時做到:

  • 主線清楚
  • 章節順序合理
  • 新名詞解釋完整
  • 資料結構清晰
  • 機制邊界準確
  • 例子可執行
  • 升級路徑自然

真正決定分數高低的,不是“提到了多少細節”,而是:

提到的關鍵細節是否真的講透,沒提的非關鍵細節是否真的可以安全省略。