Skip to content

test(cliffs): four fresh regions - the port generalises, the residual is on chunk borders (#84) - #131

Merged
wormeyman merged 1 commit into
mainfrom
test/residual-four-more-regions
Aug 4, 2026
Merged

test(cliffs): four fresh regions - the port generalises, the residual is on chunk borders (#84)#131
wormeyman merged 1 commit into
mainfrom
test/residual-four-more-regions

Conversation

@wormeyman

Copy link
Copy Markdown
Collaborator

Two things were stuck at a sample size rather than at an idea. The unexplained population was 14 cells, and every structural test on it landed at 1.4-1.9 sigma against its base rate - which is what a partition looks like at n=14 whether or not a cause exists. And the shipped accuracy figure was measured on three regions, chosen years into this investigation for reasons unrelated to sampling.

Four more regions with the ore lever, ~2.5s a capture.

The port generalises - measured where it was never fitted

original 3 regions the 4 new ones
raw cells 1756 2789
game cliffs 1531 2590
raw is a strict superset yes yes, all four
destruction predicate precision 0.971 0.9877
destruction predicate recall 0.889 0.8090
false rejections 6 2

[3000,3000] is exact - 362 raw, 362 game, nothing to explain - and it is also the one region with no resource entity at all, which is what every result from #123 onward predicts.

The chunk-border enrichment, replicated out of sample

unexplained on chunk border base rate
original 3 regions 14 9 (64.3%) 45.0%
the 4 new ones 13 9 (69.2%) 47.2%
combined 27 18 (66.7%) ~46.3%

Read the status before the number. The replication is 1.59 sigma on its own and the combined figure about 2.1 - short of decisive, and this is a lead, not a result. The PR does not claim otherwise and neither does the spec.

What changed is not the significance but the kind of evidence. The border hypothesis was formed on the original 14, dismissed there as noise at 1.45 sigma, and is tested here on 13 cells captured afterwards, in regions chosen before any of them was known. A prediction that survives fresh data is worth something the same 64% was worth nothing as.

Why it is worth pursuing

Chunk borders are updateConnections' entire domain. It is the one rule in the pipeline that treats border cells differently; our port measures it firing zero times; and applyCliffConnections documents its model of the rule as an upper bound on how much it removes.

#122 promoted that gate from inert to load-bearing. #127 showed it cannot be scored from map-generation output at all. An enrichment pointing at the same rule from a third, independent direction is the first positive evidence that it does anything.

And n is 27 now

That is the part that actually unblocks the next attempt. Every structural test on this residual just doubled its power. At n=14 nothing could be settled; at 27 the border question is answerable with one more capture round of the same size.

Verification

pnpm run verify green - 1493 app (up 6) + 13 worker + 3 container tests, 0 warnings, exit 0. New fixture + PROVENANCE.json entry. Nothing shipping changed.

🤖 Generated with Claude Code

https://claude.ai/code/session_015jeznBmWiZywUc7cBw9xFU

… is on chunk borders (#84)

Two things were stuck at a sample size rather than at an idea. The unexplained
population was 14 cells, and every structural test on it landed at 1.4-1.9 sigma
against its base rate - what a partition looks like at n=14 whether or not a
cause exists. And the shipped accuracy figure was measured on THREE regions,
chosen years into this investigation for reasons unrelated to sampling.

Four more regions with the ore lever, ~2.5s a capture.

THE PORT GENERALISES, measured where it was never fitted:

|                     | original 3 | the 4 new |
| ---                 | ---        | ---       |
| raw cells           | 1756       | 2789      |
| game cliffs         | 1531       | 2590      |
| raw a strict SUPERSET | yes      | yes, all four |
| predicate precision | 0.971      | 0.9877    |
| predicate recall    | 0.889      | 0.8090    |
| false rejections    | 6          | 2         |

[3000,3000] is exact - 362 raw, 362 game, nothing to explain - and is also the
one region with no resource entity at all, which is what every result from #123
onward predicts.

THE CHUNK-BORDER ENRICHMENT REPLICATES OUT OF SAMPLE:

|                | unexplained | on border  | base rate |
| ---            | ---         | ---        | ---       |
| original 3     | 14          | 9 (64.3%)  | 45.0%     |
| the 4 new      | 13          | 9 (69.2%)  | 47.2%     |
| combined       | 27          | 18 (66.7%) | ~46.3%    |

Read the status before the number. The replication is 1.59 sigma alone and the
combined figure ~2.1 - short of decisive, and this is a LEAD not a result. What
changed is the KIND of evidence: the hypothesis was formed on the original 14,
dismissed there as noise at 1.45 sigma, and is tested here on 13 cells captured
afterwards in regions chosen before any of them was known.

Why it matters: chunk borders are `updateConnections`' entire domain - the one
rule that treats border cells differently, which our port measures firing ZERO
times and models as an UPPER bound. #122 promoted its gate from inert to
load-bearing; #127 showed it cannot be scored from map-gen output. This is the
first positive evidence that it does anything.

And n is 27 now, which is what unblocks the next attempt: at 14 nothing could be
settled; at 27 the border question is answerable with one more capture round.

New fixture + PROVENANCE entry.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jeznBmWiZywUc7cBw9xFU
@wormeyman
wormeyman merged commit 0a85b21 into main Aug 4, 2026
6 checks passed
@wormeyman
wormeyman deleted the test/residual-four-more-regions branch August 4, 2026 03:28
wormeyman added a commit that referenced this pull request Aug 4, 2026
…, 2.91 sigma (#84) (#132)

#131 reported a chunk-border enrichment as a lead and said one more capture
round would settle it. It did.

| batch                 | unexplained | on border  | base  | z    |
| ---                   | ---         | ---        | ---   | ---  |
| original 3 regions    | 14          | 9 (64.3%)  | 45.0% | 1.45 |
| +4 regions (#131)     | 13          | 9 (69.2%)  | 47.2% | 1.59 |
| +8 regions (here)     | 17          | 12 (70.6%) | 46.0% | 2.03 |
| combined, 15 regions  | 44          | 30 (68.2%) | ~46.3%| 2.91 |

p is about 0.002. This is a RESULT, not a lead.

THE PREDICTION WAS REGISTERED BEFORE THE CAPTURE, in
`captureVulcanusCliffEntitiesBorderBatch`'s own doc comment: ~26 more
unexplained cells with ~17 on a border if the enrichment is real at ~66%,
combined ~2.9 sigma - and a FALL back toward the base rate if it is noise. It
came back 12 of 17, at a higher rate on fewer cells, combined landing on 2.91.
Effect size stable across all three batches (64-71%) against a stable base rate
(45-47%).

The first row was correctly dismissed as noise when it was all there was. Its
value came from being written down so it could be re-tested once n grew.

WHY IT POINTS AT `updateConnections`: chunk borders are that rule's entire
domain - `applyCliffs` gates it on `tryToAddCliff`'s fifth argument, which is
`!onChunkBorder`. Nothing else in the pipeline treats border cells differently.
And it is the rule the port has the weakest grip on: measured firing ZERO times
on our own set, modelled as an UPPER bound (the one place the port is knowingly
not a transcription), promoted from inert to load-bearing by #122, and shown by
#127 to be unscoreable from map-gen output. This is the first positive evidence
it does anything.

WHAT IT DOES NOT SAY: not that those 30 are destroyed BY updateConnections. An
enrichment on a rule's domain is not the rule firing, and 14 of the 44 are not
on a border at all - if this is one cause it is not the only one.

The port also generalises: 5581 raw / 5134 game cliffs, strict superset in all
eight regions, precision 0.9818, recall 0.8434. Two regions have no unexplained
cells and [-1600,3200] reproduces the game exactly (686 = 686), so the residual
is concentrated rather than a background rate - itself a constraint on any
mechanism proposed for it.

New fixture + PROVENANCE entry; capture ~31s.


Claude-Session: https://claude.ai/code/session_015jeznBmWiZywUc7cBw9xFU

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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