# PBF Step Record

Last Updated: 2026-03-31
Repo: `/root/sourceserver/pbf`
Remote: `ssh://git@nas:2222/tei/pbf.git`

## Active Baseline

当前唯一固定使用的视觉审计页面：

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

当前页面版本体系：

- `HTML: compare-r10-20260331-2213`

当前页面支持 2 个 profile，但仍是同一张 HTML：

1. 唐津 20 海里
   - `Style: karatsu-style-r7-20260331-2045 (style.navsea-delivery-karatsu-10nm.json)`
   - `PBF: karatsu-pbf-20nm-20260325-1757 (pbf-delivery-karatsu-20nm)`

2. 九州
   - `Style: kyushu-style-r1-20260331-2205 (style.navsea-delivery-kyushu.json)`
   - `PBF: kyushu-pbf-reencoded-20260325-1105 (pbf-delivery-kyushu-reencoded)`

访问方式：

- 默认唐津：
  - `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html`
- 九州模式：
  - `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=kyushu`

工作规则：

- 不再新增 compare 页面
- 视觉确认统一只看这一个 URL
- 页面必须保持：
  - 左右联动
  - 点击拾取
  - HTML / Style / PBF 三层版本可见

## Current Truth

当前继续收敛的主 style 文件：

- [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)

当前九州 delivery style：

- [`src/pbf/style.navsea-delivery-kyushu.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-kyushu.json)

关于当前问题，已经确认：

- `20nm pbf` 本身最近没有被重建改坏
- 鱼礁、灯塔、灯台等对象在 `20nm pbf` 里仍然存在
- 当前“看起来又丢了”的主因优先判断为：
  - style 表达式 / icon 选择问题
  - 不是 compare HTML 切错
  - 也不是 20nm pbf 最近重建

一句话判断：

- 当前主矛盾是 `style`
- 不是 `PBF 不见了`

## Audit Method

当前认可的可信审计方法：

1. `20nm compare` 肉眼审图
2. 小范围 AOI 图像对比
3. compare 页点击拾取
4. `10nm rerun` 对象级 backend audit

当前小范围试验方法文档：

- [`NavSea_20nm_Small_Scope_Audit_Method.md`](/root/sourceserver/pbf/NavSea_20nm_Small_Scope_Audit_Method.md)

当前 pilot 热点配置：

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

当前 pilot 报告：

- [`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)

当前结论：

- 不再只看整屏 diff
- 不再只看 `20nm` backend 总量数字
- `20nm` backend 仍不适合当严格对象级审计

## Current Audit Status

### 20nm Visual Pilot

当前 3 个热点：

1. `takashima_main_harbor_marks`
   - changed ratio: `0.783759`
2. `takashima_inner_nearshore_hazards`
   - changed ratio: `0.744246`
3. `east_breakwater_marks`
   - changed ratio: `0.617833`

这说明：

- 视觉仍然没有收敛到“可推广”状态
- 主港航标区仍是第一优先级观察点

### 10nm Object-Level Backend Audit

当前最可信的对象级 backend 审计报告：

- [`NavSea_Original_vs_Delivery_Render_Audit_Karatsu_10nm_2026-03-31.rerun.md`](/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_10nm_2026-03-31.rerun.md)
- [`NavSea_Original_vs_Delivery_Render_Audit_Karatsu_10nm_2026-03-31.rerun.json`](/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_10nm_2026-03-31.rerun.json)

当前结果：

- `exact_match = 121855`
- `mismatch = 12912`
- `missing_in_engineering = 5`

这说明：

- 当前 10nm 已经不是“对象大面积丢失/多出”的阶段
- 现在主要是 visual / semantic mismatch 修复

当前 mismatch 最大几组：

- `P基本線ククリ = 7873`
- `P基本線 = 2876`
- `L基本線 = 619`
- `p航路標識群 = 574`
- `p投錨注意障害物 = 374`
- `p航行危険障害物 = 296`

## Delivery Field Policy

总目标：

- `尽可能减少日文`

当前字段处置规则：

- `canonical_family`
  - 保留
  - 已经是英文

