23 KiB
Everything Claude Code 项目分析
项目定位
这个仓库本质上不是一个“业务应用”,而是一套给 AI 编码代理使用的“工程化运行时 + 能力分发包”。它把提示词、子代理定义、技能库、命令库、hooks、规则、安装器、状态管理、测试与跨平台适配整合在一起,目标是把 Claude Code、Codex、Cursor、OpenCode 这类 agent harness 调教成更稳定、更可控、更像资深工程师的工作流系统。
从仓库里的实际内容看,它当前是一个成熟的产品化分发仓库,而不是零散配置集合:有 25 个 agents、57 个 commands、108 个 skills、完整的 hook runtime、选择性安装 manifest、CLI、SQLite 状态查询命令,以及测试与校验链。核心说明在 README.md、package.json、AGENTS.md。
它到底在做什么
它做的事可以概括成 5 层:
1. 规则层
把团队/个人想让 AI 始终遵守的工程规范固化下来,比如 TDD、80% 覆盖率、安全检查、immutability、Git 工作流、性能与上下文管理。这部分在 rules/ 下面,按 common + language packs 组织。
2. 能力层
把不同任务拆成可复用能力单元。
agents/是“角色型子代理”,例如 planner、architect、security-reviewer、code-reviewer、build-error-resolver。skills/是“方法论/领域知识包”,例如 TDD、verification-loop、frontend-patterns、market-research、deep-research、security-review、frontend-slides、x-api 等。
3. 交互层
把常用工作流做成斜杠命令。比如 /plan、/tdd、/code-review、/verify、/quality-gate、/loop-start、/model-route、/sessions、/harness-audit。这部分在 commands/。
4. 自动化运行时
通过 hooks 在会话开始、编辑文件、运行命令、会话结束等时机自动触发行为,例如:
- 加载上下文
- 保存 session
- 建议 compact
- 格式化代码
- TypeScript 检查
console.log检查- 质量门禁
- 成本跟踪
- 从会话中提取可学习模式
配置在 hooks/hooks.json,实现主要在 scripts/hooks/。
5. 安装与适配层
它不是只服务 Claude Code,而是做了多平台适配:
.claude-plugin/面向 Claude Code 插件.codex/面向 Codex.cursor/面向 Cursor.opencode/面向 OpenCode
安装不是硬编码复制,而是 manifest 驱动的 profile/module/component 选择性安装,见:
manifests/install-profiles.jsonmanifests/install-components.jsonmanifests/install-modules.json
主要功能
按功能看,这个项目覆盖面非常广:
工程开发工作流规划、TDD、代码评审、构建修复、E2E、覆盖率、重构清理、文档更新、质量门禁。多语言支持TypeScript、Python、Go、Java、Kotlin、Rust、Perl、PHP、Swift、C++ 等都有规则或技能包。安全能力安全 reviewer、security-review skill、安全扫描、输入校验、secret 管理、提交前检查。上下文与记忆管理SessionStart/Stop hooks、pre-compact、strategic compact、持续学习、instinct import/export/evolve。多代理编排worktree/tmux orchestration、multi-plan、multi-execute、loop-start、loop-status、PM2 工作流。研究与内容能力deep-research、market-research、article-writing、investor-materials、investor-outreach、crosspost、x-api。媒体与文档能力frontend-slides、fal-ai-media、video-editing、visa-doc-translate、document-processing 类技能。运行状态与诊断eccCLI 支持install/plan/list-installed/doctor/repair/status/sessions/session-inspect/uninstall。
这个仓库的实际架构
你可以把它理解成下面这条链路:
用户请求
→ 命令或 AGENTS 指令触发
→ 选择合适 agent / skill / rule
→ hooks 在关键时机做自动检查与状态保存
→ scripts 负责真正执行安装、审计、诊断、状态查询
→ 不同平台目录把同一套能力映射到 Claude / Codex / Cursor / OpenCode
这也是为什么它看起来像“文档很多”,但其实不是文档仓库。Markdown 只是配置载体,真正的产品能力来自:
- 结构化规则
- 可组合技能
- 自动化 hooks
- 安装与运行时脚本
- 测试和校验链
最值得注意的几个特点
- 它强调“agent-first”,不是单 agent 直接硬做,而是主动委派给 planner、reviewer、security-reviewer 等角色。
- 它强调“research-first”和“verification-first”,不是只生成代码,还要求验证、评审、学习、沉淀。
- 它已经从 Claude Code 配置包,演化成“AI agent harness performance system”。
- 它支持“按需安装”,不是所有用户都要装全量能力。
- 它把“经验”产品化了:把作者长期使用中总结的流程,固化成规则、命令、hook 和技能。
适合什么人用
最适合这几类人:
- 想把 Claude Code / Codex / Cursor 调成稳定工程助手的个人开发者
- 想给团队统一 AI 编码规范和工作流的技术负责人
- 需要多语言、多框架、多工具链支持的工程团队
- 想做 AI agent orchestration、持续学习、自动质量门禁的人
一句话总结
这个项目是在做一套“给 AI 编码代理装上的工程操作系统”。它不是帮你开发某个业务功能,而是帮你把 AI 开发这件事本身标准化、自动化、可复用、可审计。
AI 代码正确性保障与自动化测试
这个项目保证“AI 生成代码正确”的方式,不是靠某一个单点机制,而是靠一整套分层校验体系。核心思路是:先用规则约束 AI 的行为,再用 hooks 做即时检查,再用命令触发系统性验证,最后用测试和覆盖率把这些机制本身也测住。
先说结论:它并不能“数学上保证” AI 代码一定正确,但它把常见错误尽量前移、自动化、制度化了。也就是说,它主要保证的是“高概率正确 + 尽早暴露问题 + 可重复验证”,而不是一次生成就绝对无误。
一、它如何保证 AI 代码更靠谱
1. 规则约束
仓库把 TDD 设成默认工作方式,明确要求先写测试,再写实现,再验证覆盖率,最低 80%。这不是建议,而是写进规则和 skill 的硬约束。也就是说,AI 理想状态下不是“先瞎写代码再补测试”,而是按 RED → GREEN → REFACTOR 的节奏工作。
2. 任务分工
它鼓励把任务分给专门 agent,比如:
tdd-guide负责测试优先code-reviewer负责改完后的质量检查security-reviewer负责敏感逻辑build-error-resolver负责构建和类型问题
这能降低一个 agent 同时负责“写代码、判断自己对不对、审查自己”的自我偏差。
3. Hooks 即时纠偏
只要 AI 编辑文件,hooks 就会在后台做一些轻量但高频的自动检查,尽量在错误扩散前拦住。
4. 人工触发的深度验证
比如 /verify、/quality-gate、/test-coverage、/eval,这些命令要求 AI 在关键节点主动跑构建、类型检查、lint、测试、覆盖率、安全扫描、差异审查。
5. 项目自身也被测试
这个仓库不只是要求别人测试,它自己的 hook、安装器、manifest、命令和适配逻辑都有自动化测试和 CI 校验。
二、具体自动化机制有哪些
1. TDD 机制
TDD 是第一道“正确性”防线。它要求:
- 先写测试
- 先运行并确认测试失败
- 再写最小实现让测试通过
- 再重构
- 最后检查覆盖率是否达到 80%+
它强调三类测试都需要:
- 单元测试:函数、组件、工具方法
- 集成测试:API、数据库、服务交互
- E2E 测试:关键用户路径
这意味着它不是只关心“代码能跑”,而是要求对行为、边界条件、错误路径都建立测试样例。
2. 编辑后的自动 hook 检查
这是最接近“实时守门员”的部分。
post-edit-format文件编辑后自动格式化 JS/TS,支持 Biome 或 Prettier。post-edit-typecheck编辑.ts/.tsx后自动找最近的tsconfig.json,跑tsc --noEmit,并尽量只过滤出和当前文件相关的错误。quality-gate编辑后跑轻量质量门禁。对不同语言用不同工具:- JS/TS/JSON/MD 走 Biome 或 Prettier
- Go 走
gofmt - Python 走
ruff format
check-console-log每次响应结束时检查已修改的 JS/TS 文件里是否残留console.log。
这一层解决的是“写完马上出问题”的场景,比如格式错、类型错、调试语句没删掉。
3. 系统化验证命令
最核心的是 /verify。它要求按顺序做:
- Build Check
- Type Check
- Lint Check
- Test Suite
- Security / Secrets /
console.log审计 - Git diff 审查
这里的关键点不是“有这些命令”,而是顺序。比如 build 都不过,就不应该继续往下假装验证通过。
另外还有两个辅助命令:
/quality-gate按路径或项目范围手动执行质量管线,适合在 hook 之外主动检查。/test-coverage专门做覆盖率分析,找出低于 80% 的文件,并按缺口补测试。
这说明它不把“测试通过”当成终点,还要求你看覆盖率盲区。
4. Eval 机制
这是更偏 AI 工程的方法,不只是传统代码测试。
它引入几类概念:
Capability evalAI 是否具备某个新能力Regression eval新改动是否破坏旧行为pass@1 / pass@3 / pass^3用来评估 AI 在多次尝试中的稳定性
这和普通单元测试不同。普通测试是“代码对不对”,eval 更像“AI 工作流整体是否稳定地产出对的结果”。
5. 会话级持续学习与回放
这不是直接验证代码是否正确,但它能减少 AI 因“失忆”导致的错误重复。
session-start会话开始时加载上次 session 摘要、已学习技能、项目类型等上下文。session-end每次 Stop 时从 transcript 中提取用户请求、用过的工具、修改过的文件,写入 session 文件。evaluate-session会话结束时判断这次对话里有没有可抽取的稳定模式,供后续沉淀成 skill。
这层对“正确性”的贡献是减少上下文断裂、避免同类错误反复出现。
三、这个仓库自己做了哪些自动化测试
这部分很关键。因为如果这些 hooks、命令、安装器本身不可靠,那整套“保障正确性”的系统就是空的。
当前仓库有 50+ 个测试文件,覆盖范围很广,测试类别大致分为:
hooks 测试覆盖 quality-gate、evaluate-session、auto-tmux-dev、hook flags 等行为。安装与配置测试覆盖 install-plan、install-apply、manifest、install-state 等逻辑。CLI 和脚本测试覆盖ecc、harness-audit、doctor、repair、session-inspect等命令。底层库测试覆盖 formatter 解析、包管理器检测、项目类型识别、状态存储等基础能力。集成级测试验证 hooks 和整体链路在组合情况下是否按预期工作。
四、除了业务测试,还有“结构正确性”校验
这个项目还有一类很实用的自动化:不是测业务逻辑,而是测仓库里的“配置资产”有没有坏掉。也就是 agents、commands、skills、rules、hooks 这些内容是否仍然有效。
npm test 里会先跑一串 validator,再跑测试,包括:
validate-agents.js检查 agent Markdown 是否有 frontmatter、必需字段、合法模型值。validate-commands.js检查命令文档非空,以及引用的 command / agent / skill 是否存在。validate-rules.js检查所有 rule 文件是否非空可读。validate-skills.js检查每个技能目录是否有SKILL.md。validate-hooks.js检查hooks/hooks.json的 schema、事件名、matcher、hook 类型和字段是否合法。
这类测试很重要,因为 ECC 本身大量依赖 Markdown 和 JSON 配置文件。少一个字段、拼错一个 agent 名称,普通代码单测未必能及时发现,但 validator 能直接拦住。
五、覆盖率是怎么要求的
它明确要求 80%+ 覆盖率,这既出现在规则里,也出现在 npm 脚本里。
package.json 中的 coverage 脚本使用 c8,并设置了硬阈值:
- lines 80
- functions 80
- branches 80
- statements 80
也就是说,不是“跑个 coverage 看看”,而是没到门槛就失败。
六、它能保证“用户项目里的代码正确”到什么程度
这里要区分两件事:
1. ECC 仓库自身
它自己的 hooks、命令、安装器、适配层,是有自动化测试和覆盖率门槛的。
2. 用户正在开发的业务项目
ECC 并不会天然知道你的业务逻辑是否正确。它做的是提供一套强制工作流,让 AI 去:
- 先写测试
- 跑构建、类型、lint、测试
- 看 coverage
- 做 diff review
- 做安全检查
- 必要时做 eval
所以它对用户项目的保障,本质上是“把正确性验证流程自动化和制度化”,而不是“替代业务测试”。
换句话说,它更像质量系统,而不是万能判题器。
七、这套体系的优点和边界
优点很明确:
- 错误暴露得更早,尤其是格式、类型、调试残留这种低级问题
- AI 不容易跳过测试和验证步骤
- 支持回归验证,不只是“这次能跑”
- 对复杂 agent 工作流有 eval 思维,不只盯着代码编译通过
- 这个系统本身也被测试,不是空口宣言
但边界也很明确:
- 它不能自动理解你的业务需求是否“真正满足用户意图”
- 没有业务测试数据时,它无法凭空证明正确性
- 某些 hook 是“提醒/警告型”,不是强阻断
- 很多质量检查依赖目标项目本身配置了
build、lint、test、tsc、formatter 等工具链
一句话总结
这个项目保证 AI 代码“更正确”的核心,不是靠单次生成更聪明,而是靠“测试优先 + 编辑后即时检查 + 提交前系统验证 + 覆盖率门槛 + eval + 仓库自身被充分测试”的组合拳。
自动化测试与验证方法总表
下表汇总了这个项目中主要的自动化测试与验证方法。这里的“测试”不仅包括传统单元测试,也包括构建检查、类型检查、质量门禁、配置校验、回归评估等自动化验证手段,因为 ECC 的目标本来就不是只测代码函数,而是保障整套 AI 工程流程的正确性。
| 什么测试 | 测试的方法 | 为什么要做这个测试 | 能解决什么问题 |
|---|---|---|---|
| 单元测试 | 对单个函数、工具方法、组件逻辑编写独立测试,用最小输入输出断言行为 | 最小粒度验证功能正确性,是发现逻辑错误最快的手段 | 解决函数实现错误、边界条件遗漏、重构后回归问题 |
| 集成测试 | 测 API、数据库、服务交互、模块间协作,验证请求到响应或服务到服务的完整链路 | 很多错误不在单个函数,而在模块之间的拼接处 | 解决接口联调失败、数据库交互错误、服务调用顺序问题 |
| E2E 测试 | 用 Playwright 等浏览器自动化测试关键用户流程 | 最终用户看到的是完整流程,不是单个函数 | 解决页面流程跑不通、按钮可点但业务不成功、前后端联通失败 |
| TDD 红绿重构测试 | 先写失败测试,再写最小实现让其通过,最后重构并保持测试为绿 | 强制 AI 先定义正确行为,再写实现,降低拍脑袋写代码的概率 | 解决“先写代码后补测试”导致的伪验证、需求理解偏差 |
| Build Check | 执行项目构建命令,先确认能完整 build | 如果项目连构建都过不了,其他验证意义很小 | 解决打包失败、缺依赖、构建配置错误、语法级阻断问题 |
| Type Check | 执行 tsc --noEmit、pyright 等类型检查 |
AI 很容易写出语法正确但类型不一致的代码 | 解决类型不匹配、参数传错、返回值不符合约定的问题 |
| Lint Check | 执行 ESLint、Ruff 等静态检查 | 代码不仅要能跑,还要符合项目约定和最佳实践 | 解决潜在坏味道、危险写法、风格不一致、简单逻辑疏漏 |
| 覆盖率检查 | 用 c8、Vitest/Jest 覆盖率、pytest-cov 等统计并设置 80% 门槛 |
测试通过不等于测得充分,需要知道哪些代码根本没被触达 | 解决测试盲区、分支未覆盖、表面通过但风险仍高的问题 |
/verify 全量验证 |
按固定顺序执行 build、types、lint、tests、安全检查、diff review | 需要一个统一、可复用的“提交前体检流程” | 解决只做局部检查、漏掉关键验证步骤的问题 |
/quality-gate 质量门禁 |
对文件或项目范围手动执行格式、lint、类型等质量检查 | hook 是自动触发的,但需要人工随时重跑统一质量管线 | 解决改动较多时遗漏局部错误、需要集中复查的问题 |
/test-coverage 覆盖率补强 |
分析低覆盖文件,定位缺失测试并补齐 | 覆盖率不足时,仅看总体数字不够,需要知道缺口在哪 | 解决“知道不够测,但不知道该补哪”的问题 |
/eval 能力/回归评估 |
定义 capability eval 和 regression eval,并记录 pass@k | AI 工程中很多问题不是普通单测能完全表达的 | 解决 prompt/agent 变化后的能力退化、稳定性不足问题 |
| Capability Eval | 为一个新能力定义成功标准并自动检查是否达成 | AI 需要被验证“会不会做这件事”,而不只是“代码能不能跑” | 解决新增能力不可度量、结果模糊、是否达标难判断的问题 |
| Regression Eval | 为已有能力定义基线,更新后重新验证 | 新功能上线最常见的风险是破坏旧功能 | 解决历史行为被破坏、升级后退化、版本回归问题 |
| pass@k / pass^k 评估 | 多次尝试统计成功率和稳定性 | AI 输出存在波动,单次成功不能说明真正可靠 | 解决“偶尔成功但不稳定”的假可靠问题 |
| 编辑后自动格式化 | post-edit-format 在文件编辑后自动运行 Biome/Prettier |
很多低级问题不该等到人工发现 | 解决格式漂移、代码风格不统一、格式导致的 review 噪音 |
| 编辑后自动类型检查 | post-edit-typecheck 在编辑 TS 文件后自动执行局部类型检查 |
越早看到类型错误,修复成本越低 | 解决刚编辑完就引入的类型错误,避免后续扩散 |
| 编辑后自动质量门禁 | quality-gate 按文件类型执行 Biome/Prettier/gofmt/ruff |
需要低延迟的自动化守门,尽快把错误暴露给 AI | 解决语言级格式/质量问题,减少提交前集中爆炸 |
console.log 审计 |
Stop hook 自动扫描修改文件中的调试输出 | AI 和人类一样,都会忘删临时调试代码 | 解决调试日志残留、噪音输出、生产代码不干净的问题 |
| 安全扫描 | 搜索 secrets、危险模式,必要时配合安全 skill / reviewer | AI 生成代码时常会忽视 secrets、输入验证等安全问题 | 解决密钥泄漏、明显安全疏漏、调试信息暴露问题 |
| Git diff 审查 | 自动查看变更文件和 diff 范围 | 仅看最终代码不够,需要知道到底改了什么 | 解决误改文件、无关改动混入、遗漏清理的问题 |
| Session Start / End 验证链 | 会话开始加载上下文,会话结束提取摘要、记录变更和工具使用 | AI 的错误很多来自上下文断裂,而不是实现能力本身 | 解决跨会话失忆、重复犯错、接手历史任务时上下文缺失 |
| 持续学习评估 | evaluate-session 根据会话长度和内容判断是否可提炼模式 |
好的解决方案应沉淀成可复用能力,而不是每次重学 | 解决经验无法积累、同类问题重复探索的问题 |
| Hook 配置校验 | validate-hooks.js 校验 hooks.json schema、事件、字段、hook 类型 |
hook 是自动化核心,配置一坏,整套机制就失效 | 解决 hook 配置拼写错误、事件名错误、字段不合法的问题 |
| Agent 配置校验 | validate-agents.js 校验 agent frontmatter、必填字段、模型合法性 |
agent 定义是编排基础,损坏后会直接影响 AI 工作流 | 解决 agent 元数据缺失、配置非法、引用失败的问题 |
| Command 文档校验 | validate-commands.js 检查命令文档非空,且引用的 command/agent/skill 存在 |
命令是用户入口,文档失真会导致执行流程错误 | 解决命令引用失效、文档和真实能力脱节的问题 |
| Skill 结构校验 | validate-skills.js 校验每个技能目录都存在 SKILL.md |
skill 是核心知识单元,结构必须稳定 | 解决 skill 缺失、目录不完整、安装后不可用的问题 |
| Rule 文件校验 | validate-rules.js 检查规则文件是否可读且非空 |
规则是 AI 行为约束基础,空文件等于失效 | 解决规则丢失、空规则、安装后行为退化的问题 |
| 安装器测试 | 测 install-plan、install-apply、manifest、install-state 等逻辑 |
安装层错误会让整个系统装不对、装不全、装错位置 | 解决 selective install 失效、路径错误、状态记录异常 |
| CLI 测试 | 测 ecc、doctor、repair、harness-audit、sessions 等脚本 |
CLI 是用户直接操作系统的入口,必须可靠 | 解决命令行参数解析错误、输出不符合预期、功能失效 |
| Hook 脚本测试 | 对 quality-gate、evaluate-session、auto-tmux-dev 等脚本做独立测试 |
hook 运行频率高,任何错误都会被快速放大 | 解决 hook 误报、漏报、跨平台行为不一致的问题 |
| 集成级 hook 测试 | 将多个 hook 或相关脚本组合起来验证完整链路 | 单个模块正确,不代表组合后仍然正确 | 解决组合行为异常、事件触发顺序错误、整体链路不通的问题 |
| 状态存储测试 | 测 session aliases、state store、install state 等持久化逻辑 | ECC 很依赖状态记录来支持连续工作 | 解决状态写坏、会话恢复失败、安装状态漂移的问题 |
| 工具解析测试 | 测 formatter 检测、包管理器检测、项目类型识别等基础能力 | 自动化链路依赖环境探测,探测错了后续全错 | 解决检测错误导致执行了错误工具、走错工作流的问题 |
| Harness 审计 | harness-audit 检查仓库在工具覆盖、上下文效率、质量门禁等维度是否达标 |
需要从系统层面评估一个 AI harness 是否“配齐了” | 解决功能缺失、能力不完整、质量体系不闭环的问题 |
如何理解这张表
这张表里的方法可以分成四组:
开发前与开发中TDD、单元测试、集成测试、E2E、编辑后 hooks。提交前与交付前/verify、/quality-gate、覆盖率、安全扫描、diff review。AI 工程专项/eval、Capability Eval、Regression Eval、pass@k、持续学习。ECC 自身质量validators、hook tests、CLI tests、install tests、state/store tests、harness audit。
也就是说,这个项目不是只在“代码写完以后”才测,而是把测试和验证铺在了整个 AI 开发生命周期里。