← 返回文章列表← Back to posts

从 CC-OS 到 CC-GEB:我如何用一张截图重构了整个 AI 编程配置体系From CC-OS to CC-GEB: How a Screenshot Sparked a Full Rebuild of My AI Coding Config

一个 Claude Code 配置体系的进化史——从 120 行全局宪法到 20 行极简配置,四刀精简砍掉 87% context 开销,融合 AI Coding 方法论的六层 workflow,最终收敛为一个 /cc-geb Skill 命令和三档渐进式配置。Evolution of a Claude Code config system — from a 120-line global constitution to 20 lines, cutting 87% context overhead, merging a 6-layer AI coding workflow methodology, converging into a single /cc-geb Skill with three progressive tiers.

·13 分钟阅读min read

从 CC-OS 到 CC-GEB:我如何用一张截图重构了整个 AI 编程配置体系

一个 Claude Code 配置体系的进化史——从 120 行全局宪法到 20 行极简配置,从全有或全无到三档渐进,从重型方法论到一个 Skill 命令。


故事的起点:一张方法论截图

事情是这样开始的。

我在某个地方看到一套"AI Coding 方法论"的截图——一张 workflow 架构图,描述了 AI 接手项目时应该先做什么、后做什么。它的核心思想很简单:

AI 接手一个新项目时,不应该先写业务代码,而是先建立治理结构、信息结构和决策路径。

这个方法论把项目工作分成六层:

01-rule       元规则:workflow 怎么运行
02-session    记忆沉淀:协作历史、惊讶度、决策变化点
03-design     版本设计:目标、路线图、架构
04-testing    验证闭环:测试用例、失败证据
05-execution  约束执行:代码实现、落地计划
06-knowledge  知识库:稳定结论、技术背景

最有意思的是它的闭环设计:execution 不是终点。代码写完后,执行结果要回写到 session(记录过程)、testing(回写证据)、knowledge(沉淀结论)、rule(更新治理规则)。

我看完第一反应是:这不就是我一直在用的 CC-OS 缺失的那一半吗?


CC-OS 的前世:一个越写越重的全局宪法

先说背景。CC-OS(Claude Code 工程操作系统)是我之前搭建的 Claude Code 配置体系。它的核心是一套"分形文档协议"——受 GEB(Gödel, Escher, Bach)启发的三层文档同步机制:

L1  项目 CLAUDE.md    ← 项目宪法
L2  模块 CLAUDE.md    ← 局部地图
L3  文件头部注释       ← 代码契约

每次改代码,必须同步更新对应层级的文档。代码是机器相,文档是语义相,两者必须同构。我甚至写了一个叫 GEB Loop 的强制回环:

代码变更 → L3 头部一致? → L2 清单更新? → L1 目录更新?

理念很优雅。问题是,我把太多东西塞进了全局配置。

当时的 ~/.claude/CLAUDE.md 有 120 行,包含:系统宪法、全局法则、目录地图、config 清单、workflow 步骤、边界声明、公理箴言。每次我启动 Claude Code——哪怕只是问一句"这个 API 怎么用"——这 120 行全部加载到 context 里。

更夸张的是配套文件。DOC_PROTOCOL.md 有 177 行,其中 60% 是布道词("我是分形的守护者""代码在审判我")。PHILOSOPHY.md 有 92 行。6 个 rules 文件共 270 行。5 个 templates 共 371 行。11 个 scripts 共 1282 行。

总计:全局每个 session 加载约 510 行方法论。

而这 510 行里,有多少是 Claude 本来就会做的?


第一刀:砍掉 Claude 已经会做的

我决定逐行审判:这条规则是否真的改变了 Claude 的行为?

结果触目惊心。

rules/security.md 全部 29 行——"No hardcoded secrets""Parameterized queries""CSRF protection"——Claude 的系统 prompt 已经包含 OWASP Top 10 防护,这些不是规则,是常识。删。

rules/coding-style.md 的 Error Handling 和 Input Validation——Claude 默认就会做。Code Quality Checklist 里"Functions are small""No deep nesting"——这是 Claude 的基础编码能力。只保留两条 Claude 不会默认做的:Immutability(强制不可变) 和 文件 800 行上限。48 行 → 16 行。

