跳到主要内容

ECC 源码拆解

本文档不是 ECC 的使用手册,而是一份“从文件如何协作”的源码导读。它回答:ECC 如何把工程规范、专用 agent、工作流 skill、生命周期 hook、选择性安装器和跨平台适配层组装成一个可持续运行的 Agent harness 操作系统。

先给结论

ECC(Everything Claude Code)最容易被误解成一个 Markdown 提示词包。源码真正实现的是一条更完整的控制链:

静态资产 → 解析/选择 → 目标适配 → 安装状态 → 会话加载
↑ ↓
学习/记忆 ← 生命周期 hook ← 工具调用 ← Agent 执行

agents/skills/commands/ 负责告诉模型“怎么做”;rules/ 负责持续约束;hooks/scripts/hooks/ 负责在工具和会话边界执行代码;manifests/scripts/install-*.js 负责把同一套资产投影到 Claude Code、Codex、Cursor、OpenCode、Gemini、Zed 等不同宿主。

本文档的分析范围

本拆解基于本地 ECC-main 快照的 VERSION=2.1.0,以目录和源码实际计数为准:

资产快照计数作用
agents67面向委派的角色提示词
顶层 skills281可按需加载的工作流/领域知识
commands94slash command 兼容入口
安装 modules34受依赖约束的安装单元
安装 profiles7minimal / core / developer / full 等组合
install components81面向用户的选择器(baseline、language、framework、capability 等)
hook 注册21hooks/hooks.json 中按事件分组的运行时入口
rule 文件122common 与语言/框架规则包

README 中的“281 skills”是产品口径;文件系统中 skills/ 的 281 个顶层目录包含 452 个文件,其中 22 个 skill 目录含配置或脚本等附加文件。计数不同不代表内容丢失,而是“能力目录数”和“物理文件数”两个维度。

推荐阅读顺序

  1. 总体架构:先建立层次与数据流。
  2. 内容模型:理解每种文件的职责边界。
  3. AgentsSkills:看知识如何被组织和委派。
  4. Hooks选择性安装器:看静态内容如何进入运行时。
  5. 跨平台适配记忆与学习安全治理:理解 ECC 的工程化护城河。

每章都按三个问题展开:是什么源码怎么做为什么这样设计。源码定位使用 ECC 上游仓库链接,便于读者对照最新版本;如果上游继续演进,应优先相信本地快照和具体文件,而不是文档里的数字。

如何使用这份拆解

  • 把章节当作源码导航,而不是替代源码。每个结论都尽量落到目录、配置或函数。
  • 先看“主链路”,再按需钻入某个 skill 或 hook;ECC 的规模不适合从 281 个 skill 逐个通读。
  • 运行时问题优先查安装状态和目标适配器;内容问题优先查 skill/agent/command 的 canonical 文件。

参考入口