# AGENTS.md — comparison 工作区


> 编排规范（Bun TS 无 Makefile/Python）与操作红线见上级 `../AGENTS.md`。
nexify × graphify 代码图谱质量对比的基准工作区。产物:版本化缓存基线、对比脚本、对比报告。

## 关键指标(每次对比必须记录,缺一不可)

版本对比报告(compare_versions.py 输出)除了边集合数字,必须记录**扫描耗时**——与 INFERRED/EXTRACTED/AMBIGUOUS/UNRESOLVED 同为核心指标,判断补丁是否有性能代价。

### 扫描耗时记录表(nexify 冷建图,codewhale-snapshot,同机 2C VPS)

| 版本 | commit | extract_version | 冷建图 | extract | resolve | pending | INFERRED resolved |
|---|---|---:|---:|---:|---:|---:|---:|
| v6 | 4219072 | 6 | 38.1s | 20.7s | 17.4s | — | 24,860 |
| v7 | 2c2db25 | 7 | 38.8s | 22.1s | 16.6s | — | 21,423 |
| v8 | c1d1a19 | 8 | 39.8s | 21.7s | 18.0s | 128,358 | 21,150 |
| v9 | 5804bfc | 9 | 38.4s | 22.3s | 16.1s | 128,392 | 21,171 |
| v10 | 0da0a98 | 10 | **31.4s** | 24.7s | **6.5s** | 128,392 | 21,513 |
| v11 | 8aeafca | 11 | **33.5s** | 26.1s | **7.3s** | 128,392 | 21,622 |
| v12 | ead3674 | 12 | **35.5s** | **27.29s** | **8.08s**（首测 7.52s） | 128,392 | 22,451 |

⚠️ v10 起 resolve 大幅提速(16.1→6.5s,#M4-post-3 预建 re-export 链索引使 fallback 全库查询净减);v11 起 resolve ~7.3s(workspace crate 直导解析,仍远低于 v6-v9 档)。冷建图预期 ~31-33s,不再与 v6-v9 同档对比。

* v12 冷建图/extract/resolve 为 2026-09-03 06:17 重扫实测（停服务→删库冷扫，结果与归档 cache-ead3674-v12.db 逐项一致 22,451/252）；子代理首次扫描未记录 extract 耗时，7.52s 为其 resolve 首测值。

耗时来源:scan 命令日志(`extract: N changed in Xs` / `resolve: ... in Ys`),记录在 COMPARISON/对比报告 + `~/clawspace/nexify-verify/nexify-cache-baselines/README.md` 时间线。**新版本出基线时:冷扫日志的 extract/resolve 耗时、pending 数、INFERRED 数一并记入本表。**

## 工作流

### 新 nexify 版本出基线(顺序固定)
1. `cargo build --release`(nexify repo,确认二进制 commit ≥ 待测 commit;WIP 会 bump EXTRACT_VERSION 污染缓存)
2. `systemctl --user stop nexify-web.service`(防旧二进制重扫覆盖)
3. `rm .nexify/cache.db`(scan 无 --force,删库才干净冷扫)
4. `nexify scan .` → **记录 extract/resolve 耗时 + pending + INFERRED**
5. 归档 `~/clawspace/nexify-verify/nexify-cache-baselines/cache-<hash>-v<extract_version>.db` + 同步到本工作区 + 更新基线库 README
6. 重启 nexify-web.service
7. compare_versions.py 加版本(见下)→ 跑报告 → **更新本文件耗时表**

### compare_versions.py 加版本
改 `VERSIONS` 列表 + 所有硬编码版本点(§1/§3/§4 表头列、§2 转移循环、delta 行、§5 判定、intro "四份")。跑完目检每个表都出现新版本。

### 指标口径(易错)
- 总量 = edges 行数;跨版差分 = DISTINCT (source,target);(source,target,line) 会产生幻影消失
- 簇追踪 = label 精确匹配;召回哨兵 = id LIKE '%::Symbol'
- 判定消失边是修复还是回归:回源码;match guard 内调用自成类别(见 skills/graph-binding-audit §8)

## 相关资产
- 基线库:`~/clawspace/nexify-verify/nexify-cache-baselines/`(cache-<hash>-v<N>.db + README 时间线)
- 对比脚本:`compare_versions.py`
- 抽查方法:`skills/graph-binding-audit/SKILL.md`(完整方法论)
- nexify 仓库:`~/clawspace/nexify`(TODO-M4.md 记 issue #M4-post-N)
