# NavSea 20nm Small Scope Audit Method

## Goal

用小范围图像对比去服务两件事：

- 整理出当前继续收敛的唯一 `style.json`
- 建立一套比“只看后台数字”更可信的审计方法

这份方法不追求一次解释全部问题，只服务当前固定视觉基线：

- compare page:
  - `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`

## Current Style Under Test

当前继续整理、继续改的唯一 style 文件是：

- repo source:
  - [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
- deployed copy:
  - `/mnt/sda1/www/newpec/domain/style.navsea-delivery-karatsu-10nm.json`

说明：

- 虽然文件名里仍写着 `10nm`
- 但当前 `20nm compare` 右侧实际就是用这份 style
- 所以后续视觉复原应继续收敛这一个文件
- 不再新增新的 delivery style 主文件，除非明确要分叉方案

## Why Small Scope

整屏图像 diff 太粗，只能说明“还是不一样”。

当前更有效的方法是：

- 只盯 3 个代表性热点
- 每个热点绑定一类 backend 容易误判的问题
- 用小范围截图 + 点击拾取 + backend issue family 一起判断

这样做的目的不是追求一个漂亮的整屏 diff 数字，而是：

- 让 style 修改有明确观察点
- 让 backend audit 的问题项能和肉眼问题真正对应上

## Pilot Hotspots

当前试验版热点配置文件：

- [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json)

这 3 个热点分别代表：

1. `takashima_main_harbor_marks`
   - 看灯塔、小灯、红绿标识、近岸航标
   - 对应 backend:
     - `p航路標識群`
     - `safety_icon_missing`
     - `text_missing_in_engineering`

2. `takashima_inner_nearshore_hazards`
   - 看鱼礁、碍航点、近岸混合符号
   - 对应 backend:
     - `p投錨注意障害物`
     - `p航行危険障害物`
     - `p航路標識群`

3. `east_breakwater_marks`
   - 看远一点的防波堤灯台、港口标记
   - 对应 backend:
     - `p航路標識群`
     - `safety_icon_missing`

## Pilot Run

当前试验版报告：

- [`report/strict_audit_pilot/strict_audit_summary.md`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.md)
- [`report/strict_audit_pilot/strict_audit_summary.json`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.json)

热点截图目录：

- [`report/strict_audit_pilot/hotspots`](/root/sourceserver/pbf/report/strict_audit_pilot/hotspots)

本轮试验结果：

- `takashima_main_harbor_marks`
  - changed ratio: `0.783759`
- `takashima_inner_nearshore_hazards`
  - changed ratio: `0.744246`
- `east_breakwater_marks`
  - changed ratio: `0.617833`

当前解读：

- 这 3 个热点都足够敏感，能稳定反映当前 style 还没有复原到位
- 其中主港航标区最适合做第一优先级视觉回归观察点
- 东侧防波堤区差异最小，适合做“有没有被新改动误伤”的回归点

## Trustworthy Audit Method

当前建议的可信审计方法是四件事一起用：

1. 固定视觉页面
   - 只看 `20nm compare`

2. 小范围 AOI 图像审计
   - 只跑固定热点，不看整屏大 diff 做结论

3. 点击拾取
   - 在 compare 页里点具体对象
   - 看右侧实际命中的 `source`、`source-layer`、`render layer` 和属性

4. 对象级 backend audit
   - 用 `10nm rerun` 那套可回对口径
   - 主要检查：
     - `missing`
     - `extra`
     - `mismatch`

## Decision Rule

以后判断一次 style 修改是否可信，按这个顺序：

1. 修改 [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
2. 部署到 `/mnt/sda1/www/newpec/domain/style.navsea-delivery-karatsu-10nm.json`
3. 用固定页面肉眼看 3 个 pilot hotspots
4. 跑一次：

```bash
python3 navsea_strict_audit.py \
  --hotspots-json /root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json \
  --output-dir /root/sourceserver/pbf/report/strict_audit_pilot
```

5. 对热点里仍然不对的对象做点击拾取
6. 再决定问题属于：
   - style 表达式问题
   - sprite / runtime 问题
   - delivery PBF 语义字段不足，需要回 builder

## Current Conclusion

当前已经可以固定下来的东西是：

- 视觉基线：
  - `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`
- style source of truth:
  - [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
- 小范围试验审计：
  - [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json)
- 可信方法：
  - `20nm compare 肉眼审图 + 小范围 AOI 图像对比 + 点击拾取 + 10nm 对象级 backend audit`

这套方法比“只看 20nm backend 总数”更可信，也比“只看整屏图像 diff”更可操作。