- `canonical_object_type`
  - 不直接删除
  - 改成稳定英文值

- `semantic_key`
  - 正式 release PBF 直接删除
  - audit 版若保留，可以继续保留现有值
  - 当前不强制改英文

- `detection_key`
  - 正式 release PBF 直接删除
  - audit 版若保留，可以继续保留现有值
  - 当前不强制改英文

具体到这类对象：

- `canonical_object_type = 漁業協同組合`
  - 不直接删除
  - 改成稳定英文值
  - 当前建议：
    - `fisheries_cooperative`

- `canonical_family = symbol`
  - 保留

- `semantic_key = symbol:漁業協同組合`
  - release PBF 直接删除
  - audit 版若保留，可以继续保留：
    - `symbol:漁業協同組合`

- `detection_key = symbol:漁業協同組合`
  - release PBF 直接删除
  - audit 版若保留，可以继续保留：
    - `symbol:漁業協同組合`

一句话：

- 业务语义字段英文化
- 审计追踪字段从正式交付版尽量移除

当前对 `/home/wwwroot/pbf-delivery-karatsu-20nm` 的全量扫描结果：

- 日文字段名：
  - `0`
- 但含日文值的核心字段仍很多

当前最主要的残留字段：

- `canonical_object_type`
  - `235688`
- `semantic_key`
  - `235688`
- `detection_key`
  - `235688`
- `chart_label_text`
  - `3338`
- `place_name_ja`
  - `2552`
- `name_ja`
  - `803`
- `name_subtext_ja`
  - `18`

说明：

- 当前已经基本摆脱“日文键名”
- 但还远没有摆脱“日文语义值”
- 最大头仍然是：
  - `canonical_object_type`

当前关于 `canonical_object_type` 的快速基线：

- 当前 `/home/wwwroot/pbf-delivery-karatsu-20nm` 成品 PBF 中
  - 实际出现的 distinct `canonical_object_type` 一共有 `137` 种
- 数据库中可以直接查
  - 主表：`pbf_relayer_candidates`
  - 字段：`canonical_object_type`
  - 已有索引：`idx_navsea_object (canonical_object_type, geom_type)`
- 当前数据库表规模：
  - `pbf_relayer_candidates` 约 `6,664,855` 行
- 说明：
  - `PBF` 里的 distinct 数 = 当前这批成品实际输出了多少种
  - `数据库` 里的 distinct 数 = 候选对象全集范围，通常会大于等于当前成品 PBF
  - `semantic_key`
  - `detection_key`

## Current Priority

当前继续修的优先顺序：

1. 鱼礁 / 障害点 icon 表达
2. 灯 / 灯台 / flare 表达
3. `baseline` 相关 mismatch
4. 九州沿用同一张 compare 页后的热点审计

如果 style 修到一定程度仍然不对，再回到 builder 看：

- 是否需要补更细的 delivery 语义字段

## Key Files

- [`AGENTS.md`](/root/sourceserver/pbf/AGENTS.md)
- [`STEP_RECORD.md`](/root/sourceserver/pbf/STEP_RECORD.md)
- [`src/pbf/navsea-compare-karatsu-20nm.html`](/root/sourceserver/pbf/src/pbf/navsea-compare-karatsu-20nm.html)
- [`src/pbf/style.navsea-delivery-karatsu-10nm.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-karatsu-10nm.json)
- [`src/pbf/style.navsea-delivery-kyushu.json`](/root/sourceserver/pbf/src/pbf/style.navsea-delivery-kyushu.json)
- [`NavSea_20nm_Small_Scope_Audit_Method.md`](/root/sourceserver/pbf/NavSea_20nm_Small_Scope_Audit_Method.md)

## Quick Resume Prompt

`继续围绕同一个 compare 页 navsea-compare-karatsu-20nm.html 修 delivery style。默认先看唐津 profile，按 pilot 热点先修鱼礁和灯标；需要看九州时就在同一张页面切到 kyushu profile。视觉确认用 20nm compare，严格对象级 backend 审计看 10nm rerun。`
