test(cliffs): the residual is a SUPPRESSION, and the wider sweep is not worth capturing (#84) - #109
Merged
Merged
Conversation
…ot worth capturing (#84) #108's handoff proposed ~40 more headless captures - "a sweep well outside [700,900] is the measurement that would close the gap". Don't capture it. `oracle-vulcanus-cliff-bands`'s constant1 arm already covers the SAME region under the SAME collapsed rule at 70..1150, so its observations fold straight into the fine sweep's and answer the question for free. **The field's exoneration is much wider than #107 stated.** That PR checked 998 two-sided brackets and left the ONE-SIDED bounds unused - but those falsify just as well, since "this corner is above 910" is refuted by a port value of 800. **1,711 one-sided bounds, 0 contradicting the port.** **The silence is not the field running out of range.** Widening the window 5x rescues exactly **1** of the 681 corners the fine sweep left unbracketed. 294 corners whose port value sits in [700,900] get no constraint of any kind across all 50 levels, while the port asserts **8,906** crossings on their edges over the same levels - and there is not one of the 294 where the port is silent too. A field error would have to move those corners outside [70,1150] entirely AND leave all 1,711 one-sided bounds satisfied. **Two suppressor candidates refuted, each against a base rate:** | population | n | rock in box | default gate shut | | --- | --- | --- | --- | | matched (base) | 18654 | 7.03% | 46.0% | | surplus | 1200 | 10.58% | 51.4% | | wrong orientation | 693 | 5.05% | 44.9% | Rocks - `wouldCollide`'s unported ENTITY half, the obvious candidate - do not survive: 1.5x on the surplus is weak and the wrong-orientation cells are ANTI-correlated at 5.05% against 7.03%. A suppressor cannot be anti-correlated with half the defect it is supposed to cause. **The gate row is worth more than the refutation it came from.** It was a confound check, not a candidate: if routing `cliffiness` at a literal 1 had silently not taken, the whole residual would just be the gate. The game emits **8,588** cells the default gate would have blocked outright, so the routing genuinely opened it - the collapsed-rule oracle that #106, #107 and #108 all rest on is not confounded on this axis, which had never been checked. Excluded for the suppression now: the field (twice over), rocks, the cliffiness gate, the smoothing, the repair, and since #108 the STAGE. What remains is WHICH cells the game refuses, and the list is stated as open - #106's trap is available here, so the next candidate needs a positive measurement rather than promotion by elimination. Item of #84; the issue stays open. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ExK3ASs5i2KMm9NwWqnZuj
This was referenced Aug 3, 2026
wormeyman
added a commit
that referenced
this pull request
Aug 3, 2026
…169 (#84) (#111) #110 asked for a lever that isolates the non-ore suppressor the way `autoplace_controls` isolated the ore, with the suspect unnamed. This adds two, through `map_gen_settings.autoplace_settings` - a knob `autoplace_controls` cannot reach, since a control only touches prototypes that name one and the rocks, chimneys and `crater-cliff` name none. **No placed entity suppresses a Vulcanus cliff.** Switching the whole `entity` category off removes 409 rocks, 115 chimneys, 45 rock explosions and all 8 `crater-cliff`s, and the cliff set does not move by one cell. Rocks were previously refuted only statistically against our own rock model (#109); this is the class excluded positively, with the lever's own proof in the same run three ways. **Cliffs do not collide with each other**, refuted by the game's own output rather than a model: 293 pairs of its own cliffs have overlapping collision rectangles. **Lava suppresses 169 cells and our rejection gets 166, with 5 false positives** - precision 0.9708, recall 0.9822, the first real score that rule has had. Its errors ARE the residual: the 3 it misses are 3 of the 10 surplus cells and the 5 it invents include all 3 of the port's missing ones. They point both ways, so the box's shape is wrong rather than its size - left measured and unfixed, per #88. **With neither ore nor lava, recall is 1.0000** (1049 matched, 9 wrong, 12 surplus, 0 missing of 1058). The port produces a strict superset of the game's cells, so everything left is over-placement and the question is now what else the game refuses. Claude-Session: https://claude.ai/code/session_015C8AbtvYMdc7ed3rnAZbhP Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
#108's own handoff proposed ~40 more headless captures. This says don't.
oracle-vulcanus-cliff-bands'sconstant1arm already covers the same region under the same collapsed rule at 70..1150, so its observations fold straight into the fine sweep's and answer the question for free.The field's exoneration is much wider than #107 stated
#107 checked 998 two-sided brackets and left the one-sided bounds unused. Those falsify just as well - "this corner is above 910" is refuted by a port value of 800.
The silence is not the field running out of range
Widening the window 5x (70..1150 rather than 700..900) rescues exactly 1 of the 681 corners the fine sweep left unbracketed. And 294 corners whose port value sits in
[700,900]get no constraint of any kind across all 50 levels - while the port asserts 8,906 crossings on their edges over those same levels, with not one of the 294 where the port is silent too.For a field error to produce that, it would have to move those corners outside
[70, 1150]entirely and leave all 1,711 one-sided bounds elsewhere satisfied. The two sides are not disagreeing about a value; they are disagreeing about whether anything is emitted.Two suppressor candidates refuted, each against a base rate
Rocks -
Surface::wouldCollide's unported ENTITY half, the obvious candidate - do not survive. 1.5x on the surplus is weak, and the wrong-orientation cells are anti-correlated at 5.05% against 7.03%. A suppressor cannot be anti-correlated with half the defect it is supposed to cause.The gate row is worth more than the refutation it came from. It was a confound check, not a candidate: if routing
cliffinessat a literal1had silently not taken, the whole[1500,1500]residual would just be the gate. The game emits 8,588 cells the default gate would have blocked outright, so the routing genuinely opened it. The collapsed-rule oracle that #106, #107 and #108 all rest on is not confounded on this axis - which had never been checked.Where that leaves it
Excluded for the suppression: the field (twice over, by brackets and by one-sided bounds), rocks, the cliffiness gate, the smoothing, the repair, and - since #108 - the stage.
What remains is which cells the game refuses, and the list is stated as open rather than closed. #106's trap is available here, so the next candidate needs a positive measurement rather than promotion by elimination.
Item of #84; the issue stays open.
🤖 Generated with Claude Code
https://claude.ai/code/session_01ExK3ASs5i2KMm9NwWqnZuj