第 1 课:设计哲学 — ECC 为什么存在

9 阅读10分钟

所属阶段:第一阶段「认知建立」(第 1-3 课) 前置条件:无 本课收获:能用自己的话解释五大原则,理解 ECC 在 AI 编程工具生态中的定位


一、本课概述

这是整个课程的第一课。我们不急着安装、不急着写代码,先回答三个最基本的问题:

  1. ECC 是什么? — 它在 AI 编程助手生态中扮演什么角色
  2. ECC 为什么这样设计? — 五大核心原则的内涵和逻辑
  3. ECC 的规模有多大? — 建立对项目体量的感性认识

理解了"为什么",后面学"怎么做"才不会迷路。


二、ECC 是什么

2.1 一句话定义

Everything Claude Code (ECC) is a production-ready AI coding plugin with specialized agents, skills, commands, and automated hook workflows for software development. — SOUL.md

翻译过来:ECC 是一个面向 AI 编程助手的生产级增强插件,包含专用代理、技能、命令和自动化钩子工作流。

2.2 AI Harness 的概念

要理解 ECC,先理解一个关键词:Harness(工具套件/增强框架)。

┌─────────────────────────────────────────────────┐
│                AI 编程助手                        │
│  (Claude Code / Codex / Cursor / Gemini 等)    │
│                                                  │
│  原生能力:读文件、写代码、运行命令、搜索代码      │
│                                                  │
│  ┌───────────────────────────────────────────┐   │
│  │          ECC(Harness / 增强框架)          │   │
│  │                                           │   │
│  │  + 47 个专家代理(自动委派任务)            │   │
│  │  + 286 个领域技能(沉淀最佳实践)           │   │
│  │  + 79 个命令入口(一键触发工作流)          │   │
│  │  + 7 种事件钩子(自动化质量保障)           │   │
│  │  + 12 种语言规则(编码规范约束)            │   │
│  │                                           │   │
│  └───────────────────────────────────────────┘   │
└─────────────────────────────────────────────────┘

类比

  • Claude Code 是一台发动机 — 能力强大,但需要调校
  • ECC 是一套赛车套件 — 帮你把发动机的性能充分发挥出来

没有 ECC,Claude Code 也能写代码。有了 ECC,Claude Code 会按照最佳实践写代码、自动做安全检查、在适当时机委派给专家代理、持续从会话中学习和改进。

2.3 跨平台支持

ECC 不只服务于 Claude Code,它支持 6 种 AI 编程助手:

AI 编程助手支持程度说明
Claude Code完整支持主要目标平台
Codex完整支持macOS 应用和 CLI
Cursor适配支持通过 Hook adapter 模式
OpenCode插件支持Plugin system
Gemini有限支持通过 GEMINI.md
AntigravityIDE 集成

这意味着你在 ECC 中学到的知识(Skill、Rule、Agent 的设计思想)是可迁移的 — 不绑定于任何一个具体的 AI 工具。

2.4 项目背景

  • 起源:Anthropic x Forum Ventures 黑客马拉松获奖项目
  • 演进:经过 10 个月以上的日常高强度使用打磨
  • 社区:140K+ GitHub stars、21K+ forks、170+ 贡献者
  • 当前版本:v1.10.0(2026 年 4 月)
  • 开源协议:MIT

三、五大核心原则

ECC 的一切设计决策都源于 SOUL.md 中定义的五大核心原则。这不是一个随意的列表 — 它们之间有内在的逻辑链。

3.1 原则一:Plan Before Execute(先规划再执行)

Complex changes should be broken into deliberate phases. 复杂变更应该拆解为审慎的阶段。

含义:在动手写代码之前,先想清楚要做什么、分几步做、每步有什么风险。

为什么排在第一位? 因为这是一切的起点。没有规划,后面的测试、安全、不可变性都是空谈 — 你不知道在测什么、在保护什么。

在 ECC 中的体现

  • 有专门的 planner Agent 做实施规划
  • architect Agent 做系统设计
  • /plan 命令是推荐的第一步操作
  • rules/common/development-workflow.md 明确要求"Plan First"

反面教训: 直接开始写代码 → 写到一半发现方向错了 → 推倒重来 → 浪费了大量上下文窗口和 Token

3.2 原则二:Agent-First(代理优先)

Route work to the right specialist as early as possible. 尽早将工作路由给合适的专家。

