From 5e3e68ca113335a00942772cee770ff50041385e Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 13 Apr 2026 18:04:17 +0000 Subject: [PATCH] docs: regenerate platformer.gif and lock it as a CI invariant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The optimizer fix in the previous commit changes the observable gameplay of `examples/platformer.ne` — pre-fix the player got spurious enemy-1 stomp bounces every time coin 2 drifted into its pickup window, so the README demo gif showed the player bouncing mid-air around emu frames 85-125 instead of walking through the coin at ground level. Regenerate `docs/platformer.gif` from the fixed compiler so the README matches reality. To stop this from drifting again, treat the gif the same way the repo already treats `examples/*.nes`: - `gifenc` + `jsnes` + the harness are deterministic, so a fresh recording byte-matches a valid commit. Verified across two back-to-back runs (identical md5). - `.github/workflows/ci.yml`'s `emulator` job now renders the gif into `/tmp/platformer.gif` and `cmp`s it against `docs/platformer.gif`, emitting a `::error` annotation pointing at the exact rerun command if the committed copy is stale. This piggybacks on the existing puppeteer + node setup, adding ~20s to the job. - `scripts/pre-commit` runs the same check locally, but only when `examples/platformer.{ne,nes}`, `tests/emulator/record_gif.mjs`, or `tests/emulator/harness.html` is staged, and only if `tests/emulator/node_modules` is already installed. Cold-start puppeteer is ~20s — too slow to pay on every commit, but cheap enough to pay when something gif-relevant changed. - The header of `tests/emulator/record_gif.mjs` and the project conventions section of `CLAUDE.md` both spell out the rerun command and the invariant, so the next agent doesn't have to re-derive any of this. https://claude.ai/code/session_013Bi4H4YQ5or5HtMB4doUFi --- .github/workflows/ci.yml | 15 +++++++++++++++ CLAUDE.md | 16 ++++++++++++++++ docs/platformer.gif | Bin 448465 -> 448471 bytes scripts/pre-commit | 22 ++++++++++++++++++++++ tests/emulator/record_gif.mjs | 12 ++++++++++++ 5 files changed, 65 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11a14be..9c0ab23 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -146,6 +146,21 @@ jobs: - name: Diff each ROM's framebuffer against its golden working-directory: tests/emulator run: node run_examples.mjs + - name: Verify docs/platformer.gif is up to date + # The README embeds docs/platformer.gif as the project demo. + # gifenc + jsnes are deterministic, so rebuilding the gif from + # the current compiler should byte-match the committed copy. + # If it doesn't, the contributor changed the compiler / source + # / harness in a way that affects the observable gameplay of + # platformer.ne but forgot to regenerate the gif — the fix is + # the exact command printed in the error. + working-directory: tests/emulator + run: | + node record_gif.mjs platformer 360 2 /tmp/platformer.gif + if ! cmp -s ../../docs/platformer.gif /tmp/platformer.gif; then + echo "::error file=docs/platformer.gif::committed docs/platformer.gif is stale; rerun \`node tests/emulator/record_gif.mjs platformer 360 2 docs/platformer.gif\` and commit the new gif" + exit 1 + fi - name: Upload actual + diff PNGs on failure if: failure() uses: actions/upload-artifact@v4 diff --git a/CLAUDE.md b/CLAUDE.md index 4df3038..c36c8d4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -22,6 +22,22 @@ re-derive the project conventions from scratch. tmp path and fails if the committed version differs, pointing at the exact `cargo run -- build examples/.ne` to run. The pre-commit hook under `scripts/pre-commit` catches this locally. +- **`docs/platformer.gif` is committed** and embedded in the + top-level README as the project demo. `gifenc` + `jsnes` are + deterministic, so the gif's bytes are a function of the compiler, + the runtime, the harness, and `examples/platformer.ne`. Any change + to those that affects the first ~6 seconds of observable platformer + gameplay must be followed by regenerating the gif: + + ```bash + node tests/emulator/record_gif.mjs platformer 360 2 docs/platformer.gif + ``` + + and committing it in the same change. CI's `emulator` job renders + a fresh gif and fails if the committed one doesn't byte-match. The + pre-commit hook rebuilds the gif when `platformer.ne`, `platformer.nes`, + `record_gif.mjs`, or `harness.html` is staged (and `tests/emulator/node_modules` + is installed). - `docs/future-work.md` lists the remaining gaps. If you implement something from that file, update the doc in the same PR. diff --git a/docs/platformer.gif b/docs/platformer.gif index fb2bff5aa75d2c9b5ee702bd4e5b0dca2624fcde..05f58c8b0328aaa428ac31d8ff24adab63503f02 100644 GIT binary patch delta 48974 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 YXw^a)QC>j?kVdxTQX*P%saPNU5BYxDf&c&j diff --git a/scripts/pre-commit b/scripts/pre-commit index e9539d1..8bfb841 100755 --- a/scripts/pre-commit +++ b/scripts/pre-commit @@ -39,4 +39,26 @@ if [ $stale -ne 0 ]; then exit 1 fi +# Only rebuild docs/platformer.gif when platformer.nes or the gif +# recorder itself changed — the gif regeneration takes ~20s due to +# puppeteer's cold start, so we don't want to pay it on every commit. +# Skipped entirely if node_modules isn't installed in the emulator +# harness; the CI `emulator` job is the authoritative check. +changed_files=$(git diff --cached --name-only) +if echo "$changed_files" | grep -qE '^(examples/platformer\.(ne|nes)|tests/emulator/record_gif\.mjs|tests/emulator/harness\.html)$'; then + if [ -d tests/emulator/node_modules ]; then + echo " Rebuilding docs/platformer.gif (platformer.nes or recorder changed)..." + (cd tests/emulator && node record_gif.mjs platformer 360 2 /tmp/platformer-precheck.gif >/dev/null) + if ! cmp -s docs/platformer.gif /tmp/platformer-precheck.gif; then + echo " STALE: docs/platformer.gif" + echo " rerun: node tests/emulator/record_gif.mjs platformer 360 2 docs/platformer.gif" + rm -f /tmp/platformer-precheck.gif + exit 1 + fi + rm -f /tmp/platformer-precheck.gif + else + echo " (skipping gif freshness check — tests/emulator/node_modules not installed)" + fi +fi + echo "All pre-commit checks passed." diff --git a/tests/emulator/record_gif.mjs b/tests/emulator/record_gif.mjs index 59a3161..dea9ca9 100644 --- a/tests/emulator/record_gif.mjs +++ b/tests/emulator/record_gif.mjs @@ -12,6 +12,18 @@ // At stride=2 we end up with a 30 fps GIF that maps 1:1 to every // other NES frame (NES runs at ~60 fps), which is the right // tradeoff between smoothness and file size for a README demo. +// +// IMPORTANT: `docs/platformer.gif` is committed and embedded in the +// README. Any change to the compiler, the runtime, the harness, or +// `examples/platformer.ne` that alters the gameplay you see in the +// first ~6 seconds of the demo must be followed by +// +// node tests/emulator/record_gif.mjs platformer 360 2 docs/platformer.gif +// +// committed alongside the source change. The CI `emulator` job +// regenerates the gif and fails if the committed copy is stale — +// gifenc + jsnes are deterministic, so the freshly-rendered bytes +// byte-match a valid commit. See `.github/workflows/ci.yml`. import { promises as fs } from "node:fs"; import path from "node:path";