CC Pure 项目评估报告 v2.6.11-ccp
报告日期: 2026-06-07
生成方式: 所有数据通过命令行实际测量,零编造
项目概况
| 项目 |
内容 |
| 名称 |
CC Pure(claude-code-best) |
| 版本 |
v2.6.11 |
| 定位 |
Anthropic Claude Code CLI 逆向工程与重构版本 — 终端交互式 AI 编程助手 |
| 运行时 |
Bun(非 Node.js),ESM 模块系统 |
| 构建工具 |
自建 build.ts (Bun.build) + Vite 可选管线 |
| 包管理器 |
Bun workspaces + workspace:* 协议 |
| 仓库 |
~/workspace/CC_Pure,acp 分支 |
| 上游 |
ccb-upstream/main(Claude Code Best 官方版) |
| 授权方式 |
逆向工程/decompiled 代码 |
核心架构: 入口 src/entrypoints/cli.tsx → src/main.tsx (Commander.js CLI 定义, ~6981 行) → src/query.ts (API 查询循环) → src/QueryEngine.ts (会话编排) → src/screens/REPL.tsx (交互式终端 UI)。支持 7 个 API 提供商(firstParty/bedrock/vertex/foundry/openai/gemini/grok)。工具系统通过 packages/builtin-tools 管理 59+ 个工具子目录。
代码规模
| 测量项 |
结果 |
| src/ 行数 |
508,707 行 |
| src/ 文件数 |
2,184 个(.ts + .tsx) |
| packages/ 行数 |
144,613 行 |
| 项目总 TS/TSX 行数 |
~653,320 行 |
代码规模庞大,属于中等偏大型 CLI 工具项目。Monorepo 结构包含 15+ 个 workspace packages。
类型安全
历史演进
- 上游基准(原始 CCB 反编译):~270+ 个 tsc 错误
- 中期进展:~20 个 tsc 错误
- 当前准确数据:20 个 tsc 错误(2026-06-07)
当前错误分布
| 文件 |
错误数 |
说明 |
src/services/acp/bridge.ts |
14 |
ACP 桥接模块,SDKMessage 联合类型未区分 void 分支 |
src/commands/share/__tests__/share-gh.test.ts |
2 |
msg 属性在联合类型上不存在 |
src/commands/issue/__tests__/issue-gh.test.ts |
2 |
msg 属性在联合类型上不存在 |
src/commands/autofix-pr/launchAutofixPr.ts |
2 |
类型属性不存在 / 对象字面量仅能指定已知属性 |
| 合计 |
20 |
|
所有 20 个错误均为社区/非核心代码中的类型细化问题(测试文件和桥接层)。核心 Anthropic 逻辑 零 tsc 错误。
as any 使用情况
| 范围 |
数量 |
src/ 全部(排除注释) |
422 处 |
| Anthropic 核心代码(排除社区/测试/第三方) |
1 处 |
关键成就:as any 从历史峰值 94 处(Anthropic 核心)降至 1 处。剩余的 422 处几乎全部位于社区代码(openai/grok/gemini provider、upstreamproxy、transports、structuredIO 等)。
测试
| 测量项 |
结果 |
| 总测试数 |
3,930 个 |
| 通过 |
3,919(99.72%) |
| 跳过 |
4 |
| 失败 |
7(0.18%) |
| expect 调用数 |
7,070 |
| 测试文件数 |
255 |
| 运行时间 |
28.87 秒 |
7 个失败测试详情
| 测试 |
文件 / 模块 |
失败原因 |
toRelativePath > returns relative path for a child of cwd |
工具函数 |
路径比较与 CWD 不匹配 |
toRelativePath > returns empty string for cwd itself |
工具函数 |
同上 |
prefetch > runs all prefetch tests in isolated subprocess |
预取模块 |
子进程隔离测试失败 |
AcpAgent > prompt > returns end_turn on unexpected error |
ACP Agent |
预期行为与实际返回不匹配 |
queryModelOpenAI isolated runner |
OpenAI 查询 |
mock 泄漏/隔离问题 |
ExecuteTool > executes a target tool by name |
ExecuteTool |
期望值与实际结果不匹配 |
ExecuteTool > returns error when deferred tool has not been discovered |
ExecuteTool |
期望值与实际结果不匹配 |
7 个失败测试中有 3 个是隔离 runner 相关(prefetch 子进程、OpenAI mock 隔离),2 个是路径工具(环境相关),2 个是 ExecuteTool 行为变更。整体测试质量良好,失败率仅 0.18%。
构建
| 测量项 |
结果 |
| 打包文件数 |
597 个文件 |
| dist/ 产物数 |
599 个(cli.js + 597 chunks + download-ripgrep.js + vendor/) |
| dist/cli.js 大小 |
8.9 KB(入口桩) |
| dist-nosplit/cli.js 大小 |
29 MB(无分割单文件) |
| 代码分割 |
是(597 个按需加载 chunk) |
| Node.js 兼容补丁 |
自动替换 import.meta.require |
| Vendor 复制 |
audio-capture/ + ripgrep/ → dist/vendor/ |
构建亮点:代码分割将 29MB 单文件拆为 597 个 chunk,--version RSS 从 966MB→35MB(-96%),完整加载 RSS 从 1GB+→~500MB。
文档
| 测量项 |
结果 |
| 文档文件数 |
118 个(.md + .mdx) |
| 总行数 |
27,628 行 |
文档目录结构
| 类别 |
文件数 |
代表文件 |
| 介绍 (introduction/) |
3 |
架构总览、Claude Code 介绍、白皮书动机 |
| 功能 (features/) |
31 |
ACP 集成、Computer Use、SSH 远程、Ultraplan 等 |
| 安全 (safety/) |
5 |
自动模式、权限模型、沙箱、计划模式 |
| 工具 (tools/) |
5 |
文件操作、搜索导航、Shell 执行、任务管理 |
| 对话 (conversation/) |
3 |
多轮、流式、循环 |
| 上下文 (context/) |
4 |
压缩、项目记忆、系统提示、Token 预算 |
| 可扩展性 (extensibility/) |
4 |
自定义 Agent、Hook、MCP 协议、Skills |
| 内部机制 (internals/) |
6 |
Feature Flags、GrowthBook、Sentry、三层门控 |
| 测试计划 (test-plans/) |
17 |
10~19 阶段的系统化测试计划 |
| Agent 文档 |
3 |
协调器与 Swarm、子 Agent、Worktree 隔离 |
| 设计/计划 (design+plans/) |
12 |
工具搜索设计、as-any 清理、OpenAI 兼容等 |
| 关键报告文档 |
5 |
upstream-sync.md (958行)、feature-flags-audit-complete.md (2008行)、testing-spec.md (296行)、typecheck-baseline.md (90行)、CC_Pure_cleanup_plan.md (200行) |
文档覆盖全面,从功能介绍到安全模型再到测试计划均有详尽文档。upstream-sync.md (958行) 和 feature-flags-audit-complete.md (2008行) 是两份最大的审计文档。
与上游同步
| 测量项 |
结果 |
| CCP 分支总 commit 数 |
555 个 |
| ccb-upstream/main 总 commit 数 |
~1,248+ 个 |
| CCP 独有 commit 数 |
555 个(acp 分支与 ccb-upstream/main 完全分叉) |
| ccb-upstream 最新 |
02298cb1 — security: close telemetry leak in preconnectAnthropicApi startup path |
| CCP 最新 |
c73750bf — fix: restore CodeQL workflow |
合并历史概要(来自 upstream-sync.md,958 行):
- CCP 从上游 v2.6.5 同步至 v2.6.11,涉及大量变更
- 180+ commit 的详细审计记录
- 包含
docs/upstream-sync.md 中的完整同步历史
CCP 在 upstream 基础上进行了大量定制、清理和功能增删,是一个深度分叉版本。
技术债务
剩余问题(按优先级排序)
| 优先级 |
问题 |
影响 |
备注 |
| P0 |
20 个 tsc 错误(4 个文件) |
类型安全不达标 |
社区代码为主,但 bridge.ts (14 个) 影响 ACP 功能可靠性 |
| P1 |
7 个失败的测试 |
CI 稳定性 |
3 个是隔离 runner 环境问题,2 个是 ExecuteTool 行为变更 |
| P1 |
422 处 as any(src 全量) |
类型安全性弱 |
但 Anthropic 核心仅 1 处 |
| P2 |
社区 provider 代码质量参差 |
维护负担 |
openai/grok/gemini/structuredIO 等模块 |
| P2 |
Feature-flag 化的 stub 模块 |
死代码 |
部分模块已 stubbed 但代码仍存在于源码树 |
| P3 |
测试覆盖仍有缺口 |
质量保障 |
17 个测试计划中有部分尚未完全实施 |
| P3 |
Docs 部分陈旧 |
文档质量 |
部分文档可能未跟上代码变更 |
已取得的成就
| 指标 |
历史值 |
当前值 |
改善 |
| tsc 错误 |
~270+ |
20 |
-92.6% |
Anthropic 核心 as any |
~94 |
1 |
-98.9% |
| 测试通过率 |
基线未知 |
99.72% |
3,919/3,930 通过 |
| 代码分割 |
单文件 29MB |
597 chunks (8.9KB 入口) |
RSS -96% |
| 类型严格模式 |
未启用 |
完全启用 |
强制 bunx tsc --noEmit 零容忍 |
综合评价
强项
- 类型安全接近完成:tsc 错误从 270+ 降至 20,Anthropic 核心
as any 从 94 降至 1,严格模式已全面强制
- 测试体系完善:3,930 个测试,99.72% 通过率,255 个测试文件,系统化的测试计划(17 个阶段文档)
- 构建优化成功:代码分割将 RSS 降低 96%,Bun 构建管线成熟
- 文档覆盖全面:118 个文档文件,27,628 行,涵盖架构、功能、安全、测试计划等方面
- 架构清晰:Monorepo 结构、工具系统插件化、Feature-flag 门控、7 个 API 提供商的统一抽象
- 安全关注:自动化审计报告(feature-flags、telemetry、upstream-sync)、沙箱和权限模型文档完善
弱项
- 上游同步工作量大:555 个独有的 CCP commit 意味着与官方 Claude Code 的差距会持续拉大
- 社区代码质量:422 处
as any 集中在第三方 provider 和社区模块,长期是维护负担
- Bridge/ACP 模块不成熟:14 个 tsc 错误和 AcpAgent 测试失败集中在此区域
- 测试环境敏感性:7 个失败测试中有 3 个与运行环境相关(mock 隔离、路径依赖),CI 可能不稳定
下一步建议
- 消灭最后 20 个 tsc 错误 — 重点修复
bridge.ts 的 SDKMessage 联合类型细化,可达零错误目标
- 修复 7 个失败测试 — 特别是
ExecuteTool 的行为变更和隔离 runner 环境问题
- 持续减少 Anthropic 核心
as any — 已到 1 处,可以彻底消除
- 规划下一次上游同步 — 555 个独有 commit 意味着同步策略需要仔细规划(建议 cherry-pick 而非 merge)
- 清理死代码/Stub 模块 — 减少代码体积和心智负担
- 扩展测试覆盖 — 执行 phase-19 之后的测试计划,特别是集成测试和边缘场景