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

392 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](../README.md)、[package.json](../package.json)、[AGENTS.md](../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.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 和脚本测试`
覆盖 `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 开发生命周期里。