Files
everything-claude-code/docs/project-overview.zh-CN.md

23 KiB
Raw Blame History

Everything Claude Code 项目分析

项目定位

这个仓库本质上不是一个“业务应用”,而是一套给 AI 编码代理使用的“工程化运行时 + 能力分发包”。它把提示词、子代理定义、技能库、命令库、hooks、规则、安装器、状态管理、测试与跨平台适配整合在一起目标是把 Claude Code、Codex、Cursor、OpenCode 这类 agent harness 调教成更稳定、更可控、更像资深工程师的工作流系统。

从仓库里的实际内容看,它当前是一个成熟的产品化分发仓库,而不是零散配置集合:有 25 个 agents、57 个 commands、108 个 skills、完整的 hook runtime、选择性安装 manifest、CLI、SQLite 状态查询命令,以及测试与校验链。核心说明在 README.mdpackage.jsonAGENTS.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.json
  • manifests/install-components.json
  • manifests/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 类技能。
  • 运行状态与诊断 ecc CLI 支持 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。它要求按顺序做:

  1. Build Check
  2. Type Check
  3. Lint Check
  4. Test Suite
  5. Security / Secrets / console.log 审计
  6. Git diff 审查

这里的关键点不是“有这些命令”,而是顺序。比如 build 都不过,就不应该继续往下假装验证通过。

另外还有两个辅助命令:

  • /quality-gate 按路径或项目范围手动执行质量管线,适合在 hook 之外主动检查。
  • /test-coverage 专门做覆盖率分析,找出低于 80% 的文件,并按缺口补测试。

这说明它不把“测试通过”当成终点,还要求你看覆盖率盲区。

4. Eval 机制

这是更偏 AI 工程的方法,不只是传统代码测试。

它引入几类概念:

  • Capability eval AI 是否具备某个新能力
  • 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 和脚本测试 覆盖 eccharness-auditdoctorrepairsession-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 是“提醒/警告型”,不是强阻断
  • 很多质量检查依赖目标项目本身配置了 buildlinttesttsc、formatter 等工具链

一句话总结

这个项目保证 AI 代码“更正确”的核心,不是靠单次生成更聪明,而是靠“测试优先 + 编辑后即时检查 + 提交前系统验证 + 覆盖率门槛 + eval + 仓库自身被充分测试”的组合拳。

自动化测试与验证方法总表

下表汇总了这个项目中主要的自动化测试与验证方法。这里的“测试”不仅包括传统单元测试,也包括构建检查、类型检查、质量门禁、配置校验、回归评估等自动化验证手段,因为 ECC 的目标本来就不是只测代码函数,而是保障整套 AI 工程流程的正确性。

什么测试 测试的方法 为什么要做这个测试 能解决什么问题
单元测试 对单个函数、工具方法、组件逻辑编写独立测试,用最小输入输出断言行为 最小粒度验证功能正确性,是发现逻辑错误最快的手段 解决函数实现错误、边界条件遗漏、重构后回归问题
集成测试 测 API、数据库、服务交互、模块间协作验证请求到响应或服务到服务的完整链路 很多错误不在单个函数,而在模块之间的拼接处 解决接口联调失败、数据库交互错误、服务调用顺序问题
E2E 测试 用 Playwright 等浏览器自动化测试关键用户流程 最终用户看到的是完整流程,不是单个函数 解决页面流程跑不通、按钮可点但业务不成功、前后端联通失败
TDD 红绿重构测试 先写失败测试,再写最小实现让其通过,最后重构并保持测试为绿 强制 AI 先定义正确行为,再写实现,降低拍脑袋写代码的概率 解决“先写代码后补测试”导致的伪验证、需求理解偏差
Build Check 执行项目构建命令,先确认能完整 build 如果项目连构建都过不了,其他验证意义很小 解决打包失败、缺依赖、构建配置错误、语法级阻断问题
Type Check 执行 tsc --noEmitpyright 等类型检查 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-planinstall-apply、manifest、install-state 等逻辑 安装层错误会让整个系统装不对、装不全、装错位置 解决 selective install 失效、路径错误、状态记录异常
CLI 测试 eccdoctorrepairharness-auditsessions 等脚本 CLI 是用户直接操作系统的入口,必须可靠 解决命令行参数解析错误、输出不符合预期、功能失效
Hook 脚本测试 quality-gateevaluate-sessionauto-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 开发生命周期里。