含义:遇到特定类型的任务(代码审查、安全分析、TDD),不要自己硬做,尽早委派给专业的 Agent。

为什么排在第二位? 有了规划之后,下一步就是决定"谁来做"。一个通用的 AI 做所有事情,不如让专家代理各司其职。

在 ECC 中的体现

  • 47 个专用 Agent,每个有明确的职责边界
  • Agent 按需自动触发(基于 description 字段匹配)
  • 不同 Agent 使用不同模型(Haiku 轻量、Sonnet 主力、Opus 深度)

类比: 医院不是一个全科医生看所有病人。挂号分诊(Plan)→ 转到专科(Agent-First)→ 专科诊断和治疗。

3.3 原则三:Test-Driven(测试驱动)

Write or refresh tests before trusting implementation changes. 在信任实现变更之前,先编写或刷新测试。

含义:代码改完了不等于改对了。唯一的证据是测试通过。

为什么排在第三位? Agent 完成了工作后,需要验证工作质量。测试是验证的核心手段。

在 ECC 中的体现

  • TDD 严格循环:RED(写测试)→ GREEN(最小实现)→ IMPROVE(重构)
  • 80% 最低覆盖率要求
  • tdd-guide Agent 专门引导 TDD 流程
  • 验证循环:测试 → Lint → 类型检查 → 安全检查 → 才能提交

TDD 的核心洞察: 先写测试不仅是为了"验证代码",更是为了明确需求 — 当你写不出测试的时候,说明你还没想清楚要做什么(回到原则一)。

3.4 原则四:Security-First(安全优先)

Validate inputs, protect secrets, and keep safe defaults. 验证输入、保护密钥、保持安全默认。

含义:安全不是事后补的,是设计时就要考虑的。

为什么排在第四位? 测试验证了功能正确性,但还有一类问题测试未必能覆盖 — 安全漏洞。安全检查是验证环节的重要补充。

在 ECC 中的体现

  • security-reviewer Agent 专门做安全审查
  • rules/common/security.md 定义了 8 项提交前安全检查清单
  • AgentShield 工具扫描 .claude/ 目录的安全漏洞
  • AI 代理特有的安全威胁被专门关注(Prompt 注入、MCP 投毒等)

AI 时代的新安全挑战: 传统应用担心 SQL 注入和 XSS。AI 代理额外要担心 Prompt 注入、通过截图/附件/PR 描述植入的恶意指令。ECC 对此有专门的安全指南。

3.5 原则五:Immutability(不可变性)

Prefer explicit state transitions over mutation. 偏好显式状态转换,而非就地修改。

含义:不要直接修改现有数据,而是创建新的数据副本。状态变化要显式、可追踪。

为什么排在最后? 这是最底层的编程原则。前面四个原则(规划、委派、测试、安全)都依赖一个基础:状态是可控的、可追踪的。如果对象被随意修改,测试结果不可靠,安全审计无法追溯,并行 Agent 会互相踩踏。

在 ECC 中的体现

  • rules/common/coding-style.md 将不可变性标记为 CRITICAL
  • 推荐创建新对象而非修改现有对象
  • Git 工作流强调每次变更有明确的 commit 记录

在 ECC Rules 中的优先级

// 伪代码
WRONG:  modify(original, field, value) → 就地修改 original
CORRECT: update(original, field, value) → 返回新的副本

3.6 五大原则的内在逻辑链

五个原则不是并列的,它们有一条逻辑链:

Plan Before Execute
    │ 想清楚了
    ▼
Agent-First
    │ 分给专家做
    ▼
Test-Driven
    │ 做完要验证
    ▼
Security-First
    │ 验证要包括安全
    ▼
Immutability
    │ 安全的基础是状态可控
    ▼
(回到开头:可控的状态让下一轮 Plan 更准确)

这是一个闭环。不可变的状态让规划更准确,准确的规划让代理更高效,高效的代理产出需要测试验证,验证需要包括安全维度,安全依赖状态可控。


四、项目规模感知

在深入学习之前,先对 ECC 的体量建立感性认识:

4.1 组件数量

组件类型数量作用
Agents(代理)47 个专业任务执行者
Skills(技能)286 个领域知识和工作流
Commands(命令)79 个用户交互入口
Hook 事件类型7 种事件驱动自动化
语言规则集12 种语言编码规范约束
文档语言7 种国际化支持

