Everything Claude Code (ECC) 深度实战:当 181 个 Skill 遇见 47 个智能体——从持久化记忆到跨 harness 工作流的完全指南(2026)
作者按:如果你已经在用 Claude Code、Cursor、Codex 或任何 AI 编程助手,却总觉得"它不够懂我"——记忆断层、规范飘忽、安全检查缺席、工作流无法沉淀——那么 ECC(Everything Claude Code)就是你要找的那块最后拼图。140K+ Stars、Anthropic 黑客马拉松冠军、181 个 Skill、47 个专业子智能体——这不是又一个配置文件集合,而是一整套让 AI 编程助手从"玩具"进化为"生产线伙伴"的操作系统。
目录
- 为什么要写这篇文章
- 从痛点出发:原生 Claude Code 的三重困境
- ECC 是什么:不只是配置集合,是 AI 编程助手的"操作系统"
- 核心架构拆解:六大组件如何协同工作
- 181 个 Skills 深度解析:从代码风格到安全扫描的完整技能图谱
- 47 个专业子智能体:把复杂任务委派给"专家团队"
- Hooks 生命周期:让 AI 工作流自动化、可审计、可回滚
- 跨 harness 支持:一套配置,多 AI 编程工具通用
- 实战演练:从零开始部署 ECC 到生产级工作流
- 性能优化:ECC 如何把 Claude Code 的 Token 效率提升 3-5 倍
- 安全优先:零宽度字符注入防御与敏感信息扫描
- 持久化记忆:让 AI 助手记住你的项目决策和架构取舍
- 12+ 语言生态:从 TypeScript 到 Rust,从 Python 到 Zig 的统一规范
- MCP 集成:当 ECC 遇见 Model Context Protocol
- 与其他 AI 编程工具对比:为什么 ECC 是目前的终极选择
- 局限性与避坑指南:ECC 不是银弹
- 未来展望:Skills 生态会取代 MCP 成为 AI Agent 开发新标准吗?
- 总结:ECC 给你的三个核心收益
为什么要写这篇文章
2026 年的 AI 编程工具赛道,已经不是"要不要用量化"的问题,而是"怎么用得爽、用得稳、用得安全"的问题。
Claude Code、Cursor、GitHub Copilot Workspace、OpenCode、Gemini CLI——这些工具的能力边界在快速收敛,差异化的核心不再是"谁的模型更聪明",而是:
- 工作流能否沉淀?(今天教它的规范,明天还记不记得?)
- 专业分工能否实现?(写代码、跑测试、做安全审查,能不能交给不同的"专家"?)
- 安全合规能否内置?(API Key 泄漏、零宽度字符注入、恶意依赖——AI 生成的代码会不会引入这些?)
Everything Claude Code(ECC) 给出的答案,是用一套系统化的 Skill/Agent/Hook/Rule 体系,把"AI 编程助手的使用经验"变成可复用、可版本控制、可跨工具迁移的"数字资产"。
这篇文章的目的,不是给你一份"ECC 安装教程"(那种东西官方文档已经有了),而是帮你理解:
- ECC 的架构设计哲学(为什么是 181 个 Skill 而不是 1 个巨大的 prompt?)
- 每个组件在实际开发中如何解决具体问题
- 如何基于 ECC 搭建适合你团队的 AI 辅助编程规范
- 性能、安全、记忆三大核心机制的实现原理
全文约 12000 字,附带可运行的配置代码示例。让我们开始。
从痛点出发:原生 Claude Code 的三重困境
在讨论 ECC 之前,我们需要先理解:为什么要给 Claude Code "打补丁"?原生的体验有什么问题?
困境一:记忆断层——每次对话都是从零开始
原生 Claude Code 的对话记忆是有限的。当你关闭会话、重启 IDE、或者对话长度超过上下文窗口,下面的信息就丢了:
- 你项目的架构决策("为什么选 PostgreSQL 而不是 MongoDB?")
- 你团队的编码规范("我们不用
any,用unknown+ 类型守卫") - 你已经尝试过但失败了的方案("这个库有内存泄漏,别用")
后果:你每次都要重新"培训" AI 助手,浪费 Token 和时间,而且容易因为记忆不一致导致代码风格割裂。
困境二:规范飘忽——同一个功能,今天和明天的实现不一样
即使在同一会话中,Claude Code 也可能因为:
- 上下文被压缩(长对话后,早期规范细节丢失)
- 没有明确的结构化规则约束
- 不同任务的"优先级"冲突("先实现功能" vs "先写测试")
导致同一个逻辑,今天生成的代码用了 async/await,明天生成的用了 .then() 链式调用;今天加了错误处理,明天忘了。
后果:代码审查成本飙升,AI 生成的代码反而成了"技术债"的来源。
困境三:安全与质量检查的"事后诸葛亮"
原生 Claude Code 生成代码后,你需要手动:
- 检查有没有硬编码的密钥
- 检查有没有 SQL 注入、XSS 等常见漏洞
- 检查是否符合你项目的 lint 规则
- 检查有没有引入已知有漏洞的依赖
后果:AI 辅助编程的"加速度"被人工审查的"刹车"抵消了。你要么牺牲安全性换速度,要么牺牲速度换安全性。
ECC 的核心设计目标,就是同时解决这三个问题。它是怎么做到的?接下来我们拆解架构。
ECC 是什么:不只是配置集合,是 AI 编程助手的"操作系统"
Everything Claude Code(ECC) 由 AI 工程师 Affaan Mustafa 历经 10 个月的高强度生产使用后开源。它不是一份 .claude/settings.json 配置文件,而是一整套包含以下组件的系统级增强框架:
everything-claude-code/
├── .claude-plugin/ # 插件元数据和市场配置
│ ├── plugin.json # 插件描述、版本、依赖
│ └── marketplace.json # 用于 /plugin marketplace add
├── agents/ # 47 个专业子智能体定义
│ ├── planner.md # 功能规划专家
│ ├── architect.md # 系统设计决策专家
│ ├── tdd-guide.md # 测试驱动开发教练
│ ├── code-reviewer.md # 代码质量审查员
│ ├── security-reviewer.md # 安全漏洞分析师
│ ├── build-error-resolver.md
│ ├── e2e-runner.md # Playwright E2E 测试专家
│ ├── refactor-cleaner.md # 死代码清理专家
│ ├── doc-updater.md # 文档同步专员
│ └── ... # 其余 37 个专业智能体
├── skills/ # 181 个技能定义
│ ├── code-style/ # 代码风格相关
│ ├── security/ # 安全扫描相关
│ ├── testing/ # 测试相关
│ ├── git-workflow/ # Git 工作流相关
│ └── ...
├── commands/ # 60+ 快捷命令
│ ├── /plan # 先规划再实现
│ ├── /review # 代码审查
│ ├── /test # 运行测试套件
│ └── ...
├── rules/ # 34 条结构化编码规范
│ ├── common/ # 通用规范(必需)
│ │ ├── 01-write-tests.md
│ │ ├── 02-minimal-changes.md
│ │ ├── 03-security-first.md
│ │ └── ...
│ ├── typescript/ # TypeScript 专项规范
│ ├── python/ # Python 专项规范
│ ├── rust/ # Rust 专项规范
│ └── ... # 其他 8+ 语言生态
├── hooks/ # 8 类生命周期自动触发器
│ ├── pre-commit # 提交前自动检查
│ ├── post-edit # 编辑后自动格式化
│ ├── session-start # 会话启动时加载记忆
│ └── ...
├── mcp-configs/ # MCP 服务器配置模板
└── contexts/ # 项目上下文持久化存储
└── memory.json # 跨会话记忆数据库
核心数据:
| 指标 | 数值 |
|---|---|
| GitHub Stars | 140K+ |
| Forks | 21K+ |
| 贡献者 | 170+ |
| Skills | 181 个 |
| 专业子智能体 | 47 个 |
| 结构化规则 | 34 条(覆盖 12+ 语言) |
| 快捷命令 | 60+ |
| Hook 生命周期 | 8 类 |
| 支持的 AI Harness | Claude Code、Cursor、Codex、OpenCode、Gemini CLI |
| 开源协议 | MIT |
| 荣誉 | Anthropic 黑客马拉松冠军 |
ECC 的设计哲学:五个核心原则
ECC 不是功能的堆砌,而是基于以下五个原则设计的系统化框架:
1. Agent-First(智能体优先)
复杂任务不应该由一个"超级 AI"一口气做完,而应该拆分后委派给专业子智能体。
例子:你要实现一个用户认证模块。
- ❌ 原生方式:让 Claude Code 直接写代码,它可能混搭"写逻辑 + 写测试 + 写文档 + 做安全审查"在一个上下文里,导致每个环节都不够深入。
- ✅ ECC 方式:
planner智能体:先拆解任务,输出实现计划architect智能体:审查计划中的架构决策- 主会话:按计划实现代码
tdd-guide智能体:审查测试覆盖率security-reviewer智能体:扫描认证逻辑的安全漏洞doc-updater智能体:自动更新 API 文档
每个智能体只做一件事,做得更深入,而且可以并行执行(比如测试和文档可以同步进行)。
2. TDD(测试驱动开发)
ECC 的规则强制要求:先写测试,再写实现代码,且测试覆盖率必须 ≥ 80%。
这不是"建议你写测试",而是通过 Hook + Rule 双重约束:
pre-commitHook:运行测试套件,失败则阻止提交01-write-tests.md规则:明确写入系统 prompt,让 AI 优先生成测试
为什么这对 AI 生成代码尤其重要?
因为 AI 生成的代码往往"看起来对,但边界情况没覆盖"。强制先写测试,相当于让 AI 先思考"什么情况下会出错",再写"不出错的代码"。
3. Security-First(安全优先,绝不妥协)
ECC 内置了多层安全机制:
- 敏感信息扫描:Hook 自动检测代码中的 API Key、私钥、密码等(支持自定义正则)
- 零宽度字符注入防御:防止有人通过"看起来一样的变量名"绕过代码审查(ECC 是最早系统性解决这个问题的框架之一)
- 依赖漏洞检查:集成
npm audit、pip safety等工具,AI 生成的package.json/requirements.txt会自动扫描 - SQL 注入/XSS 模式检测:通过 Skill 让 AI 在生成涉及用户输入的代码时,主动使用参数化查询/转义
4. Immutability(不可变性)
ECC 的核心规则之一:从不修改现有对象,只创建新对象。
在 AI 生成代码的场景下,这条规则解决了"意外破坏已有功能"的问题。AI 可能会因为"重构一下更优雅"而修改你原本工作的代码,ECC 通过规则约束让它"加新功能就新建,别动老的"。
5. Plan Before Execute(先规划,后执行)
对于复杂功能,ECC 强制要求先通过 /plan 命令生成实现计划,审查通过后再开始编码。
实际工作流:
# 第一步:让 planner 智能体生成计划
/plan "实现用户认证模块,支持 JWT + Refresh Token"
# 输出(保存到 contexts/plans/auth-module.md):
# 1. 数据模型设计(User、Token 表)
# 2. API 端点定义(/login、/refresh、/logout)
# 3. 中间件:authenticateToken
# 4. 测试计划:正常流程 + 边界情况(过期 Token、无效签名等)
# 5. 安全审查点:密钥存储、Token 过期策略
# 第二步:人工审查计划(或让 architect 智能体审查)
# 第三步:按计划实现(AI 会严格遵循计划,不会"自由发挥")
核心架构拆解:六大组件如何协同工作
ECC 的六大组件不是孤立的,而是形成一个闭环工作流。让我们通过一个完整的"实现新功能"场景,看它们如何协同。
场景:为现有 Express 项目添加"用户头像上传"功能
第一步:Rules 约束启动行为
当你在 Claude Code 中输入任务描述时,ECC 的 Rules 已经加载到系统上下文:
# ~/.claude/rules/common/02-minimal-changes.md
核心原则:最小变更
- 只修改与当前任务直接相关的文件
- 重构必须单独提交,不与功能实现混在一起
- 如果变更超过 5 个文件,先和用户确认
# ~/.claude/rules/common/01-write-tests.md
核心原则:测试先行
- 任何新功能必须先写测试(Jest/Pytest 等)
- 测试覆盖率必须 ≥ 80%
- 边界情况和错误处理必须有对应测试用例
效果:AI 生成的第一个回复,就会提到"我先写测试用例,再实现功能",而不是"我直接写上传接口"。
第二步:Skills 提供领域知识
ECC 的 Skills 库中包含 file-upload-best-practices、image-processing-security、multer-configuration 等技能。当 AI 检测到任务涉及"文件上传",会自动加载相关 Skill。
Skill 的本质:是结构化的领域知识包,格式如下:
# skills/file-upload-best-practices.md
## 何时使用此 Skill
- 任务涉及用户上传文件
- 需要处理图片/视频/文档
## 核心原则
1. 永远不要信任客户端传来的文件名(可能造成路径遍历)
2. 限制文件大小(防止 DoS)
3. 限制文件类型(不仅看扩展名,还要看 MIME type + 文件头)
4. 上传目录不能在 web 根目录下(防止直接执行)
5. 生成随机文件名(防止覆盖 + 猜测)
## 代码示例(Node.js + multer)
```javascript
const multer = require('multer');
const path = require('path');
const crypto = require('crypto');
// 正确做法:随机文件名 + 白名单 MIME 类型
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, path.join(__dirname, '../uploads/avatars'));
},
filename: (req, file, cb) => {
const randomName = crypto.randomBytes(16).toString('hex');
const ext = path.extname(file.originalname).toLowerCase();
cb(null, `${randomName}${ext}`);
}
});
const fileFilter = (req, file, cb) => {
const allowedMimes = ['image/jpeg', 'image/png', 'image/webp'];
if (allowedMimes.includes(file.mimetype)) {
cb(null, true);
} else {
cb(new Error('仅支持 JPG/PNG/WebP 格式'), false);
}
};
const upload = multer({
storage,
fileFilter,
limits: { fileSize: 5 * 1024 * 1024 } // 5MB
});
常见错误(AI 应避免)
- ❌ 直接用
file.originalname作为保存文件名 - ❌ 只检查文件扩展名,不检查 MIME type
- ❌ 上传目录设置在
public/下
**效果**:AI 生成的代码会自动遵循这些最佳实践,而不需要你每次都"教"它。
#### 第三步:Commands 提供标准化工作流
你可以通过 ECC 的快捷命令启动标准化流程:
```bash
/plan "实现用户头像上传功能"
这个命令会:
- 调用
planner智能体(从agents/planner.md加载) - 生成结构化计划(保存在
contexts/plans/目录) - 等待你审查确认
第四步:Agents 分工执行
计划确认后,主会话开始实现代码,但在关键节点会自动委派给专业智能体:
代码实现阶段:主会话写代码,每完成一个模块——
- 自动触发
tdd-guide智能体:审查测试覆盖率 - 自动触发
security-reviewer智能体:扫描文件上传相关的安全漏洞
- 自动触发
代码审查阶段(你主动或 Hook 自动触发):
code-reviewer智能体:检查代码风格、性能、可维护性refactor-cleaner智能体:识别死代码、重复代码
第五步:Hooks 自动化检查与记忆持久化
当代码实现完成,尝试提交时:
pre-commit Hook(ECC 自动配置):
#!/bin/bash
# hooks/pre-commit
# 1. 运行测试套件
npm test
if [ $? -ne 0 ]; then
echo "❌ 测试失败,提交被阻止"
exit 1
fi
# 2. 运行安全扫描
node ./scripts/security-scan.js
if [ $? -ne 0 ]; then
echo "❌ 安全扫描发现漏洞,提交被阻止"
exit 1
fi
# 3. 运行 lint
npm run lint
if [ $? -ne 0 ]; then
echo "❌ Lint 检查失败,提交被阻止"
exit 1
fi
# 4. 持久化本次会话的关键决策到记忆库
node ./scripts/save-session-memory.js
echo "✅ 所有检查通过,提交继续"
session-start Hook(下次打开 Claude Code 时自动执行):
// hooks/session-start.js
const fs = require('fs');
const memory = JSON.parse(fs.readFileSync('./contexts/memory.json', 'utf8'));
// 将历史决策加载到系统上下文
console.log(`📝 已加载项目记忆:
- 架构模式:${memory.architecturePattern}
- 数据库:${memory.database}
- 编码规范:${memory.codingStandards.join(', ')}
- 已知坑:${memory.knownIssues.length} 条
`);
第六步:Memory 跨会话持久化
ECC 的 contexts/memory.json 是一个结构化的"项目知识库":
{
"project": "my-express-app",
"lastUpdated": "2026-06-17T15:30:00Z",
"architecture": {
"pattern": "分层架构(Controller → Service → Repository)",
"framework": "Express.js + TypeScript",
"database": "PostgreSQL 16",
"orm": "TypeORM",
"authentication": "JWT + Refresh Token(存在 Redis)",
"fileStorage": "本地文件系统(uploads/ 目录)+ CDN 后续迁移"
},
"codingStandards": [
"使用 TypeScript strict 模式",
"禁止 `any`,用 `unknown` + 类型守卫",
"异步操作必须用 `async/await`,禁止 `.then()` 链式",
"所有 API 必须有输入输出类型定义(DTO)",
"错误信息不包含敏感信息(如 SQL 错误详情)"
],
"knownIssues": [
{
"issue": "TypeORM 的 `findOne` 在大数据量下性能差",
"workaround": "改用 `createQueryBuilder` + 明确 `select` 字段",
"discoveredAt": "2026-05-20",
"severity": "medium"
},
{
"issue": "multer 的 `fileFilter` 只检查 MIME type,不检查文件头",
"workaround": "使用 `file-type` 库检测真实文件类型",
"discoveredAt": "2026-06-10",
"severity": "high"
}
],
"decisions": [
{
"decision": "选择 PostgreSQL 而非 MongoDB",
"reason": "需要事务支持 + 关系查询 + 向量扩展(未来可能用 pgvector)",
"date": "2026-03-15"
},
{
"decision": "JWT 存在 HttpOnly Cookie,而非 localStorage",
"reason": "防止 XSS 窃取 + CSRF 可以通过 Double Submit Cookie 防御",
"date": "2026-04-02"
}
]
}
效果:下次你(或你的同事)打开这个项目,Claude Code 会自动加载这些上下文,不需要重新"培训"。
本文为精简版,完整版请访问 GitHub。