Files
CM95/docs/CM95_PBF生产化阶段_v1_4.md

98 lines
2.7 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.
> 注意:本文件记录 v1.4 初版。生产范围已在 v1.4.1 改为 z0–z12;以 `CM95_PBF生产化阶段_v1_4_1.md` 为准。
# CM95 PBF 生产化阶段 v1.4(历史:z10–z12 初版)
## 1. 基线
本版本以已经通过 21 张 AOI 双 Gate 的 v1.3 为冻结内核。以下行为不得在本阶段随意改变:
- `cm95_to_navsea_v1.yaml` 语义映射;
- z10/z11/z12 extent;
- scale ladder / coverage mask;
- relation20 助航合成;
- `OBJNAM/NOBJNM` 直接名称规则;
- stable FID manifest;
- hard-gate quantization fallback;
- encoder 写后 Feature ID 对账。
v1.4 只增加生产编排层。
## 2. 新增生产闭环
### `plan-production`
从 MySQL 只读读取 `chart_cell` 与 `chart_coverage`,按当前 tile policy 中每个 zoom 的 scale ladder 枚举真实需要的 tile。
优先使用真实 coverage polygon;若某 Cell 没有 coverage,则使用 Cell bbox 作为保守 fallback,避免漏图。
生产计划冻结:
- Dataset fingerprint;
- mapping SHA256;
- tile policy SHA256;
- FID manifest fingerprint/count;
- profile;
- zoom;
- 完整 XYZ job 列表。
任何输入在计划创建后变化,`build-production` 必须拒绝继续。
### `build-production`
- SQLite 账本;
- PASS 自动跳过;
- 上次异常中断的 RUNNING 自动恢复 PENDING;
- FAILED 最多重试指定次数;
- 有限线程并发;
- 每个 tile 继续使用 v1.3 builder 自带 hard-gate 与 encoder 对账;
- 空 tile 允许 PASS,但不写 `.pbf`。
### `finalize-production`
发布前重新读取所有 report 与真实 PBF,要求:
- 所有计划 job = PASS;
- hard-gate unmapped = 0;
- encoder dropped = 0;
- nav name conflict = 0;
- planned output = report output = decoded PBF feature count;
- tile 内同 layer Feature ID 无重复。
同时执行全量 style filter 契约与动态 sprite closure,并生成每个 PBF 的 SHA256/bytes/feature/layer inventory。
## 3. 产物结构
```text
build/
production/
cm95_production_plan_v1.json
releases/
<release_id>/
production_run_v1.sqlite
production_run_summary_v1.json
release_manifest_v1.json
pbf/
delivery/
{z}/{x}/{y}.pbf
reports/
delivery/
{z}/{x}/{y}.json
{z}/{x}/{y}.trace.jsonl
```
`release_id` 由 Dataset fingerprint + plan hash 确定,相同输入得到相同 release identity。
## 4. 当前阶段不做
- 不选择 HTTP/Nginx/FastAPI serving;
- 不改变 NavSea 客户端;
- 不改 importer/schema;
- 不增加新正式 source-layer;
- 不改变 v1.3 safety semantics;
- 不自动清理旧 release。
Serving 在完整 Dataset production release PASS 后再单独决定。