4.2 技术覆盖

支持的编程语言(规则层面): TypeScript、Python、Go、Java、Kotlin、Rust、C++、C#、Swift、PHP、Perl、Dart

支持的框架(Skill 层面): Django、Spring Boot、Laravel、NestJS、React/Next.js、Vue/Nuxt、Flutter、SwiftUI、Ktor 等

4.3 三份官方指南

ECC 提供了三份从入门到进阶的官方指南:

指南文件定位
Shorthand Guidethe-shortform-guide.md安装、基础、理念。入门首选
Longform Guidethe-longform-guide.mdToken 优化、记忆持久化、Eval、并行化
Security Guidethe-security-guide.md攻击面、沙箱、消毒、CVE、AgentShield

本课程的内容基于对这三份指南和仓库所有组件的系统梳理。


五、Agent 编排哲学

SOUL.md 还有一段关于 Agent 编排的重要描述:

ECC is designed so specialists are invoked proactively: planners for implementation strategy, reviewers for code quality, security reviewers for sensitive code, and build resolvers when the toolchain breaks.

翻译:ECC 的设计是主动调用专家 — 不等用户要求,系统自动判断何时需要什么专家:

场景自动调用的 Agent
要开始一个新功能planner(规划实施策略)
代码写完了code-reviewer(代码质量审查)
涉及敏感代码security-reviewer(安全审查)
编译/构建失败build-error-resolver(修复构建错误)
要写测试tdd-guide(引导 TDD 流程)
做架构决策architect(系统设计)

这就是 Agent-First 原则的落地:不是用户手动挑选 Agent,而是系统基于场景自动匹配最合适的专家。


六、本课练习

练习 1:阅读 SOUL.md(5 分钟)

打开 SOUL.md 文件,完整阅读。虽然只有 17 行,但每一行都是设计决策的浓缩。

# 在项目根目录
cat SOUL.md

回答问题:

  • Core Identity 部分提到了哪几类组件?
  • Agent Orchestration Philosophy 部分的关键词是什么?(提示:proactively)
  • Cross-Harness Vision 部分在说什么?

练习 2:浏览 README.md 的 Quick Start(10 分钟)

打开 README.md,只读 Quick Start 部分(不需要执行安装,下节课再做)。

回答问题:

  • 安装分几步?
  • 为什么 Rules 需要手动安装而不能通过插件自动安装?
  • 三份指南分别学什么?

练习 3:用自己的话写出五大原则(15 分钟)

这是本课最重要的练习。

用一段连贯的文字(不是列表),用你自己的话解释五大原则及其内在逻辑。要求:

  • 不超过 200 字
  • 用你自己的话,不要照抄原文
  • 要体现原则之间的逻辑关系(不是简单罗列)

参考格式(不是标准答案,你应该写出不同的版本):

面对一个复杂任务,ECC 的做法是先规划拆解(Plan Before Execute),然后把每个子任务交给最合适的专家代理去做(Agent-First)。专家做完后,不能直接信任结果,必须通过测试验证(Test-Driven)。验证不仅看功能对不对,还要看安全不安全(Security-First)。而这一切能够可靠运作的基础,是代码的状态是可控的、不会被随意修改的(Immutability)。

练习 4(选做):思考题

如果你只能保留两个原则(其他三个不再强制),你会保留哪两个?为什么?

提示:没有标准答案。这道题的目的是让你思考哪些原则是其他原则的"前提条件"。


七、本课小结

你应该记住的内容
ECC 的定位AI 编程助手的增强框架(Harness),不是替代品
五大原则Plan Before Execute → Agent-First → Test-Driven → Security-First → Immutability
原则逻辑它们是一个闭环,不是并列关系
Agent 编排专家被主动调用(proactively),不需要用户手动触发
跨平台支持 6 种 AI 编程助手,知识可迁移

八、下节预告

第 2 课:架构全景 — 六大组件如何协作

下节课我们将深入 ECC 的六大核心组件(Rules、Agents、Skills、Commands、Hooks、Scripts),理解它们各自的职责和协作关系。你将学会画出组件关系图,并能追踪一个命令从用户输入到最终执行的完整链路。

预习建议:提前浏览 CLAUDE.mdCONTRIBUTING.md,感受一下不同组件的格式差异。