Skip to content

test(cliffs): the ore effect DECOMPOSES into rejections + cascade (#84) - #141

Merged
wormeyman merged 1 commit into
mainfrom
cliffs-ore-decomposition
Aug 4, 2026
Merged

test(cliffs): the ore effect DECOMPOSES into rejections + cascade (#84)#141
wormeyman merged 1 commit into
mainfrom
cliffs-ore-decomposition

Conversation

@wormeyman

Copy link
Copy Markdown
Owner

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

  • 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 sets, not merely equal counts.
  • 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 → 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. makeVulcanusOreRejection already 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 destroyEnd no-ops:

planted no-op this spec
every side fails 3
south fails 3
west fails 2
north passes
east passes

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 === 0 plant 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 verify green — 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

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
@wormeyman
wormeyman merged commit 15761b6 into main Aug 4, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant