test(cliffs): the ore effect DECOMPOSES into rejections + cascade (#84) - #141
Merged
Conversation
With every route and every idea closed (#137, #138, #140), the premise itself became the suspect - the lesson of #136. It was re-audited and it SURVIVES, sharper than it went in. No capture: this is a fold of fixtures already on disk. Pure SUPPRESSION. The resources-ON cliff set is a STRICT SUBSET of the resources-OFF set in all three arms - zero cells are lost when the ore is removed. A perturbed field moves cells both ways; only a rejection moves them one way. That is the shape test, and it passes. Exactly ADDITIVE. 27 calcite + 4 geyser = 31 all, the same cells, disjoint. The orientation changes among SURVIVING cells are the destruction cascade. Take the ore-OFF world, destroy exactly the cells the ore rejects, run the port's destroyEnd cascade, and you get the ore-ON world EXACTLY - positions and orientations, in all three arms. So there is no unexplained COMPONENT of the ore effect at all. Every difference between the two worlds, the 5/4/1 orientation changes included, is rejection-plus-cascade. This reframes what is open, and the old framing was what kept it stuck. "What mechanism lets the ore reach a cliff?" already has an answer - a rejection at the apply stage, as #108 and #113 said, with the cascade as its only secondary effect. That is why five routes and three ideas all came back negative: they were hunting a pathway that is already known. What remains open is narrower: WHICH cells get rejected, and by what criterion. makeVulcanusOreRejection reproduces that criterion at precision 1.000 without reaching recall 1, so the gap is a geometry question about specific cells, not a missing route. It is also a second, independent confirmation of the cascade model: #139 confirmed it against the game through a Lua runtime probe; this confirms it against ordinary map-generation output. The spec's own coverage was measured rather than assumed, by planting one-sided destroyEnd no-ops: every side -> fails 3 north -> PASSES south -> fails 3 east -> PASSES west -> fails 2 So these rejections only ever trim SOUTH and WEST ends and this fold covers two of four directions; #139's probe covers north. The spec says so, so a green run here is not misread as an end-to-end cascade guard. Verification: pnpm run verify green - 1543 app (up 9) + 13 worker + 3 container tests, 0 warnings, exit 0. Measurement only; shipping accuracy unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012VRsPwmSwjnFKVSS6jx9Mo
This was referenced Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With every route and every idea closed (#137, #138, #140), the premise itself became the suspect — the lesson of #136. It was re-audited and it survives, sharper than it went in. No capture: this is a fold of fixtures already on disk.
What the fold shows
destroyEndcascade → you get the ore-ON world exactly, positions and orientations, in all three arms.So there is no unexplained component of the ore effect at all. Every difference between the two worlds — the 5 / 4 / 1 orientation changes included — is rejection-plus-cascade.
Why this matters more than the numbers
It reframes what is open, and the old framing is what kept it stuck. "What mechanism lets the ore reach a cliff?" already has an answer: a rejection at the apply stage, exactly as #108 and #113 said, with the cascade as its only secondary effect. That is why five routes and three ideas all came back negative — they were hunting a pathway that is already known.
What remains open is narrower and far more tractable: which cells get rejected, and by what criterion.
makeVulcanusOreRejectionalready reproduces that criterion at precision 1.000 without reaching recall 1, so the gap is a geometry question about specific cells, not a missing route through the generator.A second, independent confirmation of the cascade
#139 confirmed the cascade against the game through a Lua runtime probe. This confirms the same model against ordinary map-generation output, via a completely different instrument. The two agree.
Coverage, measured rather than assumed
Planting one-sided
destroyEndno-ops:These rejections only ever trim south and west ends, so this fold covers two of the four directions — it is not a whole-model guard alone. #139's probe covers north (a
side === 0plant fails both its ON arms). The spec says so explicitly, so a green run here is not misread as end-to-end cascade verification.Verification
pnpm run verifygreen — 1543 app (up 9) + 13 worker + 3 container tests, 0 warnings, exit 0. Measurement only; shipping accuracy unchanged.🤖 Generated with Claude Code
https://claude.ai/code/session_012VRsPwmSwjnFKVSS6jx9Mo