← survey home · UK climbs · US climbs · Swiss climbs · Austrian climbs · French climbs · NZ climbs · Norwegian climbs
The rules register
How a page is made is set out on the methodology page.
Every rule this survey has coded — 519 of them in force, 73 more written and being swept over pages measured before they existed. The table is generated from the same file the pipeline validates, so it cannot drift from what the code actually does. A rule is named by what it catches; the date is when it was coded; the counts are the pages it has been run against.
Finding the road
Which roads get considered at all, and which are not public roads, too short, or already published.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| Each finished run records its yield in the registry so the yield gate has references | 2026-09-06 | regions.yaml | |
| USGS registrations checked against the bucket footprint before discovery | 2026-09-07 | scripts/audit_usgs_footprint.py | |
| Legacy-named (pre-2018) bucket projects that name the state but are not registered get a… | 2026-09-07 | scripts/audit_usgs_footprint.py | |
| Every region declares recognition sources or a dated waiver | 2026-09-07 | regions.yaml | |
| Discovery clips the road network to the registry's optional `bbox` and refuses a coarse… | 2026-09-08 | src/ukclimb/cli.py | |
| A hunt page's extent must lie on inventory segments carrying ITS name | 2026-09-08 | 594 pages | scripts/state_inventory_usa.py |
| The steepest 25 m window itself must sit on a listed public road | 2026-09-08 | scripts/state_inventory_usa.py | |
| A page's road must be maintained by a public authority | 2026-09-08 | 126 pages | scripts/ny_lhi_surface.py |
| A run selects a coarse-steepness BAND of the discovery seeds explicitly… | 2026-09-10 | 6 candidates | scripts/select_seed_band.py |
| Seed notes name the coarse surface the run actually scanned (Terrain 50 / 3DEP 10 m /… | 2026-09-10 | src/ukclimb/discovery.py | |
| Discovery's coarse terrain model comes from the region registry (`coarse:` or the section… | 2026-09-10 | src/ukclimb/regions.py | |
| Extend over inventory-hunt seeds loads the track class (D25) | 2026-09-10 | scripts/multibox/extend_shards.sh | |
| Preflight FAILS (not skips) a nation outside the uk/us sections unless its registry block… | 2026-09-10 | src/ukclimb/campaign.py | |
| One elevation-provider dispatcher reads the registry's `provider:` | 2026-09-10 | src/ukclimb/elevation/providers.py | |
| The road audit never aborts a run on one entry | 2026-09-10 | src/ukclimb/cli.py | |
| SwissTLM3D 2m Weg is a narrow ROAD class (farm/forest/alp lanes), 1m Weg the path class | 2026-09-10 | src/ukclimb/roadauthority.py | |
| Two live pages whose ladders are identical (same length, gain and every window maximum)… | 2026-09-11 | 28 pages | scripts/audit_duplicate_ladders.py |
| Seed_hunt_ways never uses an inventory name that is only a road number (GIP '233',… | 2026-09-13 | 4 pages | scripts/seed_hunt_ways.py |
| Two published pages whose lines overlap >= 0.95 with their two 25 m windows COINCIDING… | 2026-09-14 | 8 pages; 61 pages | scripts/audit_published_pairs.py |
| A COG-grid provider (BEV) never takes the catalogue's newest DSM release blindly | 2026-09-15 | src/ukclimb/elevation/cog_grid.py | |
| Adopt_hunt_wave --only accepts a file (the driver passes <run>/adopt.txt, one… | 2026-09-16 | scripts/adopt_hunt_wave.py | |
| Scripts/adopt_hunt_wave.py takes its --section choices and per-section wiring from the… | 2026-09-16 | scripts/adopt_hunt_wave.py | |
| The regional-coverage gate judges only the ground a run was asked to cover | 2026-09-16 | scripts/audit_regional_coverage.py | |
| The seams between region_run.sh and the scripts it calls are tested OFFLINE, before a… | 2026-09-16 | tests/unit/test_region_run_handoffs.py | |
| France's elevation is IGN LiDAR HD MNT (sol) + MNS (surface) at the NATIVE 0.50 m,… | 2026-09-16 | src/ukclimb/elevation/cog_grid.py | |
| Before the French national run, a driver step builds every col in climbs/fr-passes-*.yaml… | 2026-09-16 | 23 routes | scripts/build_named_pass_routes.py |
| Three seams the handoff contract test found before they cost a box-hour | 2026-09-16 | scripts/multibox/adopt_set.py | |
| IGN's MNT is genuinely -9999 along the outer pixel column of some LiDAR HD dalles where… | 2026-09-16 | src/ukclimb/elevation/cog_grid.py | |
| Before any block (shakedown) run, the complete driver runs a small block of ~50 roads (5–8… | 2026-09-16 | docs/NEW-REGION.md | |
| A block already measured is given an improved named-passes step by a COLS WAVE, never by… | 2026-09-16 | scripts/multibox/region_run.sh | |
| The named-pass walk follows the col's WHOLE approach ref set | 2026-09-16 | scripts/build_named_pass_routes.py | |
| The batch-side protected-page flag (ukclimb.protected.note_protected_suppression) judges… | 2026-09-16 | src/ukclimb/protected.py | |
| Scripts/review_pack.py resolves its run-dir inputs by the names region_run.sh writes… | 2026-09-16 | scripts/review_pack.py | |
| Before launching N blocks, check on the laptop that every block bbox contains a… | 2026-09-17 | scripts/multibox/region_run.sh | |
| Col name over road name | 2026-09-17 | src/ukclimb/passnames.py | |
| The regional-coverage gate reads discover's coarse-candidates.csv | 2026-09-17 | scripts/audit_regional_coverage.py | |
| A cols wave whose named-passes step builds NO routes stops there, saying so, and its… | 2026-09-17 | scripts/multibox/region_run.sh | |
| The corpus-dedupe + published-pairs audits are re-run against the corpus THE ADOPTING BOX… | 2026-09-17 | scripts/multibox/corpus_stamp.py | |
| Head_adopt.sh's pull and check exclude head-pull.log and head-check.log | 2026-09-17 | scripts/multibox/head_adopt.sh | |
| The named-pass walk's length cap is a per-region / per-list setting, not a constant | 2026-09-17 | scripts/build_named_pass_routes.py | |
| A cols-wave run (NAMED_PASSES_ONLY=1) must carry that mode through a RESUME on the head | 2026-09-17 | scripts/multibox/region_run.sh | |
| A retirement ledger row's `region` falls back to the page's SECTION, never to the literal… | 2026-09-17 | scripts/multibox/retire_list.py | |
| A step's "did it STOP?" test and the line it quotes read only THIS attempt's part of the… | 2026-09-17 | scripts/multibox/region_run.sh | |
| CODED 2026-09-20 | 2026-09-20 | src/ukclimb/passnames.py | |
| A small or rehearsal square is cut round ONE col, so the massif-wide `known_roads:` rows | 2026-09-20 | scripts/multibox/preflight_inputs.py | |
| Two roads one col name | 2026-09-20 | 955 climbs; 127 pages | src/ukclimb/passnames.py |
| The prep gate (mc_coverage.py / coverage.decide_coverage) honours a massif config's… | 2026-09-22 | scripts/audit_regional_coverage.py | |
| Fleet_watch.py's `ssh_probe` runs the remote one-liner from the ssh login directory… | 2026-09-22 | scripts/multibox/fleet_watch.py | |
| Massif Central head fault (box 1, 2026-09-22) | 2026-09-22 | 4 pages | scripts/multibox/box_setup.sh |
| On the Massif Central (2026-09-22) every block spent 4-5.75 h in extend-dedupe fetching… | 2026-09-22 | src/ukclimb/elevation/ign_rate_limit.py | |
| Coverage revisit ledger | 2026-09-24 | climbs/coverage-revisits.yaml | |
| Fleet_watch.py measured progress by finished page docs only, so a French block spent its… | 2026-09-24 | scripts/multibox/fleet_watch.py | |
| Corsica (2026-09-25) | 2026-09-25 | scripts/multibox/massif_prep/bands.py | |
| DONE (2026-09-26, fr-so-rehearsal on the head box, run driver… | 2026-09-26 | scripts/multibox/extend_shards.sh | |
| A flat massif with no buildable col (no pass-list row with `climb_origin`… | 2026-09-26 | 1 candidates | scripts/multibox/massif_prep/rehearsal_search.py |
| FIXED 2026-09-28 | 2026-09-28 | scripts/build_named_pass_routes.py | |
| A third fault found reviewing the west-coast cities re-adoption (docs/RESUME.md §0t), in… | 2026-09-29 | scripts/multibox/adopt_set.py | |
| A sixth fault found live on the box (Council Crest, Portland, 2026-09-29) | 2026-09-29 | scripts/multibox/adopt_set.py | |
| A fifth fault found re-checking la-hills before its second rebatch (docs/RESUME.md §0t) | 2026-09-29 | scripts/build_named_pass_routes.py | |
| Root cause of west-coast-cities-region-table-map-ranking-faults's "no surface rows at… | 2026-09-29 | 265 pages | scripts/multibox/region_run.sh |
| FIXED, 2026-09-29 (found live on the France head) | 2026-09-29 | scripts/multibox/region_run.sh | |
| FIXED, 2026-09-29 (found live on the France head: a ROAD_SEED seam re-measure of Route du… | 2026-09-29 | src/ukclimb/elevation/cog_grid.py | |
| Three presentation faults found the morning after the west-coast-cities deploy (release… | 2026-09-29 | 262 rows; 268 climbs; 122 rows | src/ukclimb/regions.py |
| A country run is cut into blocks by `ukclimb campaign cut-blocks --region <key> --boxes… | 2026-10-02 | 699 pages | src/ukclimb/blockcut.py |
| A region run with no climbs/<section>-passes-*.yaml ledgers a hold-class intervention on… | 2026-10-03 | scripts/pass_list_candidates.py | |
| A listed pass whose hand-traced line lies entirely on public authority links (NVDB Fv450,… | 2026-10-05 | 5 rows | src/ukclimb/roadcheck.py |
| The track class (ukclimb.trackclass) is wired for the Norway/NVDB chips run only | 2026-10-05 | scripts/audits/track_class_sweep.py | |
| Provider newest edition check | 2026-10-07 | 2,191 pages | src/ukclimb/elevation/cog_grid.py |
| A cached STAC catalogue index must never hide a newer edition (2026-10-07, swisstopo… | 2026-10-07 | 619 pages | src/ukclimb/elevation/stac.py |
| Utah, 2026-10-10 | 2026-10-10 | scripts/multibox/region_run.sh | |
| Other us regions private land | 2026-10-11 | src/ukclimb/landownership.py | |
| Hardening item "seams", 2026-10-11 | 2026-10-11 | scripts/multibox/preflight_inputs.py | |
| FIXED (2026-10-13, same re-fold) | 2026-10-13 | 3,879 pages | src/ukclimb/ocl.py |
| Recognition rows keyed by section | 2026-10-13 | 1 rows | src/ukclimb/recognition.py |
| FIXED (2026-10-13, us-nc-smokies1 exit-test re-fold after the NCDOT owner-type ruling) | 2026-10-13 | 3,891 rows | scripts/multibox/region_run.sh |
| NOTE ONLY - no code changed (the fix is a new pair class, not a threshold) | 2026-10-13 | scripts/audit_corpus_dedupe.py | |
| A provider whose whole-tile prefix is ABSENT from B2 is an inventory ERROR only when the… | 2026-10-14 | src/ukclimb/banked_tiles.py | |
| An input bank keyed by AREA (fetched for a bbox, not the whole world) declares the window… | 2026-10-14 | 761 pages | src/ukclimb/input_coverage.py |
| A verifier that writes temp files per manifest row must name them per CALL, not per row… | 2026-10-15 | scripts/verify_crop_bank_provider.py | |
| PyYAML safe_load keeps the LAST value of a repeated mapping key and says nothing | 2026-10-15 | src/ukclimb/strictyaml.py | |
| Three small gaps from the rulings audit | 2026-10-21 | tests/test_rulings_audit_group_a.py | |
| BR-G3 | 2026-10-21 | 18 pages | src/ukclimb/elevation/cog_grid.py |
| Privately maintained North Carolina roads kept out of the rankings | 2026-10-26 | 3,093 pages; 48 pages; 3 pages | scripts/lift_review_by_authority.py |
| Scripts/aerial_card.py cannot draw OS Open Roads ("os-open-roads needs its own loader")… | 2026-10-29 | scripts/aerial_card.py | |
| The cross-state 3DEP candidate set (usa-cross-state-newest-project) misses two cases… | 2026-10-29 | the | |
| Every docs/NEW-REGION.md step is enforced by a script, gate, test or recorded artefact… | 2026-10-31 | region_run.sh | |
| A state road-inventory decoder must not read a road as publicly maintained when its own… | 2026-10-31 | 5 pages | scripts/state_inventory_usa.py |
| Us bare road ref forms authority name 261101 | 2026-11-01 | src/ukclimb/passnames.py | |
| A national named-passes run (no --bbox) builds only the REGION's own cols | 2026-11-02 | scripts/build_named_pass_routes.py | |
| Scripts/aerial_card.py --authority-region usa-wv fails with KeyError 'WV' in roadauthority | 2026-11-04 | src/ukclimb/roadauthority.py | |
| Head campaign config not pulled 261104 | 2026-11-04 | scripts/multibox/campaign_config_dump.py | |
| A head_adopt re-run after a STOP pulled the banked run dir with a plain rclone copy | 2026-11-04 | scripts/multibox/head_adopt.sh | |
| A new measuring box is checked for the three environment seams usa-wv G4 hit one at a time | 2026-11-05 | scripts/multibox/preflight_inputs.py | |
| Preflight_inputs._is_national treats a run launched with --block (which passes a bbox) as… | 2026-11-05 | scripts/multibox/preflight_inputs.py | |
| Usa-va G4 edge review (Fable, 2026-11-08) | 2026-11-08 | scripts/multibox/head_adopt.sh | |
| Climbs/recognition.yaml no_page rows are not filtered by any reader, so a placeholder… | 2026-11-08 | src/ukclimb/recognition.py | |
| Owed work that bites one region had no route to the run it would hit | 2026-11-09 | docs/NEW-REGION.md | |
| A new US state reached the deploy with no buildings or water extracts | 2026-11-09 | docs/NEW-REGION.md | |
| A coarse-grid cell (usa10m) that USGS re-published after an earlier run banked it differs… | 2026-11-10 | scripts/bank_coarse_tiles.py | |
| Discover sanity check (b) judges ways SCANNED (the `scanned N ways >= 30 m` log line)… | 2026-11-10 | 311 candidates | scripts/multibox/discover_sanity.py |
Drawing the line
Where the measured line runs, and where the climb starts and ends.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| An adopted page whose maximum sits STRONG off the inventory centreline, or with >=3 prism… | 2026-09-06 | 3 pages; 63 pages | scripts/multibox/adopt_set.py |
| A candidate held in the 0.5–0.8 inventory-coverage band (D28-B) is not dropped | 2026-09-08 | 711 candidates | scripts/build_inventory_extent_trim.py |
| A measurement line that jogs off the road inside the steepest window is held (adopt_set)… | 2026-09-08 | 32 pages; 33 pages | scripts/audit_route_kink.py |
| An OSM driveway, service way, track or path that joins the route within 15 m of the… | 2026-09-09 | 152 pages; 23 routes; 520 routes | scripts/audit_driveway_at_window.py |
| The steepest 25 m window must sit ON the inventory line | 2026-09-09 | 4,242 pages | scripts/state_inventory_usa.py |
| Pre-adoption holds for line-offset STRONG / prism-absent / bench-offset are re-lined to… | 2026-09-09 | scripts/resite_inventory_usa.py | |
| A steepest window followed by >= 200 m of <= 2 % road is a route that runs past its crest | 2026-09-11 | 322 pages; 201 pages | hump_buckets.py |
| A hunt-extent hold (route runs past the run the road authority names as the page's road)… | 2026-09-11 | 345 pages | scripts/extent_continuation.py |
| A door row whose 25 m window sits >= 5 m off the road authority's centreline AND whose… | 2026-09-11 | 63 pages | scripts/multibox/adopt_set.py |
| Every long box stage runs under a watchdog that reports docs, rate, workers, memory, disk… | 2026-09-11 | scripts/multibox/stage_watch.sh | |
| A door row whose route runs >= 50 m past the road authority's network to its end… | 2026-09-11 | 2,437 pages | scripts/multibox/adopt_set.py |
| The famous long Tyrolean roads exist in wave 3 only as hunt fragments that clear no door… | 2026-09-12 | 6 pages; 12 routes; 11 rows | climbs/recognition.yaml |
| A route whose last 40 m turn through a sharp dog-leg (>= 60 degrees over 20 m) and end at… | 2026-09-13 | 16,296 pages; 763 pages; 563 routes | scripts/audit_dogleg_tail.py |
| A steepest 25 m window that sits within ~60 m of a hairpin (>= 80 degrees over 20 m) AND… | 2026-09-13 | 16,296 pages | scripts/audit_hairpin_at_maximum.py |
| A chips row is joined to a page only when its route length matches the page's length_m… | 2026-09-15 | 4 pages; 2 pages; 33 pages | scripts/multibox/chain_rules.py |
| The US line-offset sweep resolves a 3DEP tile directory to its PRIMARY state before any… | 2026-09-15 | 9 pages | scripts/audit_line_offset_usa.py |
| The redraw's band gate is 6 m | 2026-09-15 | 118 pages; 62 pages; 41 pages | scripts/resite_authority.py |
| A page whose road is under 200 m once the extent is trimmed to the crest is retired | 2026-09-15 | 24 pages; 22 rows; 533 pages | scripts/multibox/chain_rules.py |
| 14 UK pages still carried the 61-point decimated route of the 2026-08-30 restoration… | 2026-09-15 | scripts/route_doctor.py | |
| The BD TOPO chips buffer is 10 m (was 20 m provisional) | 2026-09-16 | src/ukclimb/roadauthority.py | |
| A named-pass row (the col step's door) is exempt from the lane-extent exclusions in… | 2026-09-16 | scripts/multibox/adopt_set.py | |
| A page whose steep part is a driveway is cut where the PUBLIC ROAD ENDS, not at a bend | 2026-09-18 | ways_along.py | |
| A re-line proposed by the cross-section is not a published number until the page is… | 2026-09-18 | 11 pages | docs/audits/wales-pointcloud-pack-260918.md |
| Valley crossing extent | 2026-09-21 | 213 pages; 25 climbs; 47 climbs | scripts/valley_crossing_scan.py |
| DONE (build path, 2026-09-25) | 2026-09-25 | 21 rows | scripts/multibox/massif_prep/seed_resolve.py |
| DONE (found on the Provence prep chain, 2026-09-25) | 2026-09-25 | scripts/multibox/massif_prep/mc_tour_membership.py | |
| Every page the route doctor's `leading_descent` check has ever flagged (Massif Central,… | 2026-10-01 | 18 pages; 0 routes | scripts/trim_leading_descent.py |
| Corridor-crop | 2026-10-03 | src/ukclimb/elevation/tile_bank.py | |
| Every reader or editor of climbs/<sec>-editorial.yaml (and known-road rows) handles… | 2026-10-12 | 1 rows | src/ukclimb/editorial_rows.py |
| CALIBRATION OWED | 2026-10-13 | 20 pages; 3,905 pages | src/ukclimb/hairpininside.py |
| North Carolina runs (registry `gate_rule: entrance-100m` on usa-nc) | 2026-10-14 | 761 pages; 7 pages | src/ukclimb/gaterule.py |
| Verdict `extent:trim-to-last-inventoried-metre` is recorded on six us-nc-smokies1 pages… | 2026-10-15 | scripts/build_inventory_extent_trim.py | |
| Batch_autok.sh counted a chunk entry done only if out/<entry slug>/<slug>.json existed | 2026-10-15 | scripts/multibox/batch_autok.sh | |
| Scripts/multibox/trim_remeasure.sh (via hunt_extent_rebatch) re-measures from the plan's… | 2026-10-15 | scripts/build_inventory_extent_trim.py | |
| A max25 window offset of exactly 15.0 m is owned by neither hold class | 2026-10-17 | scripts/multibox/adopt_set.py | |
| Pages whose chips row has max25_offset_m exactly 15.0 (the cap) are newly held | 2026-10-21 | docs/audits/window-offset-15m-saturated-261019.md | |
| Protected end stub trim remeasure 261022 | 2026-10-22 | 5 pages | build_remeasure_plan.py |
| The 15.0 max-window-offset hold must ignore readings whose chips row has max25_cov_frac… | 2026-10-23 | NONE | |
| Generic line offset roadauthority 261027 | 2026-10-27 | scripts/audit_line_offset_usa.py | |
| Audit_mask_parity subtracts a note's source offset (e.g. kept 168-1004) from a published… | 2026-10-27 | the | |
| Access end named tail calibration 261028 | 2026-10-28 | 36 pages | src/ukclimb/accessend.py |
| Roadauthority.max_window_arc_ratio returns empty (two-lines) when the stretch ends… | 2026-10-28 | src/ukclimb/roadauthority.py | |
| BR-A12 latent breach (Fable review, P2 ruling batch 2026-10-28) | 2026-10-28 | scripts/multibox/adopt_set.py | |
| NC eye pass 2026-10-28 (measured) | 2026-10-28 | src/ukclimb/lineoffset.py | |
| When retro inventory-extent-guard-261028 lands (authority starts/stops partway along the… | 2026-10-28 | src/ukclimb/lineoffset.py | |
| Line on carriageway class 261028 | 2026-10-28 | docs/BINDING-RULES.md | |
| NC eye pass 2026-10-28 | 2026-10-28 | scripts/multibox/trim_remeasure.sh | |
| Scripts/extent_continuation.py (F28) cannot run for nz | 2026-10-29 | scripts/extent_continuation.py | |
| Scripts/audit_hairpin_inside.py --line-geometry (the merged F6/F9 detector incl. the… | 2026-10-29 | scripts/audit_hairpin_inside.py | |
| Us-passes-utah Little Cottonwood Canyon top (Alta), slug little-cottonwood-alta | 2026-10-29 | climbs/us-passes-utah.yaml | |
| Scripts/multibox/trim_remeasure.sh consumes only the build_inventory_extent_trim plan… | 2026-10-29 | scripts/multibox/trim_remeasure.sh | |
| One-time residue of the ch run-6 public-continuation re-evaluation (retro… | 2026-10-30 | 527 routes | scripts/multibox/remeasure_fold.py |
| Climbs/review-flags.yaml keys each flag by span_m in the page's own chainage, and… | 2026-10-30 | scripts/multibox/remeasure_fold.py | |
| A fold or continuation plan never extends a page past a RULED trim end (2026-09-15… | 2026-10-31 | 13 pages | climbs/ruled-trims.yaml |
| A route whose chips request window is not inside the banked WVDOH snapshot bbox (+0.01… | 2026-11-02 | src/ukclimb/wvdoh_lrs.py | |
| An authority snapshot is banked with a margin past the run area, and preflight refuses… | 2026-11-02 | src/ukclimb/wvdoh_lrs.py | |
| The run-area margin rule (BR-G20; wvdoh-snapshot-edge-routes-261102,… | 2026-11-05 | scripts/multibox/preflight_inputs.py |
Measuring
Turning the line and the terrain model into a ladder of window maxima.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| A route geojson in lon/lat (declared EPSG:4326 or plainly degrees) is projected with the… | 2026-09-10 | src/ukclimb/batch.py | |
| Nearest OSM junction node (road-only option) to the 25 m window, memory-lean | 2026-09-11 | scripts/audit_junction_at_window.py | |
| Re-run chips.py over uk/us/ch/at so every published page's chips row carries… | 2026-09-16 | scripts/chips.py | |
| Scripts/chips.py writes an explicit route_length_m column (the sampled line's length in… | 2026-09-16 | scripts/chips.py | |
| A col a published page is named after must have a row in the region's pass list, or no… | 2026-09-17 | climbs/fr-passes-alps.yaml | |
| On the Jura blocks (2026-09-24, 12:16Z diagnostic on fr-ju2) | 2026-09-24 | scripts/multibox/extend_shards.sh | |
| PARTIALLY DONE, 2026-09-29 (coordinator follow-up: region_run.sh --block — what the… | 2026-09-29 | scripts/multibox/nation_batch.sh | |
| A chips.py re-run over roadauthority.chips_for_route(authority='usa-inventory') must… | 2026-09-30 | state_inventory_usa.py | |
| The not-public-at-window check (ukclimb.notpublicwindow: OSM own-way tags a-c, authority… | 2026-10-02 | scripts/audit_not_public_at_window.py | |
| Edition re-measure 2026-10-07 (us) | 2026-10-07 | 11 pages | src/ukclimb/elevation/usa.py |
| Usa newest project selection | 2026-10-07 | 38 pages; 26 pages; 11 pages | src/ukclimb/elevation/usa.py |
| Audit_not_public_at_window.py --authority bdtopo must honour --gpkg (repeatable / comma… | 2026-10-20 | scripts/audit_not_public_at_window.py | |
| The provenance.prior_doc stamp records prior_window_m (the kept published stretch the… | 2026-10-21 | src/ukclimb/analysis/carried.py | |
| Restricted window listing apply to existing | 2026-10-21 | src/ukclimb/roadauthority.py | |
| Uk restricted majority unflagged 261021 | 2026-10-21 | scripts/chips.py | |
| US aerial checks looked at the right place | 2026-10-26 | 612 pages; 140 pages; 44 pages | scripts/aerial_crops.py |
| Build_named_pass_routes.py --apply sets a non-empty named-pass-routes dir aside (<run… | 2026-11-03 | scripts/build_named_pass_routes.py |
Checking the measurement
Everything that asks whether the terrain under the line is really the road surface.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| An overhead power line crossing inside the steepest 25 m window is reported with the raw… | 2026-09-08 | 8,216 pages | scripts/audit_power_crossings.py |
| The terrarium (coarse second surface) detector accepts every registered US CRS, not a… | 2026-09-08 | scripts/audit_terrarium_divergence.py | |
| Lateral stability is a registered detector ('all') and a band-chain step | 2026-09-10 | src/ukclimb/campaign.py | |
| A steepest window whose samples run within ~2 m of building footprints on both sides (a… | 2026-09-11 | scripts/audit_building_canyon.py | |
| Hump advisory | 2026-09-11 | 2,270 pages | texture.ADVISORY; |
| A page whose 25 m maximum is a spike | 2026-09-11 | 31 pages | scripts/audit_spike_at_maximum.py |
| Audit_spike_at_maximum's 'not sustained' test uses the 100 m gradient of the windows… | 2026-09-11 | 12 pages | scripts/audit_spike_at_maximum.py |
| A 25 m window whose nearest road-authority segment carries a structure attribute… | 2026-09-11 | chips.py | |
| Nation_batch.sh cuts the batch extract with w/highway w/railway w/waterway w/bridge… | 2026-09-11 | scripts/multibox/nation_batch.sh | |
| Suppress_windows_over_mask re-sites a maximum whose current placement intersects the mask… | 2026-09-11 | src/ukclimb/analysis/quality.py | |
| The inside of every reported window must look like a road | 2026-09-11 | 655 pages; 1,940 pages | src/ukclimb/analysis/texture.py |
| A detector whose OSM extract is absent must STOP the chain, not report 'classes {}' | 2026-09-12 | 2,928 pages | scripts/audit_driveway_at_window.py |
| Two different 'unresolved' signals, only one retires (review session, 2026-09-12) | 2026-09-12 | 2 pages | texture_apply |
| Batch._bridge_tunnel_ranges masks a span where the ROUTE ITSELF runs on an OSM… | 2026-09-13 | 5 routes; 12 pages | src/ukclimb/batch.py |
| A page is a building CANYON when canyon_frac >= 0.6 at the 6 m band… | 2026-09-15 | 24 pages; 43 rows | scripts/audit_building_canyon.py |
| Adopt_set.py resolves its detector CSVs once (detector_dir) | 2026-09-16 | scripts/multibox/adopt_set.py | |
| Wire IGN LiDAR HD's classified point cloud as the French prism (road-bed existence) and… | 2026-09-16 | src/ukclimb/elevation/ign_pointcloud.py | |
| Scripts/audit_lateral_stability.py recomputes the raw profile at each sideways offset and… | 2026-09-16 | 197 pages; 139 pages | scripts/audit_lateral_stability.py |
| A named-pass walk crosses a short UNNUMBERED gap | 2026-09-16 | scripts/build_named_pass_routes.py | |
| Window MINIMA get the same artefact suppression as maxima | 2026-09-19 | src/ukclimb/analysis/quality.py | |
| NOT YET FIXED | 2026-09-20 | 6,058 routes; 954 pages; 2,954 pages | src/ukclimb/passnames.py |
| An error row is not an answer | 2026-09-20 | 41 rows; 129 routes; 30 pages | scripts/nation_road_prism.py |
| The prism step says how many routes it will cross-section, and why it uses one reader,… | 2026-09-20 | 187 routes; 6 routes | scripts/multibox/nation_batch.sh |
| A published figure that today's harness would not produce is a defect, whatever the… | 2026-09-20 | 379 pages; 5 pages; 512 pages | scripts/reproduce_published.py |
| Unmapped bridge span | 2026-09-20 | 541 pages; 2 pages; 218 pages | src/ukclimb/analysis/quality.py |
| Carried artefact verdicts | 2026-09-21 | 4,394 pages; 73 pages | src/ukclimb/analysis/carried.py |
| Remeasure carries way lists | 2026-09-21 | 17,358 pages; 55 pages; 17,358 routes | src/ukclimb/analysis/carried.py |
| Remeasure fold the fallers | 2026-09-21 | 169 pages | scripts/multibox/remeasure_fold.py |
| DONE | 2026-09-24 | src/ukclimb/elevation/base.py | |
| DEFECT (Provence box fr-pr7, 2026-09-25 09:49Z; Corsica fr-co2, 2026-09-25 02:10Z before… | 2026-09-25 | scripts/multibox/fleet_watch.py | |
| DONE (2026-09-26, head runs fr-pr-ventoux2 + fr-no-summits) | 2026-09-26 | scripts/build_named_pass_routes.py | |
| QUEUED (2026-09-27 ~09:40Z, the sud-ouest deploy preflight) | 2026-09-27 | src/ukclimb/analysis/quality.py | |
| Norway readiness B4 (2026-10-02) | 2026-10-02 | src/ukclimb/regions.py | |
| Tunnel rule live sweep | 2026-10-02 | 23,117 pages; 108 pages; 200 pages | src/ukclimb/tunnels.py |
| Every sweep-shaped check reports how many pages it EXAMINED and refuses at zero… | 2026-10-05 | tests/unit/test_detectors_report_examined.py | |
| The Norway surface chain cannot tell a rock or grass track from a gravel road, so the… | 2026-10-05 | 613 pages | src/ukclimb/trackclass.py |
| The texture hump mask removed smooth 31-35 % ramps (not spikes) on all three ch pages of… | 2026-10-17 | quality_summary.texture_windows.windows_masked | |
| Route doctor structure and measured line | 2026-10-20 | src/ukclimb/routeworld.py | |
| The analysis-config digest covers only the kwargs of 13 functions, not the… | 2026-10-21 | NONE | |
| BR-A6 | 2026-10-21 | src/ukclimb/analysis/carried.py | |
| Known gap in the structure carry (Fable review 2026-10-21) | 2026-10-21 | src/ukclimb/analysis/carried.py | |
| Src/ukclimb/aerialcrop.py check_not_blank passes flat or textured FILL tiles (NAIP… | 2026-10-21 | src/ukclimb/aerialcrop.py | |
| Hump gravel ramp class | 2026-10-21 | 25,301 pages | src/ukclimb/humpmask.py |
| Scripts/audit_mask_parity.py also compares quality_summary.excluded_ranges_m | 2026-10-21 | scripts/audit_mask_parity.py | |
| Audit_mask_parity | 2026-10-21 | scripts/audit_mask_parity.py | |
| Three gate/plan faults found by the remeasure-261021-r2 run, fixed together | 2026-10-21 | scripts/verify_rebatch.py | |
| Carry keeps published mask edges 261022 | 2026-10-22 | src/ukclimb/analysis/carried.py | |
| Eye38 new lost texture mask rerun 261022 | 2026-10-22 | 5 pages | scripts/build_remeasure_plan.py |
| Batch mask release section 261023 | 2026-10-23 | src/ukclimb/batch.py | |
| Detectors region run wiring 261027 | 2026-10-27 | scripts/multibox/region_run.sh | |
| Nc detector flags eye pass 261027 | 2026-10-27 | 47 pages | climbs/road-review-verdicts.yaml |
| Gate detectors:battery run on the nz live sweep reports (2026-10-28) lists… | 2026-10-28 | src/ukclimb/detector_no_source.py | |
| NC eye pass 2026-10-28 | 2026-10-28 | src/ukclimb/accessend.py | |
| BR-G20 resume half | 2026-11-02 | scripts/multibox/region_run.sh | |
| G4 shakedown head path 261104 | 2026-11-04 | scripts/multibox/region_run.sh | |
| The NEW-REGION G4 shakedown never exercised two paths the national run takes | 2026-11-05 | scripts/multibox/region_run.sh | |
| Usa-va b06 STOP 1 | 2026-11-08 | src/ukclimb/tile_bank.py | |
| Usa-va b06 STOP 2 | 2026-11-08 | scripts/multibox/stage_gates.py |
Ruling
What a measurement earns: a ranked page, a page held for a person's ruling, or a withdrawal.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| Hand-picked pages (curated origin or human-decision ledger) clear the founding door | 2026-09-06 | src/ukclimb/doors.py | |
| The route doctor gates adoption, not only deploy | 2026-09-06 | ukclimb.campaign | |
| A re-run of the adopter never re-places an already-adopted page | 2026-09-08 | 37 pages | scripts/adopt_hunt_wave.py |
| The route doctor refuses a scan that loaded 0 pages (wrong --corpus path) instead of… | 2026-09-08 | 8,216 pages | scripts/route_doctor.py |
| Every adopted US page gets its surface chip row (surface/invcov/unpaved_pct from the… | 2026-09-08 | 3,449 rows; 1 rows; 2,085 pages | scripts/multibox/chips_to_editorial.py |
| A US page whose surface no inventory, OSM tag or LHI listing records carries an ESTIMATE… | 2026-09-09 | scripts/surface_estimate_prototype.py | |
| A YAML list merged from several directories rewrites every relative `route:` path to the… | 2026-09-10 | scripts/merge_yaml_lists.py | |
| A route with >= 500 m of endpoint gain at >= 5 % overall clears the sustained-climb door | 2026-09-10 | 77,618 routes; 17 pages | src/ukclimb/doors.py |
| The aerial pass is part of the pipeline, not a human-only step | 2026-09-11 | scripts/aerial_card.py | |
| Roadauthority.chip_from_fracs needs a recorded surface under KNOWN_MIN_FRAC (0.5) of the… | 2026-09-11 | 608 rows | scripts/refresh_surface_from_spans.py |
| A page whose 25 m maximum is >= 34.8 % (the Baldwin Street mark; Ffordd Pen Llech reads… | 2026-09-11 | 40 pages | scripts/multibox/adopt_set.py |
| In the Alpine sections (registry steep_unpaved_list_pct on switzerland and austria) a… | 2026-09-11 | 129 pages | scripts/multibox/chips_to_editorial.py |
| A climb page in an inventory-backed section states the road authority's surface on the… | 2026-09-11 | src/ukclimb/roadauthority.py | |
| A verdict row may carry length_m / run / applies_to | 2026-09-11 | src/ukclimb/verdicts.py | |
| Texture_apply (and any chain apply) decides ranked vs below-door with doors_csv any_door,… | 2026-09-12 | scripts/multibox/texture_apply.py | |
| Adopt_set | 2026-09-13 | 401 pages | scripts/multibox/adopt_set.py |
| A page whose line follows the mapped road along almost its whole length and leaves it… | 2026-09-15 | 118 pages | scripts/resite_authority.py |
| The 200 m minimum is a door on the ROAD, not only on a trim | 2026-09-15 | 536 pages; 533 pages; 15,576 pages | scripts/multibox/chain_rules.py |
| Region_run.sh passes --staging $R to adopt_hunt_wave, aliases batch-<region> -> batch,… | 2026-09-16 | scripts/multibox/region_run.sh | |
| A massif runs as BLOCKS of one driver, never as a hand-assembled fleet chain | 2026-09-16 | scripts/multibox/region_run.sh | |
| Region_run.sh's verdict compares deduped entries with batch docs + FAIL lines and logs a… | 2026-09-16 | scripts/multibox/region_run.sh | |
| France's road authority is IGN BD TOPO® `troncon_de_route` (Licence Ouverte / Etalab 2.0)… | 2026-09-16 | src/ukclimb/roadauthority.py | |
| Rue-de-la-feigne-2 and impasse-des-joncs stay unmeasured | 2026-09-16 | scratchpad/reports/ign-edge-nodata.md | |
| A texture, hump or structure suppression that would MOVE the headline 25 m maximum of a… | 2026-09-16 | src/ukclimb/protected.py | |
| A staged page missing FILES is held on its own with the class "incomplete docs | 2026-09-17 | 65 routes | scripts/adopt_hunt_wave.py |
| The batch-side protected-page flag judges record-class on the resolved headline only | 2026-09-17 | src/ukclimb/protected.py | |
| The adoption step consults climbs/road-review-verdicts.yaml before it applies any hold… | 2026-09-17 | 192 rows; 15,560 pages | src/ukclimb/verdicts.py |
| The col-name override reads only the COL PART of a page's name | 2026-09-18 | src/ukclimb/passnames.py | |
| A page held because "the line may not be on the road" is not held for ever | 2026-09-18 | 20 pages | climbs/road-review-verdicts.yaml |
| Evidence-quality letter is evidence quality | 2026-09-19 | src/ukclimb/site.py | |
| A human verdict row may name the line it ruled on (`geometry_sha`) | 2026-09-19 | src/ukclimb/verdicts.py | |
| The date in an adopted page's ledger note is the day it was adopted | 2026-09-20 | 1,840 rows; 160 rows | scripts/adopt_hunt_wave.py |
| An EMPTY adopt list is a STOP in adopt_hunt_wave (it is what catches an adopter placing 0… | 2026-09-20 | 23 routes | scripts/multibox/adopt_set.py |
| A page can be retired on the laptop AFTER the box adopted it, and `pull_run.py` had no… | 2026-09-20 | 4 pages | scripts/multibox/pull_run.py |
| A page NAMED as a settled col of the section's pass lists is a col page and clears the… | 2026-09-20 | scripts/route_doctor.py | |
| A suppression verdict that flips when the same line is resampled under a metre is not… | 2026-09-20 | 998 pages; 12 pages | src/ukclimb/analysis/quality.py |
| The first Massif Central cols-wave adoption exited 1 | 2026-09-22 | scripts/multibox/head_adopt.sh | |
| DONE | 2026-09-22 | scripts/multibox/chain_rules.py | |
| Parallel to carriageway | 2026-09-24 | scripts/multibox/adopt_set.py | |
| QUEUED (2026-09-25, Provence fr-pr8) | 2026-09-25 | scripts/multibox/adopt_set.py | |
| IGN LiDAR HD dalles from survey block FE (@24LHDFE, 2025-10-15, north-west rehearsal… | 2026-09-25 | src/ukclimb/elevation/sampler.py | |
| Record class triage tool | 2026-09-25 | scripts/audits/record_class_triage.py | |
| QUEUED (2026-09-26 ~23:30Z, the nord-est record-class triage) | 2026-09-26 | scripts/multibox/adopt_set.py | |
| QUEUED (2026-09-27, the sud-ouest pull) | 2026-09-27 | scripts/multibox/adopt_set.py | |
| Fault (2026-09-28, the France deploy, docs/RESUME.md §0s) | 2026-09-28 | scripts/multibox/pull_run.py | |
| Grass track not a road | 2026-09-29 | scripts/multibox/adopt_set.py | |
| Named pass confidence u hold | 2026-09-29 | 50 pages | scripts/multibox/adopt_set.py |
| Scripts/multibox/adopt_set.py now loads det/not-public-at-window.csv (STRONG rows only,… | 2026-09-29 | scripts/multibox/adopt_set.py | |
| 17 pages (mostly NY) that already had a full-coverage, real published surface… | 2026-09-30 | Not | |
| Record class heavy obstruction listed | 2026-10-01 | 0 pages; 91 pages | src/ukclimb/protected.py |
| Three of the 22 listed Norwegian passes have no page | 2026-10-04 | docs/audits/norway-review-261004.md | |
| NVDB private/forestry (P/S) links carry no Vegdekke object, so their surface read unknown… | 2026-10-05 | 6,169 rows | src/ukclimb/roadauthority.py |
| SwissTLM3D carries Z and a per-feature creation date, but its Z is draped on the same… | 2026-10-06 | 1 rows | scripts/audit_road_newer_than_survey.py |
| D27 lift door check | 2026-10-06 | 87 pages; 0 pages; 460 rows | src/ukclimb/doorcheck.py |
| Adoption verdict semantics and campaign gate mismatch | 2026-10-08 | 89 rows; 108 rows; 41 rows | src/ukclimb/campaign.py |
| Birth naming ignores verdict founding record class protection | 2026-10-08 | 220 pages; 332 pages; 112 pages | src/ukclimb/naming.py |
| Entry door parsed from free text | 2026-10-08 | src/ukclimb/doors.py | |
| Verdict rows bind no geometry | 2026-10-08 | 343 rows; 224 rows | src/ukclimb/verdicts.py |
| Struck or retired never live | 2026-10-09 | 23,721 pages; 2 pages; 4 pages | scripts/deploy_gates.py |
| Utah, 2026-10-11 | 2026-10-11 | 173 pages; 182 pages; 30 climbs | scripts/multibox/region_run.sh |
| An authority sample whose surface is UNKNOWN (an NCDOT Road Characteristics SrfcType… | 2026-10-13 | 507 rows; 0 rows | src/ukclimb/roadauthority.py |
| Nc owner 98 99 unknown listed | 2026-10-13 | scripts/state_inventory_usa.py | |
| A page protected ONLY by the record-class mark whose steepest 25 m window has NO ROAD… | 2026-10-13 | 15 rows | scripts/multibox/adopt_set.py |
| Record class cards are budgeted | 2026-10-13 | scripts/multibox/region_run.sh | |
| An editorial row's `unpaved_pct` is the gravel share of the KNOWN samples only (chips… | 2026-10-13 | 3,886 rows | scripts/multibox/chips_to_editorial.py |
| The record-class-listed release (retro record-class-listed-verdict-wins) has no door-less… | 2026-10-15 | scripts/multibox/adopt_set.py | |
| A settled human `ok:record-class-listed-unranked` verdict (BR-C2) places its page LISTED,… | 2026-10-15 | scripts/multibox/adopt_set.py | |
| A record-class review card must show the page's adoption doors (doors.csv any_door + door… | 2026-10-15 | scripts/record_class_pack.py | |
| A person's surface ruling (Street View) was not expressible | 2026-10-15 | src/ukclimb/surfaceoverride.py | |
| Below the region's steep_unpaved_list_pct an unpaved steepest 25 m window is a surface… | 2026-10-15 | src/ukclimb/eyepass.py | |
| Scripts/multibox/retire_list.py apply() drops the retired slugs' editorial rows by… | 2026-10-17 | scripts/multibox/retire_list.py | |
| The not-public-at-window detector must NOT hold a page whose window way carries OSM… | 2026-10-19 | scripts/audit_not_public_at_window.py | |
| Access end separator apply to existing | 2026-10-21 | 85 rows | src/ukclimb/accessend.py |
| Chips targeted 382 no surface 261021 | 2026-10-21 | 382 rows | scripts/chips.py |
| Scripts/multibox/remeasure_table.py classify names a class by the rule that fired… | 2026-10-21 | scripts/multibox/remeasure_table.py | |
| Climbs/road-review-verdicts.yaml rows that resolve to no live page (92 of 218 on… | 2026-10-21 | tests/unit/test_verdict_rows_bound.py | |
| Nightly checks alarm on a stalled step instead of hanging | 2026-10-22 | nightly_invariants.sh | |
| Surface spans follow ruled cut 261023 | 2026-10-23 | scripts/remeasure_fold.py | |
| Page notes are written for visitors, not as working notes | 2026-10-24 | 14 pages | -editorial.yaml |
| A page that enters a top 20 is looked at, new or not | 2026-10-25 | scripts/deploy_gates.py | |
| A listed page's Access line no longer ends in a stray fragment | 2026-10-27 | 93 pages; 0 pages | src/ukclimb/reviewflags.py |
| A gate note says which access tag the gate carries | 2026-10-27 | src/ukclimb/d27.py | |
| A NEW page that a human verdict protects (verdict family rank, e.g. review_confirmed) and… | 2026-10-27 | scripts/multibox/adopt_set.py | |
| Every page in a top 20 has had two looks | 2026-10-27 | 7 pages | scripts/aerial_crops.py |
| P3 lane B (F4) found | 2026-10-28 | scripts/audit_access_end.py | |
| AGENTS rule 14, from the P3 lane B access-end eye pass (117 NC cards, 2026-10-28) | 2026-10-28 | src/ukclimb/accessend.py | |
| P3 lane B calibration eye pass 2026-10-28 | 2026-10-28 | src/ukclimb/accessend.py | |
| Accessend.SYSTEM_PREFIXES ("SR","NC","US","I") is NC-shaped | 2026-10-28 | src/ukclimb/accessend.py | |
| Battery access end and created pass 261028 | 2026-10-28 | scripts/multibox/detectors_battery.sh | |
| F24 measurement 2026-10-28 | 2026-10-28 | src/ukclimb/lineoffset.py | |
| NC eye pass 2026-10-28 (peaceful-view-drive held) | 2026-10-28 | scripts/audit_survey_vintage_created.py | |
| Survey newer road standing hold 261101 | 2026-11-01 | src/ukclimb/surveynewer.py | |
| Head_adopt.sh run through launch.sh (the documented NEW-REGION G8 command) must find its… | 2026-11-03 | scripts/multibox/launch.sh | |
| Adopt_set passes the doors row's state (usa-wv, a region key, not a site section) to… | 2026-11-04 | scripts/multibox/adopt_set.py | |
| Scripts/audits/record_class_triage.py projected every max-25 m window to lon/lat from a… | 2026-11-04 | scripts/audits/record_class_triage.py | |
| Autok_sched's monotonic peak-RSS estimate (6.5-6.7 GB per worker) held the 16-vCPU / 32… | 2026-11-05 | scripts/multibox | |
| RESUME and eta records must quote the POST-EDITORIAL ranked/listed count, not the… | 2026-11-05 | docs/RESUME.md | |
| No tool takes one page out of a failed adopt | 2026-11-08 | scripts/multibox/head_adopt.sh | |
| Usa-va b06 (zero pages adopted) stopped at gate-adoption with adopted_list unset on… | 2026-11-08 | scripts/multibox/stage_gates.py | |
| The relay holds a hand-copied tree, so a new B2 prefix failed the mirror for two runs | 2026-11-09 | e2_mirror_status.py | |
| All 10 usa-va head logs said VERDICT FAILED for report-only gates | 2026-11-09 | scripts/multibox/region_run.sh |
Publishing
The pages, the files, the links and the published record of every decision.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| Filled dots are pages coloured by the 25 m gradient | 2026-09-07 | src/ukclimb/site.py | |
| The deduped yaml carries the final -N slugs BEFORE the road audit (split_spatial.py… | 2026-09-08 | scripts/split_spatial.py | |
| Slugs fold letters with diacritics to their base letter (kahakō, ŷ…) instead of dropping… | 2026-09-08 | 19 pages | src/ukclimb/analysis/profile.py |
| Every tool that retires, holds or adopts a route stamps ONE reason code from… | 2026-09-09 | 8,996 pages | src/ukclimb/decisions.py |
| A deploy that changes the page counts also cuts a new dated decisions release (pages… | 2026-09-10 | scripts/refresh_decisions_release.sh | |
| Deploy refuses above 95,000 static files and warns above 80,000 (Workers cap 100,000;… | 2026-09-10 | scripts/deploy.sh | |
| The site builds the sections it is configured for and REFUSES an unknown one | 2026-09-10 | src/ukclimb/site.py | |
| Whole-set slugs are written into the deduped list (split_spatial --write-back) BEFORE the… | 2026-09-10 | 64 pages | scripts/multibox/extend_shards.sh |
| Every climb page carries a <title> of the form "<name>, <place> | 2026-09-11 | 10,067 pages | src/ukclimb/site.py |
| Surface_spans labels an UNMATCHED sample (no authority segment within the buffer) 'none'… | 2026-09-11 | 523 pages | src/ukclimb/roadauthority.py |
| Retired-page redirects are served by web/worker.js from the build's redirects.json… | 2026-09-13 | src/ukclimb/site.py | |
| Methodology how a page is made | 2026-09-15 | src/ukclimb/site.py | |
| Batch_autok.sh accounts for every entry of every chunk as a doc or a FAIL line before it… | 2026-09-16 | scripts/multibox/batch_autok.sh | |
| A named-pass col is built from whatever OSM gives it | 2026-09-16 | 50 routes | scripts/build_named_pass_routes.py |
| A `named-pass` row that coincides with a published page OF THE SAME SECTION lying INSIDE… | 2026-09-17 | scripts/multibox/chain_rules.py | |
| A 25 m maximum at least 3x the route's overall gradient, on a route gaining under 100 m,… | 2026-09-17 | scripts/multibox/chain_rules.py | |
| Every built site section is in site.AERIAL_TILES (open national orthophoto tiles +… | 2026-09-18 | src/ukclimb/site.py | |
| Every deploy gate whose answer is already in the corpus is decided BEFORE the ~13-minute… | 2026-09-19 | scripts/deploy_gates.py | |
| Every image URL the site emits comes from one function (site.asset_url) reading one… | 2026-09-19 | src/ukclimb/site.py | |
| The site build rewrites only the pages whose content changed and sweeps whatever it did… | 2026-09-19 | src/ukclimb/site.py | |
| The map library is fetched when the map nears the viewport (IntersectionObserver, 300 px)… | 2026-09-19 | 16,000 pages | src/ukclimb/site.py |
| A published row is reachable at a URL of its own, never only inside a table JavaScript… | 2026-09-19 | src/ukclimb/site.py | |
| /sitemap.xml is an index over one sitemap per country plus the survey-wide pages, and… | 2026-09-19 | src/ukclimb/site.py | |
| A table is the one element that cannot narrow past its own content, so it scrolls inside… | 2026-09-19 | src/ukclimb/site.py | |
| The Worker answers plain http with a 301 to https, for the apex and for www, alongside… | 2026-09-19 | web/canonical.js | |
| A deploy must build, bank and publish ONE listing of the corpus | 2026-09-20 | scripts/corpus_bank.py | |
| A DECISION, not a fix | 2026-09-20 | scripts/e2_mirror.sh | |
| NOT YET FIXED | 2026-09-20 | 18,511 pages; 110 pages; 218 rows | scripts/corpus_doctor.py |
| A deploy checks that today's code produces the figures it is about to publish, before the… | 2026-09-20 | 18,511 pages; 387 pages | scripts/deploy_gates.py |
| A cache file written by more than one process at a time needs a temp name unique to the… | 2026-09-20 | 60 pages | src/ukclimb/atomicio.py |
| Closeout verifies run outputs | 2026-09-21 | scripts/multibox/closeout_outputs_check.py | |
| The kept web/site tree did not shorten the build | 2026-09-22 | src/ukclimb/site.py | |
| A measuring box holds the INPUT every figure rests on (the IGN dalles it fetched,… | 2026-09-22 | scripts/multibox/box_closeout.sh | |
| Box_closeout.sh's run-output check listed the WHOLE b2 outputs/ prefix with `rclone lsf… | 2026-09-22 | scripts/multibox/box_closeout.sh | |
| The pooled IGN fetch (retro ign-dalle-fetch-is-the-clock) measured on the jm-prep box… | 2026-09-24 | src/ukclimb/elevation/cog_grid.py | |
| France callout generated from massif configs | 2026-09-25 | src/ukclimb/site.py | |
| Fault (2026-09-28, France deploy, docs/RESUME.md §0s) | 2026-09-28 | scripts/deploy.sh | |
| Methodology states the 20m rise rule | 2026-09-28 | METHODOLOGY.md | |
| Two faults found reviewing the west-coast cities re-adoption (docs/RESUME.md §0t), both… | 2026-09-29 | scripts/build_named_pass_routes.py | |
| Naming steepest street and local lane names | 2026-09-29 | 0 rows; 23,119 pages; 1,057 pages | src/ukclimb/naming.py |
| Nation_batch.sh's RESUME=1 path computed "remaining entries" by scanning ONLY the… | 2026-09-29 | scripts/multibox/reconcile_split.py | |
| Found live on the box | 2026-09-29 | scripts/multibox/reconcile_split.py | |
| A check whose tool failed must never read as "clean" | 2026-09-30 | box_closeout.sh | |
| Hand-trace / trim / re-measure fold steps that write a site-corpus doc directly… | 2026-09-30 | scripts/us_area_labels.py | |
| Ratchet audit 2026-10-01 (gap #49) | 2026-10-01 | PRODUCTION.md | |
| The crop close-out planned its corridor from `<run>/batch/*/*.geojson` only | 2026-10-04 | scripts/crop_bank_closeout.py | |
| Aerial ends live pages | 2026-10-06 | 592 pages | aerial_crops.py |
| Aerial eye other sections | 2026-10-06 | src/ukclimb/aerialverdicts.py | |
| Ch d27 lift prepared | 2026-10-06 | 1,446 rows | scripts/chips.py |
| Ch track context test | 2026-10-06 | 3,771 pages; 1,032 pages; 87 pages | lift_review_by_authority.py |
| Gate bypass switches are ungated | 2026-10-08 | scripts/deploy_gates.py | |
| Route doctor allow has no section | 2026-10-08 | 25 rows | scripts/route_doctor.py |
| Verdict ledger keyed by slug without section | 2026-10-08 | 23,721 pages; 343 rows | src/ukclimb/verdicts.py |
| Verdict precedence site vs adoption | 2026-10-08 | 141 rows | src/ukclimb/protected.py |
| Study 2 D2, 2026-10-09 (docs/studies/doc-rewrite-behaviour-261009.md) | 2026-10-09 | 18 pages; 18 rows | src/ukclimb/protected.py |
| Utah wave 1, 2026-10-11 (d22fdb54) | 2026-10-11 | 223 pages | scripts/editorial_coverage.py |
| Utah hil-3, 2026-10-11 | 2026-10-11 | 13 pages; 5 rows | src/ukclimb/slugtaken.py |
| Page status measurement vs presentation | 2026-10-12 | 79 pages | src/ukclimb/pagestatus.py |
| Retired slug reuse and resurrection | 2026-10-13 | 13 pages | scripts/deploy_gates.py |
| A crop with 0 valid pixels whose ORIGINAL tile has valid data under the 120 m corridor… | 2026-10-15 | src/ukclimb/elevation/tile_bank.py | |
| No gate stopped a batch slug that is LIVE from another run | 2026-10-15 | src/ukclimb/crossrun.py | |
| `python -m ukclimb.deployreview check --head <sha>` compared the string given against the… | 2026-10-15 | src/ukclimb/deployreview.py | |
| A crop-bank manifest route string may be two-part dir/slug (older banks, published/slug)… | 2026-10-15 | src/ukclimb/crop_plan_freeze.py | |
| FIXED (2026-10-15, hil-4 us-nc-smokies1) | 2026-10-15 | scripts/adopt_hunt_wave.py | |
| Remote_deploy.sh mirrors the working clone's site-corpus (rsync --delete) over the deploy… | 2026-10-15 | scripts/manifest_copyback.sh | |
| Tile_bank.corridor_mask buffers each line and unary_unions the polygons | 2026-10-16 | src/ukclimb/elevation/tile_bank.py | |
| The I3 protected-values baseline must be retaken by the deploy itself, not by a person… | 2026-10-16 | scripts/invariant_sweep.py | |
| A slug collision across states must not nest one climb inside another | 2026-10-19 | to | |
| Fable review of route-doctor-allow-has-no-section, 2026-10-20 | 2026-10-20 | scripts/route_doctor.py | |
| A batch group (scripts/multibox/batch_autok.sh) exits 3 and writes failed_pages.tsv /… | 2026-10-21 | 7 pages | scripts/multibox/batch_autok.sh |
| The newest changelog entry's public numbers must equal what the build publishes | 2026-10-21 | scripts/deploy_gates.py | |
| The sidecar-parity check lived only in the campaign driver (campaign.py… | 2026-10-21 | scripts/deploy_gates.py | |
| The top-20 eye-pass deploy gate fired only for a section new to the site (0 -> N pages) | 2026-10-21 | src/ukclimb/eyepass.py | |
| Johns road negative max100 261022 | 2026-10-22 | quality.py | |
| I3 reads protected ruling 261023 | 2026-10-23 | scripts/invariant_sweep.py | |
| A commit that stages only a docs/audits/deploy-review-<label>.md record must not be… | 2026-10-24 | scripts/git_hooks_check.py | |
| Page notes carry no internal reference codes | 2026-10-24 | src/ukclimb/site.py | |
| The deploy eye sample sees pages that changed only through a review flag | 2026-10-27 | 152 pages; 25,244 pages | src/ukclimb/deployreview.py |
| The published page data names nobody and carries no ledger tags | 2026-10-27 | spec/OCL.md | |
| Publictext.public_json left "Fable-checked <date>" and bare model names in published JSON… | 2026-10-27 | 2 pages | src/ukclimb/publictext.py |
| A ranked page's access note does not carry working notes about slugs | 2026-10-27 | 138 pages | src/ukclimb/publictext.py |
| Scripts/aerial_card.py has no open imagery source for Norway, so a no line-offset hold… | 2026-10-28 | scripts/aerial_card.py | |
| Public JSON and the provenance <pre> carry internal paths in two identity keys left… | 2026-10-28 | 2,793 pages | src/ukclimb/publictext.py |
| Publictext strips output paths 261028 | 2026-10-28 | 232 pages | src/ukclimb/publictext.py |
| The p4b2-twins-261029 deploy reviewer found 5 rows in climbs/retired-redirects.yaml whose… | 2026-10-29 | scripts/deploy_gates.py | |
| Scripts/multibox/retire_list.py write_redirects re-dumped the whole… | 2026-10-29 | scripts/multibox/retire_list.py | |
| The uk section map frame (site.py fixed bounds, north edge 59.5) excluded 5 live Shetland… | 2026-10-31 | src/ukclimb/site.py | |
| A run keeps ONE bank-tiles close-out prefix across a UTC date change | 2026-11-03 | src/ukclimb/crop_bank_dir.py | |
| Mirror copy checksum 261104 | 2026-11-04 | scripts/deploy.sh | |
| A crop plan checked before restore (P1) must be the plan the cut will use | 2026-11-05 | scripts/crop_bank_closeout.py | |
| An edition-fused page (provenance.edition_fusion, mean of two editions) rests on BOTH… | 2026-11-05 | 18 pages | src/ukclimb/banked_tiles.py |
| An UKC_ALLOW_INVARIANT_FINDINGS bypass never covers a finding on a page this deploy adds… | 2026-11-05 | scripts/invariant_sweep.py | |
| The named-pass accounting gate runs only inside the launched deploy, so a pass with no… | 2026-11-09 | scripts/remote_deploy.sh | |
| The nightly read the deploy clone inventory, refreshed only at a deploy, and false-fired… | 2026-11-09 | nightly_invariants.sh | |
| Open ALARM files were printed as warnings, but no deploy gate covers the e2 half | 2026-11-09 | scripts/remote_deploy.sh | |
| A deploy refused inside deploy.sh left its tag on origin | 2026-11-09 | scripts/remote_deploy.sh | |
| The gates-only dry run gives deploy.sh the ASSET_HOST and DATA_ON_R2 the launch will use… | 2026-11-10 | scripts/remote_deploy.sh |
Running the survey
Data handling, archiving and the machinery that keeps a run honest.
| Rule | Added | Pages named | Code |
|---|---|---|---|
| A box checkout is updated with scripts/multibox/box_update.sh (stash → reset → pop),… | 2026-09-08 | 18 pages; 88 pages | scripts/multibox/box_update.sh |
| Estimates come from measured stage durations + glue + a per-stage gap contingency,… | 2026-09-08 | ukclimb | |
| The D27 inventory-authority lift runs in the head chain right after the adopter… | 2026-09-08 | scripts/lift_review_by_authority.py | |
| A fresh box seeds the tile index for every zone key it will batch… | 2026-09-09 | scripts/multibox/seed_index.sh | |
| Batch is given a PBF cut to the entry set's route corridors (scripts/routes_area.py +… | 2026-09-10 | scripts/routes_area.py | |
| Something watches the watcher | 2026-09-10 | scripts/multibox/deadman.sh | |
| Disk two filesystems | 2026-09-10 | src/ukclimb/campaign.py | |
| Jobs banked gate | 2026-09-10 | src/ukclimb/campaign.py | |
| The nation-keyed post-dedupe chain runs the pre-adoption hygiene (extent audit ->… | 2026-09-10 | scripts/multibox/nation_batch.sh | |
| The batch stage does not pass until `rclone check` shows the dated PBF | 2026-09-10 | src/ukclimb/campaign.py | |
| The nation chain takes every per-nation parameter from the registry (CRS, authority,… | 2026-09-11 | 2,099 rows; 61 pages | scripts/multibox/nation_batch.sh |
| A page directory holds exactly its own seven files | 2026-09-11 | to | |
| Nation_batch.sh names the route-area batch extract per RUN (<pbf>-batch-<run>.osm.pbf) | 2026-09-12 | scripts/multibox/nation_batch.sh | |
| 68 pages (67 uk, 1 us) reached the 2026-09-12 deploy with a calib map stamp that did not… | 2026-09-12 | 68 pages | scripts/reencode_maps.py |
| The road-authority chip instrument (scripts/chips.py, UKAuthority over OS OpenRoads,… | 2026-09-13 | scripts/chips.py | |
| Region_run.sh's bank step excludes logs/bank.log from both the copy and the check (the… | 2026-09-16 | scripts/multibox/region_run.sh | |
| The driver's interventions ledger distinguishes `budgeted` rows (class exclusions/holds… | 2026-09-16 | scripts/multibox/region_run.sh | |
| Region_run.sh sizes its parallelism from the box at launch | 2026-09-16 | scripts/multibox/region_run.sh | |
| No fresh Vosges run 3 for a formal zero | 2026-09-16 | none | |
| <run>/pairs-corpus is nation_batch's scratch VIEW for audit_published_pairs | 2026-09-17 | scripts/multibox/region_run.sh | |
| The adopt step's batch-<region> alias is a SYMLINK to the run's own batch/, so it is… | 2026-09-17 | scripts/multibox/region_run.sh | |
| Nation_batch.sh's pre-run test gate checks pytest's own exit status (PIPESTATUS[0]) | 2026-09-17 | scripts/multibox/nation_batch.sh | |
| A STOP_AFTER run BANKS FIRST and touches/uploads its STOPPED-AFTER-<step> marker LAST, on… | 2026-09-17 | 0 pages | scripts/multibox/region_run.sh |
| The area-label stamp (adopt_hunt_wave.phase_stamp, osm-admin) reads its admin extract… | 2026-09-18 | 1,840 pages | scripts/adopt_hunt_wave.py |
| The OSM admin extract that stamps a page's commune and département is named after the… | 2026-09-20 | 17 pages; 1,999 pages; 3,771 pages | scripts/adopt_hunt_wave.py |
| A dated corpus release is a MANIFEST plus a content-addressed store, never a second copy… | 2026-09-20 | scripts/corpus_bank.py | |
| The steps BELOW the batch are skipped by marker too | 2026-09-20 | scripts/multibox/nation_batch.sh | |
| A fold that replaces a page's profile must leave the page with charts drawn from that… | 2026-09-21 | 169 pages | scripts/multibox/remeasure_fold.py |
| Lifted suppression defaults to published | 2026-09-21 | src/ukclimb/analysis/carried.py | |
| Massif_prep.sh's `passlist` (build + emit) rewrites climbs/fr-passes-<massif>.yaml from… | 2026-09-22 | scripts/multibox/massif_prep/massif_prep.sh | |
| `rclone lsf <path>` exits 0 and prints NOTHING when <path> does not exist | 2026-09-22 | scripts/multibox/head_wait.sh | |
| Scripts/corpus_release_restore.py staged every object under $TMPDIR before placing it | 2026-09-22 | scripts/corpus_release_restore.py | |
| DONE 2026-09-26 (queued 2026-09-24) | 2026-09-24 | 5 rows | scripts/multibox/massif_prep/mc_known_roads.py |
| Bank prep index prefix per massif | 2026-09-25 | scripts/multibox/massif_prep/mc_bank_prep.sh | |
| DEFECT (Provence run, 2026-09-25 06:48Z) | 2026-09-25 | scripts/multibox/fleet_watch.py | |
| A resumable chain step must not re-derive its own input by loose glob + newest-MTIME | 2026-09-25 | scripts/multibox/massif_prep/massif_prep.sh | |
| DONE (2026-09-26, fr-so-rehearsal on the head box) | 2026-09-26 | scripts/multibox/region_run.sh | |
| DONE (2026-09-26, centre chain 06:47Z) | 2026-09-26 | scripts/multibox/massif_prep/mc_pbf.sh | |
| DONE 2026-09-26 (same-day fault as `known-roads-registered-by-the-prep-chain` above) | 2026-09-26 | scripts/multibox/massif_prep/rehearsal_search.py | |
| A massif whose own pass list carries NO `- name:` row at all | 2026-09-26 | scripts/multibox/massif_prep/mc_tour_membership.py | |
| FIXED (2026-09-29, rehearsal box 5.78.138.250 06:40Z) | 2026-09-29 | scripts/multibox/cache_extract.sh | |
| Corridor-crop tool (scripts/b2_retro_crop.py), 2026-10-02 | 2026-10-02 | scripts/b2_retro_crop.py | |
| Corridor-crop | 2026-10-03 | 4 routes | src/ukclimb/elevation/usgs_3dep_corridor.py |
| Every elevation tile a live page names in provenance.elevation_tiles must be banked on B2… | 2026-10-04 | 1,732 pages; 7 pages | scripts/fr_refetch_unbanked.py |
| Pull_country_close.sh (Norway N=8) | 2026-10-04 | scripts/multibox/pull_country_close.sh | |
| The survey-vintage audit compares OSM way timestamps with the survey year, which needs a… | 2026-10-06 | audit_survey_vintage.py | |
| Box cost ledger | 2026-10-08 | scripts/multibox/box_setup.sh | |
| Chips to editorial uk guard | 2026-10-08 | 1,847 rows; 0 rows | scripts/multibox/chips_to_editorial.py |
| Protected reads unparsable ledger as empty | 2026-10-08 | 0 climbs; 0 rows; 332 pages | src/ukclimb/protected.py |
| A page's elevation + gradient PNGs and its cursor calibration sidecar come from ONE call,… | 2026-10-10 | src/ukclimb/export/charts.py | |
| Utah us-ut-b2, 2026-10-11 07:54Z (hil-1) | 2026-10-11 | src/ukclimb/route_dirs.py | |
| FIXED (2026-10-13, us-nc-mini2, its only intervention, 07:45Z) | 2026-10-13 | scripts/multibox/region_run.sh | |
| FIXED (2026-10-13, us-nc-mini1 intervention 3 of 3, 05:16Z) | 2026-10-13 | scripts/multibox/cache_extract.sh | |
| B2 lifecycle must not expire us originals | 2026-10-15 | src/ukclimb/b2_lifecycle_gate.py | |
| Box_update.sh took only `main` from a bundle, so a bundle whose ref is origin/main… | 2026-10-15 | scripts/multibox/box_update.sh | |
| On macOS a process that has forked (the corridor mask pool) and runs threads can see… | 2026-10-15 | scripts/b2_retro_crop.py | |
| Launch.sh records the PID of a WRAPPER subshell (the job is its child; the wrapper writes… | 2026-10-15 | scripts/multibox/jobstop.py | |
| A curated ledger looked up per page must be parsed ONCE, never per call | 2026-10-15 | src/ukclimb/ledgercache.py | |
| A fetched DTM raster is validated BEFORE it is cached or its provenance written | 2026-10-18 | src/ukclimb/elevation/tile_validate.py | |
| Fr missing tour cols 261021 in progress | 2026-10-21 | named-pass | |
| Adopt_set.py REQUIRED det/not-public-at-window.csv only for us / usa-* / no | 2026-10-21 | scripts/multibox/adopt_set.py | |
| A re-measure plan entry names its page's own published verdicts (`prior_doc:`), as… | 2026-10-21 | 21 pages | scripts/build_remeasure_plan.py |
| A test must never judge a fixed-date fixture against the real clock | 2026-10-21 | scripts/crop_bank_noted.py | |
| End-stub pages on an unnamed service spur carry a named listing reason | 2026-10-22 | 3 rows | the |
| Remeasure fold ruled cut and rises 261022 | 2026-10-22 | scripts/multibox/remeasure_fold.py | |
| Merge_doc should also record published_overall_pct and _ruled_fold_excuse should anchor… | 2026-10-23 | scripts/multibox/remeasure_fold.py | |
| A second remeasure_fold --apply in the same section on the same date must never overwrite… | 2026-10-23 | scripts/multibox/remeasure_fold.py | |
| The G2 report-only stage gates that false-fire or are never produced (RESUME 2026-10-27… | 2026-10-27 | scripts/multibox/stage_gates.py | |
| Follow-up of usa-cross-state-newest-project (code done 2026-10-27) | 2026-10-27 | 11 pages | scripts/multibox/remeasure_corpus.sh |
| A UKC_CI_GREEN_SKIP override is a recorded decision (BR-F2/F4, BR-J9) | 2026-10-29 | scripts/deploy.sh | |
| Tests/test_heartbeat_check.py process-group/finish tests… | 2026-10-29 | tests/test_heartbeat_check.py | |
| Scripts/multibox/remeasure_corpus.sh was Linux-only (df -BG, /proc/meminfo, stat -c,… | 2026-10-29 | scripts/multibox/boxstat.sh | |
| BR-A8 | 2026-10-29 | scripts/multibox/stage_gates.py | |
| Scripts/multibox/chips_to_editorial.py --apply re-dumped the whole… | 2026-10-31 | scripts/multibox/chips_to_editorial.py | |
| A remeasure fold must rewrite the folded pages' surface chips (chips_to_editorial) so the… | 2026-10-31 | 116 pages | scripts/corpus_doctor.py |
| Nation_batch.sh's RESUME=1 path never batches against a missing batch extract | 2026-11-02 | scripts/multibox/check_chunks_disjoint.py | |
| Tile store release check 261104 | 2026-11-04 | 08 pages | scripts/tile_store_releasable.py |
| A crop cut from a different swissALTI3D capture year than the one a ch page cites fails… | 2026-11-05 | scripts/crop_campaign_plan_check.py | |
| Re-bank PAD-US for usa-wv and usa-ut at the region bbox + 0.25 deg… | 2026-11-05 | scripts/fetch_padus.py | |
| Scripts/multibox/landownership_bank.py plan() banks and judges PAD-US at the run area +… | 2026-11-06 | scripts/multibox/landownership_bank.py | |
| Usa-va b04 STOP 3 | 2026-11-08 | scripts/multibox/adopt_set.py | |
| Stage gates stop vs defer 261108 | 2026-11-08 | scripts/multibox/stage_gates.py | |
| The usa-va per-box chain, watcher and adopt queue were written by hand outside the repo | 2026-11-09 | scripts/multibox/block_chain.sh | |
| Box_deletable took one --run, so a five-block box judged only its first block | 2026-11-09 | scripts/box_deletable.py | |
| A red nightly could only be cleared by the next nightly or an override | 2026-11-09 | .github/workflows/tests.yml | |
| A mirror run still copying alarmed as no summary line | 2026-11-09 | e2_mirror_status.py | |
| Dead IPv6 on Hillsboro boxes cost about 30 min of 30 s requests | 2026-11-09 | scripts/multibox/box_setup.sh | |
| Block_watch.sh resets the per-box CPU-idle clock (<box>.busy) when the probe shows a NEW… | 2026-11-10 | 3 pages | scripts/multibox/block_watch.sh |
| Size_k.sh per-shard memory floors at 2 GB | 2026-11-10 | 1 pages | scripts/multibox/size_k.sh |
In preparation
Coded or specified, not yet swept over every page that predates them:
- Nation_batch.sh runs audit_corpus_dedupe over the batch vs the PUBLISHED section… (2026-09-12)
- Before adoption, compare candidate density per 0.5 deg cell (discovery + hunt) with the… (2026-09-12)
- Two blocks of one campaign measure the same road and the corpus dedupe finds the duplicate (2026-09-17)
- Jura lidar holes and morvan deferred (2026-09-24)
- A listed col is never absorbed into another listed col's route… (2026-10-05) — 23 pages; 1 pages
- Us complementary 3dep projects nocoverage retry (2026-10-10)
- Two live us pairs are the same road published twice (F14 cross-zone dedupe sweep,… (2026-10-28)
- Us regions private land sweep 261029 (2026-10-29)
- A state road-inventory reply that is malformed (no features list, non-dict) or empty must… (2026-10-30) — 241 pages; 16 pages
- SOURCES.md must carry, per elevation provider, a heading naming the provider id, a read (2026-10-31)
- Crop tools silently mishandle providers outside ign/usgs/nhm (2026-11-05)
- Build_coverage _legacy_zones mapped a project name to one zone, last row wins, so… (2026-11-09)
- Cut-blocks with --pbf (work = road-km) compares road-km to proven_work_per_box in seeds,… (2026-11-09)
- Named pass extent source or full line (2026-09-17)
- Named pass via another col (2026-09-17)
- DIAGNOSED 2026-09-28 (2026-09-28)
- Utah, 2026-10-11 (docs/audits/utah-unmeasured-261011.md) (2026-10-11)
- Card 1 fr/discovered-lane-44-0035-6-2891 (2026-10-21)
- A climb does not end in someone's driveway (2026-10-25)
- Access end named tail 261028 (2026-10-28)
- BR-F3 + BR-A8 (F19 of retro future-run-debt-clearance-261028) (2026-10-28) — 266 pages
- The 2026-10-28 report-only sweep flagged 297 live at pages STRONG on the generic… (2026-10-28) — 50 pages
- The 2026-10-28 report-only sweep flagged 85 live ch pages STRONG on the generic… (2026-10-28) — 28 pages
- The 2026-10-28 report-only sweep flagged 164 live fr pages STRONG on the generic… (2026-10-28) — 92 pages
- The 2026-10-28 report-only sweep flagged 3 live no pages STRONG on the generic… (2026-10-28) — 1 pages
- The 2026-10-28 report-only sweep flagged 51 live nz pages STRONG on the generic… (2026-10-28) — 29 pages
- Ukclimb.lineoffset keeps the two old detectors' semantics as named rule sets (usa for… (2026-10-28)
- Nc eye pass trims 261028 (2026-10-28)
- A page whose state road inventory shows a public-maintained road under the whole line… (2026-10-30)
- BR-C4 (listed city streets publish at any length) (2026-10-31)
- BEV crop manifests (bev-als-crops-edition-closeout-261008 20,784 rows,… (2026-11-04)
- A crop-coverage test decides whether a vertex lies in a cached tile by THAT KIND's real… (2026-11-07)
- Invariant I17 (every live page with a 25 m window >= 30 % has a settled verdict row or a… (2026-10-31) — 433 pages
- Banked_tiles._edition_ok lets a banked row with NO edition satisfy a page that names one (2026-11-05) — 35 pages
- A script that hands page-frame coordinates to a RoadAuthority converts them into that… (2026-11-10) — 74 pages; 1,318 pages
- A climb route never climbs past its col and comes back (2026-11-10)
- A climb page publishes the sideways sensitivity of its headline 25 m figure (2026-09-16)
- A prism worker that dies costs ONE route, never the sweep (2026-09-20) — 139 routes; 0 rows; 139 rows
- Utah, 2026-10-10 (structural walk of climbs/us-passes-utah.yaml on the real Utah PBF) (2026-10-10)
- At/discovered-lane-46-6611-14-8808 held at published 20.63 % in the 2026-10-27 edition… (2026-10-27)
- At/gde-str-gang held at published in the 2026-10-27 edition fold (2026-10-27)
- BR-A12 (2026-10-31)
- A col of a region's pass list (climb_origin: named-pass) is never refused by the road… (2026-09-17)
- Named pass motor access (2026-09-17) — 4 pages
- NOT YET FIXED, and it is a MISSING CAPABILITY rather than a bug (2026-09-20) — 129 routes; 30 pages
- The OSM surface cross-check (scripts/state_inventory_usa.py's… (2026-09-29)
- D27 authority lift all sections (2026-10-05)
- Edition fusion larger holdout (2026-10-07)
- Utah, 2026-10-10 (2026-10-10)
- Utah, 2026-10-11 (docs/audits/utah-private-land-261011.md, Ranked pages review) (2026-10-11) — 26 pages
- Hardening "existence -> content" (2026-10-11) (2026-10-11)
- UK roads ranked by the road authority without an aerial look (2026-10-26) — 146 pages
- Climbs/hold-mix-precedents.yaml (the BR-G4 hold-mix comparison) holds fr (66 runs) and nz… (2026-10-31)
- Usa-va G4 small pass (us-va-run1-mini1, 2026-11-07) stopped on MISSING-CHIP-ROOT (2026-11-07)
- The usa-va head adopts re-serialised climbs/review-flags.yaml (2026-11-08)
- Massif central lidar hole (2026-09-22)
- Track extends when paved (2026-09-29) — 22,851 pages; 2,137 pages; 20,714 pages
- Every listed named pass has a page or a recorded reason (ukclimb.pass_accounting,… (2026-10-05)
- BEV republishes its ALS DTM yearly (Stichtage 2022-09-15, 2023, 2024, 2025-09-15) and the… (2026-10-07) — 4,394 pages; 11,088 pages; 1,485 pages
- Fr same road higher passes 261027 (2026-10-27)
- Future run debt clearance 261028 (2026-10-28)
- A remeasure fold that changes a page's figure must not leave an editorial access_note (or… (2026-10-31) — 102 pages
- After padus-rebank-margin-wv-ut-261105, re-check the ownership verdicts of shipped WV… (2026-11-05)
- A box that ran five blocks needs five campaigns of close-out evidence, and nothing builds… (2026-11-09)
- A slug-keyed verdict row with no length_m or geometry_sha speaks about one road (2026-11-09)
- A named-pass build on a divided highway emits ONE page per climb direction, on the… (2026-11-10)
- The batch / adopt slug suffix walk treats every slug LIVE in the section (here us) as… (2026-11-10)
- Corridor-crop tool (scripts/b2_retro_crop.py), 2026-10-02, three faults that stopped the… (2026-10-02)
- Norway crops cut by 80f8b0c6 / 368c60c2 (before the 048843f0 outward-snap fix) can stop… (2026-10-04)
- The merged line-geometry detector (BR-A17 line ON/OFF; scripts/audit_hairpin_inside.py… (2026-10-28)
- TIGER names some county subdivisions by number (2026-11-08) — 17 pages
- The new autok estimate could only be replayed by model on the pre-D19 logs (2026-11-09)
- Prove UKC_EXTEND_PREFETCH=corridor and UKC_BATCH_CHARTS=defer byte-identical on one box,… (2026-11-09)
119 further rules recorded as no longer applicable.