claude-code-best/docs/project-assessment.md

213 lines
10 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.

# CC Pure 项目评估报告 v2.6.11-ccp
> **报告日期**: 2026-06-07
> **生成方式**: 所有数据通过命令行实际测量,零编造
---
## 项目概况
| 项目 | 内容 |
|------|------|
| **名称** | CC Pureclaude-code-best |
| **版本** | v2.6.11 |
| **定位** | Anthropic Claude Code CLI 逆向工程与重构版本 — 终端交互式 AI 编程助手 |
| **运行时** | Bun非 Node.jsESM 模块系统 |
| **构建工具** | 自建 `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 | 1019 阶段的系统化测试计划 |
| **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` 零容忍 |
---
## 综合评价
### 强项
1. **类型安全接近完成**tsc 错误从 270+ 降至 20Anthropic 核心 `as any` 从 94 降至 1严格模式已全面强制
2. **测试体系完善**3,930 个测试99.72% 通过率255 个测试文件系统化的测试计划17 个阶段文档)
3. **构建优化成功**:代码分割将 RSS 降低 96%Bun 构建管线成熟
4. **文档覆盖全面**118 个文档文件27,628 行,涵盖架构、功能、安全、测试计划等方面
5. **架构清晰**Monorepo 结构、工具系统插件化、Feature-flag 门控、7 个 API 提供商的统一抽象
6. **安全关注**自动化审计报告feature-flags、telemetry、upstream-sync、沙箱和权限模型文档完善
### 弱项
1. **上游同步工作量大**555 个独有的 CCP commit 意味着与官方 Claude Code 的差距会持续拉大
2. **社区代码质量**422 处 `as any` 集中在第三方 provider 和社区模块,长期是维护负担
3. **Bridge/ACP 模块不成熟**14 个 tsc 错误和 AcpAgent 测试失败集中在此区域
4. **测试环境敏感性**7 个失败测试中有 3 个与运行环境相关mock 隔离、路径依赖CI 可能不稳定
### 下一步建议
1. **消灭最后 20 个 tsc 错误** — 重点修复 `bridge.ts``SDKMessage` 联合类型细化,可达零错误目标
2. **修复 7 个失败测试** — 特别是 `ExecuteTool` 的行为变更和隔离 runner 环境问题
3. **持续减少 Anthropic 核心 `as any`** — 已到 1 处,可以彻底消除
4. **规划下一次上游同步** — 555 个独有 commit 意味着同步策略需要仔细规划(建议 cherry-pick 而非 merge
5. **清理死代码/Stub 模块** — 减少代码体积和心智负担
6. **扩展测试覆盖** — 执行 phase-19 之后的测试计划,特别是集成测试和边缘场景