Skip to content

Grade the overlay water skip and the mark painters in Rust (#227) - #358

Merged
wormeyman merged 1 commit into
mainfrom
feat/227-overlay-water-and-marks
Aug 30, 2026
Merged

Grade the overlay water skip and the mark painters in Rust (#227)#358
wormeyman merged 1 commit into
mainfrom
feat/227-overlay-water-and-marks

Conversation

@wormeyman

Copy link
Copy Markdown
Collaborator

Second of the cheap-tier delete-with-loss ports, and it closes the same claim in
four deleted specs at once. renderCliffs, renderRocks, renderEnemies and
renderResources each carried a "never paints over water" test. Rust has the
predicate - is_nauvis_water, derived from the palette so it cannot drift - and
every overlay passes it, but the only test of it was the tree one.

paint_mark and paint_mark_skipping had no test at all, though every
placement overlay on both planets goes through them.

Two plants shaped the water test, and both were mine

The obvious form of this test is worth writing down as a dead end, because it
looks convincing:

attempt why it does not grade anything
render each overlay, assert no water pixel moved Nearly vacuous. Rocks are excluded from water at PLACEMENT time, so in an ordinary window no mark ever gets the chance to spill onto water. Deleting the rock overlay's skip entirely left it green.
build an all-water base from a colour sampled out of a render Vacuous the other way. The window handed back deepwater, so a predicate that stopped recognising SHALLOW water also passed.

Both were planted and observed, not reasoned about. The shipped test names both
tiles from the palette rather than sampling one, and under the shallow-water
plant it now fails while all 34 other tests pass.

It also paints the same mark on a land base and requires all 25 pixels, so a
painter that does nothing cannot satisfy it.

The rest

  • every_nauvis_overlay_paints_and_leaves_water_alone is kept, and is
    deliberately described as the weaker check it is. What it does pin is that
    each overlay paints SOMETHING in a real window. The enemy arm runs at a
    different origin because enemy bases are excluded from the starting area by
    design - the anti-vacuity guard caught that rather than passing silently, and
    that is how the window was chosen.
  • Three paint_mark tests: the (2r+1) square, clipping at the edge instead of
    wrapping, and consulting the skip predicate per pixel rather than per mark.

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

Co-authored-by: Claude Opus 5 (1M context) noreply@anthropic.com

@wormeyman
wormeyman force-pushed the feat/227-overlay-water-and-marks branch from 3d1cecf to 43c7577 Compare August 30, 2026 06:31
Second of the cheap-tier delete-with-loss ports, and it closes the same claim in
four deleted specs at once. `renderCliffs`, `renderRocks`, `renderEnemies` and
`renderResources` each carried a "never paints over water" test. Rust has the
predicate - `is_nauvis_water`, derived from the palette so it cannot drift - and
every overlay passes it, but the only test of it was the tree one.

`paint_mark` and `paint_mark_skipping` had no test at all, though every
placement overlay on both planets goes through them.

## Two plants shaped the water test, and both were mine

The obvious form of this test is worth writing down as a dead end, because it
looks convincing:

| attempt | why it does not grade anything |
| --- | --- |
| render each overlay, assert no water pixel moved | **Nearly vacuous.** Rocks are excluded from water at PLACEMENT time, so in an ordinary window no mark ever gets the chance to spill onto water. Deleting the rock overlay's skip entirely left it green. |
| build an all-water base from a colour sampled out of a render | **Vacuous the other way.** The window handed back deepwater, so a predicate that stopped recognising SHALLOW water also passed. |

Both were planted and observed, not reasoned about. The shipped test names both
tiles from the palette rather than sampling one, and under the shallow-water
plant it now fails while all 34 other tests pass.

It also paints the same mark on a land base and requires all 25 pixels, so a
painter that does nothing cannot satisfy it.

## The rest

- `every_nauvis_overlay_paints_and_leaves_water_alone` is kept, and is
  deliberately described as the weaker check it is. What it does pin is that
  each overlay paints SOMETHING in a real window. The enemy arm runs at a
  different origin because enemy bases are excluded from the starting area by
  design - the anti-vacuity guard caught that rather than passing silently, and
  that is how the window was chosen.
- Three `paint_mark` tests: the `(2r+1)` square, clipping at the edge instead of
  wrapping, and consulting the skip predicate per pixel rather than per mark.

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

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@wormeyman
wormeyman force-pushed the feat/227-overlay-water-and-marks branch from 43c7577 to bbd5b12 Compare August 30, 2026 06:44
@wormeyman
wormeyman merged commit 9cb6481 into main Aug 30, 2026
9 checks passed
@wormeyman
wormeyman deleted the feat/227-overlay-water-and-marks branch August 30, 2026 06:56
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