The nature-first batch: the Atlas ladder's rungs now differ structurally, not just in cell count. Together these answer both of Jeroen's hands-on complaints ("zero detail on lower levels, just a green field" / "the green-blue transition is a fade — it should be a more detailed coastline").
T-1162 — invention octaves into the Atlas window path (server)
The ladder's transport reached 512 m but its content floor was 4 km (terrain) / 16 km (coast). Now:
Coast crinkle: WARP_OCTAVE_WAVELENGTHS_M extended 5→9 entries (262,144 m down to 1,024 m — Quarter's Nyquist floor), with new min_wavelength_m cutoff plumbing in coast_warp_px/warp_fbm (the warp previously had no cutoff at all). Bays, headlands and islets now appear as you zoom.
Sub-district relief: invent_primitives feeds the VOXEL band (1,024–128 m, salted) into elev_q/slope_q under the same envelope/cutoff discipline.
Vegetation patchiness (net-new module vegetation_invention.rs): the nature layer's wild growth. Two-tier model mirroring coast_invention — a BodyParams+latitude envelope ceiling ("where forests are possible"; a hyper-arid world stays desert) over a single blended fBm field (never-gated 100–400 km massif tier at 70% weight + cutoff-gated district/voxel texture at 30%). It perturbs moisture_q's output, so precipitation, glaciation and vegetation shift as one coherent world-fact — and the single-field construction guarantees cross-rung coherence: a Region-scale forest resolves into distinct woods (District) and copses/clearings (Quarter), never contradicted wholesale. Wire format unchanged.
MIN_WL_BANDS_M 5→6 entries (adds the 1,024 m band).
Mid-implementation correction caught by tests: District's quantized floor is 4,096 m (OCTAVE_WAVELENGTHS_M[3]), not 2×DISTRICT_M — the 8,192/4,096 m coast octaves are legitimately District-admitted enrichment; only the 2,048/1,024 m coast octaves and the voxel band are Quarter-exclusive. Tests, docs, and golden cutoffs corrected to match.
New golden: tests/window_derivation_golden.rs + fixture (derivation_harness pattern, UPDATE_GOLDEN=1 regen) — the window-derivation path was previously unpinned by any golden. Companion structural tests guard that a future regen can't silently make the extension inert. The believability golden regen is a separate deliberate commit with rationale (ticket part d discipline).
Bench (T-1149 harness, release, before/after) — no regression, all rungs at or below baseline:
Araminta's binding ruling: filter keyed on rung identity via the window's own echoed granularity_v2 — Region (incl. the orbital tile mosaic) samples NEAREST (GPU bilinear at 204.8 km/cell reads as smoothing-over-absence), District/Quarter keep LINEAR (density earns the blend). One shared helper at both draw call sites; unknown wire tags fall back to LINEAR, never NEAREST. COMPOSITE_SMOOTH survives as the independent compile-time pipeline axis (texture vs flat rects) — the two-axes split is documented in the file header. Washes/border fades untouched per the ruling.
A-region-8x.png — the exact soft-gradient failure framing from PR #193's captures, now hard-edged NEAREST cells (runtime-verified texture_filter=1).
C-district-coast.png vs D-quarter-coast.png — same coast, same world footprint (district center 3877,-3574 on Lendel, Dudley's probe-confirmed divergence coords): District's smooth shapes resolve at Quarter into crinkled stepped coastline, patchy dry-ground boundaries, and islet/copse-scale isolated cells. The Quarter-vs-District structural differentiation Araminta flagged as never yet demonstrated — demonstrated.
Test discipline
Server: lib 1840 passed; new module 11 tests; district_profile 84 (+6; one pre-existing noise-fragile test properly fixed via 8-district latitude-band averaging, not skipped); all named test binaries green; revert-verified the voxel-relief cutoff exclusion. Client: focused suite 44/44; revert-verified (helper hardcoded LINEAR → exactly the three Region-NEAREST tests fail). Zero new lint warnings (gdlint diff vs main identical — the 27 pre-existing repo-wide problems are now ticketed as T-1167; clippy -D warnings clean).
Tickets: T-1162, T-1161
## Summary
The nature-first batch: the Atlas ladder's rungs now *differ structurally*, not just in cell count. Together these answer both of Jeroen's hands-on complaints ("zero detail on lower levels, just a green field" / "the green-blue transition is a fade — it should be a more detailed coastline").
### T-1162 — invention octaves into the Atlas window path (server)
The ladder's transport reached 512 m but its content floor was 4 km (terrain) / 16 km (coast). Now:
- **Coast crinkle**: `WARP_OCTAVE_WAVELENGTHS_M` extended 5→9 entries (262,144 m down to 1,024 m — Quarter's Nyquist floor), with new `min_wavelength_m` cutoff plumbing in `coast_warp_px`/`warp_fbm` (the warp previously had no cutoff at all). Bays, headlands and islets now appear as you zoom.
- **Sub-district relief**: `invent_primitives` feeds the VOXEL band (1,024–128 m, salted) into `elev_q`/`slope_q` under the same envelope/cutoff discipline.
- **Vegetation patchiness (net-new module `vegetation_invention.rs`)**: the nature layer's wild growth. Two-tier model mirroring `coast_invention` — a BodyParams+latitude envelope ceiling ("where forests are possible"; a hyper-arid world stays desert) over a single blended fBm field (never-gated 100–400 km massif tier at 70% weight + cutoff-gated district/voxel texture at 30%). It perturbs `moisture_q`'s *output*, so precipitation, glaciation and vegetation shift as one coherent world-fact — and the single-field construction guarantees cross-rung coherence: a Region-scale forest resolves into distinct woods (District) and copses/clearings (Quarter), never contradicted wholesale. Wire format unchanged.
- **`MIN_WL_BANDS_M`** 5→6 entries (adds the 1,024 m band).
- **Mid-implementation correction caught by tests**: District's quantized floor is 4,096 m (`OCTAVE_WAVELENGTHS_M[3]`), not 2×`DISTRICT_M` — the 8,192/4,096 m coast octaves are legitimately District-admitted enrichment; only the 2,048/1,024 m coast octaves and the voxel band are Quarter-exclusive. Tests, docs, and golden cutoffs corrected to match.
**New golden**: `tests/window_derivation_golden.rs` + fixture (derivation_harness pattern, `UPDATE_GOLDEN=1` regen) — the window-derivation path was previously unpinned by any golden. Companion structural tests guard that a future regen can't silently make the extension inert. The believability golden regen is a separate deliberate commit with rationale (ticket part d discipline).
**Bench (T-1149 harness, release, before/after)** — no regression, all rungs at or below baseline:
| Metric | Baseline | After |
|---|---|---|
| District, cutoff=0 | 3.54 µs/cell | ~3.0 µs/cell |
| Quarter, cutoff=512 m | 2.10 µs/cell | ~1.77 µs/cell |
| Orbital, region spacing | 1.48 µs/cell | ~1.42 µs/cell |
| n=6400 window/call | 0.86 ms | ~0.59 ms |
### T-1161 — per-rung composite filter policy (client)
Araminta's binding ruling: filter keyed on **rung identity** via the window's own echoed `granularity_v2` — Region (incl. the orbital tile mosaic) samples NEAREST (GPU bilinear at 204.8 km/cell reads as smoothing-over-absence), District/Quarter keep LINEAR (density earns the blend). One shared helper at both draw call sites; unknown wire tags fall back to LINEAR, never NEAREST. `COMPOSITE_SMOOTH` survives as the independent compile-time pipeline axis (texture vs flat rects) — the two-axes split is documented in the file header. Washes/border fades untouched per the ruling.
### Eyeball acceptance (live, branch, fresh release server)
`.cache/screenshots/nature-octaves-eyeball/`:
- **A-region-8x.png** — the exact soft-gradient failure framing from PR #193's captures, now hard-edged NEAREST cells (runtime-verified `texture_filter=1`).
- **C-district-coast.png vs D-quarter-coast.png** — same coast, same world footprint (district center 3877,-3574 on Lendel, Dudley's probe-confirmed divergence coords): District's smooth shapes resolve at Quarter into crinkled stepped coastline, patchy dry-ground boundaries, and islet/copse-scale isolated cells. The Quarter-vs-District structural differentiation Araminta flagged as never yet demonstrated — demonstrated.
### Test discipline
Server: lib 1840 passed; new module 11 tests; district_profile 84 (+6; one pre-existing noise-fragile test properly fixed via 8-district latitude-band averaging, not skipped); all named test binaries green; revert-verified the voxel-relief cutoff exclusion. Client: focused suite 44/44; revert-verified (helper hardcoded LINEAR → exactly the three Region-NEAREST tests fail). Zero new lint warnings (gdlint diff vs main identical — the 27 pre-existing repo-wide problems are now ticketed as T-1167; clippy `-D warnings` clean).
Tickets: T-1162, T-1161
Araminta's ruling (PR #192 follow-up): filter keyed on rung IDENTITY via
the window's own echoed granularity_v2 — Region (incl. the orbital tile
mosaic, whose tiles are all Region-rung requests) samples NEAREST because
GPU bilinear at 204.8 km/cell reads as smoothing-over-absence; District/
Quarter keep LINEAR where cell density earns the blend. One shared helper
(_filter_for_granularity_v2) at both draw call sites; unknown/missing
wire tags fall back to LINEAR (never trusted into NEAREST). COMPOSITE_
SMOOTH survives as the independent compile-time pipeline axis — the
two-axes split is documented in the file header. Washes/border fades
untouched per the ruling. Focused suite 44/44; revert-verified (helper
hardcoded LINEAR -> exactly the three Region-NEAREST tests fail).
Tickets: T-1161
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Coast: WARP_OCTAVE_WAVELENGTHS_M 5->9 entries (262144m down to 1024m,
Quarter's Nyquist floor) with new min_wavelength_m cutoff plumbing in
coast_warp_px/warp_fbm (the warp previously had no cutoff at all).
Relief: invent_primitives feeds the VOXEL band (1024-128m, salted) into
elev_q/slope_q under the same envelope/cutoff discipline. Vegetation:
new vegetation_invention module — two-tier (BodyParams+latitude envelope
ceiling; single blended fBm field, never-gated 100-400km massif tier at
70% + cutoff-gated district/voxel texture at 30%) perturbing moisture_q
OUTPUT so precipitation/glaciation/vegetation shift as one world-fact;
wire format unchanged. MIN_WL_BANDS_M 5->6 (adds 1024m band).
Mid-implementation correction caught by tests: District's quantized
floor is 4096m (OCTAVE_WAVELENGTHS_M[3]), not 2x DISTRICT_M — the 8192m
and 4096m coast octaves are legitimately District-admitted enrichment;
only 2048/1024m coast + the voxel band are Quarter-exclusive. Docs and
golden cutoffs corrected to match.
New golden: tests/window_derivation_golden.rs + fixture (derivation_
harness pattern, UPDATE_GOLDEN=1 regen) with structural guards pinning
Quarter/District divergence. Bench (zoom_ladder_bench, release): no
regression — all rungs at or below baseline (District c0 3.54->~3.0
us/cell, Quarter 2.10->1.77, orbital 1.48->1.42, n=6400 window
0.86->0.59 ms). Revert-verified voxel_relief cutoff exclusion. Server
lib 1840 passed; new module 11 tests; district_profile 84 (+6, 1
noise-fragile pre-existing test properly fixed via 8-district
latitude-band averaging).
Tickets: T-1162
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The octave extension changes derived window output by design (coast
crinkle below 16384m, voxel relief at Quarter, vegetation moisture
perturbation) — this regen records the sanctioned new baseline per the
ticket's part (d) discipline. The pre-existing BELIEVABILITY_STRICT=1
'vegetation present' advisory failure predates this change (Q-123-
tracked debt) and is unaffected.
Tickets: T-1162
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Verdict: REQUEST_CHANGES — the code is architecturally sound and I'd merge it after two small, cheap hardening items on the server side (one drift-guard, one comment reconciliation) plus two governance captures. Nothing here is a redesign; the design is elegant and the invention composition is genuinely clean. cracks knuckles — let me be honest about what's load-bearing and what's polish.
The scope is exactly right: geo + wild growth (nature layer), one shared cutoff mechanism, no voxel-path changes, no whole-body chunk/tile leak. The vegetation module mirrors coast_invention faithfully and the moisture-input composition point is the correct one. My concerns are about drift resistance and doc truthfulness, not correctness of the shipped behavior.
Issues
I1 — [server, layer_proxy.rs:410-411 + 445] District's cutoff band is coupled to the terrain-detail octave array (OCTAVE_WAVELENGTHS_M[3]), and the PR deliberately frames 2×DISTRICT_M as the wrong model — I think the dependency direction is backwards, and either way the coincidence is undefended by a test.MIN_WL_BANDS_M[4] is OCTAVE_WAVELENGTHS_M[3] (= 4096). The PR body states this explicitly: "District's quantized floor is 4,096 m (OCTAVE_WAVELENGTHS_M[3]), not 2×DISTRICT_M." I want to push back on that framing (see Q1 for the full argument): the cutoff's semantic job is Nyquist — "the finest wavelength this rung's sample spacing can resolve" — which is a property of the rung (2×DISTRICT_M), not of one invention field's octave choices. Coupling it to OCTAVE_WAVELENGTHS_M[3] inverts the dependency: a detail_scatter.rs-local terrain-octave retune (a change nobody would expect to touch the Atlas rung ladder) would silently redefine District's Atlas cutoff. The coast warp already extends belowOCTAVE_WAVELENGTHS_M[3] (to 1024), proving the invention fields don't and shouldn't dictate the rung floor. This is a judgment call, not a correctness bug — the shipped value (4096) is right today either way. But the coincidence is currently defended by nothing: golden_cutoffs_match_the_scale_ladder pins 2×QUARTER_M == 1024 and never touches the District coupling. Minimum ask (cheap, direction-agnostic): add const _: () = assert!(MIN_WL_BANDS_M[4] as i32 == 2 * scale::DISTRICT_M); so if the two ever diverge, the build breaks and a human decides on purpose. Stronger ask (my recommendation): derive MIN_WL_BANDS_M[4] from 2 * scale::DISTRICT_M as f64 and drop the OCTAVE_WAVELENGTHS_M[3] reference, so the rung floor is authored by the ladder and the terrain array just happens to reach it.
I2 — [server, district_profile.rs:1159-1183 doc comment; also coast_invention.rs:64-72] The D-226(d) doc-comment claim is correct but leans on a phrasing that overstates what D-226 literally says. The comment states "a contributing wavelength is never capped BY the request-granularity floor ruling itself." That is a true and sanctioned reading (see Q3), but the actual D-226(d) amendment text (architecture.md, T-1143 landing 2026-07-21) never uses the words "request granularity" for the ceiling — it says the below-quarter rungs are implementation-gated on their own measurement pass and (T-1150 wire-contract note) that window_granularity expresses finer-than-district multiples only. The comment is defensible but paraphrases a ruling that isn't verbatim in the record. Fix: either cite the specific note it's leaning on ("per D-226 T-1150 wire-contract note / T-1162 refinement resolution (2)") or soften "the request-granularity floor ruling" to "the rung's sample-density floor" so a future reader doesn't go hunting for a "request-granularity floor ruling" phrase that isn't in D-226. Comment-only; no behavior change.
I3 — [governance capture, not code] atlas-zoom-ladder-t1143.md §8 step 6 now actively misdescribes what shipped. §8 step 6 reads: "Retire COMPOSITE_SMOOTH … delete the const and the smoothing branch, leaving the crisp draw_rect path as the only path." T-1161 supersedes that: COMPOSITE_SMOOTH survives as the compile-time pipeline axis (texture-vs-rects), and the crisp draw_rect path is now the debug/compare path, not the primary one; the filter (NEAREST/LINEAR) is a separate per-rung runtime axis. A future reader following §8 step 6 literally would delete the wrong thing. This needs an erratum (see Q4 for exact text). No code change — the code is right; the doc is stale.
I4 — [server, window_derivation_golden.rs coverage; recommendation] The golden pins one body only (temperate/ocean/breathable), so two whole behavioral branches are unexercised by the pinned golden: the ceiling_q == 0 vegetation short-circuit (airless/dry body → moisture_perturb == 0) and a high-tectonic/volcanic coast (ridged warp, wide scatter_floor). The structural guards catch an inert extension; they don't catch a body-envelope regression (e.g. someone breaks vegetation_envelope's wetness product so a dry body starts inventing forest). This is a coverage recommendation, not a blocker — see Q5. A second body row in golden_samples() (one airless, one volcanic) would close it cheaply and is worth doing while the file is new.
I5 — [merge mechanics, informational] The branch's .pql/changelog/* diff shows 6 ticket-INSERT "deletions" relative to main. These are branch-behind-main divergence (main advanced with T-1167 etc. after the branch was cut), not intentional planning-data loss — main's rows win on merge. Flagging per the pql write-through discipline so the lead reconciles via pql plan import/rebuild after merge rather than letting the merge drop main's newer rows. Not a code issue.
Answers to the six architecture questions
Q1 — Wavelength discipline / the District-floor coupling. Yes, the per-rung min_wl cutoff (quantized to MIN_WL_BANDS_M, now 6 bands) remains coherent as THE single mechanism gating content-per-rung — it is orthogonal to window_granularity (which gates spacing/extent/cell-count) and is the only axis touching octave content. That separation is clean and I like it: one knob for "how dense do I sample," one for "how fine may the content be," and they compose without interaction. On the coincidence: the code couples District's band to OCTAVE_WAVELENGTHS_M[3]; the proposed alternative is 2×DISTRICT_M. They're equal today (4096) and drift differently. My ruling: the cutoff should be coupled to 2×spacing (the scale ladder), not to the terrain-detail array. Rationale — the cutoff's job is "the finest wavelength this rung's sample spacing can resolve" (Nyquist), which is a property of the rung (2×DISTRICT_M), not of one particular invention field's octave choices. The terrain-detail array happening to bottom out at exactly the District Nyquist floor is convenient but incidental; the coast warp already extends below it (down to 1024), proving the invention fields don't dictate the rung floor. Coupling to the terrain array means a detail_scatter.rs retune silently redefines the Atlas rung ladder — wrong direction of dependency. Concretely: keep the value 4096, but derive/assert it from scale::DISTRICT_M, and add I1's const _: () = assert! so the coincidence is enforced, not assumed. (The Quarter band at 1024 is already correctly documented as 2×QUARTER_M — so this is just making District consistent with how Quarter was already reasoned about.)
Q2 — Vegetation invention placement. Right composition point, and it's the elegant choice. Perturbing moisture_qoutput (bounded by the BodyParams+latitude envelope) before classification means precipitation/glaciation/vegetation all read the same shifted world-fact — one coherent state, not a vegetation-only illusion sitting on an unperturbed climate. Perturbing derive_vegetation's thresholds instead (the rejected option (a)) would let a cell "look wetter" in its tree cover while its precipitation class disagreed — an internally inconsistent derived state, exactly what D-227/D-010 determinism discipline exists to prevent. This is a single design decision solving three classifiers at once; that's the kind of thing I get excited about. D-227/D-240 conformance: clean. vegetation_envelope derives from BodyParams only (hydrosphere/atmosphere buckets + the multiplicative water×atmosphere posture, mirroring body_coast_envelope's erosion chain) — no orbital/tilt inputs, D-240 holds. The massif/texture fields are pure (seed, body, position) with distinct salts, uncorrelated with coast/scatter/climate streams — D-010/D-227 hold. 70/30 massif/texture split with never-gated massif tier: correct coherence mechanism, and it's the right precedent to imitate — it's structurally identical to coast_invention::character_field (never cutoff-gated, sets the DC bias) vs the cutoff-gated warp. 0.30 < 0.70 guarantees the texture term alone can't flip the massif's sign at typical amplitudes, so a Region-scale forest verdict survives refinement to Quarter (clearings/copses punched, majority preserved) — which is the ticket's hard cross-rung requirement, and the vegetation_majority_class_preserved_under_quarter_refinement test validates it. One nit worth stating (not a blocker): the "0.3 < 0.7 so texture can never outweigh massif" guarantee holds for the sign of the blend, but both are then scaled by ceiling_q and added to base_moisture_q before a hard threshold in derive_vegetation — so near a class boundary the texture term can still flip the final class even though it can't flip the massif's sign. That's fine and intended (that's what punches clearings), but the module doc slightly overstates it as "can never flip the coarse bias" — the coarse bias survives; the coarse class verdict at a boundary cell can legitimately change. The majority-preservation test is the honest guarantee, not per-cell class stability.
Q3 — D-226(d) conformance.Confirmed. The ticket's resolution ("contributing WAVELENGTHS aren't capped by the request-granularity floor ruling") is consistent with the actual D-226 text. D-226(d) and its T-1112 §2 anti-erosion clause govern what a layer may request/serve (request granularity, wire-visible detail level) — the T-1143 landing amendment explicitly opened that ceiling "for the Atlas ladder" and gates below-quarter rungs on a measurement pass. Nothing in D-226 caps the wavelengths of the continuous fields that compose a cell's classification — indeed the coast warp has crossed scales the other way (262km octaves, coarser than region) since T-1125 with D-227/D-243 blessing. Feeding the VOXEL band into Quarter classification is a contributing-wavelength question, not a request-granularity question, so it's in-bounds. The only refinement I'd make is I2 — the phrasing "request-granularity floor ruling" isn't a verbatim D-226 term; cite the note it rests on.
Q4 — T-1161 two-axes decision + doc erratum. The two-axes reframe (COMPOSITE_SMOOTH = compile-time pipeline axis; filter = per-rung runtime axis) is the correct call and better than §8 step 6's "retire it entirely" — it keeps the crisp path alive for comparison while making the filter honest per rung, and the fail-safe (unknown rung → LINEAR, never NEAREST) is the right default. Yes, it needs a capture so §8 step 6 doesn't mislead. Recommended exact capture — a one-line erratum under §8 step 6 in atlas-zoom-ladder-t1143.md, plus a sentence in the D-226 T-1143 amendment:
Erratum (T-1161, 2026-07-22): step 6's "retire COMPOSITE_SMOOTH entirely / crisp draw_rect as the only path" is superseded. COMPOSITE_SMOOTH survives as a compile-time pipeline axis (texture vs. per-cell rects); the crisp draw_rect path is retained as the debug/compare path. What T-1155 framed as "retire the smoothing" is delivered instead as a per-rung sampling-filter axis (_filter_for_granularity_v2): Region/orbital-mosaic → NEAREST (bilinear stretch at 204.8 km/cell reads as smoothing-over-absence), District/Quarter → LINEAR (cell density earns the blend), unknown → LINEAR. T-1155's COMPOSITE_SMOOTH-retirement framing is cancelled; T-1161 supersedes it.
And a D-226 note (one clause on the existing T-1143 amendment line): "COMPOSITE_SMOOTH is retained as the pipeline axis; the ladder's crispness-at-sparse-rungs requirement is met by the per-rung filter policy (T-1161), not by deleting the const."
Q5 — Golden strategy. Real, not theater — but thinner than it should be. What it does well: it pins the production cutoffs (District 4096, Quarter 1024, Region via derive_orbital_at_metres), double-derives for determinism, compares JSON values (no format flake), and carries two structural guards — quarter_and_district_rungs_diverge_at_the_same_position (catches an inert extension) and golden_cutoffs_match_the_scale_ladder (catches ladder drift on the Quarter side). Those are the right invariants and they'd catch the most likely regression (someone accidentally making the cutoffs identical, or the extension going inert). Where it's thin (I4): single body means the ceiling_q == 0 short-circuit and the volcanic/high-tectonic coast branch are never pinned — a body-envelope regression (dry world starts growing forest, or the erosion chain inverts) would sail through this golden. Cross-rung coherence itself is covered by the unit test in district_profile, not the golden — acceptable, but a second body row (airless + volcanic) in golden_samples() would make the golden a real body-envelope regression net for ~10 lines. Recommend, don't block. Also note golden_cutoffs_match_the_scale_ladder should be extended to pin the District coupling too (ties into I1).
Q6 — Cost. The PR body carries the required before/after numbers (T-1149 discipline satisfied), and they don't just avoid a regression — they improve: District 3.54→~3.0 µs/cell, Quarter (cutoff 512) 2.10→~1.77, orbital 1.48→~1.42, n=6400 window 0.86→~0.59 ms. That looked counterintuitive at first (more octaves, less time), so I sanity-checked the mechanism and it holds: the pre-T-1162 window path summed the full terrain-detail octave array with no cutoff at all (the cutoff plumbing is new to coast_warp_px/warp_fbm/the window relief call this PR). Adding the quantized per-rung cutoff means that at the District/Quarter quantized bands, fewer octaves actually run than before — the truncation (wl < min_wl → early continue, no value_noise call) removes real work. So the elegant outcome is: the same change that adds more available content at finer rungs makes the default path cheaper, because content is now Nyquist-gated instead of always-summed. The added always-on cost (vegetation massif_field, 3 octaves) is small and is more than paid for by the octaves the cutoff now skips. The numbers are internally consistent with the truncate discipline and with §7's ~1.2–1.4 µs/cell envelope — no smell. The claim is sound. (One caveat I'd verify at merge: the bench should be run COLD-spawn / warm-TerrainAnalysis per the memory note on running the full harness, and on the same body/seed baseline the resolution mandated — the table looks like it is, but confirm the "baseline" column is the pre-branch main measurement, not a mid-branch snapshot.)
Scope / seam scan (clean)
No Phase-5 voxel-path change.detail_scatter.rs diff is a visibility bump only (VOXEL_OCTAVE_WAVELENGTHS_M → pub(crate)); voxel_relief's signature already carried min_wavelength_m on main; mod.rs only registers the new module. The window path reusesvoxel_relief — sanctioned per the ticket. No voxel::/derive_voxel_column/chunk-fill logic touched. No whole-body chunk/tile Atlas leak — the vegetation output is still one vegetation_class discriminant per cell on the wire, no sub-cell data.
Elastic seam (D-243). No new cross-seam content this PR. The coast warp's coarsest octave (262 km, coarser than region) and CHARACTER_OCTAVE_WAVELENGTHS_M (409/204/102 km) are pre-existing (T-1125), not introduced here. The new MASSIF_OCTAVE_WAVELENGTHS_M (409/204/102 km, coarsest coarser than region, never gated) reuses that exact sanctioned scale-family for the same "planet-personality drift" role — a continuous field keyed to absolute coordinates, not a container. Consistent with D-243 §2 / D-227's precedent, not a violation.
Temperature stepping (design-doc R2). Note for the record, not a defect: the new relief band adds to elev_q, and elevation feeds the temperature lapse — so at Quarter cutoff, temperature now carries sub-district variance where before it stepped at the district. The latitude-climate unit test was correctly amended to average over 8 districts because of exactly this. That's an intended consequence (elevation genuinely varies within a district), and it's mild, but it means R2's "temperature is a hard district step at every rung forever" is now slightly softened by relief-driven elevation at Quarter. Worth a one-liner in the eventual record so nobody's surprised later.
What bites T-1156 (rivers) next
Two forward-contracts this PR sets that rivers will inherit — both good, flag them so T-1156 doesn't fight them:
The moisture-perturb happens before derive_moisture_q's consumers, in build_district_profile. Rivers keying off moisture/precipitation will see the perturbed value — correct (a river should be likelier in a patchy-wet massif), but T-1156 must sample the perturbed moisture_q, not re-derive the base. The composition order is already right for this.
The salt-stream convention is now three-wide (VEGETATION_MASSIF_SALT, VEGETATION_TEXTURE_SALT, 0x5EED_C0DE for window relief). Rivers must add their own distinct salt(s) and not reuse any of these — the isolation discipline is established; T-1156 just follows it. The 0x5EED_C0DE inline literal for the window-relief stream is slightly out of step with the named-const salts elsewhere — minor, but promoting it to a named const in district_profile.rs would keep the "every salt is named and greppable" invariant intact before rivers add a fourth. (Recommendation, not a blocker.)
Net: elegant, in-scope, well-tested work. Merge after I1 (drift-guard) and I2 (comment), with I3/I4 as governance/coverage follow-ups and I5 handled at merge.
## PR #194 — Architecture review (Tyre)
**Verdict: REQUEST_CHANGES** — the code is architecturally sound and I'd merge it after two small, cheap hardening items on the server side (one drift-guard, one comment reconciliation) plus two governance captures. Nothing here is a redesign; the design is elegant and the invention composition is genuinely clean. cracks knuckles — let me be honest about what's load-bearing and what's polish.
The scope is exactly right: geo + wild growth (nature layer), one shared cutoff mechanism, no voxel-path changes, no whole-body chunk/tile leak. The vegetation module mirrors coast_invention faithfully and the moisture-input composition point is the correct one. My concerns are about *drift resistance* and *doc truthfulness*, not correctness of the shipped behavior.
---
### Issues
**I1 — [server, `layer_proxy.rs:410-411` + `445`] District's cutoff band is coupled to the terrain-detail octave array (`OCTAVE_WAVELENGTHS_M[3]`), and the PR *deliberately* frames `2×DISTRICT_M` as the wrong model — I think the dependency direction is backwards, and either way the coincidence is undefended by a test.** `MIN_WL_BANDS_M[4]` is `OCTAVE_WAVELENGTHS_M[3]` (= 4096). The PR body states this explicitly: "District's quantized floor is 4,096 m (OCTAVE_WAVELENGTHS_M[3]), **not** 2×DISTRICT_M." I want to push back on that framing (see Q1 for the full argument): the cutoff's *semantic* job is Nyquist — "the finest wavelength this rung's sample spacing can resolve" — which is a property of the *rung* (`2×DISTRICT_M`), not of one invention field's octave choices. Coupling it to `OCTAVE_WAVELENGTHS_M[3]` inverts the dependency: a `detail_scatter.rs`-local terrain-octave retune (a change nobody would expect to touch the Atlas rung ladder) would silently redefine District's Atlas cutoff. The coast warp already extends *below* `OCTAVE_WAVELENGTHS_M[3]` (to 1024), proving the invention fields don't and shouldn't dictate the rung floor. **This is a judgment call, not a correctness bug** — the shipped *value* (4096) is right today either way. But the coincidence is currently defended by nothing: `golden_cutoffs_match_the_scale_ladder` pins `2×QUARTER_M == 1024` and never touches the District coupling. **Minimum ask (cheap, direction-agnostic):** add `const _: () = assert!(MIN_WL_BANDS_M[4] as i32 == 2 * scale::DISTRICT_M);` so if the two ever diverge, the build breaks and a human decides on purpose. **Stronger ask (my recommendation):** derive `MIN_WL_BANDS_M[4]` from `2 * scale::DISTRICT_M as f64` and drop the `OCTAVE_WAVELENGTHS_M[3]` reference, so the rung floor is authored by the ladder and the terrain array just *happens* to reach it.
**I2 — [server, `district_profile.rs:1159-1183` doc comment; also `coast_invention.rs:64-72`] The D-226(d) doc-comment claim is correct but leans on a phrasing that overstates what D-226 literally says.** The comment states "a contributing wavelength is never capped BY the request-granularity floor ruling itself." That is a *true and sanctioned* reading (see Q3), but the actual D-226(d) amendment text (architecture.md, T-1143 landing 2026-07-21) never uses the words "request granularity" for the ceiling — it says the *below-quarter rungs are implementation-gated on their own measurement pass* and (T-1150 wire-contract note) that `window_granularity` expresses finer-than-district multiples only. The comment is defensible but paraphrases a ruling that isn't verbatim in the record. **Fix:** either cite the specific note it's leaning on ("per D-226 T-1150 wire-contract note / T-1162 refinement resolution (2)") or soften "the request-granularity floor ruling" to "the rung's sample-density floor" so a future reader doesn't go hunting for a "request-granularity floor ruling" phrase that isn't in D-226. Comment-only; no behavior change.
**I3 — [governance capture, not code] `atlas-zoom-ladder-t1143.md §8 step 6` now actively misdescribes what shipped.** §8 step 6 reads: "Retire `COMPOSITE_SMOOTH` … delete the const and the smoothing branch, leaving the crisp `draw_rect` path as the only path." T-1161 supersedes that: COMPOSITE_SMOOTH survives as the compile-time *pipeline* axis (texture-vs-rects), and the crisp `draw_rect` path is now the *debug/compare* path, not the primary one; the filter (NEAREST/LINEAR) is a separate per-rung runtime axis. A future reader following §8 step 6 literally would delete the wrong thing. This needs an erratum (see Q4 for exact text). **No code change** — the code is right; the doc is stale.
**I4 — [server, `window_derivation_golden.rs` coverage; recommendation] The golden pins one body only (`temperate/ocean/breathable`), so two whole behavioral branches are unexercised by the pinned golden:** the `ceiling_q == 0` vegetation short-circuit (airless/dry body → `moisture_perturb == 0`) and a high-tectonic/volcanic coast (ridged warp, wide `scatter_floor`). The structural guards catch an *inert* extension; they don't catch a *body-envelope regression* (e.g. someone breaks `vegetation_envelope`'s wetness product so a dry body starts inventing forest). This is a coverage recommendation, not a blocker — see Q5. A second body row in `golden_samples()` (one airless, one volcanic) would close it cheaply and is worth doing while the file is new.
**I5 — [merge mechanics, informational] The branch's `.pql/changelog/*` diff shows 6 ticket-INSERT "deletions" relative to main.** These are branch-behind-main divergence (main advanced with T-1167 etc. after the branch was cut), not intentional planning-data loss — main's rows win on merge. Flagging per the pql write-through discipline so the lead reconciles via `pql plan import`/rebuild after merge rather than letting the merge drop main's newer rows. Not a code issue.
---
### Answers to the six architecture questions
**Q1 — Wavelength discipline / the District-floor coupling.** Yes, the per-rung `min_wl` cutoff (quantized to `MIN_WL_BANDS_M`, now 6 bands) remains coherent as THE single mechanism gating content-per-rung — it is orthogonal to `window_granularity` (which gates spacing/extent/cell-count) and is the only axis touching octave content. That separation is clean and I like it: one knob for "how dense do I sample," one for "how fine may the content be," and they compose without interaction. **On the coincidence:** the code couples District's band to `OCTAVE_WAVELENGTHS_M[3]`; the proposed alternative is `2×DISTRICT_M`. They're equal today (4096) and drift differently. My ruling: **the cutoff should be coupled to `2×spacing` (the scale ladder), not to the terrain-detail array.** Rationale — the cutoff's *job* is "the finest wavelength this rung's sample spacing can resolve" (Nyquist), which is a property of the rung (`2×DISTRICT_M`), not of one particular invention field's octave choices. The terrain-detail array happening to bottom out at exactly the District Nyquist floor is convenient but incidental; the coast warp already extends *below* it (down to 1024), proving the invention fields don't dictate the rung floor. Coupling to the terrain array means a `detail_scatter.rs` retune silently redefines the Atlas rung ladder — wrong direction of dependency. Concretely: keep the value 4096, but derive/assert it from `scale::DISTRICT_M`, and add I1's `const _: () = assert!` so the coincidence is enforced, not assumed. (The Quarter band at 1024 is *already* correctly documented as `2×QUARTER_M` — so this is just making District consistent with how Quarter was already reasoned about.)
**Q2 — Vegetation invention placement.** Right composition point, and it's the elegant choice. Perturbing `moisture_q` *output* (bounded by the BodyParams+latitude envelope) before classification means precipitation/glaciation/vegetation all read the same shifted world-fact — one coherent state, not a vegetation-only illusion sitting on an unperturbed climate. Perturbing `derive_vegetation`'s thresholds instead (the rejected option (a)) would let a cell "look wetter" in its tree cover while its precipitation class disagreed — an internally inconsistent derived state, exactly what D-227/D-010 determinism discipline exists to prevent. This is a single design decision solving three classifiers at once; that's the kind of thing I get excited about. **D-227/D-240 conformance:** clean. `vegetation_envelope` derives from `BodyParams` only (hydrosphere/atmosphere buckets + the multiplicative water×atmosphere posture, mirroring `body_coast_envelope`'s erosion chain) — no orbital/tilt inputs, D-240 holds. The massif/texture fields are pure `(seed, body, position)` with distinct salts, uncorrelated with coast/scatter/climate streams — D-010/D-227 hold. **70/30 massif/texture split with never-gated massif tier:** correct coherence mechanism, and it's the *right* precedent to imitate — it's structurally identical to `coast_invention::character_field` (never cutoff-gated, sets the DC bias) vs the cutoff-gated warp. 0.30 < 0.70 guarantees the texture term alone can't flip the massif's sign at typical amplitudes, so a Region-scale forest verdict survives refinement to Quarter (clearings/copses punched, majority preserved) — which is the ticket's hard cross-rung requirement, and the `vegetation_majority_class_preserved_under_quarter_refinement` test validates it. One nit worth stating (not a blocker): the "0.3 < 0.7 so texture can never outweigh massif" guarantee holds for the *sign of the blend*, but both are then scaled by `ceiling_q` and *added to base_moisture_q* before a hard threshold in `derive_vegetation` — so near a class boundary the texture term *can* still flip the final class even though it can't flip the massif's sign. That's fine and intended (that's what punches clearings), but the module doc slightly overstates it as "can never flip the coarse bias" — the coarse *bias* survives; the coarse *class verdict at a boundary cell* can legitimately change. The majority-preservation test is the honest guarantee, not per-cell class stability.
**Q3 — D-226(d) conformance.** **Confirmed.** The ticket's resolution ("contributing WAVELENGTHS aren't capped by the request-granularity floor ruling") is consistent with the actual D-226 text. D-226(d) and its T-1112 §2 anti-erosion clause govern *what a layer may request/serve* (request granularity, wire-visible detail level) — the T-1143 landing amendment explicitly opened that ceiling "for the Atlas ladder" and gates below-quarter rungs on a measurement pass. Nothing in D-226 caps the *wavelengths of the continuous fields that compose a cell's classification* — indeed the coast warp has crossed scales the *other* way (262km octaves, coarser than region) since T-1125 with D-227/D-243 blessing. Feeding the VOXEL band into Quarter classification is a contributing-wavelength question, not a request-granularity question, so it's in-bounds. The only refinement I'd make is I2 — the *phrasing* "request-granularity floor ruling" isn't a verbatim D-226 term; cite the note it rests on.
**Q4 — T-1161 two-axes decision + doc erratum.** The two-axes reframe (COMPOSITE_SMOOTH = compile-time pipeline axis; filter = per-rung runtime axis) is the correct call and better than §8 step 6's "retire it entirely" — it keeps the crisp path alive for comparison while making the filter honest per rung, and the fail-safe (unknown rung → LINEAR, never NEAREST) is the right default. **Yes, it needs a capture** so §8 step 6 doesn't mislead. Recommended exact capture — a one-line erratum under §8 step 6 in `atlas-zoom-ladder-t1143.md`, plus a sentence in the D-226 T-1143 amendment:
> **Erratum (T-1161, 2026-07-22):** step 6's "retire COMPOSITE_SMOOTH entirely / crisp draw_rect as the only path" is superseded. COMPOSITE_SMOOTH survives as a compile-time *pipeline* axis (texture vs. per-cell rects); the crisp draw_rect path is retained as the debug/compare path. What T-1155 framed as "retire the smoothing" is delivered instead as a per-rung *sampling-filter* axis (`_filter_for_granularity_v2`): Region/orbital-mosaic → NEAREST (bilinear stretch at 204.8 km/cell reads as smoothing-over-absence), District/Quarter → LINEAR (cell density earns the blend), unknown → LINEAR. T-1155's COMPOSITE_SMOOTH-retirement framing is cancelled; T-1161 supersedes it.
And a D-226 note (one clause on the existing T-1143 amendment line): "COMPOSITE_SMOOTH is retained as the pipeline axis; the ladder's crispness-at-sparse-rungs requirement is met by the per-rung filter policy (T-1161), not by deleting the const."
**Q5 — Golden strategy.** Real, not theater — but thinner than it should be. What it does well: it pins the *production* cutoffs (District 4096, Quarter 1024, Region via `derive_orbital_at_metres`), double-derives for determinism, compares JSON values (no format flake), and carries two structural guards — `quarter_and_district_rungs_diverge_at_the_same_position` (catches an inert extension) and `golden_cutoffs_match_the_scale_ladder` (catches ladder drift on the Quarter side). Those are the right invariants and they'd catch the most likely regression (someone accidentally making the cutoffs identical, or the extension going inert). **Where it's thin (I4):** single body means the `ceiling_q == 0` short-circuit and the volcanic/high-tectonic coast branch are never pinned — a body-envelope regression (dry world starts growing forest, or the erosion chain inverts) would sail through this golden. Cross-rung *coherence* itself is covered by the unit test in district_profile, not the golden — acceptable, but a second body row (airless + volcanic) in `golden_samples()` would make the golden a real body-envelope regression net for ~10 lines. Recommend, don't block. Also note `golden_cutoffs_match_the_scale_ladder` should be extended to pin the District coupling too (ties into I1).
**Q6 — Cost.** The PR body carries the required before/after numbers (T-1149 discipline satisfied), and they don't just avoid a regression — they *improve*: District 3.54→~3.0 µs/cell, Quarter (cutoff 512) 2.10→~1.77, orbital 1.48→~1.42, n=6400 window 0.86→~0.59 ms. That looked counterintuitive at first (more octaves, less time), so I sanity-checked the mechanism and it holds: the pre-T-1162 window path summed the *full* terrain-detail octave array with **no cutoff at all** (the cutoff plumbing is new to `coast_warp_px`/`warp_fbm`/the window relief call this PR). Adding the quantized per-rung cutoff means that at the District/Quarter *quantized* bands, fewer octaves actually run than before — the truncation (`wl < min_wl` → early `continue`, no `value_noise` call) removes real work. So the elegant outcome is: the same change that adds *more available* content at finer rungs makes the *default* path *cheaper*, because content is now Nyquist-gated instead of always-summed. The added always-on cost (vegetation `massif_field`, 3 octaves) is small and is more than paid for by the octaves the cutoff now skips. The numbers are internally consistent with the truncate discipline and with §7's ~1.2–1.4 µs/cell envelope — no smell. The claim is sound. (One caveat I'd verify at merge: the bench should be run COLD-spawn / warm-TerrainAnalysis per the memory note on running the full harness, and on the same body/seed baseline the resolution mandated — the table looks like it is, but confirm the "baseline" column is the pre-branch `main` measurement, not a mid-branch snapshot.)
---
### Scope / seam scan (clean)
- **No Phase-5 voxel-path change.** `detail_scatter.rs` diff is a visibility bump only (`VOXEL_OCTAVE_WAVELENGTHS_M` → `pub(crate)`); `voxel_relief`'s signature already carried `min_wavelength_m` on main; `mod.rs` only registers the new module. The window path *reuses* `voxel_relief` — sanctioned per the ticket. No `voxel::`/`derive_voxel_column`/chunk-fill logic touched. No whole-body chunk/tile Atlas leak — the vegetation output is still one `vegetation_class` discriminant per cell on the wire, no sub-cell data.
- **Elastic seam (D-243).** No new cross-seam content this PR. The coast warp's coarsest octave (262 km, coarser than region) and `CHARACTER_OCTAVE_WAVELENGTHS_M` (409/204/102 km) are pre-existing (T-1125), not introduced here. The new `MASSIF_OCTAVE_WAVELENGTHS_M` (409/204/102 km, coarsest coarser than region, never gated) reuses that exact sanctioned scale-family for the same "planet-personality drift" role — a continuous field keyed to absolute coordinates, not a container. Consistent with D-243 §2 / D-227's precedent, not a violation.
- **Temperature stepping (design-doc R2).** Note for the record, not a defect: the new relief band adds to `elev_q`, and elevation feeds the temperature lapse — so at Quarter cutoff, temperature now carries sub-district variance where before it stepped at the district. The latitude-climate unit test was correctly amended to average over 8 districts because of exactly this. That's an intended consequence (elevation genuinely varies within a district), and it's mild, but it means R2's "temperature is a hard district step at every rung forever" is now *slightly* softened by relief-driven elevation at Quarter. Worth a one-liner in the eventual record so nobody's surprised later.
### What bites T-1156 (rivers) next
Two forward-contracts this PR sets that rivers will inherit — both good, flag them so T-1156 doesn't fight them:
1. **The moisture-perturb happens before `derive_moisture_q`'s consumers, in `build_district_profile`.** Rivers keying off moisture/precipitation will see the *perturbed* value — correct (a river should be likelier in a patchy-wet massif), but T-1156 must sample the perturbed `moisture_q`, not re-derive the base. The composition order is already right for this.
2. **The salt-stream convention is now three-wide** (`VEGETATION_MASSIF_SALT`, `VEGETATION_TEXTURE_SALT`, `0x5EED_C0DE` for window relief). Rivers must add their own distinct salt(s) and not reuse any of these — the isolation discipline is established; T-1156 just follows it. The `0x5EED_C0DE` inline literal for the window-relief stream is slightly out of step with the named-`const` salts elsewhere — minor, but promoting it to a named const in `district_profile.rs` would keep the "every salt is named and greppable" invariant intact before rivers add a fourth. (Recommendation, not a blocker.)
Net: elegant, in-scope, well-tested work. Merge after I1 (drift-guard) and I2 (comment), with I3/I4 as governance/coverage follow-ups and I5 handled at merge.
Re-verified all findings against the worktree at tip f50c93b2c (two commits on 336889197/f50c93b2c over what I reviewed). Every item is addressed, and the fixes are the right fixes — not minimal patches over the letter of each finding.
I1 — resolved, exactly the stronger ask.MIN_WL_BANDS_M[4] now reads 2.0 * DISTRICT_M as f64 and band 5 reads 2.0 * QUARTER_M — the array is uniformly ladder-derived, OCTAVE_WAVELENGTHS_M[3] dropped as the floor's source. The const _: () = assert!(OCTAVE_WAVELENGTHS_M[3] as i64 == 2 * DISTRICT_M as i64) guard is in with an intent comment; golden_cutoffs_match_the_scale_ladder now pins 2*DISTRICT_M == DISTRICT_MIN_WL_M (the coupling that was previously undefended) alongside the Quarter one. Dependency direction now runs one way — the rung authors the floor, the terrain array just happens to reach it. This is the architecturally correct outcome.
I2 — resolved.district_profile.rs:1185-1187 now cites "the D-226 T-1150 wire-contract note and T-1162 refinement resolution (2)" and uses "the rung's sample-density floor"; coast_invention.rs reconciled to "2 × DISTRICT_M = 4,096 m — District's own Nyquist limit, derived independently from the rung's spacing per PR #194 I1, NOT from any invention field's octave array." The residual stale "2,048 m" claims Dudley swept are gone.
I3 — resolved, verbatim. My exact erratum text sits under §8 step 6 in atlas-zoom-ladder-t1143.md, and the D-226 filter-axis note (T-1161) is appended to the T-1143 amendment after the pending-shape note. The R2 temperature-softening one-liner is folded into the erratum. pql decisions validate clean (per your report).
I4 — resolved.body_sweep_samples() helper + two new body rows: airless/dry (exercises the ceiling_q == 0 short-circuit through the full stack) and volcanic/high-tectonic coast (ridged warp, wide scatter_floor). Regen appended 510 rows, zero deletions — existing goldens byte-identical, so the extension can't have silently shifted the original body's pinned output.
Q2 nit — resolved, and well. The vegetation module doc now states it plainly: "a majority-preservation guarantee, not a per-cell class-stability guarantee," and names a boundary-cell flip as "the clearing/copse the ticket asks for." That's the honest framing.
Forward-contract — resolved.0x5EED_C0DE → named const WINDOW_RELIEF_SALT (district_profile.rs:1069). The named-salt invariant holds before T-1156 adds a fourth stream.
I5 / Q6 caveat — acknowledged (changelog reconciled at merge, main's rows win) and confirmed (baseline column is pre-change / main-state code, run as step 0). Good.
One non-blocking sweep (do at your convenience, not a re-bounce)
server/tests/window_derivation_golden.rs:209-217 — the DISTRICT_MIN_WL_M const's doc comment still carries the pre-I1 framing: "matching detail_scatter::OCTAVE_WAVELENGTHS_M's finest octave). NOT 2 * DISTRICT_M by construction coincidence alone — see the T-1162 discovery documented on MIN_WL_BANDS_M." That now contradicts what MIN_WL_BANDS_M's own doc (rewritten this round) and coast_invention.rs both say — 2 × DISTRICT_M is now the authoritative derivation, not "coincidence alone," and the cross-referenced MIN_WL_BANDS_M doc argues the reverse of this comment. The test's value (4096) and its assertion (2*DISTRICT_M == DISTRICT_MIN_WL_M) are both correct — this is purely the one comment that missed the I1 reconciliation sweep the other two files got. It's exactly the doc-honesty class I flagged in I2, so worth a two-line fix (reframe to "Quarter's-sibling: 2 × DISTRICT_M, the rung's Nyquist floor, matching MIN_WL_BANDS_M[4]'s ladder-derivation per PR #194 I1"), but it's cosmetic and blocks nothing.
Verdict
APPROVE. The round did the real fixes, not the cheap ones — I1 in particular took the dependency-direction argument to its correct conclusion rather than just bolting on a guard. Ship it after the push gate re-runs the full suite. The one stale golden-const comment is a follow-up polish, not a gate.
## PR #194 — Tyre re-review verdict: APPROVE
Re-verified all findings against the worktree at tip `f50c93b2c` (two commits on `336889197`/`f50c93b2c` over what I reviewed). Every item is addressed, and the fixes are the *right* fixes — not minimal patches over the letter of each finding.
**I1 — resolved, exactly the stronger ask.** `MIN_WL_BANDS_M[4]` now reads `2.0 * DISTRICT_M as f64` and band 5 reads `2.0 * QUARTER_M` — the array is uniformly ladder-derived, `OCTAVE_WAVELENGTHS_M[3]` dropped as the floor's source. The `const _: () = assert!(OCTAVE_WAVELENGTHS_M[3] as i64 == 2 * DISTRICT_M as i64)` guard is in with an intent comment; `golden_cutoffs_match_the_scale_ladder` now pins `2*DISTRICT_M == DISTRICT_MIN_WL_M` (the coupling that was previously undefended) alongside the Quarter one. Dependency direction now runs one way — the rung authors the floor, the terrain array just happens to reach it. This is the architecturally correct outcome.
**I2 — resolved.** `district_profile.rs:1185-1187` now cites "the D-226 T-1150 wire-contract note and T-1162 refinement resolution (2)" and uses "the rung's sample-density floor"; `coast_invention.rs` reconciled to "`2 × DISTRICT_M = 4,096` m — District's own Nyquist limit, derived independently from the rung's spacing per PR #194 I1, NOT from any invention field's octave array." The residual stale "2,048 m" claims Dudley swept are gone.
**I3 — resolved, verbatim.** My exact erratum text sits under §8 step 6 in `atlas-zoom-ladder-t1143.md`, and the D-226 filter-axis note (T-1161) is appended to the T-1143 amendment after the pending-shape note. The R2 temperature-softening one-liner is folded into the erratum. `pql decisions validate` clean (per your report).
**I4 — resolved.** `body_sweep_samples()` helper + two new body rows: airless/dry (exercises the `ceiling_q == 0` short-circuit through the full stack) and volcanic/high-tectonic coast (ridged warp, wide scatter_floor). Regen appended 510 rows, zero deletions — existing goldens byte-identical, so the extension can't have silently shifted the original body's pinned output.
**Q2 nit — resolved, and well.** The vegetation module doc now states it plainly: "a majority-preservation guarantee, not a per-cell class-stability guarantee," and names a boundary-cell flip as "the clearing/copse the ticket asks for." That's the honest framing.
**Forward-contract — resolved.** `0x5EED_C0DE` → named `const WINDOW_RELIEF_SALT` (`district_profile.rs:1069`). The named-salt invariant holds before T-1156 adds a fourth stream.
**I5 / Q6 caveat** — acknowledged (changelog reconciled at merge, main's rows win) and confirmed (baseline column is pre-change / main-state code, run as step 0). Good.
---
### One non-blocking sweep (do at your convenience, not a re-bounce)
`server/tests/window_derivation_golden.rs:209-217` — the `DISTRICT_MIN_WL_M` const's **doc comment** still carries the pre-I1 framing: *"matching `detail_scatter::OCTAVE_WAVELENGTHS_M`'s finest octave). NOT `2 * DISTRICT_M` by construction coincidence alone — see the T-1162 discovery documented on `MIN_WL_BANDS_M`."* That now contradicts what `MIN_WL_BANDS_M`'s own doc (rewritten this round) and `coast_invention.rs` both say — `2 × DISTRICT_M` is now the *authoritative* derivation, not "coincidence alone," and the cross-referenced `MIN_WL_BANDS_M` doc argues the reverse of this comment. The test's *value* (4096) and its *assertion* (`2*DISTRICT_M == DISTRICT_MIN_WL_M`) are both correct — this is purely the one comment that missed the I1 reconciliation sweep the other two files got. It's exactly the doc-honesty class I flagged in I2, so worth a two-line fix (reframe to "Quarter's-sibling: `2 × DISTRICT_M`, the rung's Nyquist floor, matching `MIN_WL_BANDS_M[4]`'s ladder-derivation per PR #194 I1"), but it's cosmetic and blocks nothing.
### Verdict
**APPROVE.** The round did the real fixes, not the cheap ones — I1 in particular took the dependency-direction argument to its correct conclusion rather than just bolting on a guard. Ship it after the push gate re-runs the full suite. The one stale golden-const comment is a follow-up polish, not a gate.
Tyre's I1 (his ruling: the cutoff's job is Nyquist, a property of the
RUNG): MIN_WL_BANDS_M's District band now derives from 2*DISTRICT_M
directly, decoupled from OCTAVE_WAVELENGTHS_M[3] — a detail_scatter
retune can no longer silently redefine the Atlas rung floor. Direction-
agnostic const assert pins the coincidence so drift on either side
breaks the build for a deliberate human decision; golden_cutoffs_match_
the_scale_ladder now pins the District coupling too. I2: D-226
paraphrase replaced with cites to the T-1150 wire-contract note +
T-1162 refinement resolution (2), plus a self-found stale 2048m claim
fixed in the same comments. I4: golden extended with airless/dry
(ceiling_q==0 short-circuit) and volcanic-coast (ridged warp) body
rows via body_sweep_samples() — fixture regen verified 510 insertions,
0 deletions (existing rows byte-identical, purely appended). Q2 nit:
vegetation_invention module doc now states majority-preservation as
the coherence guarantee, not per-cell class stability (a boundary
cell's flip IS the clearing mechanism). Forward-contract for T-1156:
0x5EED_C0DE promoted to named WINDOW_RELIEF_SALT const. 158 focused
tests green; cargo check --tests clean.
Tickets: T-1162, T-1161
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Tyre's exact capture: the design pass's 'retire COMPOSITE_SMOOTH /
crisp draw_rect as the only path' is superseded — the const survives
as the compile-time pipeline axis, the crisp path stays as debug/
compare, and crispness-at-sparse-rungs is delivered by the per-rung
sampling-filter policy instead. T-1155's retirement framing is
cancelled (ticket closes on merge). Also records the R2 softening:
the T-1162 relief band adds sub-district elevation variance at
Quarter cutoff, so temperature no longer steps strictly at the
district there — intended, noted so nobody is surprised later.
Tickets: T-1161, T-1162
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DISTRICT_MIN_WL_M's doc in window_derivation_golden.rs still carried
the 'NOT 2×DISTRICT_M by coincidence alone' framing the I1 fix
inverted everywhere else — now states the rung authors the floor and
the terrain-octave coincidence is guard-pinned, matching the rewritten
MIN_WL_BANDS_M and coast_invention docs.
Tickets: T-1162
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review: nature-octaves → main (type: code + visual sign-off)
Branch tip reviewed: e5a68f444 (fix round included; final tip 972842c32 adds only a cargo-fmt line wrap). Reviewers: Tyre (architecture), Hoshe (QA), Araminta (T-1161 visual-grammar sign-off).
Tyre (Architecture): APPROVE (after one fix round)
Initial verdict REQUEST_CHANGES — "architecturally sound, elegant, correctly scoped; merge after two cheap hardening items plus governance captures." All items resolved and re-verified at tip:
#
Finding
Resolution
I1
District's cutoff band coupled to the terrain-octave array — dependency direction backwards (a detail_scatter retune would silently redefine the Atlas rung floor); the 4096 coincidence undefended by any test
336889197 — his stronger ask: MIN_WL_BANDS_M[4] derives from 2×DISTRICT_M (array now uniformly ladder-derived), direction-agnostic const assert pins the coincidence so drift breaks the build for a deliberate decision, golden now asserts the District coupling
I2
D-226 paraphrase ("request-granularity floor ruling") not verbatim in the record
336889197 — cites to the T-1150 wire-contract note + T-1162 refinement resolution (2); residual stale "2,048 m" claims swept in the same pass
I3
Design doc §8 step 6 now misdescribes what shipped (says retire COMPOSITE_SMOOTH entirely)
f50c93b2c — his verbatim erratum under §8 step 6 + D-226 filter-axis note (two-axes: pipeline const survives, per-rung filter delivers the crispness requirement); R2 temperature-softening one-liner recorded; T-1155 cancelled on merge
I4
Golden pins one body — ceiling_q==0 and volcanic-coast branches unexercised
Merge-mechanics acknowledgement — reconciled at merge, main's rows win
—
Non-blocking follow-up: one DISTRICT_MIN_WL_M comment missed the I1 sweep
e5a68f444 — swept
His six architecture questions answered in the posted review: cutoff quantization confirmed as THE single content-per-rung gate; vegetation composition point ruled correct (one decision serves precipitation+glaciation+vegetation coherently, D-227/D-240 clean); D-226(d) conformance confirmed (contributing wavelengths are not capped by the request-granularity ceiling); two-axes reframe ruled better than the original §8 step 6; golden strategy "real, not theater"; the counterintuitive bench improvement mechanism verified sound (the new cutoff Nyquist-gates previously-always-summed octaves — the same change that adds finer content makes the default path cheaper).
Hoshe (QA): APPROVE (one false finding retracted)
Empirically reverted the T-1162 extension and confirmed the golden structural guards fail exactly as claimed; reproduced every claimed test total (server lib 1840, atlas 626, district_profile 84 ×3 runs, client 44/44, golden 3/3); verified determinism (no HashMap in any invention module), the moisture double-clamp, the structurally-never-gated massif tier, wire-format stability (zero struct changes), the wire string constants against the Rust serde variant names, and that the BELIEVABILITY_STRICT advisory failure exists on main too (7/64 vs branch 5/64 — Q-123-tracked pre-existing debt, not a new failure class). His single initial nit (claimed the flaky-test fix didn't exist) was refuted with the diff hunk and formally retracted — the in-place test-body rewrite was invisible to his #[test]-line diff.
Araminta (T-1161 visual sign-off): APPROVED
"A-region-8x.png is the fix — hard-edged flat color blocks, unmistakably NEAREST... night-and-day difference" vs the 05-at-30s soft-gradient failure framing. District control confirms LINEAR intact where density earns it; Quarter shot confirms no accidental scope creep. "The per-rung split reads exactly as designed: Region now honestly communicates 'sparse sample, don't over-trust the gradient.'"
Eyeball acceptance (live, branch, release server)
.cache/screenshots/nature-octaves-eyeball/: Region-8x NEAREST after-shot (runtime texture_filter=1 verified); District-vs-Quarter same-footprint coast pair showing the structural differentiation (crinkled stepped coastline, patchy dry-ground boundaries, islet/copse-scale cells at Quarter) — the differentiation never before demonstrated. Post-merge cold re-check on main follows per standing practice.
Verdict: APPROVED
Tickets: T-1162, T-1161. On merge: T-1155 cancelled (superseded by T-1161's two-axes outcome). Filed during processing: T-1167 (pre-existing gdlint debt).
## Review: nature-octaves → main (type: code + visual sign-off)
Branch tip reviewed: `e5a68f444` (fix round included; final tip `972842c32` adds only a cargo-fmt line wrap). Reviewers: Tyre (architecture), Hoshe (QA), Araminta (T-1161 visual-grammar sign-off).
### Tyre (Architecture): APPROVE (after one fix round)
Initial verdict REQUEST_CHANGES — "architecturally sound, elegant, correctly scoped; merge after two cheap hardening items plus governance captures." All items resolved and re-verified at tip:
| # | Finding | Resolution |
|---|---------|------------|
| I1 | District's cutoff band coupled to the terrain-octave array — dependency direction backwards (a `detail_scatter` retune would silently redefine the Atlas rung floor); the 4096 coincidence undefended by any test | `336889197` — his stronger ask: `MIN_WL_BANDS_M[4]` derives from `2×DISTRICT_M` (array now uniformly ladder-derived), direction-agnostic `const` assert pins the coincidence so drift breaks the build for a deliberate decision, golden now asserts the District coupling |
| I2 | D-226 paraphrase ("request-granularity floor ruling") not verbatim in the record | `336889197` — cites to the T-1150 wire-contract note + T-1162 refinement resolution (2); residual stale "2,048 m" claims swept in the same pass |
| I3 | Design doc §8 step 6 now misdescribes what shipped (says retire COMPOSITE_SMOOTH entirely) | `f50c93b2c` — his verbatim erratum under §8 step 6 + D-226 filter-axis note (two-axes: pipeline const survives, per-rung filter delivers the crispness requirement); R2 temperature-softening one-liner recorded; T-1155 cancelled on merge |
| I4 | Golden pins one body — `ceiling_q==0` and volcanic-coast branches unexercised | `336889197` — airless/dry + volcanic-coast body rows appended; fixture regen verified 510 insertions / 0 deletions (existing rows byte-identical) |
| I5 | `.pql/changelog` branch-behind-main divergence | Merge-mechanics acknowledgement — reconciled at merge, main's rows win |
| — | Non-blocking follow-up: one `DISTRICT_MIN_WL_M` comment missed the I1 sweep | `e5a68f444` — swept |
His six architecture questions answered in the posted review: cutoff quantization confirmed as THE single content-per-rung gate; vegetation composition point ruled correct (one decision serves precipitation+glaciation+vegetation coherently, D-227/D-240 clean); D-226(d) conformance **confirmed** (contributing wavelengths are not capped by the request-granularity ceiling); two-axes reframe ruled better than the original §8 step 6; golden strategy "real, not theater"; the counterintuitive bench *improvement* mechanism verified sound (the new cutoff Nyquist-gates previously-always-summed octaves — the same change that adds finer content makes the default path cheaper).
### Hoshe (QA): APPROVE (one false finding retracted)
Empirically reverted the T-1162 extension and confirmed the golden structural guards fail exactly as claimed; reproduced every claimed test total (server lib 1840, atlas 626, district_profile 84 ×3 runs, client 44/44, golden 3/3); verified determinism (no HashMap in any invention module), the moisture double-clamp, the structurally-never-gated massif tier, wire-format stability (zero struct changes), the wire string constants against the Rust serde variant names, and that the `BELIEVABILITY_STRICT` advisory failure exists on main too (7/64 vs branch 5/64 — Q-123-tracked pre-existing debt, not a new failure class). His single initial nit (claimed the flaky-test fix didn't exist) was refuted with the diff hunk and formally retracted — the in-place test-body rewrite was invisible to his `#[test]`-line diff.
### Araminta (T-1161 visual sign-off): APPROVED
"A-region-8x.png is the fix — hard-edged flat color blocks, unmistakably NEAREST... night-and-day difference" vs the 05-at-30s soft-gradient failure framing. District control confirms LINEAR intact where density earns it; Quarter shot confirms no accidental scope creep. "The per-rung split reads exactly as designed: Region now honestly communicates 'sparse sample, don't over-trust the gradient.'"
### Eyeball acceptance (live, branch, release server)
`.cache/screenshots/nature-octaves-eyeball/`: Region-8x NEAREST after-shot (runtime `texture_filter=1` verified); District-vs-Quarter same-footprint coast pair showing the structural differentiation (crinkled stepped coastline, patchy dry-ground boundaries, islet/copse-scale cells at Quarter) — the differentiation never before demonstrated. Post-merge cold re-check on main follows per standing practice.
### Verdict: APPROVED
Tickets: T-1162, T-1161. On merge: T-1155 cancelled (superseded by T-1161's two-axes outcome). Filed during processing: T-1167 (pre-existing gdlint debt).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The nature-first batch: the Atlas ladder's rungs now differ structurally, not just in cell count. Together these answer both of Jeroen's hands-on complaints ("zero detail on lower levels, just a green field" / "the green-blue transition is a fade — it should be a more detailed coastline").
T-1162 — invention octaves into the Atlas window path (server)
The ladder's transport reached 512 m but its content floor was 4 km (terrain) / 16 km (coast). Now:
WARP_OCTAVE_WAVELENGTHS_Mextended 5→9 entries (262,144 m down to 1,024 m — Quarter's Nyquist floor), with newmin_wavelength_mcutoff plumbing incoast_warp_px/warp_fbm(the warp previously had no cutoff at all). Bays, headlands and islets now appear as you zoom.invent_primitivesfeeds the VOXEL band (1,024–128 m, salted) intoelev_q/slope_qunder the same envelope/cutoff discipline.vegetation_invention.rs): the nature layer's wild growth. Two-tier model mirroringcoast_invention— a BodyParams+latitude envelope ceiling ("where forests are possible"; a hyper-arid world stays desert) over a single blended fBm field (never-gated 100–400 km massif tier at 70% weight + cutoff-gated district/voxel texture at 30%). It perturbsmoisture_q's output, so precipitation, glaciation and vegetation shift as one coherent world-fact — and the single-field construction guarantees cross-rung coherence: a Region-scale forest resolves into distinct woods (District) and copses/clearings (Quarter), never contradicted wholesale. Wire format unchanged.MIN_WL_BANDS_M5→6 entries (adds the 1,024 m band).OCTAVE_WAVELENGTHS_M[3]), not 2×DISTRICT_M— the 8,192/4,096 m coast octaves are legitimately District-admitted enrichment; only the 2,048/1,024 m coast octaves and the voxel band are Quarter-exclusive. Tests, docs, and golden cutoffs corrected to match.New golden:
tests/window_derivation_golden.rs+ fixture (derivation_harness pattern,UPDATE_GOLDEN=1regen) — the window-derivation path was previously unpinned by any golden. Companion structural tests guard that a future regen can't silently make the extension inert. The believability golden regen is a separate deliberate commit with rationale (ticket part d discipline).Bench (T-1149 harness, release, before/after) — no regression, all rungs at or below baseline:
T-1161 — per-rung composite filter policy (client)
Araminta's binding ruling: filter keyed on rung identity via the window's own echoed
granularity_v2— Region (incl. the orbital tile mosaic) samples NEAREST (GPU bilinear at 204.8 km/cell reads as smoothing-over-absence), District/Quarter keep LINEAR (density earns the blend). One shared helper at both draw call sites; unknown wire tags fall back to LINEAR, never NEAREST.COMPOSITE_SMOOTHsurvives as the independent compile-time pipeline axis (texture vs flat rects) — the two-axes split is documented in the file header. Washes/border fades untouched per the ruling.Eyeball acceptance (live, branch, fresh release server)
.cache/screenshots/nature-octaves-eyeball/:texture_filter=1).Test discipline
Server: lib 1840 passed; new module 11 tests; district_profile 84 (+6; one pre-existing noise-fragile test properly fixed via 8-district latitude-band averaging, not skipped); all named test binaries green; revert-verified the voxel-relief cutoff exclusion. Client: focused suite 44/44; revert-verified (helper hardcoded LINEAR → exactly the three Region-NEAREST tests fail). Zero new lint warnings (gdlint diff vs main identical — the 27 pre-existing repo-wide problems are now ticketed as T-1167; clippy
-D warningsclean).Tickets: T-1162, T-1161
PR #194 — Architecture review (Tyre)
Verdict: REQUEST_CHANGES — the code is architecturally sound and I'd merge it after two small, cheap hardening items on the server side (one drift-guard, one comment reconciliation) plus two governance captures. Nothing here is a redesign; the design is elegant and the invention composition is genuinely clean. cracks knuckles — let me be honest about what's load-bearing and what's polish.
The scope is exactly right: geo + wild growth (nature layer), one shared cutoff mechanism, no voxel-path changes, no whole-body chunk/tile leak. The vegetation module mirrors coast_invention faithfully and the moisture-input composition point is the correct one. My concerns are about drift resistance and doc truthfulness, not correctness of the shipped behavior.
Issues
I1 — [server,
layer_proxy.rs:410-411+445] District's cutoff band is coupled to the terrain-detail octave array (OCTAVE_WAVELENGTHS_M[3]), and the PR deliberately frames2×DISTRICT_Mas the wrong model — I think the dependency direction is backwards, and either way the coincidence is undefended by a test.MIN_WL_BANDS_M[4]isOCTAVE_WAVELENGTHS_M[3](= 4096). The PR body states this explicitly: "District's quantized floor is 4,096 m (OCTAVE_WAVELENGTHS_M[3]), not 2×DISTRICT_M." I want to push back on that framing (see Q1 for the full argument): the cutoff's semantic job is Nyquist — "the finest wavelength this rung's sample spacing can resolve" — which is a property of the rung (2×DISTRICT_M), not of one invention field's octave choices. Coupling it toOCTAVE_WAVELENGTHS_M[3]inverts the dependency: adetail_scatter.rs-local terrain-octave retune (a change nobody would expect to touch the Atlas rung ladder) would silently redefine District's Atlas cutoff. The coast warp already extends belowOCTAVE_WAVELENGTHS_M[3](to 1024), proving the invention fields don't and shouldn't dictate the rung floor. This is a judgment call, not a correctness bug — the shipped value (4096) is right today either way. But the coincidence is currently defended by nothing:golden_cutoffs_match_the_scale_ladderpins2×QUARTER_M == 1024and never touches the District coupling. Minimum ask (cheap, direction-agnostic): addconst _: () = assert!(MIN_WL_BANDS_M[4] as i32 == 2 * scale::DISTRICT_M);so if the two ever diverge, the build breaks and a human decides on purpose. Stronger ask (my recommendation): deriveMIN_WL_BANDS_M[4]from2 * scale::DISTRICT_M as f64and drop theOCTAVE_WAVELENGTHS_M[3]reference, so the rung floor is authored by the ladder and the terrain array just happens to reach it.I2 — [server,
district_profile.rs:1159-1183doc comment; alsocoast_invention.rs:64-72] The D-226(d) doc-comment claim is correct but leans on a phrasing that overstates what D-226 literally says. The comment states "a contributing wavelength is never capped BY the request-granularity floor ruling itself." That is a true and sanctioned reading (see Q3), but the actual D-226(d) amendment text (architecture.md, T-1143 landing 2026-07-21) never uses the words "request granularity" for the ceiling — it says the below-quarter rungs are implementation-gated on their own measurement pass and (T-1150 wire-contract note) thatwindow_granularityexpresses finer-than-district multiples only. The comment is defensible but paraphrases a ruling that isn't verbatim in the record. Fix: either cite the specific note it's leaning on ("per D-226 T-1150 wire-contract note / T-1162 refinement resolution (2)") or soften "the request-granularity floor ruling" to "the rung's sample-density floor" so a future reader doesn't go hunting for a "request-granularity floor ruling" phrase that isn't in D-226. Comment-only; no behavior change.I3 — [governance capture, not code]
atlas-zoom-ladder-t1143.md §8 step 6now actively misdescribes what shipped. §8 step 6 reads: "RetireCOMPOSITE_SMOOTH… delete the const and the smoothing branch, leaving the crispdraw_rectpath as the only path." T-1161 supersedes that: COMPOSITE_SMOOTH survives as the compile-time pipeline axis (texture-vs-rects), and the crispdraw_rectpath is now the debug/compare path, not the primary one; the filter (NEAREST/LINEAR) is a separate per-rung runtime axis. A future reader following §8 step 6 literally would delete the wrong thing. This needs an erratum (see Q4 for exact text). No code change — the code is right; the doc is stale.I4 — [server,
window_derivation_golden.rscoverage; recommendation] The golden pins one body only (temperate/ocean/breathable), so two whole behavioral branches are unexercised by the pinned golden: theceiling_q == 0vegetation short-circuit (airless/dry body →moisture_perturb == 0) and a high-tectonic/volcanic coast (ridged warp, widescatter_floor). The structural guards catch an inert extension; they don't catch a body-envelope regression (e.g. someone breaksvegetation_envelope's wetness product so a dry body starts inventing forest). This is a coverage recommendation, not a blocker — see Q5. A second body row ingolden_samples()(one airless, one volcanic) would close it cheaply and is worth doing while the file is new.I5 — [merge mechanics, informational] The branch's
.pql/changelog/*diff shows 6 ticket-INSERT "deletions" relative to main. These are branch-behind-main divergence (main advanced with T-1167 etc. after the branch was cut), not intentional planning-data loss — main's rows win on merge. Flagging per the pql write-through discipline so the lead reconciles viapql plan import/rebuild after merge rather than letting the merge drop main's newer rows. Not a code issue.Answers to the six architecture questions
Q1 — Wavelength discipline / the District-floor coupling. Yes, the per-rung
min_wlcutoff (quantized toMIN_WL_BANDS_M, now 6 bands) remains coherent as THE single mechanism gating content-per-rung — it is orthogonal towindow_granularity(which gates spacing/extent/cell-count) and is the only axis touching octave content. That separation is clean and I like it: one knob for "how dense do I sample," one for "how fine may the content be," and they compose without interaction. On the coincidence: the code couples District's band toOCTAVE_WAVELENGTHS_M[3]; the proposed alternative is2×DISTRICT_M. They're equal today (4096) and drift differently. My ruling: the cutoff should be coupled to2×spacing(the scale ladder), not to the terrain-detail array. Rationale — the cutoff's job is "the finest wavelength this rung's sample spacing can resolve" (Nyquist), which is a property of the rung (2×DISTRICT_M), not of one particular invention field's octave choices. The terrain-detail array happening to bottom out at exactly the District Nyquist floor is convenient but incidental; the coast warp already extends below it (down to 1024), proving the invention fields don't dictate the rung floor. Coupling to the terrain array means adetail_scatter.rsretune silently redefines the Atlas rung ladder — wrong direction of dependency. Concretely: keep the value 4096, but derive/assert it fromscale::DISTRICT_M, and add I1'sconst _: () = assert!so the coincidence is enforced, not assumed. (The Quarter band at 1024 is already correctly documented as2×QUARTER_M— so this is just making District consistent with how Quarter was already reasoned about.)Q2 — Vegetation invention placement. Right composition point, and it's the elegant choice. Perturbing
moisture_qoutput (bounded by the BodyParams+latitude envelope) before classification means precipitation/glaciation/vegetation all read the same shifted world-fact — one coherent state, not a vegetation-only illusion sitting on an unperturbed climate. Perturbingderive_vegetation's thresholds instead (the rejected option (a)) would let a cell "look wetter" in its tree cover while its precipitation class disagreed — an internally inconsistent derived state, exactly what D-227/D-010 determinism discipline exists to prevent. This is a single design decision solving three classifiers at once; that's the kind of thing I get excited about. D-227/D-240 conformance: clean.vegetation_envelopederives fromBodyParamsonly (hydrosphere/atmosphere buckets + the multiplicative water×atmosphere posture, mirroringbody_coast_envelope's erosion chain) — no orbital/tilt inputs, D-240 holds. The massif/texture fields are pure(seed, body, position)with distinct salts, uncorrelated with coast/scatter/climate streams — D-010/D-227 hold. 70/30 massif/texture split with never-gated massif tier: correct coherence mechanism, and it's the right precedent to imitate — it's structurally identical tocoast_invention::character_field(never cutoff-gated, sets the DC bias) vs the cutoff-gated warp. 0.30 < 0.70 guarantees the texture term alone can't flip the massif's sign at typical amplitudes, so a Region-scale forest verdict survives refinement to Quarter (clearings/copses punched, majority preserved) — which is the ticket's hard cross-rung requirement, and thevegetation_majority_class_preserved_under_quarter_refinementtest validates it. One nit worth stating (not a blocker): the "0.3 < 0.7 so texture can never outweigh massif" guarantee holds for the sign of the blend, but both are then scaled byceiling_qand added to base_moisture_q before a hard threshold inderive_vegetation— so near a class boundary the texture term can still flip the final class even though it can't flip the massif's sign. That's fine and intended (that's what punches clearings), but the module doc slightly overstates it as "can never flip the coarse bias" — the coarse bias survives; the coarse class verdict at a boundary cell can legitimately change. The majority-preservation test is the honest guarantee, not per-cell class stability.Q3 — D-226(d) conformance. Confirmed. The ticket's resolution ("contributing WAVELENGTHS aren't capped by the request-granularity floor ruling") is consistent with the actual D-226 text. D-226(d) and its T-1112 §2 anti-erosion clause govern what a layer may request/serve (request granularity, wire-visible detail level) — the T-1143 landing amendment explicitly opened that ceiling "for the Atlas ladder" and gates below-quarter rungs on a measurement pass. Nothing in D-226 caps the wavelengths of the continuous fields that compose a cell's classification — indeed the coast warp has crossed scales the other way (262km octaves, coarser than region) since T-1125 with D-227/D-243 blessing. Feeding the VOXEL band into Quarter classification is a contributing-wavelength question, not a request-granularity question, so it's in-bounds. The only refinement I'd make is I2 — the phrasing "request-granularity floor ruling" isn't a verbatim D-226 term; cite the note it rests on.
Q4 — T-1161 two-axes decision + doc erratum. The two-axes reframe (COMPOSITE_SMOOTH = compile-time pipeline axis; filter = per-rung runtime axis) is the correct call and better than §8 step 6's "retire it entirely" — it keeps the crisp path alive for comparison while making the filter honest per rung, and the fail-safe (unknown rung → LINEAR, never NEAREST) is the right default. Yes, it needs a capture so §8 step 6 doesn't mislead. Recommended exact capture — a one-line erratum under §8 step 6 in
atlas-zoom-ladder-t1143.md, plus a sentence in the D-226 T-1143 amendment:And a D-226 note (one clause on the existing T-1143 amendment line): "COMPOSITE_SMOOTH is retained as the pipeline axis; the ladder's crispness-at-sparse-rungs requirement is met by the per-rung filter policy (T-1161), not by deleting the const."
Q5 — Golden strategy. Real, not theater — but thinner than it should be. What it does well: it pins the production cutoffs (District 4096, Quarter 1024, Region via
derive_orbital_at_metres), double-derives for determinism, compares JSON values (no format flake), and carries two structural guards —quarter_and_district_rungs_diverge_at_the_same_position(catches an inert extension) andgolden_cutoffs_match_the_scale_ladder(catches ladder drift on the Quarter side). Those are the right invariants and they'd catch the most likely regression (someone accidentally making the cutoffs identical, or the extension going inert). Where it's thin (I4): single body means theceiling_q == 0short-circuit and the volcanic/high-tectonic coast branch are never pinned — a body-envelope regression (dry world starts growing forest, or the erosion chain inverts) would sail through this golden. Cross-rung coherence itself is covered by the unit test in district_profile, not the golden — acceptable, but a second body row (airless + volcanic) ingolden_samples()would make the golden a real body-envelope regression net for ~10 lines. Recommend, don't block. Also notegolden_cutoffs_match_the_scale_laddershould be extended to pin the District coupling too (ties into I1).Q6 — Cost. The PR body carries the required before/after numbers (T-1149 discipline satisfied), and they don't just avoid a regression — they improve: District 3.54→~3.0 µs/cell, Quarter (cutoff 512) 2.10→~1.77, orbital 1.48→~1.42, n=6400 window 0.86→~0.59 ms. That looked counterintuitive at first (more octaves, less time), so I sanity-checked the mechanism and it holds: the pre-T-1162 window path summed the full terrain-detail octave array with no cutoff at all (the cutoff plumbing is new to
coast_warp_px/warp_fbm/the window relief call this PR). Adding the quantized per-rung cutoff means that at the District/Quarter quantized bands, fewer octaves actually run than before — the truncation (wl < min_wl→ earlycontinue, novalue_noisecall) removes real work. So the elegant outcome is: the same change that adds more available content at finer rungs makes the default path cheaper, because content is now Nyquist-gated instead of always-summed. The added always-on cost (vegetationmassif_field, 3 octaves) is small and is more than paid for by the octaves the cutoff now skips. The numbers are internally consistent with the truncate discipline and with §7's ~1.2–1.4 µs/cell envelope — no smell. The claim is sound. (One caveat I'd verify at merge: the bench should be run COLD-spawn / warm-TerrainAnalysis per the memory note on running the full harness, and on the same body/seed baseline the resolution mandated — the table looks like it is, but confirm the "baseline" column is the pre-branchmainmeasurement, not a mid-branch snapshot.)Scope / seam scan (clean)
detail_scatter.rsdiff is a visibility bump only (VOXEL_OCTAVE_WAVELENGTHS_M→pub(crate));voxel_relief's signature already carriedmin_wavelength_mon main;mod.rsonly registers the new module. The window path reusesvoxel_relief— sanctioned per the ticket. Novoxel::/derive_voxel_column/chunk-fill logic touched. No whole-body chunk/tile Atlas leak — the vegetation output is still onevegetation_classdiscriminant per cell on the wire, no sub-cell data.CHARACTER_OCTAVE_WAVELENGTHS_M(409/204/102 km) are pre-existing (T-1125), not introduced here. The newMASSIF_OCTAVE_WAVELENGTHS_M(409/204/102 km, coarsest coarser than region, never gated) reuses that exact sanctioned scale-family for the same "planet-personality drift" role — a continuous field keyed to absolute coordinates, not a container. Consistent with D-243 §2 / D-227's precedent, not a violation.elev_q, and elevation feeds the temperature lapse — so at Quarter cutoff, temperature now carries sub-district variance where before it stepped at the district. The latitude-climate unit test was correctly amended to average over 8 districts because of exactly this. That's an intended consequence (elevation genuinely varies within a district), and it's mild, but it means R2's "temperature is a hard district step at every rung forever" is now slightly softened by relief-driven elevation at Quarter. Worth a one-liner in the eventual record so nobody's surprised later.What bites T-1156 (rivers) next
Two forward-contracts this PR sets that rivers will inherit — both good, flag them so T-1156 doesn't fight them:
derive_moisture_q's consumers, inbuild_district_profile. Rivers keying off moisture/precipitation will see the perturbed value — correct (a river should be likelier in a patchy-wet massif), but T-1156 must sample the perturbedmoisture_q, not re-derive the base. The composition order is already right for this.VEGETATION_MASSIF_SALT,VEGETATION_TEXTURE_SALT,0x5EED_C0DEfor window relief). Rivers must add their own distinct salt(s) and not reuse any of these — the isolation discipline is established; T-1156 just follows it. The0x5EED_C0DEinline literal for the window-relief stream is slightly out of step with the named-constsalts elsewhere — minor, but promoting it to a named const indistrict_profile.rswould keep the "every salt is named and greppable" invariant intact before rivers add a fourth. (Recommendation, not a blocker.)Net: elegant, in-scope, well-tested work. Merge after I1 (drift-guard) and I2 (comment), with I3/I4 as governance/coverage follow-ups and I5 handled at merge.
PR #194 — Tyre re-review verdict: APPROVE
Re-verified all findings against the worktree at tip
f50c93b2c(two commits on336889197/f50c93b2cover what I reviewed). Every item is addressed, and the fixes are the right fixes — not minimal patches over the letter of each finding.I1 — resolved, exactly the stronger ask.
MIN_WL_BANDS_M[4]now reads2.0 * DISTRICT_M as f64and band 5 reads2.0 * QUARTER_M— the array is uniformly ladder-derived,OCTAVE_WAVELENGTHS_M[3]dropped as the floor's source. Theconst _: () = assert!(OCTAVE_WAVELENGTHS_M[3] as i64 == 2 * DISTRICT_M as i64)guard is in with an intent comment;golden_cutoffs_match_the_scale_laddernow pins2*DISTRICT_M == DISTRICT_MIN_WL_M(the coupling that was previously undefended) alongside the Quarter one. Dependency direction now runs one way — the rung authors the floor, the terrain array just happens to reach it. This is the architecturally correct outcome.I2 — resolved.
district_profile.rs:1185-1187now cites "the D-226 T-1150 wire-contract note and T-1162 refinement resolution (2)" and uses "the rung's sample-density floor";coast_invention.rsreconciled to "2 × DISTRICT_M = 4,096m — District's own Nyquist limit, derived independently from the rung's spacing per PR #194 I1, NOT from any invention field's octave array." The residual stale "2,048 m" claims Dudley swept are gone.I3 — resolved, verbatim. My exact erratum text sits under §8 step 6 in
atlas-zoom-ladder-t1143.md, and the D-226 filter-axis note (T-1161) is appended to the T-1143 amendment after the pending-shape note. The R2 temperature-softening one-liner is folded into the erratum.pql decisions validateclean (per your report).I4 — resolved.
body_sweep_samples()helper + two new body rows: airless/dry (exercises theceiling_q == 0short-circuit through the full stack) and volcanic/high-tectonic coast (ridged warp, wide scatter_floor). Regen appended 510 rows, zero deletions — existing goldens byte-identical, so the extension can't have silently shifted the original body's pinned output.Q2 nit — resolved, and well. The vegetation module doc now states it plainly: "a majority-preservation guarantee, not a per-cell class-stability guarantee," and names a boundary-cell flip as "the clearing/copse the ticket asks for." That's the honest framing.
Forward-contract — resolved.
0x5EED_C0DE→ namedconst WINDOW_RELIEF_SALT(district_profile.rs:1069). The named-salt invariant holds before T-1156 adds a fourth stream.I5 / Q6 caveat — acknowledged (changelog reconciled at merge, main's rows win) and confirmed (baseline column is pre-change / main-state code, run as step 0). Good.
One non-blocking sweep (do at your convenience, not a re-bounce)
server/tests/window_derivation_golden.rs:209-217— theDISTRICT_MIN_WL_Mconst's doc comment still carries the pre-I1 framing: "matchingdetail_scatter::OCTAVE_WAVELENGTHS_M's finest octave). NOT2 * DISTRICT_Mby construction coincidence alone — see the T-1162 discovery documented onMIN_WL_BANDS_M." That now contradicts whatMIN_WL_BANDS_M's own doc (rewritten this round) andcoast_invention.rsboth say —2 × DISTRICT_Mis now the authoritative derivation, not "coincidence alone," and the cross-referencedMIN_WL_BANDS_Mdoc argues the reverse of this comment. The test's value (4096) and its assertion (2*DISTRICT_M == DISTRICT_MIN_WL_M) are both correct — this is purely the one comment that missed the I1 reconciliation sweep the other two files got. It's exactly the doc-honesty class I flagged in I2, so worth a two-line fix (reframe to "Quarter's-sibling:2 × DISTRICT_M, the rung's Nyquist floor, matchingMIN_WL_BANDS_M[4]'s ladder-derivation per PR #194 I1"), but it's cosmetic and blocks nothing.Verdict
APPROVE. The round did the real fixes, not the cheap ones — I1 in particular took the dependency-direction argument to its correct conclusion rather than just bolting on a guard. Ship it after the push gate re-runs the full suite. The one stale golden-const comment is a follow-up polish, not a gate.
Review: nature-octaves → main (type: code + visual sign-off)
Branch tip reviewed:
e5a68f444(fix round included; final tip972842c32adds only a cargo-fmt line wrap). Reviewers: Tyre (architecture), Hoshe (QA), Araminta (T-1161 visual-grammar sign-off).Tyre (Architecture): APPROVE (after one fix round)
Initial verdict REQUEST_CHANGES — "architecturally sound, elegant, correctly scoped; merge after two cheap hardening items plus governance captures." All items resolved and re-verified at tip:
detail_scatterretune would silently redefine the Atlas rung floor); the 4096 coincidence undefended by any test336889197— his stronger ask:MIN_WL_BANDS_M[4]derives from2×DISTRICT_M(array now uniformly ladder-derived), direction-agnosticconstassert pins the coincidence so drift breaks the build for a deliberate decision, golden now asserts the District coupling336889197— cites to the T-1150 wire-contract note + T-1162 refinement resolution (2); residual stale "2,048 m" claims swept in the same passf50c93b2c— his verbatim erratum under §8 step 6 + D-226 filter-axis note (two-axes: pipeline const survives, per-rung filter delivers the crispness requirement); R2 temperature-softening one-liner recorded; T-1155 cancelled on mergeceiling_q==0and volcanic-coast branches unexercised336889197— airless/dry + volcanic-coast body rows appended; fixture regen verified 510 insertions / 0 deletions (existing rows byte-identical).pql/changelogbranch-behind-main divergenceDISTRICT_MIN_WL_Mcomment missed the I1 sweepe5a68f444— sweptHis six architecture questions answered in the posted review: cutoff quantization confirmed as THE single content-per-rung gate; vegetation composition point ruled correct (one decision serves precipitation+glaciation+vegetation coherently, D-227/D-240 clean); D-226(d) conformance confirmed (contributing wavelengths are not capped by the request-granularity ceiling); two-axes reframe ruled better than the original §8 step 6; golden strategy "real, not theater"; the counterintuitive bench improvement mechanism verified sound (the new cutoff Nyquist-gates previously-always-summed octaves — the same change that adds finer content makes the default path cheaper).
Hoshe (QA): APPROVE (one false finding retracted)
Empirically reverted the T-1162 extension and confirmed the golden structural guards fail exactly as claimed; reproduced every claimed test total (server lib 1840, atlas 626, district_profile 84 ×3 runs, client 44/44, golden 3/3); verified determinism (no HashMap in any invention module), the moisture double-clamp, the structurally-never-gated massif tier, wire-format stability (zero struct changes), the wire string constants against the Rust serde variant names, and that the
BELIEVABILITY_STRICTadvisory failure exists on main too (7/64 vs branch 5/64 — Q-123-tracked pre-existing debt, not a new failure class). His single initial nit (claimed the flaky-test fix didn't exist) was refuted with the diff hunk and formally retracted — the in-place test-body rewrite was invisible to his#[test]-line diff.Araminta (T-1161 visual sign-off): APPROVED
"A-region-8x.png is the fix — hard-edged flat color blocks, unmistakably NEAREST... night-and-day difference" vs the 05-at-30s soft-gradient failure framing. District control confirms LINEAR intact where density earns it; Quarter shot confirms no accidental scope creep. "The per-rung split reads exactly as designed: Region now honestly communicates 'sparse sample, don't over-trust the gradient.'"
Eyeball acceptance (live, branch, release server)
.cache/screenshots/nature-octaves-eyeball/: Region-8x NEAREST after-shot (runtimetexture_filter=1verified); District-vs-Quarter same-footprint coast pair showing the structural differentiation (crinkled stepped coastline, patchy dry-ground boundaries, islet/copse-scale cells at Quarter) — the differentiation never before demonstrated. Post-merge cold re-check on main follows per standing practice.Verdict: APPROVED
Tickets: T-1162, T-1161. On merge: T-1155 cancelled (superseded by T-1161's two-axes outcome). Filed during processing: T-1167 (pre-existing gdlint debt).
Pull request closed