templates/claude.md 里的 Working Rules——"Clarification First""Ask-User-Questions""Plan Before Execute"——这三条是 Claude 的默认行为。还有 60 行的 Agent Team Recipe 塞在项目模板里。项目 CLAUDE.md 应该是项目事实声明,不是流程手册。152 行 → 39 行。

DOC_PROTOCOL.md 删掉布道词,只留操作规程。177 行 → 80 行。

第一刀砍完:1030 行 → 401 行,降 61%。

但这还不够。


第二刀:发现"愿景伪装成配置"

审查过程中我发现了一个更隐蔽的问题:有些配置看起来像功能,但实际上不会被执行。

MCP Profiles。 CC-OS 定义了 4 个 MCP Profile(minimal/web-research/e2e/security),用户可以在 CLAUDE.md 里写 <mcp-profile>minimal</mcp-profile>。问题是:Claude Code 根本不支持这个功能。写了也不会自动启用/禁用任何 MCP。这整个文件是一个愿景文档伪装成配置。

Auto-Context Loading。 模板里写着"System will automatically check these files based on <config>"——但 Claude Code 不会自动加载 STACK.md/SKILLS.md。这需要手动 include 或写 hook。标注"auto"是误导。

<abstract>/<overview> Auto-generated。 模板里有"Updated by CC-Kit summary-worker"占位符,但 summary-worker 从来不会自动填充这些字段。

删掉这些幽灵功能后,才开始真正的重构。


第三刀:与 AI Coding 方法论的融合

回到开头那张截图。分析完两套体系,我发现它们处于正交的两个维度:

CC-OS AI Coding 方法论
管什么 空间结构(文档怎么组织同步) 时间流程(工作怎么推进路由)
法则 Map = Terrain 回写闭环
触发 每次代码变更后 每次阶段切换时

CC-OS 管的是"文档该长什么样",方法论管的是"AI 该先做什么、后做什么"。

更关键的是,CC-OS 有三个空白区恰好被方法论补上:

  1. Session 记录——CC-OS 没有项目级的协作历史。方法论的 02-session 记录每轮对话的时间线和惊讶度。
  2. Testing 作为一等层——CC-OS 的测试只是 START.md 里的一个场景。方法论把验证闭环提升为独立的治理层。
  3. Knowledge 沉淀——CC-OS 的文档是"代码的镜像",但没有独立的"稳定知识"存储。

融合方案:workflow-bootstrap 成为新模板,六层目录作为可选的项目结构,两套回环并行——代码变更触发 GEB Loop,阶段切换触发 workflow 回写。


第四刀:根本问题——CC-OS 不分场景

融合之后我退后一步看全局,发现了一个更根本的问题。

我问自己:用户和 Claude Code 交互的真实场景分布是什么?

闲聊/问答            30%    → 完全不需要方法论
小脚本(<5 文件)    25%    → 不需要分形文档
修 bug               20%    → 部分有用
中型项目             15%    → 有用
大型产品             10%    → 非常有用

CC-OS 的 rules/ 是全局的。~/.claude/rules/ 下的每个文件在每个 session 都会加载——包括你问"React Server Components 是什么"的时候。

90% 的场景在承担 100% 的 context 开销。

这才是真正的问题。不是内容不好,是不分场景。全局配置是 0 或 100,缺少 30 和 60。


解法:三档渐进 + 一个 Skill

重构的核心设计:

全局层(每个 session 都加载,必须极简)
  └── ~20 行:语言偏好 + 调试纪律
  └── ~47 行 rules:coding-style + git + performance

项目层(/cc-geb init 按需生成,三档可选)
  ├── 轻量:只有项目描述 → 开源项目、小脚本
  ├── 标准:+ GEB 文档同步 → 中型项目
  └── 完整:+ workflow 六层 + 回写闭环 → 大型产品

DOC_PROTOCOL 和 PHILOSOPHY 从全局层下沉到项目模板。你选"标准"才会有 GEB Loop,选"轻量"就是个干净的项目描述。

整个体系的用户入口收敛为一个 Skill:

/cc-geb              自动检测项目状态,推荐动作
/cc-geb init         初始化(轻量/标准/完整)
/cc-geb check        文档巡检
/cc-geb upgrade      升级配置级别

