chore(meta): docs/build sweep + tooling test gate (T-1069, T-1066)

- make test-tooling: planet-gen determinism guard + import_economics
  --dry-run, wired into pre-push on TOOLING_CHANGED; ruff widened to
  E4/E7/E9/F/W (90 safe auto-fixes applied; E402/E702/F841 ignored with
  documented counts)
- one-generator reality fixed in DEVOPS.md, asset-pipeline rule, CLAUDE.md
  (import_economics sole generator since #951/D-223); dead check-protocol
  target deleted; DEVOPS hook/config sections rewritten from the actual
  hook sources; team-patterns gate description updated (client+tooling)
- project.yaml: 0.2.0 → 0.4.0 per the 0.{phase}.{n} scheme, description
  refreshed from the v0.1 Sova narration to cascade reality
- stale comment sweep: voxel.rs stub claims (all 8 families implemented),
  cascade.rs TODO recited to T-1044, main.rs D-192 handshake claim,
  relationships.rs/chunk_streaming.rs version targets → phase language
- gitignore: client/settings.db* e2e-run artifacts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 16:22:55 +02:00
co-authored by Claude Fable 5
parent 0bd895fcac
commit 346d87df7a
47 changed files with 280 additions and 180 deletions
+1 -1
View File
@@ -216,7 +216,7 @@ pub fn run_cascade_from_heightmap(
// result nor the TerrainAnalysis is stored on Layer1Output, so we re-run both
// here. Pure → determinism preserved, but the drainage re-run is NOT free at
// the ~6 000-regions/body working scale (D-203).
// PERF/TODO(T-1028): cache TerrainAnalysis on Layer1Output to drop this
// PERF/TODO(T-1044): cache TerrainAnalysis on Layer1Output to drop this
// redundant drainage pass, and validate the combined cost against the D-239 §10
// ~45 ms/body budget in the T-1031 verification harness. This is now a LIVE
// production cost: T-1032 wired the real body_params read, so every analyzed
+13 -21
View File
@@ -38,14 +38,14 @@
//! eviction is by generation-counter LRU (oldest entry evicted when capacity
//! is reached). Never written to disk.
//!
//! ## Family dispatch (D-239 §5, T-1028)
//! ## Family dispatch (D-239 §5, T-1028/T-1029)
//!
//! The 8-family tree is dispatched through `MorphologyFamily`. Only
//! `AlluvialPlain` is implemented here (T-1028). The other 7 families are
//! T-1029: their stubs return the AlluvialPlain output as a documented
//! placeholder — **production will not crash on them**, but the output is not
//! the correct final geometry for that family. The stubs are clearly marked
//! `// T-1029 — NOT YET IMPLEMENTED` so T-1029 can find and replace them.
//! The 8-family tree is dispatched through `MorphologyFamily`. All 8 family
//! generators are implemented: `AlluvialPlain` (the D-239 §5 fallback) landed
//! in T-1028; the other 7 (LavaField, FjordWall, CliffCoast, BraidedDelta,
//! DuneStrand, IncisedGorge, MeanderReach) landed in T-1029. Flat/water zones
//! without a dedicated family (OpenOcean, Lake, TidalFlat, Wetland) map to
//! `AlluvialPlain` per D-239 §5.
//!
//! ## D-010 compliance
//!
@@ -249,33 +249,25 @@ pub type VoxelPos = (i32, i32);
/// pre-computed at zone classification time (RegionProfile); the family is the
/// structural decision that drives voxel geometry.
///
/// Only `AlluvialPlain` is implemented in T-1028. Other families return a
/// documented placeholder that falls back to AlluvialPlain geometry (not
/// `panic!` / `unimplemented!`). T-1029 replaces the stubs.
/// All 8 families have dedicated generators: `AlluvialPlain` (T-1028, also the
/// D-239 §5 fallback for flat/water zones) and the other 7 (T-1029).
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
enum MorphologyFamily {
/// Lava field / shield slope. Requires TectonicClass::Volcanic (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
LavaField,
/// Fjord wall. Requires GlaciationGrade ≥ 2 (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
FjordWall,
/// Cliff coast. High slope + coastal (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
CliffCoast,
/// Braided delta. Very flat + low elevation + coastal (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
BraidedDelta,
/// Dune strand. Low slope + coastal + arid (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
DuneStrand,
/// Incised gorge / mountain pass. High slope + inland + high elev (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
IncisedGorge,
/// Meander reach. Gentle slope + water presence (D-239 §5).
/// T-1029 — NOT YET IMPLEMENTED: falls back to AlluvialPlain.
MeanderReach,
/// Alluvial plain — fallback (D-239 §5). **IMPLEMENTED** in T-1028.
/// Alluvial plain — the D-239 §5 fallback family (T-1028).
AlluvialPlain,
}
@@ -301,8 +293,8 @@ fn zone_to_family(zone: &MorphologyZone) -> MorphologyFamily {
MorphologyFamily::IncisedGorge
}
MorphologyZone::MeanderReach | MorphologyZone::RiverBank => MorphologyFamily::MeanderReach,
// AlluvialPlain fallback covers: AlluvialPlain, OpenOcean, Lake, TidalFlat,
// Wetland — any zone without a fully-implemented T-1029 generator.
// AlluvialPlain fallback covers the flat/water zones without a dedicated
// family: AlluvialPlain, OpenOcean, Lake, TidalFlat, Wetland (D-239 §5).
MorphologyZone::AlluvialPlain
| MorphologyZone::OpenOcean
| MorphologyZone::Lake
@@ -401,7 +393,7 @@ pub fn derive_voxel_column(
// AlluvialPlain generator (T-1028, D-239 §5 fallback)
// ---------------------------------------------------------------------------
/// AlluvialPlain voxel generator — the only fully implemented family in T-1028.
/// AlluvialPlain voxel generator — the D-239 §5 fallback family (T-1028).
///
/// Flat floodplain with:
/// - `Soil` terrain material (D-239 §8 Soil law: rolling/floodplain)