Commit 90a062a
committed
docs(cesium-osm): address coderabbit review on #475 (prefix unification + coordinate-fidelity metric)
Addresses two CodeRabbit Major findings on #475:
## Fix 1 — Prefix form unification (CR Major @ line 14)
§11 step 1 used `qk:<level>/<x>/<y_tms>` while §2 Q2 declares the
full identity as `osm/qk:<level>/<x>/<y>/<type>/<id>`. The two are
not competing formats — the §11 form is the **tile-frame
quadkey prefix portion** of the §2 Q2 form (truncated to what
ADR-024 calls "the prefix" for palette purposes; §2 Q2 is the
**full identity path** including namespace + element-type/ID
suffix). Adds an explicit clarification noting this two-layer
addressing distinction.
Also clarifies that §2 Q2's bare `<y>` means `<y_tms>` — the
Q3-converted Y coordinate after the OSM-XYZ → TMS ingest
boundary flip. §11 spells `<y_tms>` for explicitness; §2 Q2
leaves it bare because the ingest boundary normalizes to TMS
before any consumer reads the identity.
Result: downstream implementers see one canonical full-identity
form (§2 Q2) and one canonical tile-frame prefix form (§11) that
are the same key at different layers of detail — not two
incompatible prefixes to split on.
## Fix 2 — Coordinate-fidelity metric (CR Major @ lines 17 + 320-333)
§11 acceptance criteria measured ρ only for tag equality. The
palette domain ALSO covers tile-local 16-bit quantized
coordinates (called out in step 2), but coordinate fidelity could
silently regress with no falsifiable gate.
Adds a **coordinate-decode-error budget** alongside tag ρ in the
§11 falsifiable adoption contract:
- **Coordinate fidelity** target: **max ≤ 5 cm AND p95 ≤ 1 cm at
zoom 21** (tile bounds ~4 m; 16-bit quantization theoretical
resolution ~0.06 mm per axis — the 5 cm / 1 cm thresholds
leave ~3 orders of magnitude headroom for projection
round-trip error). Report max + p95 + p99 over all decoded
coordinates.
- **New escape hatch** (mirrors the per-tile palette escalation
pattern): 24-bit-per-axis quantization OR per-tile floating-
point fallback if max budget is breached.
The escalation policy now triggers on EITHER ρ < 0.99 OR
coordinate-budget breach — two falsifiable gates, both reported,
neither silently regressing.
Also tightened step 2's "sub-cm precision" claim to the more
accurate "~0.06 mm per-axis resolution at zoom 21 — sub-mm"
matching the theoretical floor.
## What this PR does NOT do
- No source code; docs/plan only.
- Does not duplicate work from #474 (other session's D-OSM-2
ownership-boundary fix) — purely additive in §11.
- Does not touch §3 (carrier-shape contract) — coordinate fidelity
is a §11 codec-contract concern per the §11-vs-§3 framing the
initial PR pinned.
## Test plan
- [x] Docs/plan only — no source code; no build/test invoked.
- [x] Both findings addressed in single commit on the open #475 branch.
- [x] Prefix-form unification preserves the §2 Q2 / §11
distinction (full identity vs tile-frame prefix); no
breaking change to §2 Q2's existing form.
- [x] Coordinate-fidelity budget is measurable at D-OSM-2
implementation time (per-country PBF run reports max +
p95 + p99).
- [ ] CodeRabbit re-review on this commit.1 parent f886615 commit 90a062a
1 file changed
Lines changed: 8 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
319 | | - | |
320 | | - | |
| 319 | + | |
| 320 | + | |
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
326 | | - | |
| 326 | + | |
327 | 327 | | |
328 | | - | |
329 | | - | |
330 | | - | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
331 | 332 | | |
332 | | - | |
| 333 | + | |
333 | 334 | | |
334 | 335 | | |
335 | 336 | | |
| |||
0 commit comments