core: Tunnel Network cave planner with a continuous backbone floor (L134, evaluator v230)

Backbone rooms and edges share one floor profile h(s); side branches keep flat floors; overlap backing capped at the
lower floor. Default seed: route audit 0 blocked / 0 unsupported / 0 grade over 51,975 capsule samples; passages
open; fast tier, seams, Clang/GCC W1/W8/W12 green. Open: seed 1 (24 blocked at the 2-3 arrival mouth) and seed 2
(22 unsupported at passage 1-2) fail composed audits; near-ready +6..+14% on layers 1-3. Not for merge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-31 14:03:35 +01:00
1 parent 4a97023b24
commit a3c8e3687d
23 files changed
+338 -53

No files matched your search

+9 -9
View File
@@ -125,11 +125,11 @@ RECIPE_RE = re.compile(
def owner_hash_baseline(recipe: str, style: int) -> tuple[Path, str]:
if recipe == "surface-world" and style == 1:
return (BASELINES / "owner-hash/canonical/owner-hash-surface-world-style1-v227.baseline",
"L130-v227-reach-units")
return (BASELINES / "owner-hash/canonical/owner-hash-surface-world-style1-v230.baseline",
"L134-v230-continuous-backbone")
if recipe == "floating-islands" and style == 2:
return (BASELINES / "owner-hash/canonical/owner-hash-floating-islands-style2-v227.baseline",
"L130-v227-reach-units")
return (BASELINES / "owner-hash/canonical/owner-hash-floating-islands-style2-v230.baseline",
"L134-v230-continuous-backbone")
raise VerificationFailure(f"no pinned owner hash baseline for {recipe} style {style}")
@@ -1078,7 +1078,7 @@ def run_ore_vein_hash_controls(runner: VerificationRunner) -> None:
def cavern_audit_cameras(layout_path: Path) -> list[tuple[float, float, float, float, float]]:
layout = json.loads(layout_path.read_text(encoding="utf-8"))
edges = layout.get("cavern_edges", [])
if layout.get("cavern_graph_vocabulary_version") != 1 or len(edges) != 1:
if layout.get("cavern_graph_vocabulary_version") not in (1, 2) or len(edges) != 1:
raise VerificationFailure(f"missing one resolved cavern edge in {layout_path}")
points = [[value / 1_000_000.0 for value in point]
for point in edges[0]["control_points_um"]]
@@ -1152,7 +1152,7 @@ def run_native_caves_field_audit(runner: VerificationRunner, binary: Path) -> tu
r"false_all_air=REJECTED false_all_solid=REJECTED .*status=PASS$"),
"brute-force interval proofs have zero misses and reject both false-proof controls")
layout = json.loads(layout_path.read_text(encoding="utf-8"))
graph_ok = (layout.get("cavern_graph_vocabulary_version") == 1
graph_ok = (layout.get("cavern_graph_vocabulary_version") in (1, 2)
and len(layout.get("cavern_rooms", [])) == 1
and len(layout.get("cavern_edges", [])) == 2)
runner.require(f"native-caves-field-{compiler}:resolved-graph", graph_ok,
@@ -1235,7 +1235,7 @@ def run_native_lattice_field_audit(runner: VerificationRunner, binary: Path) ->
rooms = layout.get("cavern_rooms", [])
lattice_rows = [row for row in layout.get("strates", [])
if row.get("strate_index") == 1]
graph_ok = (layout.get("cavern_graph_vocabulary_version") == 1
graph_ok = (layout.get("cavern_graph_vocabulary_version") in (1, 2)
and len(edges) >= 9 and len(rooms) >= 8
and len(lattice_rows) == 1
and lattice_rows[0].get("generator_kind") == "Maze"
@@ -1261,7 +1261,7 @@ def lattice_camera_positions(layout_path: Path, count: int = 4) -> list[tuple[fl
edges = sorted(layout.get("cavern_edges", []), key=lambda edge: edge["stable_id"])
helix = next((edge for edge in edges
if edge["stable_id"] == "lattice/spine/01-helix-ramp-v1"), None)
if layout.get("cavern_graph_vocabulary_version") != 1 or helix is None:
if layout.get("cavern_graph_vocabulary_version") not in (1, 2) or helix is None:
raise VerificationFailure(f"missing resolved lattice helix in {layout_path}")
helix_points = [[value / 1_000_000.0 for value in point]
for point in helix.get("polyline_um", [])]
@@ -1414,7 +1414,7 @@ def run_lattice_performance(runner: VerificationRunner, binary: Path,
def cave_camera_positions(layout_path: Path, count: int = 4) -> list[tuple[float, float, float, float, float]]:
layout = json.loads(layout_path.read_text(encoding="utf-8"))
edges = sorted(layout.get("cavern_edges", []), key=lambda edge: edge["stable_id"])
if layout.get("cavern_graph_vocabulary_version") != 1 or len(edges) != 2:
if layout.get("cavern_graph_vocabulary_version") not in (1, 2) or len(edges) != 2:
raise VerificationFailure(f"missing two resolved cave spine edges in {layout_path}")
rng = _SplitMix64(CAVES_CAMERA_SWEEP_SEED)
cameras = []