LAYER 01 · 建立全局直觉
如何读这座源码城市
从生成目录到 package README,再到类型与事件;避免从 index.ts 盲目下钻
图 → 契约 → 生产方/消费方 → 实现读一个大型 Agent 仓库,先搜函数名还是先找契约?
先建立直觉
维修复杂设备时,先看线路图和接口表,再拆机;直接从一颗螺丝追踪,通常只会迷失在局部。
MECHANISM
机制拆解
DeepSeek Harness 的 docs/ 已生成模块图、能力 seam 图、事件生产消费矩阵、持久化事件目录和配置目录;它们把源码中分散的声明编译成可查询索引。
阅读顺序应当是:确定职责 → 找 service/event 契约 → 找 provider 与 consumer → 最后进入具体实现与测试。
第 1 步 / 共 4 步
定位图谱
从 graph-atlas 选择模块、服务、事件或持久化视角。
INVARIANTS
无论怎么扩展,都不能破坏
- 文档中的生成区块必须与源码同步
- 示例解释必须标明对齐的 upstream commit
- 推断与源码事实要明确区分
FAILURE MODES
最容易踩中的坑
- ×复制过时博客里的包名
- ×只读 happy path,不读取消与 dispose
- ×看到一个 provider 就以为它是唯一实现
VERIFY IN SOURCE
不要相信结论,去源码里复核
以下链接固定到官方 deepseek-harness@47f9438;查看当前上游时请留意后续 breaking changes。
KNOWLEDGE CHECK
先停十秒,再揭晓答案
为什么应当先找 consumer,再判断一个 service 的真实职责?
为什么下一章紧接在这里
带着这套方法进入 Cordis:先从 Context 这张协作面开始。