今天 GitHub Trending 日榜第三位是 affaan-m/ECC,页面上写着今日新增 1,057 星。同一时段按 GitHub API 读回来:280,957★、41,779 个 fork、222 个未关 issue,主语言 JavaScript,许可 MIT,建仓 2026 年 1 月 18 日,最近一次推送就是今天。npm 上的 ecc-universal 最新版是 2.2.3,registry 记录发布于 10 月 2 日,累计发过 13 个版本,上周下载 14,080 次;配套的 ecc-agentshield 上周 17,009 次。作者 affaan 在 README 里自述,2025 年 9 月拿过 Anthropic 与 Forum Ventures 合办的黑客松冠军。
一句话:它不是又一个技能包,是把工程流程装进 Agent
- 它的口号就是一次取舍。README 顶着一行 “Optimize the context window. Persist everything else."——上下文窗口里的东西要省,其他一切都要落盘。
- 它固化的是流程,不是知识。计划的落点是可编辑的产物而不是聊天记录;TDD 是一道带证据的红→绿→重构闸门;写代码的和审代码的不是同一个上下文;会话结束要蒸馏成摘要、instinct 和可复用技能。
- 它的形态在 harness 这一层。同一份内容放在仓库根目录当唯一真源,各平台适配器只做打包或映射,而不是给每个工具维护一份副本。
- 为什么现在冲上来。2.2 线把安装改成引导式向导,一次覆盖 Claude Code、Codex、Kimi Code,并带上 doctor、修复和卸载;最近一次发版是 10 月 1 日。
功能一:71 个子代理,按语言和岗位分工
- 语言岗铺得最细:Go、Python、Kotlin、Java、Rust、C++、F#、Ruby、TypeScript 各有一个 reviewer,其中 Go、Kotlin、Java、Rust、C++ 还各配一个 build-resolver,专治构建报错。
- 专业岗补位:
planner(功能落地计划)、architect(系统设计取舍)、tdd-guide、code-reviewer、security-reviewer、refactor-cleaner(清死代码)、doc-updater、e2e-runner(Playwright)、database-reviewer、mle-reviewer(生产 ML 管线评审)、pytorch-build-resolver(训练报错)、harmonyos-app-resolver。 - 三个不太像编码代理的:
chief-of-staff管沟通分诊与起草,harness-optimizer调 harness 配置,loop-operator跑自主循环。 - 格式可以直接抄:一个子代理就是一个带 YAML frontmatter 的 Markdown 文件,填 name / description / tools / model,写完丢进
agents/就生效。
功能二:311 个技能,编码以外的更值得看
编码类覆盖了主流栈的"四件套”:Django、Laravel、Spring Boot、Quarkus 各有一份 patterns、一份 security、一份 tdd、一份 verification;之外还有 api-design、database-migrations、deployment-patterns、docker-patterns、postgres-patterns、regex-vs-llm-structured-text 这种决策框架,以及 cost-aware-llm-pipeline(LLM 成本优化与模型路由)。
非编码类对做内容和副业的人更直接:
| 技能 | 用它做什么 |
|---|---|
article-writing | 按你给的语气写长文,官方描述是"不带通用 AI 腔" |
content-engine | 一份内容改写成多平台分发的物料 |
market-research | 市场、竞品、投资人研究,要求带出处 |
investor-materials | 路演稿、一页纸、备忘录、财务模型 |
investor-outreach | 定向募资邮件与跟进 |
videodb | 视频音频的摄取、检索、剪辑、生成、推流 |
osint-investigation | 开源情报方法论:竞争假设、证伪、影像核验 |
- 加载方式决定了能不能一起装。官方把概念按上下文行为分开:技能按需加载,子代理各自隔离上下文,规则是 always loaded,hook 跑在模型上下文之外,instinct 按相关性召回。话里的意思很明确:技能可以多装,规则要少装。
功能三:97 个命令,官方自己说它正在被技能取代
- 保留的入口:
/ecc:plan、/code-review、/build-fix、/refactor-clean、/context-budget(看上下文压力)、/save-session与/resume-session、/security-scan、/learn-eval。 - 退役的自选:
/tdd、/eval、/e2e、/verify被移进legacy-command-shims/,要显式 opt-in 才会出现。 - 官方立场是技能优先:仓库里写着新的工作流应该先落进
skills/。命令还在,作用是给习惯斜杠开头的人一个兼容入口。 - 一条推荐的日常顺序:建功能先用
/ecc:plan "描述这个功能"出计划,再走tdd-workflow;修 bug 先写一个能复现的失败测试;交活前/security-scan加 e2e-testing,最后/test-coverage确认覆盖率。
功能四:hooks 会替你在模型外面动手
- 触发方式是工具事件。官方示例给的是"编辑 .ts/.tsx/.js/.jsx 时,如果文件里有 console.log 就回一条提醒"。
- GateGuard 拦破坏性命令:
rm、带 force 或路径的git checkout、破坏性的find -exec在真正执行前被拦下;供应链 IOC 扫描放在 CI 里跑。 - 上下文占用可调:SessionStart 注入的额外上下文默认上限 8000 字符,可以整个关掉,给低上下文或本地模型省额度;instinct 默认最多注入 6 条、置信度低于 0.7 的不注入,再按项目与技术栈相关性加权排序。
- 这个能力有代价:hook 是在你的机器上执行的脚本,装之前要读。官方也把这一条写进了安全指南。
功能五:记忆能跨 harness 交接,但信任边界划得很死
- 格式是一份 Markdown。项目记忆在
.ecc/memory/,个人记忆在~/.ecc/memory/,文档格式叫ecc.memory.v1,不复制厂商的对话记录。 - 交接命令是核心动作:
ecc memory handoff --from hermes --target codex,另一侧用ecc memory search "authentication migration" --target-harness codex取回。我们自己在服务器上跑的就是 Hermes,ECC 的适配器清单里也确实有 hermes 这一项,不过被归在实验档。 - 三道护栏:记忆正文只接受
--stdin或--body-file,不能当命令行参数塞;首版所有条目都是 create-only 且标为未复核;个人范围要操作者显式打开ECC_MEMORY_ALLOW_USER_SCOPE=1。 - MCP 只开四个口子:
memory_save、memory_search、memory_read、memory_doctor,而且每个服务必须绑定小写 harness 身份,调用方不能自称。
功能六:AgentShield 把配置本身当攻击面
- 扫的是 agent 周边:提示词、hooks、MCP 配置、权限、密钥、agent 文件。
- 三种跑法:
agentshield scan --path .只扫,加--fix顺手修,加--opus --stream换模型并流式输出;也能接进 CI 的 GitHub Action。 - 有一条很硬的自我设限:必须用已经审阅过的
ecc-agentshield二进制,官方明说在注册表上发布本身不构成审计,并且不给一个固定的审计版本号。这种话很少见,反而更像安全工具该有的样子。
功能七:一份内容,多套 harness
官方把差异写成了一张能力声明矩阵,而不是营销档位:
| harness | 状态 | 关键限制 |
|---|---|---|
| Claude Code | 稳定主力 | 插件会把装好的目录清单告诉模型,在意上下文占用就改用精选安装 |
| Codex | 原生插件支持 | 原生 hook 要你在 /hooks 里显式信任,且没有 Claude 式的 hook 对齐 |
| Qoder | 原生插件 | 只启用被审阅过的 SessionStart hook,非交互 PATH 里要有 Node 18+ |
| Cursor / OpenCode | Beta 适配 | 子代理发现随 Cursor 版本变化 / 只带目录子集,要自己在 OpenCode 里连 provider 选模型 |
| GitHub Copilot | instruction-only 与 Beta | Chat 侧只放指令文件、hook 不适配;CLI 侧不装 hooks 和规则 |
| Gemini、Zed、Antigravity、Qwen、Hermes、OpenClaw、Kimi 等 | 实验性最小适配 | 只保证文件落位与指令可移植,不承诺与 Claude 功能对等 |
怎么用起来:一条命令,三种备选
前置:Node.js 18 或更新、Git、Claude Code 2.1 或更新(走插件路径时)。README 建议先 node --version、git --version、claude --version 三个都确认过再装。
- 推荐路径:
npx ecc-universal@2.2.3 setup。向导会先清点官方市场和你本机已有的安装范围,再决定装、更新还是安全迁移到user、project、local之一;装完新开一个会话,用/plugin list查ecc@ecc有没有启用。 - 原生插件路径:在 Claude Code 里执行
/plugin marketplace add https://github.com/affaan-m/ECC加/plugin install ecc@ecc。两条路装出来的东西一样,选一条就停手。 - 多 harness 一条命令:
npx ecc-universal@2.2.3 install --guided,可以同时勾 Claude Code、Codex、Kimi Code;勾完先预演:npx ecc-universal@2.2.3 install --guided --harness codex --dry-run。 - 上下文吃紧或本地模型:
npx ecc-universal@2.2.3 install --profile minimal --target claude,这个档位有意不带 hooks-runtime。
三条会踩的规矩:
| 规矩 | 为什么 |
|---|---|
| 每个 harness 只选一种装法 | 叠着装会重复技能、命令、hook 和配置;装到多个 harness 不重复,同一个 harness 装两次才重复 |
| 规则按语言和项目挑 | 规则是 always loaded,全装等于每个会话都多背一份标准 |
| 先读 hook 再装 | hook 在模型外替你的机器执行脚本,官方也要求先审 |
免费的边界在哪
平台自己分了三档:
| 档位 | 价格 | 你买到什么 |
|---|---|---|
| Free | $0 | OSS 全量 + 公共仓库的 GitHub App 分析,每月 10 次,每次最多 200 commits |
| Pro | $19 / 席位 / 月 | 私有仓库分析、PR 触发审计、每席位 50 次分析(整个安装池化)、每次 1000 commits、AgentShield 支撑的扫描、大 push 自动触发;年付约省 17% |
| Enterprise | 联系销售 | 不限次数、每次 5000 commits、SSO 治理与审计日志、自定义规则包、专属 onboarding 与 SLA |
一句话:纯本机自己用,OSS 那份 MIT 的就够;Pro 卖的是"托管 GitHub App 那一层",和仓库里的技能、代理、命令无关。
和站内写过的几个比
| 项目 | 它管的那一层 | 与 ECC 的差别 |
|---|---|---|
| marketingskills | 50 个营销技能 | 领域纵深,ECC 是全局流程加一个更宽的目录 |
| mattpocock-skills | 38 个工程技能 | 同一个思路的轻量版,ECC 多了子代理、hook、记忆 |
| context-mode | 上下文窗口优化 | 一个插件解决一件事,ECC 把上下文预算写进安装档位 |
| ifixai | 审计 Agent 有没有干该干的事 | 都盯信任,ifixai 出成绩单,ECC 出 AgentShield 扫描 |
我的判断
- 谁该上:同时用 Claude Code 和 Codex 的人值一次;想要"计划留痕、换上下文评审、跨工具记忆接力"的独立开发者和小团队也值;完全不写代码、只想要
article-writing和content-engine这类技能的人,可以按 minimal 档只取技能,别整包吞。 - 谁再等等:只用单一 harness、已经有一套自己调顺的 CLAUDE.md 或 AGENTS.md 的人。311 个技能加 97 个命令的目录,插件路径下会整份告诉模型,先算一下你的上下文账单。
- 谁别碰:把 hook 当黑盒直接装的人;从第三方镜像或搬运包下载的人——README 自己贴了警告,只有仓库、两个 npm 包、GitHub App、
ecc@ecc和官网是官方渠道,其他镜像可能带恶意代码。 - 已知缺陷照抄官方:Windows 原生下 continuous-learning v2 的观察者守护进程与 memory-vault 写入有未修缺陷(#2489、#2626);macOS 的独立 GAN shell 路径与系统自带 Bash 3.2 不兼容,而且带一个分数解析缺陷(#2674);Codex 拿不到 Claude 式 hook;仓库 222 个未关 issue,发版节奏靠一位维护者加赞助撑着。
本文由拾光札记编辑部整理,勘误请联系我们