chore(meta): activate seam batch T-1125/T-1126/T-1127 — Jeroen's crinkle-varies rulings + Si gap resolutions; T-1126 blocked by T-1125
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
INSERT INTO ticket_deps (blocker_record_id, blocked_record_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FKE0EW2617K9VE4QHSYSR9HW', '06FKCPBF41RWK9PW9M22Q7961C', '2026-07-06 10:38:33.017', '2026-07-06 10:38:33.017', NULL, '290574b958bce69afc8a81d7487f8fd5', 2) ON CONFLICT(blocker_record_id, blocked_record_id) DO UPDATE SET updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_deps.updated_at OR (excluded.updated_at = ticket_deps.updated_at AND excluded.hash > ticket_deps.hash);
|
||||
INSERT INTO ticket_deps (blocker_record_id, blocked_record_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FB0TNSRWYHR72SC80F5T0TBW', '06FB0TNSRWGDT3AJJE5QD0E3FR', '2026-07-07 16:57:31.296', '2026-07-07 16:57:31.296', NULL, 'e6784e95e525cb6458fe258ab4b6e4c2', 2) ON CONFLICT(blocker_record_id, blocked_record_id) DO UPDATE SET updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_deps.updated_at OR (excluded.updated_at = ticket_deps.updated_at AND excluded.hash > ticket_deps.hash);
|
||||
INSERT INTO ticket_deps (blocker_record_id, blocked_record_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FBPTXQGAX5GT4PTTBQYGJCV4', '06FB0TNSRZKXHAYMT7Q6WW3XDC', '2026-07-08 15:53:21.023', '2026-07-08 15:53:21.023', NULL, '64d1cc675b69a17b5e1ec1f59710e9eb', 2) ON CONFLICT(blocker_record_id, blocked_record_id) DO UPDATE SET updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_deps.updated_at OR (excluded.updated_at = ticket_deps.updated_at AND excluded.hash > ticket_deps.hash);
|
||||
INSERT INTO ticket_deps (blocker_record_id, blocked_record_id, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', '06FPS6RRBF9HHAED5QKTKQCY1G', '2026-07-17 05:38:31.704', '2026-07-17 05:38:31.704', NULL, '2064c9c98f1ac17eb75a65adc6282ea9', 2) ON CONFLICT(blocker_record_id, blocked_record_id) DO UPDATE SET updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > ticket_deps.updated_at OR (excluded.updated_at = ticket_deps.updated_at AND excluded.hash > ticket_deps.hash);
|
||||
|
||||
@@ -1415,3 +1415,64 @@ INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, chang
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPRZX1PJ55V7462N56ME2QZ0', 'assigned_to', NULL, 'dudley', NULL, '2026-07-16 19:56:02', '2026-07-16 19:56:02.144', '2026-07-16 19:56:02.144', NULL, 'e1f4abe4a51a17463c14dbe68e85f24f', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPRZX1PJ55V7462N56ME2QZ0', 'status', 'in_progress', 'review', NULL, '2026-07-16 20:31:20', '2026-07-16 20:31:20.627', '2026-07-16 20:31:20.627', NULL, '6d6a4755a90f4c6e87cd1f33d03ce397', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPRZX1PJ55V7462N56ME2QZ0', 'status', 'review', 'done', NULL, '2026-07-16 20:36:46', '2026-07-16 20:36:46.488', '2026-07-16 20:36:46.488', NULL, 'e3c840b23066917cd35f62ef3e0e1492', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'description', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.', NULL, '2026-07-17 05:29:10', '2026-07-17 05:29:10.686', '2026-07-17 05:29:10.686', NULL, '2e918d8dc5ef41b56a3e35aedce12ec8', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'description', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.', NULL, '2026-07-17 05:30:58', '2026-07-17 05:30:58.591', '2026-07-17 05:30:58.591', NULL, '960ed4bdf97d679bf3f1d6cd05eaba8e', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'description', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.', NULL, '2026-07-17 05:32:00', '2026-07-17 05:32:00.843', '2026-07-17 05:32:00.843', NULL, 'aff24c00645457ce4122e705900a685c', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'description', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.
|
||||
|
||||
---
|
||||
Gap resolution (2026-07-17, Si review + Jeroen''s rulings):
|
||||
|
||||
1. TILT/D-240: DROPPED — no axial tilt input; D-240 stays intact. latitude_deg alone carries the position-tier polar effects (glaciation_grade is already latitude/temperature-derived). Tier-1 envelope CONFIRMED as what exists: planet_class + hydrosphere + atmosphere + body_radius_km (BodyParams, body_params_reader.rs:14-20). No tectonic-activity or erosion field exists — tectonic_class derives from planet_class (derive_tectonic_class always falls to its planet_class branch in production); erosion-proneness is DERIVED from hydrosphere + atmosphere + precipitation per Jeroen''s chain. Do not hunt for richer body signals; they are not there.
|
||||
|
||||
2. CIRCULARITY: ACCEPT STALE INPUT — glaciation_grade reads the UNWARPED raw-bilinear ocean_fraction_q (one-step-stale, deterministic, coarse ~156km-pixel value anyway). Document on the call site. tectonic_class is cheap to hoist to the top of derive_district (needs only BodyParams).
|
||||
|
||||
3. SCOPE: BOTH PATHS — the invention must feed derive_district (on-demand: probe + future T-1124 view) AND the production derive_district_profile (district_profile.rs:1062-1134, the batch path BodyWorldState stores — currently has NO scatter at all; the paths silently diverged). Implementer may unify the shared classification core if cleaner than duplicating — his call, reviewers verify. Believability goldens (server/tests/golden/believability.json) WILL regenerate — expected and acknowledged via UPDATE_GOLDEN=1; report the metric deltas (contrast/coherence blocks) in the PR as evidence of improvement, not just churn.
|
||||
|
||||
Si verification facts for the implementer:
|
||||
- Direct reusable precedents: climate_edge_warp (region_profile.rs:477-513) — warp-the-sampling with a distinct hash path, exactly the pattern for ocean_fraction_q; domain_warp.rs (T-1026, stateless (seed,body,pos)->offset); detail_scatter.rs voxel_mosaic (T-1084) proves slope-INDEPENDENT position-keyed scatter is established. Longitude variation comes free via position-keyed noise on world-metre coords — no explicit longitude plumbing needed.
|
||||
- Fix shape (from the ticket + rulings): warp the ocean-mask sampling position (invented bays/capes), slope-independent scatter floor whose AMPLITUDE/CHARACTER varies by the two driver tiers (body envelope: planet_class/hydrosphere/atmosphere/radius -> personality incl. erosion-smoothness; position: latitude, glaciation_grade, tectonic_class, climate bands -> fjordy vs smooth vs sharp), plus seeded heterogeneity so same-coast stretches differ. All deterministic seed+body+position (D-227/D-010); continuous across district/region boundaries (D-243 edge-fuzz discipline — character never steps on a line).
|
||||
- Acceptance: (a) before/after zoom ladders (aliveness_probe --render, same bodies/windows as T-1123: GJ380c/GJ820Bc/GJ244Ad at w256/w64/w16) reviewed by Jeroen — the primary artifact; (b) believability metrics moved not regressed; new coastline-legibility criterion work belongs to open Q-123, not this ticket. (c) determinism byte-compare as in T-1123.
|
||||
- Performance: no per-district budget record exists; do the D-246-style check — verify derive_district cost stays same order (~8us was the T-1123 measurement) and the believability/derivation harness budgets stay green.', NULL, '2026-07-17 05:37:57', '2026-07-17 05:37:57.401', '2026-07-17 05:37:57.401', NULL, 'a029e889e078aa3d6a2e8ec4a13471b9', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6RRBF9HHAED5QKTKQCY1G', 'description', 'T-1123 zoom-ladder finding: derive_vegetation(temp, moisture, elev, near_water) has no ocean/water-mask input — GJ380c w256 renders solid Forest across ~250km of OpenOcean districts (see .cache/screenshots/district-windows gj380c_w256_veg.png vs _morphology.png). Voxel-level water generators mask this in-world, but any district-resolution Atlas view (T-1124) will show forested oceans. Fix: vegetation classification should return a None/Marine class when the district''s morphology/ocean_fraction says water (reuse ocean_fraction_q already computed in derive_district).', 'T-1123 zoom-ladder finding: derive_vegetation(temp, moisture, elev, near_water) has no ocean/water-mask input — GJ380c w256 renders solid Forest across ~250km of OpenOcean districts (see .cache/screenshots/district-windows gj380c_w256_veg.png vs _morphology.png). Voxel-level water generators mask this in-world, but any district-resolution Atlas view (T-1124) will show forested oceans. Fix: vegetation classification should return a None/Marine class when the district''s morphology/ocean_fraction says water (reuse ocean_fraction_q already computed in derive_district).
|
||||
|
||||
Gap resolution (2026-07-17, Si review + Jeroen): (1) GATE: morphology-derived — pass the already-computed morphology water verdict (OpenOcean/Lake) into the vegetation call; vegetation and morphology can NEVER disagree by construction; no fourth threshold is born. (2) VARIANT: Marine, appended at discriminant 6 (after RiparianThicket=5); update the load-bearing vegetation_class_discriminants_pinned test; document that Ord position is non-semantic (the density-ladder doc does not extend to Marine). (3) SEQUENCING: blocked by T-1125 (edge added) — classify against the warped/invented coastline, not the smooth one. Si facts: the ticket phrase near_water is a TRAP — derive_vegetation''s 4th param is near_perennial_water (riparian/river proximity), unrelated to ocean; do not reuse it. voxel.rs consumers are wildcard-safe (ocean districts route to the WaterBody generator upstream per D-239/T-1082) — no changes needed there. aliveness_probe.rs vegetation_rgb is an EXHAUSTIVE match and will fail to compile until it gets a Marine color — extend the palette deliberately (ocean blue distinct from morphology water tones). D-239 gets an implementation-addendum note recording the Marine variant (its §8 climate-vegetation law predates a water class).', NULL, '2026-07-17 05:38:10', '2026-07-17 05:38:10.917', '2026-07-17 05:38:10.917', NULL, 'b29435e54ddc6a109cd87e2f3af36ea9', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'description', 'T-1123 zoom-ladder finding: GJ244Ad (frozen planet_class, temp panel pegged at the -60C clamp floor, vegetation solid Barren) still renders temperate-green morphology — the 17-zone MorphologyZone vocabulary (T-1027, FROZEN per its own contract) has no ice/glacial zone, and glaciation_grade is a separate DistrictProfile field nothing renders. Do NOT reopen the frozen vocab by default: the likely fix is rendering glaciation_grade as a modifier/overlay on the morphology color (ice-tinting affected zones) in both the T-1123 probe renderer and the future T-1124 view — or, if the team decides an ice zone belongs in the vocabulary after all, that is a deliberate amendment to the freeze decision, not a drive-by. Images: .cache/screenshots/district-windows gj244ad_w256_morphology.png vs _temp.png.', 'T-1123 zoom-ladder finding: GJ244Ad (frozen planet_class, temp panel pegged at the -60C clamp floor, vegetation solid Barren) still renders temperate-green morphology — the 17-zone MorphologyZone vocabulary (T-1027, FROZEN per its own contract) has no ice/glacial zone, and glaciation_grade is a separate DistrictProfile field nothing renders. Do NOT reopen the frozen vocab by default: the likely fix is rendering glaciation_grade as a modifier/overlay on the morphology color (ice-tinting affected zones) in both the T-1123 probe renderer and the future T-1124 view — or, if the team decides an ice zone belongs in the vocabulary after all, that is a deliberate amendment to the freeze decision, not a drive-by. Images: .cache/screenshots/district-windows gj244ad_w256_morphology.png vs _temp.png.
|
||||
|
||||
Refinement (2026-07-17, Si review): READY. Upstream verified HEALTHY — glaciation derivation (derive_glaciation_grade_from_climate, district_profile.rs:339-366) is correctly wired and even gates the Fjord family; GJ244Ad moisture clears the gate floor. This is purely a rendering gap: aliveness_probe render_window_panels computes the full DistrictProfile and discards .glaciation_grade (line ~458 reads only morphology_zone). SCOPE RULING (lead): probe-only THIS ticket — per-pixel ice tint blended on the morphology panel keyed on glaciation_grade (+ optionally a 6th dedicated glaciation panel; PANEL_NAMES/bufs are array-driven, cheap). The wire+client half (glaciation: Vec<u8> parallel array inside DistrictGridLayer + build_district_grid + protocol.gd + _draw_gen_district — governance-UNCONSTRAINED per the D-226 growth-ceiling reading: the cap governs new top-level Option layers, not per-cell fields inside a shipped layer; elev_q precedent) is DEFERRED to T-1124''s design pass, which owns the which-fields-ship-at-district-resolution question. Freeze contract confirmed: D-239 SS6 — tint is classifier-tuning territory, no MorphologyZone vocab reopen; an ice zone would need its own explicit D-amendment (not pursued).', NULL, '2026-07-17 05:38:24', '2026-07-17 05:38:24.161', '2026-07-17 05:38:24.161', NULL, '6a9d21bf30820e1d9058b4b8a8fa64df', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'status', 'backlog', 'in_progress', NULL, '2026-07-17 05:38:38', '2026-07-17 05:38:38.565', '2026-07-17 05:38:38.565', NULL, '988ba7528d21a98ad9f40ddfab210d2c', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6RRBF9HHAED5QKTKQCY1G', 'status', 'backlog', 'in_progress', NULL, '2026-07-17 05:38:38', '2026-07-17 05:38:38.574', '2026-07-17 05:38:38.574', NULL, '4cb60e2febd859020fc2fbae4aff9e59', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'status', 'backlog', 'in_progress', NULL, '2026-07-17 05:38:38', '2026-07-17 05:38:38.574', '2026-07-17 05:38:38.574', NULL, '83ccddb3c4ed268a95cbd00f4843b0cd', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'assigned_to', NULL, 'dudley', NULL, '2026-07-17 05:38:51', '2026-07-17 05:38:51.399', '2026-07-17 05:38:51.399', NULL, '1db15e907105ca1e1b2a51736a2fb5b4', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'assigned_to', NULL, 'dudley', NULL, '2026-07-17 05:38:51', '2026-07-17 05:38:51.406', '2026-07-17 05:38:51.406', NULL, 'a61ffc1075244eda35e07b8037fc561a', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
INSERT INTO ticket_history (ticket_record_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6RRBF9HHAED5QKTKQCY1G', 'assigned_to', NULL, 'dudley', NULL, '2026-07-17 05:38:51', '2026-07-17 05:38:51.406', '2026-07-17 05:38:51.406', NULL, 'de3fdd3e8ceac6cd698a2270b5997592', 2) ON CONFLICT(hash) DO NOTHING;
|
||||
|
||||
@@ -1957,3 +1957,102 @@ INSERT INTO tickets (record_id, type, parent_record_id, title, description, stat
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'task', '06FGSJNP8YM537DJCC82ZD6544', 'Frozen bodies read temperate-green on district morphology maps — render glaciation_grade', 'T-1123 zoom-ladder finding: GJ244Ad (frozen planet_class, temp panel pegged at the -60C clamp floor, vegetation solid Barren) still renders temperate-green morphology — the 17-zone MorphologyZone vocabulary (T-1027, FROZEN per its own contract) has no ice/glacial zone, and glaciation_grade is a separate DistrictProfile field nothing renders. Do NOT reopen the frozen vocab by default: the likely fix is rendering glaciation_grade as a modifier/overlay on the morphology color (ice-tinting affected zones) in both the T-1123 probe renderer and the future T-1124 view — or, if the team decides an ice zone belongs in the vocabulary after all, that is a deliberate amendment to the freeze decision, not a drive-by. Images: .cache/screenshots/district-windows gj244ad_w256_morphology.png vs _temp.png.', 'backlog', 'medium', NULL, 'server', NULL, '2026-07-16 20:25:45.551', '2026-07-16 20:25:45.551', NULL, '9e0446592b8a98b0db2641cb4b03192b', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPRZX1PJ55V7462N56ME2QZ0', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'District-window map renderer — zoom-ladder PNGs from derive_district (aliveness_probe --render)', 'Jeroen (2026-07-16, reviewing the T-1120 screenshots): all Atlas captures are planetary-level; the orbit-to-jet-plane bridge (district-resolution deterministic biome maps) has never been SEEN. Recon verified the fast path: extend server/src/bin/aliveness_probe.rs with --render <dir> --window <N>: after the existing cascade_for_body + anchor-district computation (lines 34-113), loop an NxN district window around the anchor calling derive_district(seed, body_id, params, ta, (dx,dy), climate) PER CELL (district_profile.rs:1256 — the pure on-demand 2km carrier; do NOT index bws.districts, that is the coarse gcpr=8 eager grid) and write PNGs via the png crate (pattern at heightmap.rs:184-193): morphology zones (transliterate the 17-entry MORPHOLOGY_COLORS palette from atlas_marker_overlay.gd:65-83 into a Rust [[u8;3];17]), plus elev_q / temperature_c / moisture_q / vegetation_class panels. Deliverable: zoom-ladder image sets (e.g. 256x256 and 64x64 district windows) for 2-3 bodies anchored on settlements, demonstrating the deterministic orbital->district bridge. Quarter/block rendering is OUT of scope (no windowable pure function at that tier).', 'review', 'high', 'dudley', 'server', 'D-243', '2026-07-16 19:55:31.636', '2026-07-16 20:31:20.622', NULL, '80d25588e64088d49f8e6dfac7dc380f', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPRZX1PJ55V7462N56ME2QZ0', 'task', '06FB0TNSRZXCHGS16BFHSSGSV4', 'District-window map renderer — zoom-ladder PNGs from derive_district (aliveness_probe --render)', 'Jeroen (2026-07-16, reviewing the T-1120 screenshots): all Atlas captures are planetary-level; the orbit-to-jet-plane bridge (district-resolution deterministic biome maps) has never been SEEN. Recon verified the fast path: extend server/src/bin/aliveness_probe.rs with --render <dir> --window <N>: after the existing cascade_for_body + anchor-district computation (lines 34-113), loop an NxN district window around the anchor calling derive_district(seed, body_id, params, ta, (dx,dy), climate) PER CELL (district_profile.rs:1256 — the pure on-demand 2km carrier; do NOT index bws.districts, that is the coarse gcpr=8 eager grid) and write PNGs via the png crate (pattern at heightmap.rs:184-193): morphology zones (transliterate the 17-entry MORPHOLOGY_COLORS palette from atlas_marker_overlay.gd:65-83 into a Rust [[u8;3];17]), plus elev_q / temperature_c / moisture_q / vegetation_class panels. Deliverable: zoom-ladder image sets (e.g. 256x256 and 64x64 district windows) for 2-3 bodies anchored on settlements, demonstrating the deterministic orbital->district bridge. Quarter/block rendering is OUT of scope (no windowable pure function at that tier).', 'done', 'high', 'dudley', 'server', 'D-243', '2026-07-16 19:55:31.636', '2026-07-16 20:36:46.488', NULL, 'c2a534d0423666a0d0c965c3a4d4a1a7', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'story', '06FGSJNP8YM537DJCC82ZD6544', 'D-227 invented detail does not feed district classification — the orbit-to-jet-plane bridge ends at ~500km', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.', 'backlog', 'high', NULL, 'server', 'D-227', '2026-07-16 20:25:20.427', '2026-07-17 05:29:10.685', NULL, '7483d1c081ba0a6d4fc688e3783b9402', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'story', '06FGSJNP8YM537DJCC82ZD6544', 'D-227 invented detail does not feed district classification — the orbit-to-jet-plane bridge ends at ~500km', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.', 'backlog', 'high', NULL, 'server', 'D-227', '2026-07-16 20:25:20.427', '2026-07-17 05:30:58.591', NULL, 'a21b8705688641ff805676bebb8a26d4', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'story', '06FGSJNP8YM537DJCC82ZD6544', 'D-227 invented detail does not feed district classification — the orbit-to-jet-plane bridge ends at ~500km', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.', 'backlog', 'high', NULL, 'server', 'D-227', '2026-07-16 20:25:20.427', '2026-07-17 05:32:00.842', NULL, 'a06a30fb996bd8f7b584dcd2efd9cd5d', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'story', '06FGSJNP8YM537DJCC82ZD6544', 'D-227 invented detail does not feed district classification — the orbit-to-jet-plane bridge ends at ~500km', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.
|
||||
|
||||
---
|
||||
Gap resolution (2026-07-17, Si review + Jeroen''s rulings):
|
||||
|
||||
1. TILT/D-240: DROPPED — no axial tilt input; D-240 stays intact. latitude_deg alone carries the position-tier polar effects (glaciation_grade is already latitude/temperature-derived). Tier-1 envelope CONFIRMED as what exists: planet_class + hydrosphere + atmosphere + body_radius_km (BodyParams, body_params_reader.rs:14-20). No tectonic-activity or erosion field exists — tectonic_class derives from planet_class (derive_tectonic_class always falls to its planet_class branch in production); erosion-proneness is DERIVED from hydrosphere + atmosphere + precipitation per Jeroen''s chain. Do not hunt for richer body signals; they are not there.
|
||||
|
||||
2. CIRCULARITY: ACCEPT STALE INPUT — glaciation_grade reads the UNWARPED raw-bilinear ocean_fraction_q (one-step-stale, deterministic, coarse ~156km-pixel value anyway). Document on the call site. tectonic_class is cheap to hoist to the top of derive_district (needs only BodyParams).
|
||||
|
||||
3. SCOPE: BOTH PATHS — the invention must feed derive_district (on-demand: probe + future T-1124 view) AND the production derive_district_profile (district_profile.rs:1062-1134, the batch path BodyWorldState stores — currently has NO scatter at all; the paths silently diverged). Implementer may unify the shared classification core if cleaner than duplicating — his call, reviewers verify. Believability goldens (server/tests/golden/believability.json) WILL regenerate — expected and acknowledged via UPDATE_GOLDEN=1; report the metric deltas (contrast/coherence blocks) in the PR as evidence of improvement, not just churn.
|
||||
|
||||
Si verification facts for the implementer:
|
||||
- Direct reusable precedents: climate_edge_warp (region_profile.rs:477-513) — warp-the-sampling with a distinct hash path, exactly the pattern for ocean_fraction_q; domain_warp.rs (T-1026, stateless (seed,body,pos)->offset); detail_scatter.rs voxel_mosaic (T-1084) proves slope-INDEPENDENT position-keyed scatter is established. Longitude variation comes free via position-keyed noise on world-metre coords — no explicit longitude plumbing needed.
|
||||
- Fix shape (from the ticket + rulings): warp the ocean-mask sampling position (invented bays/capes), slope-independent scatter floor whose AMPLITUDE/CHARACTER varies by the two driver tiers (body envelope: planet_class/hydrosphere/atmosphere/radius -> personality incl. erosion-smoothness; position: latitude, glaciation_grade, tectonic_class, climate bands -> fjordy vs smooth vs sharp), plus seeded heterogeneity so same-coast stretches differ. All deterministic seed+body+position (D-227/D-010); continuous across district/region boundaries (D-243 edge-fuzz discipline — character never steps on a line).
|
||||
- Acceptance: (a) before/after zoom ladders (aliveness_probe --render, same bodies/windows as T-1123: GJ380c/GJ820Bc/GJ244Ad at w256/w64/w16) reviewed by Jeroen — the primary artifact; (b) believability metrics moved not regressed; new coastline-legibility criterion work belongs to open Q-123, not this ticket. (c) determinism byte-compare as in T-1123.
|
||||
- Performance: no per-district budget record exists; do the D-246-style check — verify derive_district cost stays same order (~8us was the T-1123 measurement) and the believability/derivation harness budgets stay green.', 'backlog', 'high', NULL, 'server', 'D-227', '2026-07-16 20:25:20.427', '2026-07-17 05:37:57.401', NULL, '538b97e5e51823c4f9599fdb4bc7e5ad', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6RRBF9HHAED5QKTKQCY1G', 'bug', '06FGSJNP8YM537DJCC82ZD6544', 'derive_vegetation is ocean-blind — district maps paint Forest across open ocean', 'T-1123 zoom-ladder finding: derive_vegetation(temp, moisture, elev, near_water) has no ocean/water-mask input — GJ380c w256 renders solid Forest across ~250km of OpenOcean districts (see .cache/screenshots/district-windows gj380c_w256_veg.png vs _morphology.png). Voxel-level water generators mask this in-world, but any district-resolution Atlas view (T-1124) will show forested oceans. Fix: vegetation classification should return a None/Marine class when the district''s morphology/ocean_fraction says water (reuse ocean_fraction_q already computed in derive_district).
|
||||
|
||||
Gap resolution (2026-07-17, Si review + Jeroen): (1) GATE: morphology-derived — pass the already-computed morphology water verdict (OpenOcean/Lake) into the vegetation call; vegetation and morphology can NEVER disagree by construction; no fourth threshold is born. (2) VARIANT: Marine, appended at discriminant 6 (after RiparianThicket=5); update the load-bearing vegetation_class_discriminants_pinned test; document that Ord position is non-semantic (the density-ladder doc does not extend to Marine). (3) SEQUENCING: blocked by T-1125 (edge added) — classify against the warped/invented coastline, not the smooth one. Si facts: the ticket phrase near_water is a TRAP — derive_vegetation''s 4th param is near_perennial_water (riparian/river proximity), unrelated to ocean; do not reuse it. voxel.rs consumers are wildcard-safe (ocean districts route to the WaterBody generator upstream per D-239/T-1082) — no changes needed there. aliveness_probe.rs vegetation_rgb is an EXHAUSTIVE match and will fail to compile until it gets a Marine color — extend the palette deliberately (ocean blue distinct from morphology water tones). D-239 gets an implementation-addendum note recording the Marine variant (its §8 climate-vegetation law predates a water class).', 'backlog', 'medium', NULL, 'server', NULL, '2026-07-16 20:25:31.484', '2026-07-17 05:38:10.917', NULL, 'd5ab3fc6645ce75ffc423aaec391d033', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'task', '06FGSJNP8YM537DJCC82ZD6544', 'Frozen bodies read temperate-green on district morphology maps — render glaciation_grade', 'T-1123 zoom-ladder finding: GJ244Ad (frozen planet_class, temp panel pegged at the -60C clamp floor, vegetation solid Barren) still renders temperate-green morphology — the 17-zone MorphologyZone vocabulary (T-1027, FROZEN per its own contract) has no ice/glacial zone, and glaciation_grade is a separate DistrictProfile field nothing renders. Do NOT reopen the frozen vocab by default: the likely fix is rendering glaciation_grade as a modifier/overlay on the morphology color (ice-tinting affected zones) in both the T-1123 probe renderer and the future T-1124 view — or, if the team decides an ice zone belongs in the vocabulary after all, that is a deliberate amendment to the freeze decision, not a drive-by. Images: .cache/screenshots/district-windows gj244ad_w256_morphology.png vs _temp.png.
|
||||
|
||||
Refinement (2026-07-17, Si review): READY. Upstream verified HEALTHY — glaciation derivation (derive_glaciation_grade_from_climate, district_profile.rs:339-366) is correctly wired and even gates the Fjord family; GJ244Ad moisture clears the gate floor. This is purely a rendering gap: aliveness_probe render_window_panels computes the full DistrictProfile and discards .glaciation_grade (line ~458 reads only morphology_zone). SCOPE RULING (lead): probe-only THIS ticket — per-pixel ice tint blended on the morphology panel keyed on glaciation_grade (+ optionally a 6th dedicated glaciation panel; PANEL_NAMES/bufs are array-driven, cheap). The wire+client half (glaciation: Vec<u8> parallel array inside DistrictGridLayer + build_district_grid + protocol.gd + _draw_gen_district — governance-UNCONSTRAINED per the D-226 growth-ceiling reading: the cap governs new top-level Option layers, not per-cell fields inside a shipped layer; elev_q precedent) is DEFERRED to T-1124''s design pass, which owns the which-fields-ship-at-district-resolution question. Freeze contract confirmed: D-239 SS6 — tint is classifier-tuning territory, no MorphologyZone vocab reopen; an ice zone would need its own explicit D-amendment (not pursued).', 'backlog', 'medium', NULL, 'server', NULL, '2026-07-16 20:25:45.551', '2026-07-17 05:38:24.161', NULL, '43a14c30a1bf3855a9ca6c6d076e0d30', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'story', '06FGSJNP8YM537DJCC82ZD6544', 'D-227 invented detail does not feed district classification — the orbit-to-jet-plane bridge ends at ~500km', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.
|
||||
|
||||
---
|
||||
Gap resolution (2026-07-17, Si review + Jeroen''s rulings):
|
||||
|
||||
1. TILT/D-240: DROPPED — no axial tilt input; D-240 stays intact. latitude_deg alone carries the position-tier polar effects (glaciation_grade is already latitude/temperature-derived). Tier-1 envelope CONFIRMED as what exists: planet_class + hydrosphere + atmosphere + body_radius_km (BodyParams, body_params_reader.rs:14-20). No tectonic-activity or erosion field exists — tectonic_class derives from planet_class (derive_tectonic_class always falls to its planet_class branch in production); erosion-proneness is DERIVED from hydrosphere + atmosphere + precipitation per Jeroen''s chain. Do not hunt for richer body signals; they are not there.
|
||||
|
||||
2. CIRCULARITY: ACCEPT STALE INPUT — glaciation_grade reads the UNWARPED raw-bilinear ocean_fraction_q (one-step-stale, deterministic, coarse ~156km-pixel value anyway). Document on the call site. tectonic_class is cheap to hoist to the top of derive_district (needs only BodyParams).
|
||||
|
||||
3. SCOPE: BOTH PATHS — the invention must feed derive_district (on-demand: probe + future T-1124 view) AND the production derive_district_profile (district_profile.rs:1062-1134, the batch path BodyWorldState stores — currently has NO scatter at all; the paths silently diverged). Implementer may unify the shared classification core if cleaner than duplicating — his call, reviewers verify. Believability goldens (server/tests/golden/believability.json) WILL regenerate — expected and acknowledged via UPDATE_GOLDEN=1; report the metric deltas (contrast/coherence blocks) in the PR as evidence of improvement, not just churn.
|
||||
|
||||
Si verification facts for the implementer:
|
||||
- Direct reusable precedents: climate_edge_warp (region_profile.rs:477-513) — warp-the-sampling with a distinct hash path, exactly the pattern for ocean_fraction_q; domain_warp.rs (T-1026, stateless (seed,body,pos)->offset); detail_scatter.rs voxel_mosaic (T-1084) proves slope-INDEPENDENT position-keyed scatter is established. Longitude variation comes free via position-keyed noise on world-metre coords — no explicit longitude plumbing needed.
|
||||
- Fix shape (from the ticket + rulings): warp the ocean-mask sampling position (invented bays/capes), slope-independent scatter floor whose AMPLITUDE/CHARACTER varies by the two driver tiers (body envelope: planet_class/hydrosphere/atmosphere/radius -> personality incl. erosion-smoothness; position: latitude, glaciation_grade, tectonic_class, climate bands -> fjordy vs smooth vs sharp), plus seeded heterogeneity so same-coast stretches differ. All deterministic seed+body+position (D-227/D-010); continuous across district/region boundaries (D-243 edge-fuzz discipline — character never steps on a line).
|
||||
- Acceptance: (a) before/after zoom ladders (aliveness_probe --render, same bodies/windows as T-1123: GJ380c/GJ820Bc/GJ244Ad at w256/w64/w16) reviewed by Jeroen — the primary artifact; (b) believability metrics moved not regressed; new coastline-legibility criterion work belongs to open Q-123, not this ticket. (c) determinism byte-compare as in T-1123.
|
||||
- Performance: no per-district budget record exists; do the D-246-style check — verify derive_district cost stays same order (~8us was the T-1123 measurement) and the believability/derivation harness budgets stay green.', 'in_progress', 'high', NULL, 'server', 'D-227', '2026-07-16 20:25:20.427', '2026-07-17 05:38:38.565', NULL, '764115aba836c846aba43a62b813ed36', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6RRBF9HHAED5QKTKQCY1G', 'bug', '06FGSJNP8YM537DJCC82ZD6544', 'derive_vegetation is ocean-blind — district maps paint Forest across open ocean', 'T-1123 zoom-ladder finding: derive_vegetation(temp, moisture, elev, near_water) has no ocean/water-mask input — GJ380c w256 renders solid Forest across ~250km of OpenOcean districts (see .cache/screenshots/district-windows gj380c_w256_veg.png vs _morphology.png). Voxel-level water generators mask this in-world, but any district-resolution Atlas view (T-1124) will show forested oceans. Fix: vegetation classification should return a None/Marine class when the district''s morphology/ocean_fraction says water (reuse ocean_fraction_q already computed in derive_district).
|
||||
|
||||
Gap resolution (2026-07-17, Si review + Jeroen): (1) GATE: morphology-derived — pass the already-computed morphology water verdict (OpenOcean/Lake) into the vegetation call; vegetation and morphology can NEVER disagree by construction; no fourth threshold is born. (2) VARIANT: Marine, appended at discriminant 6 (after RiparianThicket=5); update the load-bearing vegetation_class_discriminants_pinned test; document that Ord position is non-semantic (the density-ladder doc does not extend to Marine). (3) SEQUENCING: blocked by T-1125 (edge added) — classify against the warped/invented coastline, not the smooth one. Si facts: the ticket phrase near_water is a TRAP — derive_vegetation''s 4th param is near_perennial_water (riparian/river proximity), unrelated to ocean; do not reuse it. voxel.rs consumers are wildcard-safe (ocean districts route to the WaterBody generator upstream per D-239/T-1082) — no changes needed there. aliveness_probe.rs vegetation_rgb is an EXHAUSTIVE match and will fail to compile until it gets a Marine color — extend the palette deliberately (ocean blue distinct from morphology water tones). D-239 gets an implementation-addendum note recording the Marine variant (its §8 climate-vegetation law predates a water class).', 'in_progress', 'medium', NULL, 'server', NULL, '2026-07-16 20:25:31.484', '2026-07-17 05:38:38.573', NULL, '8f3b6d7cab85fb02ef8e134f8a6fe6e7', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'task', '06FGSJNP8YM537DJCC82ZD6544', 'Frozen bodies read temperate-green on district morphology maps — render glaciation_grade', 'T-1123 zoom-ladder finding: GJ244Ad (frozen planet_class, temp panel pegged at the -60C clamp floor, vegetation solid Barren) still renders temperate-green morphology — the 17-zone MorphologyZone vocabulary (T-1027, FROZEN per its own contract) has no ice/glacial zone, and glaciation_grade is a separate DistrictProfile field nothing renders. Do NOT reopen the frozen vocab by default: the likely fix is rendering glaciation_grade as a modifier/overlay on the morphology color (ice-tinting affected zones) in both the T-1123 probe renderer and the future T-1124 view — or, if the team decides an ice zone belongs in the vocabulary after all, that is a deliberate amendment to the freeze decision, not a drive-by. Images: .cache/screenshots/district-windows gj244ad_w256_morphology.png vs _temp.png.
|
||||
|
||||
Refinement (2026-07-17, Si review): READY. Upstream verified HEALTHY — glaciation derivation (derive_glaciation_grade_from_climate, district_profile.rs:339-366) is correctly wired and even gates the Fjord family; GJ244Ad moisture clears the gate floor. This is purely a rendering gap: aliveness_probe render_window_panels computes the full DistrictProfile and discards .glaciation_grade (line ~458 reads only morphology_zone). SCOPE RULING (lead): probe-only THIS ticket — per-pixel ice tint blended on the morphology panel keyed on glaciation_grade (+ optionally a 6th dedicated glaciation panel; PANEL_NAMES/bufs are array-driven, cheap). The wire+client half (glaciation: Vec<u8> parallel array inside DistrictGridLayer + build_district_grid + protocol.gd + _draw_gen_district — governance-UNCONSTRAINED per the D-226 growth-ceiling reading: the cap governs new top-level Option layers, not per-cell fields inside a shipped layer; elev_q precedent) is DEFERRED to T-1124''s design pass, which owns the which-fields-ship-at-district-resolution question. Freeze contract confirmed: D-239 SS6 — tint is classifier-tuning territory, no MorphologyZone vocab reopen; an ice zone would need its own explicit D-amendment (not pursued).', 'in_progress', 'medium', NULL, 'server', NULL, '2026-07-16 20:25:45.551', '2026-07-17 05:38:38.574', NULL, 'd096e14e3dc8723f6b2b8521316980c4', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6QD5FG9TC2WXTDVA44FPW', 'story', '06FGSJNP8YM537DJCC82ZD6544', 'D-227 invented detail does not feed district classification — the orbit-to-jet-plane bridge ends at ~500km', 'T-1123 zoom-ladder finding (2026-07-16, first-ever look at district-resolution maps; images in .cache/screenshots/district-windows, evidence /tmp/district-windows). At w256 (524km) the district layer reads as coherent geography (coastal band sequences, legible coasts — but bilinear-smooth: rounded corners of ~156km heightmap pixels visible, no invented bays). At w64 (131km) it degenerates to razor-straight gradient stripes; at w16 (33km) a single flat color. MECHANISM (code-grounded by Dudley): derive_district classifies morphology from ocean_fraction_q = RAW BILINEAR of the ocean mask (district_profile.rs:1318 — no domain warp, no scatter), and the D-227 detail-scatter amplitude is slaved to local_slope of the coarse heightmap (1301-1303) — near zero on low-relief coastal plains, so invention collapses exactly where coastlines live. The scatter itself works (visible as cloudy texture in w256 elev panels) but barely feeds classification and never feeds the coastline. NEEDED: the D-227 invention (interpolation + domain warp + detail-scatter) must carry geographic content into district classification — warped coastline sampling, slope-independent scatter floor, invented drainage/relief between heightmap pixels. This is the heart of the Phase-4 deliverable (deterministic walkable-world data that reads as geography) and blocks T-1124''s regional map view being worth looking at below ~500km. Determinism verified byte-identical cross-process — the substrate is sound; it is the content of the invention that is missing. Reproduce: cargo run --bin aliveness_probe -- --body GJ380c --seed 42 --render /tmp/out --window 64.
|
||||
|
||||
Jeroen''s design ruling (2026-07-17, pre-refinement): CRINKLE SHOULD VARY. The invented coastline/terrain detail must not be a single global roughness constant or uniform scatter floor — its amplitude and character vary from place to place. Candidate drivers to pin during refinement/implementation (lead''s interpretation, Si to ground in what derive_district already carries): geological context (tectonic_class, glaciation_grade — fjord coasts jagged, deltas smooth, cliff coasts sharp, alluvial plains gentle), climate signals, and seeded spatial heterogeneity so stretches of the same coast differ. The variation itself must be deterministic (seed+position), per D-227/D-010.
|
||||
|
||||
Jeroen''s ruling, elaborated (2026-07-17): derive coastline variation from EXISTING body settings + lat/long — do not author new knobs. Some places fjordy, some smooth; some planets have tectonics, some are prone to higher erosion. Two driver tiers: (1) BODY-level — the variation already in body parameters (planet_class, atmosphere, hydrosphere, axial tilt, radius, and whatever tectonic/erosion signals exist or are derivable from them) sets each body''s coastline character envelope; (2) POSITION-level — latitude/longitude and the derived district context (glaciation_grade, tectonic_class, climate bands) modulate within it: high-latitude glaciated coasts go fjordy, humid climates erode smooth, arid/tectonic coasts stay sharp. The point: two planets should have recognisably different coastline personalities, and one planet''s coasts should vary by where you are — all deterministic from seed+body+position, zero new authored data.
|
||||
|
||||
Jeroen, further (2026-07-17): ''more ocean is more wet and rainy, for instance'' — hydrosphere/ocean coverage as a tier-1 driver chain: large hydrosphere -> wetter, rainier climate -> HIGHER EROSION -> smoother, more mature coastlines (and more dendritic/eroded relief); small hydrosphere / thin atmosphere -> dry -> sharp, young, uneroded coasts. Erosion-proneness therefore need not be a new authored field — it is derivable from hydrosphere + atmosphere + precipitation, compounding with the tectonic/glaciation drivers. Note for implementation: hydrosphere already feeds moisture derivation (T-1034 fixed the vocab fall-through), so part of this chain exists — the new link is wet/rainy feeding COASTLINE/relief character, not just biome wetness.
|
||||
|
||||
---
|
||||
Gap resolution (2026-07-17, Si review + Jeroen''s rulings):
|
||||
|
||||
1. TILT/D-240: DROPPED — no axial tilt input; D-240 stays intact. latitude_deg alone carries the position-tier polar effects (glaciation_grade is already latitude/temperature-derived). Tier-1 envelope CONFIRMED as what exists: planet_class + hydrosphere + atmosphere + body_radius_km (BodyParams, body_params_reader.rs:14-20). No tectonic-activity or erosion field exists — tectonic_class derives from planet_class (derive_tectonic_class always falls to its planet_class branch in production); erosion-proneness is DERIVED from hydrosphere + atmosphere + precipitation per Jeroen''s chain. Do not hunt for richer body signals; they are not there.
|
||||
|
||||
2. CIRCULARITY: ACCEPT STALE INPUT — glaciation_grade reads the UNWARPED raw-bilinear ocean_fraction_q (one-step-stale, deterministic, coarse ~156km-pixel value anyway). Document on the call site. tectonic_class is cheap to hoist to the top of derive_district (needs only BodyParams).
|
||||
|
||||
3. SCOPE: BOTH PATHS — the invention must feed derive_district (on-demand: probe + future T-1124 view) AND the production derive_district_profile (district_profile.rs:1062-1134, the batch path BodyWorldState stores — currently has NO scatter at all; the paths silently diverged). Implementer may unify the shared classification core if cleaner than duplicating — his call, reviewers verify. Believability goldens (server/tests/golden/believability.json) WILL regenerate — expected and acknowledged via UPDATE_GOLDEN=1; report the metric deltas (contrast/coherence blocks) in the PR as evidence of improvement, not just churn.
|
||||
|
||||
Si verification facts for the implementer:
|
||||
- Direct reusable precedents: climate_edge_warp (region_profile.rs:477-513) — warp-the-sampling with a distinct hash path, exactly the pattern for ocean_fraction_q; domain_warp.rs (T-1026, stateless (seed,body,pos)->offset); detail_scatter.rs voxel_mosaic (T-1084) proves slope-INDEPENDENT position-keyed scatter is established. Longitude variation comes free via position-keyed noise on world-metre coords — no explicit longitude plumbing needed.
|
||||
- Fix shape (from the ticket + rulings): warp the ocean-mask sampling position (invented bays/capes), slope-independent scatter floor whose AMPLITUDE/CHARACTER varies by the two driver tiers (body envelope: planet_class/hydrosphere/atmosphere/radius -> personality incl. erosion-smoothness; position: latitude, glaciation_grade, tectonic_class, climate bands -> fjordy vs smooth vs sharp), plus seeded heterogeneity so same-coast stretches differ. All deterministic seed+body+position (D-227/D-010); continuous across district/region boundaries (D-243 edge-fuzz discipline — character never steps on a line).
|
||||
- Acceptance: (a) before/after zoom ladders (aliveness_probe --render, same bodies/windows as T-1123: GJ380c/GJ820Bc/GJ244Ad at w256/w64/w16) reviewed by Jeroen — the primary artifact; (b) believability metrics moved not regressed; new coastline-legibility criterion work belongs to open Q-123, not this ticket. (c) determinism byte-compare as in T-1123.
|
||||
- Performance: no per-district budget record exists; do the D-246-style check — verify derive_district cost stays same order (~8us was the T-1123 measurement) and the believability/derivation harness budgets stay green.', 'in_progress', 'high', 'dudley', 'server', 'D-227', '2026-07-16 20:25:20.427', '2026-07-17 05:38:51.394', NULL, 'd46e951ec6051bced263c73b6ba8c615', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6RRBF9HHAED5QKTKQCY1G', 'bug', '06FGSJNP8YM537DJCC82ZD6544', 'derive_vegetation is ocean-blind — district maps paint Forest across open ocean', 'T-1123 zoom-ladder finding: derive_vegetation(temp, moisture, elev, near_water) has no ocean/water-mask input — GJ380c w256 renders solid Forest across ~250km of OpenOcean districts (see .cache/screenshots/district-windows gj380c_w256_veg.png vs _morphology.png). Voxel-level water generators mask this in-world, but any district-resolution Atlas view (T-1124) will show forested oceans. Fix: vegetation classification should return a None/Marine class when the district''s morphology/ocean_fraction says water (reuse ocean_fraction_q already computed in derive_district).
|
||||
|
||||
Gap resolution (2026-07-17, Si review + Jeroen): (1) GATE: morphology-derived — pass the already-computed morphology water verdict (OpenOcean/Lake) into the vegetation call; vegetation and morphology can NEVER disagree by construction; no fourth threshold is born. (2) VARIANT: Marine, appended at discriminant 6 (after RiparianThicket=5); update the load-bearing vegetation_class_discriminants_pinned test; document that Ord position is non-semantic (the density-ladder doc does not extend to Marine). (3) SEQUENCING: blocked by T-1125 (edge added) — classify against the warped/invented coastline, not the smooth one. Si facts: the ticket phrase near_water is a TRAP — derive_vegetation''s 4th param is near_perennial_water (riparian/river proximity), unrelated to ocean; do not reuse it. voxel.rs consumers are wildcard-safe (ocean districts route to the WaterBody generator upstream per D-239/T-1082) — no changes needed there. aliveness_probe.rs vegetation_rgb is an EXHAUSTIVE match and will fail to compile until it gets a Marine color — extend the palette deliberately (ocean blue distinct from morphology water tones). D-239 gets an implementation-addendum note recording the Marine variant (its §8 climate-vegetation law predates a water class).', 'in_progress', 'medium', 'dudley', 'server', NULL, '2026-07-16 20:25:31.484', '2026-07-17 05:38:51.406', NULL, '1b963315c1bd8f52f24d11610f511ca0', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
INSERT INTO tickets (record_id, type, parent_record_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('06FPS6TF9XDZPKZY8DHG1T0E2R', 'task', '06FGSJNP8YM537DJCC82ZD6544', 'Frozen bodies read temperate-green on district morphology maps — render glaciation_grade', 'T-1123 zoom-ladder finding: GJ244Ad (frozen planet_class, temp panel pegged at the -60C clamp floor, vegetation solid Barren) still renders temperate-green morphology — the 17-zone MorphologyZone vocabulary (T-1027, FROZEN per its own contract) has no ice/glacial zone, and glaciation_grade is a separate DistrictProfile field nothing renders. Do NOT reopen the frozen vocab by default: the likely fix is rendering glaciation_grade as a modifier/overlay on the morphology color (ice-tinting affected zones) in both the T-1123 probe renderer and the future T-1124 view — or, if the team decides an ice zone belongs in the vocabulary after all, that is a deliberate amendment to the freeze decision, not a drive-by. Images: .cache/screenshots/district-windows gj244ad_w256_morphology.png vs _temp.png.
|
||||
|
||||
Refinement (2026-07-17, Si review): READY. Upstream verified HEALTHY — glaciation derivation (derive_glaciation_grade_from_climate, district_profile.rs:339-366) is correctly wired and even gates the Fjord family; GJ244Ad moisture clears the gate floor. This is purely a rendering gap: aliveness_probe render_window_panels computes the full DistrictProfile and discards .glaciation_grade (line ~458 reads only morphology_zone). SCOPE RULING (lead): probe-only THIS ticket — per-pixel ice tint blended on the morphology panel keyed on glaciation_grade (+ optionally a 6th dedicated glaciation panel; PANEL_NAMES/bufs are array-driven, cheap). The wire+client half (glaciation: Vec<u8> parallel array inside DistrictGridLayer + build_district_grid + protocol.gd + _draw_gen_district — governance-UNCONSTRAINED per the D-226 growth-ceiling reading: the cap governs new top-level Option layers, not per-cell fields inside a shipped layer; elev_q precedent) is DEFERRED to T-1124''s design pass, which owns the which-fields-ship-at-district-resolution question. Freeze contract confirmed: D-239 SS6 — tint is classifier-tuning territory, no MorphologyZone vocab reopen; an ice zone would need its own explicit D-amendment (not pursued).', 'in_progress', 'medium', 'dudley', 'server', NULL, '2026-07-16 20:25:45.551', '2026-07-17 05:38:51.406', NULL, '56b6a078fc17ed79dc85768ab857dd44', 2) ON CONFLICT(record_id) DO UPDATE SET type=excluded.type, parent_record_id=excluded.parent_record_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash);
|
||||
|
||||
Reference in New Issue
Block a user