为什么是 Skill 而不是终端脚本?因为 Skill 运行在 Claude Code 里——Claude 能读懂 package.json、扫描目录结构、用 AI 智能填充项目描述。一个终端脚本只能做模板替换。


最难的设计决策:已有项目怎么办

大部分用户不是从零开始。他们拿到一个开源项目,或者接手一个历史仓库。而且现在很多项目已经有自己的 CLAUDE.md。

核心原则:只做加法,不做改法。

cd 到一个项目 → 检测 CLAUDE.md

(A) 没有 CLAUDE.md → 建议 /cc-geb init
(B) 有 CLAUDE.md,非 CC-GEB 的 → 不动它,只提供补充件
(C) 有 CC-GEB 的 CLAUDE.md → 完整行为

场景 B 是关键。如果 CC-GEB 试图改写别人的 CLAUDE.md,用户会直接卸载。所以 /cc-geb init 检测到已有配置时,只会问"要不要补充一个 STACK.md?"或"要不要生成 workflow/ 目录?"——绝不碰已有文件。

GEB Loop 的适用范围也做了限定:只对 Claude 本次修改的文件生效,不追溯改造已有代码。 这样你 clone 一个 5000 文件的开源项目,Claude 不会试图给每个文件加 L3 header——只有 Claude 自己新建或修改的文件才需要遵守文档同步协议。


命名的进化

最后说说名字。

CC-OS(Claude Code 工程操作系统)→ CC-Kit(Claude Code 配置工具包)→ CC-GEB。

CC-OS 太重了,"操作系统"给人感觉要接管一切。CC-Kit 精确但无聊。CC-GEB 保留了核心理念的致敬——GEB 是 Gödel, Escher, Bach 的缩写,分形文档协议的灵感来源。

Skill 命名也经历了迭代。最初是两个独立的 Skill(/cc-init + /doc-gardening),后来合并为一个 /cc-geb,三个子命令。用户只需要记住一个词。

无参数的 /cc-geb 会自动检测项目状态并推荐动作——新用户不需要知道该 init 还是 check,Skill 自己判断。


最终形态:数字说话

                v1 CC-OS      v3 CC-GEB      变化
全局加载量       ~510 行       ~67 行        -87%
配置文件数       15 个         8 个核心      -47%
脚本数量         11 个         2 个          -82%
Skills           1 个          1 个          不变(但功能更多)
模板             5 个          5 个          不变(但用途更明确)

用户需要记住的命令:/cc-geb

三个场景的用户体验:

场景 全局加载 用户动作 感受
闲聊 67 行(语言偏好 + 编码风格) 无 无感知
已有项目 67 行 + 项目自有 CLAUDE.md 可选 /cc-geb 不入侵
新大型项目 67 行 /cc-geb init → 完整 全套方法论

复盘:三个教训

1. 好的配置体系是"你感觉不到它在"的体系。

CC-OS 最大的问题不是缺什么,而是太"在场"。Claude 在调试一个简单 bug 时主动提起分形文档和 GEB Loop,这很违和。全局配置应该像空气——需要的时候才注意到它。

2. 永远不要把 Claude 已经会做的事再声明一遍。

每多一行冗余规则,就多占一份 context,而且产生"规则之间谁优先"的歧义。好的 CLAUDE.md 应该只写覆写默认行为的条目。如果你发现自己在写"handle errors explicitly"——停下来,这是 Claude 的默认行为。

3. 操作手册应该像 RFC,不是经文。

"我是分形的守护者""代码在审判我"在第一次读到时很有感染力,但作为每个 session 都加载的 context,它只是噪音。留下操作规程,删掉布道词。感染力留给 README 和博客文章。


尾声

从一张截图开始,到完整重构结束。CC-GEB 现在是一个你可以 git clone → ./install.sh → 进任何项目 /cc-geb 就能用的东西。

它不再试图做一个"操作系统"。它只是一个配置工具包,核心承诺很简单:

闲聊不碍事,小项目轻量,大项目完整。

仓库地址:github.com/felix5127/CC-GEB


架构即认知,文档即记忆。 但好的记忆系统不是把所有事都记住——是知道什么时候该记住,什么时候该忘掉。