Files
playbook/cangjie-skill/benchmarks/naval/phase0-report.md
T
2026-08-31 05:00:46 +08:00

85 lines
6.2 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.
# Phase 0 基线报告 — Naval 试点(single vs pack 低成本证伪)
- 日期: 2026-08-25
- 依据方案: `docs/plans/2026-08-23-cangjie-skill-optimization-plan.md`v1.3.1
- 状态: **步骤 1—5、7 完成;读者交叉试用(步骤 6)待用户执行**
## 1. 基线冻结
| 项 | 值 |
|---|---|
| 冻结分支 | `baseline/naval-freeze-20260825`(基于 `origin/main` `a47a604`,独立 worktree `../cangjie-baseline` |
| 冻结提交 | `f59f64c`74 文件:19 Skill × 3 文件 + 审计文件 + SHA-256 清单) |
| 本地 tag | `baseline-naval-19skill-20260825`**仅本地,未推送** |
| 完整性 | `books/naval-almanack-skill.SHA256SUMS` 73 条校验和全部通过 |
| 静态校验 | `validate_skill_pack.py`: 19 SKILL.md / 54 md0 errors 0 warnings |
## 2. 产出物
| 产物 | 路径 |
|---|---|
| 人工能力映射(唯一判断产物) | `benchmarks/naval/capability-map.yaml`(19 能力:id/重要度+依据/意图/关键词/一句话规则/晋级判定) |
| single 原型 | `benchmarks/naval/prototypes/single/naval-almanack/`1 入口 + 19 能力卡 + overview/glossary/cheatsheet/索引 + BUILD_MANIFEST |
| compact pack 原型 | `benchmarks/naval/prototypes/compact-pack/`1 路由入口 + 6 晋级 Skill + `capability-destinations.json` |
| Phase 0 工具(纯确定性) | `scripts/validate_skill_pack.py``scripts/compile_single.py``scripts/count_tokens.py` |
| A 类静态指标 | `benchmarks/naval/metrics/a-class-metrics.{json,md}` |
| 任务集与路由评测 | `benchmarks/naval/task-set-v1.json``benchmarks/naval/phase0-routing-eval.md` |
**晋级门评审结果**(预算 ≤8 入口,实际 7):晋级 `wealth-structure``productize-yourself``decision-heuristics``hourly-rate-time``reading-metaskill``screen-detox`;其余 13 能力留路由域(幸福/接受/冥想等近邻域按 §4.6.5 统一路由,等 split-on-evidence)。逐条依据见 capability-map.yaml 的 `promotion_notes`
## 3. A 类静态指标(tokenizer=cl100k_baseo200k 结论方向一致)
| 指标 | A 原版 19 Skill | B single | C compact pack |
|---|---|---|---|
| 入口数 | 19 | **1** | **7** |
| 发现负载(常驻目录) | 3,897 | **340(−91%** | 1,575(−60% |
| 单任务负载 median | 2,207 | 4,730**+114%** | 晋级命中 2,247(持平);路由命中 4,957 |
| 语料总量 | 113,417(含审计文件) | 52,599 | 68,799 |
**解读**:数据坐实了 v1.3 的预判——single 省的是**入口数与常驻发现负载**(产品/认知成本),但**每任务 token 负载翻倍**(入口 SKILL.md ~2.6k + 能力卡 ~2.1k)。若按「常驻每会话都付、任务负载只在命中时付」的模型,B 只有在**每会话命中任务 ≤1 次**时才有 token 净收益;token 角度 C 是更好的折中。**因此 single 的取舍理由只能是认知/管理成本,不能宣传为省 token**——这必须写进后续对外文案。
## 4. 路由评测(探索性,20 任务)
| 版本 | 命中预期 | acceptable/部分 | 无承接 | 正确判停 |
|---|---|---|---|---|
| A 原版 | 14 | 3 | **1** | 2 |
| B single | 18 | 0 | 0 | 2 |
| C compact | 18 | 0 | 0 | 2 |
关键发现:
1. **A 的结构性盲区**:书级查询(作者/章节/术语)没有任何已安装入口承接——INDEX/GLOSSARY/OVERVIEW 是构建产物不随 Skill 安装。B/C 的 overview/glossary 路由直接补上这块。
2. **B 的最大实证风险是真实触发率**19 条 description 合计 ~3.9k token 的触发面被压缩到 340 token,不含「纳瓦尔」关键词的裸意图("我总控制不住发火")在真实宿主里是否激活 single 入口,静态判定测不出来。这正是读者测试的核心问题。
3. 近邻意图(T16—T18)在 B/C 的显式路由表下判定精确度不低于 A 的 description 竞争。
4. 本轮为主流程自评 + 静态判定,含乐观偏差,不能用于「不劣于」结论(详见 phase0-routing-eval.md 的偏差声明)。
## 5. §10.6 终止条件判定
| 终止信号 | 是否触发 | 依据 |
|---|---|---|
| single 路由命中明显差于 A | **否** | 静态判定 B ≥ A18+2 vs 14+3+2),且补上书级查询盲区 |
| 能力覆盖丢失严重 | **否** | 19 能力全量编译为能力卡,0 丢失;晋级 6 能力双视图可达 |
| token 负担不可接受 | **部分预警** | 每任务负载 +114%;不构成终止,但否决「single 省 token」叙事 |
| 编译流程不可行 | **否** | 纯确定性编译 + 校验全绿,含死链清洗与发布哈希 |
**结论:不触发终止,进入读者交叉试用。** 但基于数据做两点方向修正建议:
1. `auto` 默认策略倾向 **compact pack**(发现负载 −60%、高频任务负载持平、书级查询有承接),single 作为「重视认知成本/单书轻使用」场景的显式选项——待读者测试数据确认后写入 ADR-002 的最终裁决。
2. 对外文案禁止「single 更省 token」表述,统一为「更少入口、更低管理与认知成本」。
## 6. 待用户执行:读者交叉试用协议(步骤 6)
1. 选定**一个宿主并锁版本**(如 Cursor 当前版本),记录宿主名+版本号。
2. 三个版本分别安装到干净的 skills 目录(一次只装一个版本):
- A: `books/naval-almanack-skill/` 下 19 个 Skill 目录
- B: `benchmarks/naval/prototypes/single/naval-almanack/`
- C: `benchmarks/naval/prototypes/compact-pack/` 下 7 个目录
3.`task-set-v1.json` 抽 5—10 条(务必含 T05/T16/T17 这类**不含书名关键词**的裸意图),观察:入口是否触发、是否加载了正确能力卡、超范围题是否判停。
4. 每条记录:宿主、任务 id、触发的入口、加载的文件、主观质量 1—5 分。
5. 结果回填 `benchmarks/naval/phase0-report.md` 附录,据此做 go/no-go 与 auto 默认策略裁决。
## 7. 遗留与不做清单
- 能力卡未携带 per-capability `test-prompts.json`Phase 1 的 Capability Bundle 契约再定)。
- 未建 `.cangjie/` 侧车、缓存、依赖图、SourceDocument、CLI——按方案 Phase 0 明确不做。
- 全部改动**未推送**:基线 tag/分支在本地,工作区新增文件未提交(见报告末尾文件清单)。