G2-3 DCE 实际砍掉代码量估算¶
目的:估算
feature('X')包裹的代码块大小,按 flag 排序 方法:启发式 Python 脚本找feature('X')后的最近{...}配对 执行日期:2026-06-06 范围:src/ 下所有 .ts/.tsx
1. 总体估算¶
| 维度 | 数量 |
|---|---|
if (feature('X')) 块 |
328 |
feature('X') ? a : b 三元 |
144 |
| 涉及的唯一 feature flag | 约 70 |
| 总 DCE-gated 代码行数(估算) | ~30,000 行(5.9% of 512K) |
注:这是源代码中的占位,实际编译期被 DCE 砍掉。商业版 bundle 不含这部分。
2. Top 20 Flag 按累计 block 行数¶
| 排名 | Flag | 块数 | 累计行数 | 推测 |
|---|---|---|---|---|
| 1 | KAIROS | 47 | 5,023 | 计划/任务管理(最大功能) |
| 2 | TRANSCRIPT_CLASSIFIER | 32 | 3,817 | 对话分类(/insights 基础) |
| 3 | BASH_CLASSIFIER | 21 | 2,672 | bash 风险评估 |
| 4 | TEAMMEM | 21 | 2,277 | swarm 模式 |
| 5 | PROACTIVE | 16 | 1,759 | 主动模式 |
| 6 | VOICE_MODE | 15 | 1,654 | 语音 |
| 7 | COORDINATOR_MODE | 12 | 1,395 | 协调者 |
| 8 | BG_SESSIONS | 7 | 841 | 后台会话 |
| 9 | BUDDY | 7 | 663 | 伙伴 |
| 10 | KAIROS_BRIEF | 7 | 633 | 简短模式 |
| 11 | CONNECTOR_TEXT | 5 | 596 | - |
| 12 | KAIROS_CHANNELS | 6 | 592 | - |
| 13 | PROMPT_CACHE_BREAK_DETECTION | 6 | 554 | 缓存破坏检测 |
| 14 | EXPERIMENTAL_SKILL_SEARCH | 3 | 466 | 实验性 skill |
| 15 | UDS_INBOX | 4 | 462 | Unix Domain Socket |
| 16 | SHOT_STATS | 3 | 450 | 性能统计 |
| 17 | MCP_SKILLS | 4 | 449 | MCP skills |
| 18 | COMMIT_ATTRIBUTION | 3 | 409 | 提交归属 |
| 19 | WEB_BROWSER_TOOL | 2 | 377 | 浏览器工具 |
| 20 | REACTIVE_COMPACT | 3 | 355 | 主动压缩 |
3. 按"产品版本"分组¶
| 版本 | 估算独占代码 | 占比 |
|---|---|---|
| 公开版(外部)独有 | ~5,000 行 | 17% |
| 商业版独有 | ~15,000 行 | 50% |
| ANT 内部版独有 | ~8,000 行 | 27% |
| 实验性 | ~2,000 行 | 6% |
| 总 DCE-gated | ~30,000 行 | 100% |
4. 关键洞察¶
4.1 KAIROS 是最大功能(5,023 行 / 47 块)¶
- 占 DCE-gated 代码的 17%
- 47 个独立块分布在 30+ 个文件
- 推测是 Claude Code 的任务/计划管理核心
4.2 DCE 占比 5.9%——比预期小¶
之前 G1 报告有 857 次 feature() 调用,听起来多,但实际砍掉的代码量只有 5.9%。 - 因为大部分 feature() 是细粒度(单行/小函数) - 不是 857 行整段砍掉
4.3 三类"巨型" feature¶
| 类型 | 例子 | 数量 |
|---|---|---|
| 核心商业功能 | KAIROS / TRANSCRIPT_CLASSIFIER / BASH_CLASSIFIER | 3 个 >2500 行 |
| swarm 模式 | TEAMMEM / COORDINATOR_MODE / BUDDY | 3 个 >600 行 |
| 实验性 | VOICE_MODE / WEB_BROWSER_TOOL / REACTIVE_COMPACT | 5+ 个 200-1700 行 |
4.4 商业版"加价值"最大¶
商业版相对公开版多出 ~15,000 行代码(商业化收入来源): - 计划/任务管理(KAIROS) - 高级对话分析(TRANSCRIPT_CLASSIFIER) - 风险评估(BASH_CLASSIFIER)
5. DCE 实施位置¶
| 模式 | 数量 | 占比 | 用途 |
|---|---|---|---|
if (feature('X')) { ... } |
328 | 70% | 大段代码 |
feature('X') ? a : b |
144 | 30% | 单行条件 |
const x = feature('X') && ... |
(含在 144) | - | 短路 |
feature('X') \|\| feature('Y') |
(在 G1) | - | 复合 |
70% 是 if 块——这是 DCE 砍代码的主要方式。
6. 与 G1 报告的交叉对比¶
| G1 维度 | 数量 | G2 维度 | 估算 |
|---|---|---|---|
| feature() 总调用 | 857 | 总块 | 328 + 144 = 472 |
| 唯一 flag | 107 | 涉及 flag | ~70(其余是 simple boolean) |
| Top 1: KAIROS | 154 | KAIROS 块行 | 5,023 |
| Top 2: TRANSCRIPT_CLASSIFIER | 107 | TC 块行 | 3,817 |
| Top 3: TEAMMEM | 51 | TEAMMEM 块行 | 2,277 |
相关性:flag 调用次数 vs block 行数大致正相关,但不是线性(有些是 hot path 多次检查)。
7. 估算的局限¶
⚠️ 本估算不精确,原因:
1. 简化用 {} 配对,没处理 if/else、switch 等嵌套
2. 字符串内的 {} 可能误判(如模板字符串)
3. 没考虑 if (feature('X')) 后面跟的是 import(require(...))
4. feature('X') ? a : b 的 a 或 b 可能是 100+ 行,没计入
实际更准的方法:用 TypeScript AST 解析,但本仓库无 ts API,启发式足够做"量级估算"。
8. 结论¶
| 指标 | 数字 |
|---|---|
| DCE-gated 代码(估算) | ~30,000 行(5.9% of total) |
| 商业版 vs 公开版额外代码 | ~15,000 行 |
| ANT 内部版额外代码 | ~8,000 行 |
| 最大单个 feature | KAIROS 5,023 行 |
| 实际 bundle 节省(粗估) | 5-15% 文件大小 |
DCE 实施激进且精细——比同类产品(多数用 env var 运行时检查)更激进。
最后更新:2026-06-06 执行人:devxiaofan