diff --git a/docs/re/README.md b/docs/re/README.md index 9d0f7398..19affd03 100644 --- a/docs/re/README.md +++ b/docs/re/README.md @@ -18,6 +18,22 @@ A wrong-but-confident note is worse than no note: someone builds on it and the b for weeks. Every entry therefore carries an explicit **confidence** and its **evidence**. This mirrors the project method — *measure the oracle, never infer; refute before believing.* +### Captures are local-only (issue #49) + +The repository carries **code, tooling and docs**. Screenshots and savegame +blobs are game-derived, so since 2026-09-19 they live in `docs/re/captures/` +on disk and are **gitignored** — the pages' relative links still resolve on a +machine that has them, and nothing ships. + +Derived measurements (`csv`, `tsv`, `txt`, `log`, `json`, `jsonl`, `npy`) are +our own numbers rather than game content, and stay tracked — they are what most +claims here actually rest on. + +`tools/re/check-capture-citations` enforces both halves: a cited capture must be +**present**, and a game asset must **not be tracked**. ⚠️ A fresh clone has no +captures, so its citations will not resolve until the captures are copied in; +that is expected, and the checker is a local gate rather than a CI one. + ### Clean-room firewall - ✅ Allowed: behaviour descriptions, field offsets/types, formulas, state machines, diff --git a/docs/re/captures/.gitignore b/docs/re/captures/.gitignore new file mode 100644 index 00000000..171e6d69 --- /dev/null +++ b/docs/re/captures/.gitignore @@ -0,0 +1,13 @@ +# Game-derived assets stay on disk and ship nowhere (issue #49). +# +# The pages' relative links still resolve on a machine that has the captures, +# so the evidence stays followable where it exists — it is simply not committed. +# `tools/re/check-capture-citations` enforces both halves: a cited capture must +# be PRESENT here, and an asset must NOT be tracked. +# +# Derived measurements (csv, tsv, txt, log, json, jsonl, npy) are our own +# numbers rather than game content, and remain tracked. +*.png +*.jpg +*.jpeg +*.bin diff --git a/docs/re/captures/arsenal-categories-all.png b/docs/re/captures/arsenal-categories-all.png deleted file mode 100644 index d977b87e..00000000 Binary files a/docs/re/captures/arsenal-categories-all.png and /dev/null differ diff --git a/docs/re/captures/arsenal-gun-below-fold.png b/docs/re/captures/arsenal-gun-below-fold.png deleted file mode 100644 index c07cd7de..00000000 Binary files a/docs/re/captures/arsenal-gun-below-fold.png and /dev/null differ diff --git a/docs/re/captures/arsenal-gun-list-predevelop.png b/docs/re/captures/arsenal-gun-list-predevelop.png deleted file mode 100644 index eca3cf7e..00000000 Binary files a/docs/re/captures/arsenal-gun-list-predevelop.png and /dev/null differ diff --git a/docs/re/captures/arsenal-layout-validation.png b/docs/re/captures/arsenal-layout-validation.png deleted file mode 100644 index bf97b5d8..00000000 Binary files a/docs/re/captures/arsenal-layout-validation.png and /dev/null differ diff --git a/docs/re/captures/arsenal-mg1-developed.png b/docs/re/captures/arsenal-mg1-developed.png deleted file mode 100644 index 14fb968b..00000000 Binary files a/docs/re/captures/arsenal-mg1-developed.png and /dev/null differ diff --git a/docs/re/captures/arsenal-probe-save-result.png b/docs/re/captures/arsenal-probe-save-result.png deleted file mode 100644 index fb7a67e4..00000000 Binary files a/docs/re/captures/arsenal-probe-save-result.png and /dev/null differ diff --git a/docs/re/captures/boot-order/splash-order-two-runs.png b/docs/re/captures/boot-order/splash-order-two-runs.png deleted file mode 100644 index e65ff92d..00000000 Binary files a/docs/re/captures/boot-order/splash-order-two-runs.png and /dev/null differ diff --git a/docs/re/captures/briefing-misclassified-as-menu.png b/docs/re/captures/briefing-misclassified-as-menu.png deleted file mode 100644 index 1dbe02c1..00000000 Binary files a/docs/re/captures/briefing-misclassified-as-menu.png and /dev/null differ diff --git a/docs/re/captures/difficulty-screen.png b/docs/re/captures/difficulty-screen.png deleted file mode 100644 index 26be2a3f..00000000 Binary files a/docs/re/captures/difficulty-screen.png and /dev/null differ diff --git a/docs/re/captures/e106-cover-slack-before-after.png b/docs/re/captures/e106-cover-slack-before-after.png deleted file mode 100644 index 550cf4e2..00000000 Binary files a/docs/re/captures/e106-cover-slack-before-after.png and /dev/null differ diff --git a/docs/re/captures/e106-static-assembly-fixed.png b/docs/re/captures/e106-static-assembly-fixed.png deleted file mode 100644 index 6b24875e..00000000 Binary files a/docs/re/captures/e106-static-assembly-fixed.png and /dev/null differ diff --git a/docs/re/captures/e106-static-assembly-volume-bug.png b/docs/re/captures/e106-static-assembly-volume-bug.png deleted file mode 100644 index e44453c9..00000000 Binary files a/docs/re/captures/e106-static-assembly-volume-bug.png and /dev/null differ diff --git a/docs/re/captures/escort-stage02-hud.png b/docs/re/captures/escort-stage02-hud.png deleted file mode 100644 index c5b3c471..00000000 Binary files a/docs/re/captures/escort-stage02-hud.png and /dev/null differ diff --git a/docs/re/captures/f101-index-shift-before-after.png b/docs/re/captures/f101-index-shift-before-after.png deleted file mode 100644 index 1317e68a..00000000 Binary files a/docs/re/captures/f101-index-shift-before-after.png and /dev/null differ diff --git a/docs/re/captures/fire-probe-ammo-counters.png b/docs/re/captures/fire-probe-ammo-counters.png deleted file mode 100644 index 341ccea8..00000000 Binary files a/docs/re/captures/fire-probe-ammo-counters.png and /dev/null differ diff --git a/docs/re/captures/focus-ring/ring-20s-mean-uniform.png b/docs/re/captures/focus-ring/ring-20s-mean-uniform.png deleted file mode 100644 index 5f4188b0..00000000 Binary files a/docs/re/captures/focus-ring/ring-20s-mean-uniform.png and /dev/null differ diff --git a/docs/re/captures/focus-ring/ring-single-frames-4s-apart.png b/docs/re/captures/focus-ring/ring-single-frames-4s-apart.png deleted file mode 100644 index 549f685a..00000000 Binary files a/docs/re/captures/focus-ring/ring-single-frames-4s-apart.png and /dev/null differ diff --git a/docs/re/captures/focus-ring/ring-temporal-std-annulus.png b/docs/re/captures/focus-ring/ring-temporal-std-annulus.png deleted file mode 100644 index eae14789..00000000 Binary files a/docs/re/captures/focus-ring/ring-temporal-std-annulus.png and /dev/null differ diff --git a/docs/re/captures/freeze-at-missionselect.png b/docs/re/captures/freeze-at-missionselect.png deleted file mode 100644 index 0a9f133f..00000000 Binary files a/docs/re/captures/freeze-at-missionselect.png and /dev/null differ diff --git a/docs/re/captures/hud-runtime/hud-afterburner-1193.png b/docs/re/captures/hud-runtime/hud-afterburner-1193.png deleted file mode 100644 index 40bc08e6..00000000 Binary files a/docs/re/captures/hud-runtime/hud-afterburner-1193.png and /dev/null differ diff --git a/docs/re/captures/hud-runtime/hud-cruise-loadout.png b/docs/re/captures/hud-runtime/hud-cruise-loadout.png deleted file mode 100644 index 268d6af8..00000000 Binary files a/docs/re/captures/hud-runtime/hud-cruise-loadout.png and /dev/null differ diff --git a/docs/re/captures/hud-runtime/hud-target-armor-gauge.png b/docs/re/captures/hud-runtime/hud-target-armor-gauge.png deleted file mode 100644 index 32797c38..00000000 Binary files a/docs/re/captures/hud-runtime/hud-target-armor-gauge.png and /dev/null differ diff --git a/docs/re/captures/instrument-controls/movie-frame-attract-a.png b/docs/re/captures/instrument-controls/movie-frame-attract-a.png deleted file mode 100644 index 30b527c9..00000000 Binary files a/docs/re/captures/instrument-controls/movie-frame-attract-a.png and /dev/null differ diff --git a/docs/re/captures/instrument-controls/movie-frame-attract-b.png b/docs/re/captures/instrument-controls/movie-frame-attract-b.png deleted file mode 100644 index b80757d1..00000000 Binary files a/docs/re/captures/instrument-controls/movie-frame-attract-b.png and /dev/null differ diff --git a/docs/re/captures/load-game-oracle.png b/docs/re/captures/load-game-oracle.png deleted file mode 100644 index b352bcb6..00000000 Binary files a/docs/re/captures/load-game-oracle.png and /dev/null differ diff --git a/docs/re/captures/loadgame-slot01-headerless-install.png b/docs/re/captures/loadgame-slot01-headerless-install.png deleted file mode 100644 index b8f737bc..00000000 Binary files a/docs/re/captures/loadgame-slot01-headerless-install.png and /dev/null differ diff --git a/docs/re/captures/main-menu-items.png b/docs/re/captures/main-menu-items.png deleted file mode 100644 index 222b719c..00000000 Binary files a/docs/re/captures/main-menu-items.png and /dev/null differ diff --git a/docs/re/captures/main-menu-oracle.png b/docs/re/captures/main-menu-oracle.png deleted file mode 100644 index 64ae86f9..00000000 Binary files a/docs/re/captures/main-menu-oracle.png and /dev/null differ diff --git a/docs/re/captures/main-menu-reached.png b/docs/re/captures/main-menu-reached.png deleted file mode 100644 index 36cb1e1b..00000000 Binary files a/docs/re/captures/main-menu-reached.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/extras-wrap.png b/docs/re/captures/menu-nav/extras-wrap.png deleted file mode 100644 index 54bc0f33..00000000 Binary files a/docs/re/captures/menu-nav/extras-wrap.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/live-difficulty-opens-normal.png b/docs/re/captures/menu-nav/live-difficulty-opens-normal.png deleted file mode 100644 index c379b5a5..00000000 Binary files a/docs/re/captures/menu-nav/live-difficulty-opens-normal.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/live-jp-difficulty.png b/docs/re/captures/menu-nav/live-jp-difficulty.png deleted file mode 100644 index b7d21aed..00000000 Binary files a/docs/re/captures/menu-nav/live-jp-difficulty.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/live-jp-main-menu.png b/docs/re/captures/menu-nav/live-jp-main-menu.png deleted file mode 100644 index 4d9efe59..00000000 Binary files a/docs/re/captures/menu-nav/live-jp-main-menu.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/live-load-game-slots.png b/docs/re/captures/menu-nav/live-load-game-slots.png deleted file mode 100644 index d3c58ba7..00000000 Binary files a/docs/re/captures/menu-nav/live-load-game-slots.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/live-tutorial-submenu.png b/docs/re/captures/menu-nav/live-tutorial-submenu.png deleted file mode 100644 index 8e8894e8..00000000 Binary files a/docs/re/captures/menu-nav/live-tutorial-submenu.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/q4-destinations.png b/docs/re/captures/menu-nav/q4-destinations.png deleted file mode 100644 index dac36364..00000000 Binary files a/docs/re/captures/menu-nav/q4-destinations.png and /dev/null differ diff --git a/docs/re/captures/menu-nav/wrap-montage.png b/docs/re/captures/menu-nav/wrap-montage.png deleted file mode 100644 index dcfa2f9d..00000000 Binary files a/docs/re/captures/menu-nav/wrap-montage.png and /dev/null differ diff --git a/docs/re/captures/mission-select-all-story-unlocked.png b/docs/re/captures/mission-select-all-story-unlocked.png deleted file mode 100644 index acecd269..00000000 Binary files a/docs/re/captures/mission-select-all-story-unlocked.png and /dev/null differ diff --git a/docs/re/captures/mission-select-derived-order.png b/docs/re/captures/mission-select-derived-order.png deleted file mode 100644 index 446c48bc..00000000 Binary files a/docs/re/captures/mission-select-derived-order.png and /dev/null differ diff --git a/docs/re/captures/mission-select-ends-at-stage16.png b/docs/re/captures/mission-select-ends-at-stage16.png deleted file mode 100644 index b79b4987..00000000 Binary files a/docs/re/captures/mission-select-ends-at-stage16.png and /dev/null differ diff --git a/docs/re/captures/mission-select-stage01-only.png b/docs/re/captures/mission-select-stage01-only.png deleted file mode 100644 index a2c89749..00000000 Binary files a/docs/re/captures/mission-select-stage01-only.png and /dev/null differ diff --git a/docs/re/captures/mission-select-stage01-record.png b/docs/re/captures/mission-select-stage01-record.png deleted file mode 100644 index 77d027ce..00000000 Binary files a/docs/re/captures/mission-select-stage01-record.png and /dev/null differ diff --git a/docs/re/captures/mission-time-frozen-timeline.png b/docs/re/captures/mission-time-frozen-timeline.png deleted file mode 100644 index 2b7e59e1..00000000 Binary files a/docs/re/captures/mission-time-frozen-timeline.png and /dev/null differ diff --git a/docs/re/captures/mission01-t485.png b/docs/re/captures/mission01-t485.png deleted file mode 100644 index b2a234ee..00000000 Binary files a/docs/re/captures/mission01-t485.png and /dev/null differ diff --git a/docs/re/captures/mission03-turretrule-t430.png b/docs/re/captures/mission03-turretrule-t430.png deleted file mode 100644 index 1a2d0fed..00000000 Binary files a/docs/re/captures/mission03-turretrule-t430.png and /dev/null differ diff --git a/docs/re/captures/newgame-path/newgame-difficulty.png b/docs/re/captures/newgame-path/newgame-difficulty.png deleted file mode 100644 index f92d5e5a..00000000 Binary files a/docs/re/captures/newgame-path/newgame-difficulty.png and /dev/null differ diff --git a/docs/re/captures/newgame-path/newgame-selectdata-crash.png b/docs/re/captures/newgame-path/newgame-selectdata-crash.png deleted file mode 100644 index d7b67149..00000000 Binary files a/docs/re/captures/newgame-path/newgame-selectdata-crash.png and /dev/null differ diff --git a/docs/re/captures/newgame-path/title-after-single-A-skip.png b/docs/re/captures/newgame-path/title-after-single-A-skip.png deleted file mode 100644 index 2199efb4..00000000 Binary files a/docs/re/captures/newgame-path/title-after-single-A-skip.png and /dev/null differ diff --git a/docs/re/captures/ob-012-located.png b/docs/re/captures/ob-012-located.png deleted file mode 100644 index 525839fb..00000000 Binary files a/docs/re/captures/ob-012-located.png and /dev/null differ diff --git a/docs/re/captures/ob-arrival-timing-confirmed.png b/docs/re/captures/ob-arrival-timing-confirmed.png deleted file mode 100644 index 61d6b91b..00000000 Binary files a/docs/re/captures/ob-arrival-timing-confirmed.png and /dev/null differ diff --git a/docs/re/captures/ob-decrement-confirmed.png b/docs/re/captures/ob-decrement-confirmed.png deleted file mode 100644 index 163b2f7e..00000000 Binary files a/docs/re/captures/ob-decrement-confirmed.png and /dev/null differ diff --git a/docs/re/captures/ob-fourth-run-timeline.png b/docs/re/captures/ob-fourth-run-timeline.png deleted file mode 100644 index 289d8256..00000000 Binary files a/docs/re/captures/ob-fourth-run-timeline.png and /dev/null differ diff --git a/docs/re/captures/ob-kill-run-timeline.png b/docs/re/captures/ob-kill-run-timeline.png deleted file mode 100644 index 002e5caf..00000000 Binary files a/docs/re/captures/ob-kill-run-timeline.png and /dev/null differ diff --git a/docs/re/captures/ob-turret-control-timeline.png b/docs/re/captures/ob-turret-control-timeline.png deleted file mode 100644 index b17a2eb2..00000000 Binary files a/docs/re/captures/ob-turret-control-timeline.png and /dev/null differ diff --git a/docs/re/captures/poke-control-kill.png b/docs/re/captures/poke-control-kill.png deleted file mode 100644 index e7a4cb98..00000000 Binary files a/docs/re/captures/poke-control-kill.png and /dev/null differ diff --git a/docs/re/captures/ready-room-extra-mode.png b/docs/re/captures/ready-room-extra-mode.png deleted file mode 100644 index 4f7540e4..00000000 Binary files a/docs/re/captures/ready-room-extra-mode.png and /dev/null differ diff --git a/docs/re/captures/ready-room-probe/ready-room-pak-builds.png b/docs/re/captures/ready-room-probe/ready-room-pak-builds.png deleted file mode 100644 index 368514e2..00000000 Binary files a/docs/re/captures/ready-room-probe/ready-room-pak-builds.png and /dev/null differ diff --git a/docs/re/captures/remaining-ob-004-crossrun.png b/docs/re/captures/remaining-ob-004-crossrun.png deleted file mode 100644 index b03e8910..00000000 Binary files a/docs/re/captures/remaining-ob-004-crossrun.png and /dev/null differ diff --git a/docs/re/captures/remaining-ob-012-crop.png b/docs/re/captures/remaining-ob-012-crop.png deleted file mode 100644 index 137bd4c3..00000000 Binary files a/docs/re/captures/remaining-ob-012-crop.png and /dev/null differ diff --git a/docs/re/captures/savedata-game02-samestate.bin b/docs/re/captures/savedata-game02-samestate.bin deleted file mode 100644 index 4b4057b5..00000000 Binary files a/docs/re/captures/savedata-game02-samestate.bin and /dev/null differ diff --git a/docs/re/captures/savedata-game03-developed-mg1.bin b/docs/re/captures/savedata-game03-developed-mg1.bin deleted file mode 100644 index 42bf374d..00000000 Binary files a/docs/re/captures/savedata-game03-developed-mg1.bin and /dev/null differ diff --git a/docs/re/captures/savedata-stage02-5pct.bin b/docs/re/captures/savedata-stage02-5pct.bin deleted file mode 100644 index 45da12cb..00000000 Binary files a/docs/re/captures/savedata-stage02-5pct.bin and /dev/null differ diff --git a/docs/re/captures/savegame-details-slot02.png b/docs/re/captures/savegame-details-slot02.png deleted file mode 100644 index 88111294..00000000 Binary files a/docs/re/captures/savegame-details-slot02.png and /dev/null differ diff --git a/docs/re/captures/savegame-details-slot03-developed.png b/docs/re/captures/savegame-details-slot03-developed.png deleted file mode 100644 index 980b112f..00000000 Binary files a/docs/re/captures/savegame-details-slot03-developed.png and /dev/null differ diff --git a/docs/re/captures/savegame-stage05-probe-details.png b/docs/re/captures/savegame-stage05-probe-details.png deleted file mode 100644 index 157d4590..00000000 Binary files a/docs/re/captures/savegame-stage05-probe-details.png and /dev/null differ diff --git a/docs/re/captures/savegame-stage05-probe-inflight.png b/docs/re/captures/savegame-stage05-probe-inflight.png deleted file mode 100644 index f1a1e464..00000000 Binary files a/docs/re/captures/savegame-stage05-probe-inflight.png and /dev/null differ diff --git a/docs/re/captures/select-data-crash.png b/docs/re/captures/select-data-crash.png deleted file mode 100644 index dc8d726b..00000000 Binary files a/docs/re/captures/select-data-crash.png and /dev/null differ diff --git a/docs/re/captures/select-data-reached-no-crash.png b/docs/re/captures/select-data-reached-no-crash.png deleted file mode 100644 index 42503952..00000000 Binary files a/docs/re/captures/select-data-reached-no-crash.png and /dev/null differ diff --git a/docs/re/captures/shipcap-stage02-launch.png b/docs/re/captures/shipcap-stage02-launch.png deleted file mode 100644 index e304bbf6..00000000 Binary files a/docs/re/captures/shipcap-stage02-launch.png and /dev/null differ diff --git a/docs/re/captures/sliver-classified-as-menu.png b/docs/re/captures/sliver-classified-as-menu.png deleted file mode 100644 index f5d4c6a0..00000000 Binary files a/docs/re/captures/sliver-classified-as-menu.png and /dev/null differ diff --git a/docs/re/captures/stage02-briefing-crash.png b/docs/re/captures/stage02-briefing-crash.png deleted file mode 100644 index 09c81437..00000000 Binary files a/docs/re/captures/stage02-briefing-crash.png and /dev/null differ diff --git a/docs/re/captures/stage02-freeze-at-time-0102.png b/docs/re/captures/stage02-freeze-at-time-0102.png deleted file mode 100644 index 5c7a0693..00000000 Binary files a/docs/re/captures/stage02-freeze-at-time-0102.png and /dev/null differ diff --git a/docs/re/captures/stage02-freeze-at-time-0337.png b/docs/re/captures/stage02-freeze-at-time-0337.png deleted file mode 100644 index 95877640..00000000 Binary files a/docs/re/captures/stage02-freeze-at-time-0337.png and /dev/null differ diff --git a/docs/re/captures/stage02-inflight-restored-state.png b/docs/re/captures/stage02-inflight-restored-state.png deleted file mode 100644 index 726b296b..00000000 Binary files a/docs/re/captures/stage02-inflight-restored-state.png and /dev/null differ diff --git a/docs/re/captures/stage02-inflight-run2-ob-address-zero.png b/docs/re/captures/stage02-inflight-run2-ob-address-zero.png deleted file mode 100644 index cd07a517..00000000 Binary files a/docs/re/captures/stage02-inflight-run2-ob-address-zero.png and /dev/null differ diff --git a/docs/re/captures/stage02-inflight-upstream-baseline.png b/docs/re/captures/stage02-inflight-upstream-baseline.png deleted file mode 100644 index 6035ee51..00000000 Binary files a/docs/re/captures/stage02-inflight-upstream-baseline.png and /dev/null differ diff --git a/docs/re/captures/stage02-inmission-freeze.png b/docs/re/captures/stage02-inmission-freeze.png deleted file mode 100644 index 89a1fa85..00000000 Binary files a/docs/re/captures/stage02-inmission-freeze.png and /dev/null differ diff --git a/docs/re/captures/stage02-pilot-firing-after-sign-fix.png b/docs/re/captures/stage02-pilot-firing-after-sign-fix.png deleted file mode 100644 index c001718e..00000000 Binary files a/docs/re/captures/stage02-pilot-firing-after-sign-fix.png and /dev/null differ diff --git a/docs/re/captures/stage02-you-killed-warplanes-0003.png b/docs/re/captures/stage02-you-killed-warplanes-0003.png deleted file mode 100644 index a87bb6dc..00000000 Binary files a/docs/re/captures/stage02-you-killed-warplanes-0003.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-ab-signedin-menu-after-press.png b/docs/re/captures/title-builds/live-ab-signedin-menu-after-press.png deleted file mode 100644 index 106e7cee..00000000 Binary files a/docs/re/captures/title-builds/live-ab-signedin-menu-after-press.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-attract-title-press-a-band.png b/docs/re/captures/title-builds/live-attract-title-press-a-band.png deleted file mode 100644 index 7966fe22..00000000 Binary files a/docs/re/captures/title-builds/live-attract-title-press-a-band.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-b-on-menu-title-buildin.png b/docs/re/captures/title-builds/live-b-on-menu-title-buildin.png deleted file mode 100644 index 10810960..00000000 Binary files a/docs/re/captures/title-builds/live-b-on-menu-title-buildin.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-b-on-menu-title-settled.png b/docs/re/captures/title-builds/live-b-on-menu-title-settled.png deleted file mode 100644 index 77c2a6cc..00000000 Binary files a/docs/re/captures/title-builds/live-b-on-menu-title-settled.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-b-on-settled-title-no-effect.png b/docs/re/captures/title-builds/live-b-on-settled-title-no-effect.png deleted file mode 100644 index 15bf6536..00000000 Binary files a/docs/re/captures/title-builds/live-b-on-settled-title-no-effect.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-extras.png b/docs/re/captures/title-builds/live-extras.png deleted file mode 100644 index c215b1a7..00000000 Binary files a/docs/re/captures/title-builds/live-extras.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-main-menu-options-focused.png b/docs/re/captures/title-builds/live-main-menu-options-focused.png deleted file mode 100644 index 556db640..00000000 Binary files a/docs/re/captures/title-builds/live-main-menu-options-focused.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-main-menu.png b/docs/re/captures/title-builds/live-main-menu.png deleted file mode 100644 index 0086e065..00000000 Binary files a/docs/re/captures/title-builds/live-main-menu.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-splash-developer.png b/docs/re/captures/title-builds/live-splash-developer.png deleted file mode 100644 index 6d0d48fe..00000000 Binary files a/docs/re/captures/title-builds/live-splash-developer.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-splash-publisher.png b/docs/re/captures/title-builds/live-splash-publisher.png deleted file mode 100644 index 9c2df877..00000000 Binary files a/docs/re/captures/title-builds/live-splash-publisher.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-submenu-unidentified.png b/docs/re/captures/title-builds/live-submenu-unidentified.png deleted file mode 100644 index c1d84513..00000000 Binary files a/docs/re/captures/title-builds/live-submenu-unidentified.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-title-build4-no-plate.png b/docs/re/captures/title-builds/live-title-build4-no-plate.png deleted file mode 100644 index 07fd42c3..00000000 Binary files a/docs/re/captures/title-builds/live-title-build4-no-plate.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-title-jp-at-rest-run2.png b/docs/re/captures/title-builds/live-title-jp-at-rest-run2.png deleted file mode 100644 index 21eff030..00000000 Binary files a/docs/re/captures/title-builds/live-title-jp-at-rest-run2.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-title-jp-at-rest.png b/docs/re/captures/title-builds/live-title-jp-at-rest.png deleted file mode 100644 index 678ba816..00000000 Binary files a/docs/re/captures/title-builds/live-title-jp-at-rest.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-title-plate-pulse-peak.png b/docs/re/captures/title-builds/live-title-plate-pulse-peak.png deleted file mode 100644 index d3c85bf0..00000000 Binary files a/docs/re/captures/title-builds/live-title-plate-pulse-peak.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-title-plate-pulse-trough.png b/docs/re/captures/title-builds/live-title-plate-pulse-trough.png deleted file mode 100644 index 8f90b7f4..00000000 Binary files a/docs/re/captures/title-builds/live-title-plate-pulse-trough.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-title-press-a.png b/docs/re/captures/title-builds/live-title-press-a.png deleted file mode 100644 index c3b563ad..00000000 Binary files a/docs/re/captures/title-builds/live-title-press-a.png and /dev/null differ diff --git a/docs/re/captures/title-builds/live-tutorial-screen.png b/docs/re/captures/title-builds/live-tutorial-screen.png deleted file mode 100644 index c1d84513..00000000 Binary files a/docs/re/captures/title-builds/live-tutorial-screen.png and /dev/null differ diff --git a/docs/re/captures/title-builds/render-tutorial-build0-for-comparison.png b/docs/re/captures/title-builds/render-tutorial-build0-for-comparison.png deleted file mode 100644 index a0909c03..00000000 Binary files a/docs/re/captures/title-builds/render-tutorial-build0-for-comparison.png and /dev/null differ diff --git a/docs/re/captures/title-builds/splash-both-halves-rendered.png b/docs/re/captures/title-builds/splash-both-halves-rendered.png deleted file mode 100644 index 5aacb99e..00000000 Binary files a/docs/re/captures/title-builds/splash-both-halves-rendered.png and /dev/null differ diff --git a/docs/re/captures/title-builds/splash-entries-rendered.png b/docs/re/captures/title-builds/splash-entries-rendered.png deleted file mode 100644 index 61016346..00000000 Binary files a/docs/re/captures/title-builds/splash-entries-rendered.png and /dev/null differ diff --git a/docs/re/captures/title-builds/title-arc-rest-vs-settle.png b/docs/re/captures/title-builds/title-arc-rest-vs-settle.png deleted file mode 100644 index 14272281..00000000 Binary files a/docs/re/captures/title-builds/title-arc-rest-vs-settle.png and /dev/null differ diff --git a/docs/re/captures/title-builds/title-build-contact-sheet.png b/docs/re/captures/title-builds/title-build-contact-sheet.png deleted file mode 100644 index 556db879..00000000 Binary files a/docs/re/captures/title-builds/title-build-contact-sheet.png and /dev/null differ diff --git a/docs/re/captures/title-builds/title-swoosh-capture-vs-render.png b/docs/re/captures/title-builds/title-swoosh-capture-vs-render.png deleted file mode 100644 index f6eb0c5b..00000000 Binary files a/docs/re/captures/title-builds/title-swoosh-capture-vs-render.png and /dev/null differ diff --git a/docs/re/captures/title-composited-measured-order.png b/docs/re/captures/title-composited-measured-order.png deleted file mode 100644 index cf6aa231..00000000 Binary files a/docs/re/captures/title-composited-measured-order.png and /dev/null differ diff --git a/docs/re/captures/title-screen-oracle.png b/docs/re/captures/title-screen-oracle.png deleted file mode 100644 index 4f2b2eea..00000000 Binary files a/docs/re/captures/title-screen-oracle.png and /dev/null differ diff --git a/docs/re/captures/title-signin-dialog.png b/docs/re/captures/title-signin-dialog.png deleted file mode 100644 index 84695153..00000000 Binary files a/docs/re/captures/title-signin-dialog.png and /dev/null differ diff --git a/docs/re/captures/title-unresponsive-attract.png b/docs/re/captures/title-unresponsive-attract.png deleted file mode 100644 index b5374a01..00000000 Binary files a/docs/re/captures/title-unresponsive-attract.png and /dev/null differ diff --git a/docs/re/captures/title-with-emulator-menu-open.png b/docs/re/captures/title-with-emulator-menu-open.png deleted file mode 100644 index 21133316..00000000 Binary files a/docs/re/captures/title-with-emulator-menu-open.png and /dev/null differ diff --git a/docs/re/captures/transitions/transition-filmstrip.png b/docs/re/captures/transitions/transition-filmstrip.png deleted file mode 100644 index 567a4bae..00000000 Binary files a/docs/re/captures/transitions/transition-filmstrip.png and /dev/null differ diff --git a/docs/re/captures/tutorial-lesson-descriptions.png b/docs/re/captures/tutorial-lesson-descriptions.png deleted file mode 100644 index da0459d0..00000000 Binary files a/docs/re/captures/tutorial-lesson-descriptions.png and /dev/null differ diff --git a/docs/re/captures/tutorial-lesson-list.png b/docs/re/captures/tutorial-lesson-list.png deleted file mode 100644 index 22430b8a..00000000 Binary files a/docs/re/captures/tutorial-lesson-list.png and /dev/null differ diff --git a/docs/re/captures/tutorial-mission-clean-run.png b/docs/re/captures/tutorial-mission-clean-run.png deleted file mode 100644 index ab7a3dd8..00000000 Binary files a/docs/re/captures/tutorial-mission-clean-run.png and /dev/null differ diff --git a/docs/re/captures/tutorial-mission-reached-then-crash.png b/docs/re/captures/tutorial-mission-reached-then-crash.png deleted file mode 100644 index a423ede7..00000000 Binary files a/docs/re/captures/tutorial-mission-reached-then-crash.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/button-base-focus-ring-sprites.png b/docs/re/captures/ui-layout/button-base-focus-ring-sprites.png deleted file mode 100644 index 82a404e7..00000000 Binary files a/docs/re/captures/ui-layout/button-base-focus-ring-sprites.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/developer-logo-splash-composed.png b/docs/re/captures/ui-layout/developer-logo-splash-composed.png deleted file mode 100644 index d157b2ae..00000000 Binary files a/docs/re/captures/ui-layout/developer-logo-splash-composed.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/dialog-difficulty-with-primitives.png b/docs/re/captures/ui-layout/dialog-difficulty-with-primitives.png deleted file mode 100644 index 9fd4741b..00000000 Binary files a/docs/re/captures/ui-layout/dialog-difficulty-with-primitives.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/extras-composited.png b/docs/re/captures/ui-layout/extras-composited.png deleted file mode 100644 index 3a4dc933..00000000 Binary files a/docs/re/captures/ui-layout/extras-composited.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/focus-ring-oracle-vs-sprite.png b/docs/re/captures/ui-layout/focus-ring-oracle-vs-sprite.png deleted file mode 100644 index 1c6c4fd6..00000000 Binary files a/docs/re/captures/ui-layout/focus-ring-oracle-vs-sprite.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/main-menu-composited.png b/docs/re/captures/ui-layout/main-menu-composited.png deleted file mode 100644 index bfc15e93..00000000 Binary files a/docs/re/captures/ui-layout/main-menu-composited.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/options-with-its-glow-layer.png b/docs/re/captures/ui-layout/options-with-its-glow-layer.png deleted file mode 100644 index 3b9d65cd..00000000 Binary files a/docs/re/captures/ui-layout/options-with-its-glow-layer.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/options-without-its-glow-layer.png b/docs/re/captures/ui-layout/options-without-its-glow-layer.png deleted file mode 100644 index 8c1ec782..00000000 Binary files a/docs/re/captures/ui-layout/options-without-its-glow-layer.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/pause-composited-fade-applied.png b/docs/re/captures/ui-layout/pause-composited-fade-applied.png deleted file mode 100644 index 41212b21..00000000 Binary files a/docs/re/captures/ui-layout/pause-composited-fade-applied.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/pause-tutorial-real-vs-rebuilt.png b/docs/re/captures/ui-layout/pause-tutorial-real-vs-rebuilt.png deleted file mode 100644 index 2fef7336..00000000 Binary files a/docs/re/captures/ui-layout/pause-tutorial-real-vs-rebuilt.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/title-composited-fade-applied.png b/docs/re/captures/ui-layout/title-composited-fade-applied.png deleted file mode 100644 index 7b85d2a8..00000000 Binary files a/docs/re/captures/ui-layout/title-composited-fade-applied.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/title-composited-longest-dwell-rest.png b/docs/re/captures/ui-layout/title-composited-longest-dwell-rest.png deleted file mode 100644 index 12708087..00000000 Binary files a/docs/re/captures/ui-layout/title-composited-longest-dwell-rest.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/title-composited-plateau-rest.png b/docs/re/captures/ui-layout/title-composited-plateau-rest.png deleted file mode 100644 index 9ed20c5e..00000000 Binary files a/docs/re/captures/ui-layout/title-composited-plateau-rest.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/title-composited-with-primitives.png b/docs/re/captures/ui-layout/title-composited-with-primitives.png deleted file mode 100644 index 9bd4d142..00000000 Binary files a/docs/re/captures/ui-layout/title-composited-with-primitives.png and /dev/null differ diff --git a/docs/re/captures/ui-layout/title-mainmenu-real-vs-rebuilt.png b/docs/re/captures/ui-layout/title-mainmenu-real-vs-rebuilt.png deleted file mode 100644 index ba0ec54d..00000000 Binary files a/docs/re/captures/ui-layout/title-mainmenu-real-vs-rebuilt.png and /dev/null differ diff --git a/docs/re/captures/ui-timing/plate-onset-two-runs.png b/docs/re/captures/ui-timing/plate-onset-two-runs.png deleted file mode 100644 index b79cac62..00000000 Binary files a/docs/re/captures/ui-timing/plate-onset-two-runs.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/asm-hound-smh.png b/docs/re/captures/weapon-datasheet/asm-hound-smh.png deleted file mode 100644 index 137fc74e..00000000 Binary files a/docs/re/captures/weapon-datasheet/asm-hound-smh.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/asm-terrier-smh.png b/docs/re/captures/weapon-datasheet/asm-terrier-smh.png deleted file mode 100644 index 96fa0359..00000000 Binary files a/docs/re/captures/weapon-datasheet/asm-terrier-smh.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/beam-dagger.png b/docs/re/captures/weapon-datasheet/beam-dagger.png deleted file mode 100644 index d6799660..00000000 Binary files a/docs/re/captures/weapon-datasheet/beam-dagger.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/beam-pilum-bp.png b/docs/re/captures/weapon-datasheet/beam-pilum-bp.png deleted file mode 100644 index ea02378b..00000000 Binary files a/docs/re/captures/weapon-datasheet/beam-pilum-bp.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/beam-stiletto.png b/docs/re/captures/weapon-datasheet/beam-stiletto.png deleted file mode 100644 index 733a5506..00000000 Binary files a/docs/re/captures/weapon-datasheet/beam-stiletto.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/br-dart-23-rocket.png b/docs/re/captures/weapon-datasheet/br-dart-23-rocket.png deleted file mode 100644 index c14b1fc7..00000000 Binary files a/docs/re/captures/weapon-datasheet/br-dart-23-rocket.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/cn-tomahawk-alpha-rail-gun.png b/docs/re/captures/weapon-datasheet/cn-tomahawk-alpha-rail-gun.png deleted file mode 100644 index 4cec88c4..00000000 Binary files a/docs/re/captures/weapon-datasheet/cn-tomahawk-alpha-rail-gun.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/gun-broad-sword-sg1.png b/docs/re/captures/weapon-datasheet/gun-broad-sword-sg1.png deleted file mode 100644 index 3a4dac22..00000000 Binary files a/docs/re/captures/weapon-datasheet/gun-broad-sword-sg1.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/gun-light-machine-gun-mg1.png b/docs/re/captures/weapon-datasheet/gun-light-machine-gun-mg1.png deleted file mode 100644 index 0e34e05d..00000000 Binary files a/docs/re/captures/weapon-datasheet/gun-light-machine-gun-mg1.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/gun-mg1-full.png b/docs/re/captures/weapon-datasheet/gun-mg1-full.png deleted file mode 100644 index ff5efbc6..00000000 Binary files a/docs/re/captures/weapon-datasheet/gun-mg1-full.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/hangar-mainweapon1-falcon.png b/docs/re/captures/weapon-datasheet/hangar-mainweapon1-falcon.png deleted file mode 100644 index 685061d2..00000000 Binary files a/docs/re/captures/weapon-datasheet/hangar-mainweapon1-falcon.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/mpm-buzzard-10am.png b/docs/re/captures/weapon-datasheet/mpm-buzzard-10am.png deleted file mode 100644 index b6532325..00000000 Binary files a/docs/re/captures/weapon-datasheet/mpm-buzzard-10am.png and /dev/null differ diff --git a/docs/re/captures/weapon-datasheet/mpm-falcon-9am.png b/docs/re/captures/weapon-datasheet/mpm-falcon-9am.png deleted file mode 100644 index 0b38298e..00000000 Binary files a/docs/re/captures/weapon-datasheet/mpm-falcon-9am.png and /dev/null differ diff --git a/docs/re/captures/worldunit-hud.png b/docs/re/captures/worldunit-hud.png deleted file mode 100644 index 21ef9906..00000000 Binary files a/docs/re/captures/worldunit-hud.png and /dev/null differ diff --git a/docs/re/captures/xenia-profile-panel-signed-in.png b/docs/re/captures/xenia-profile-panel-signed-in.png deleted file mode 100644 index be8fbab0..00000000 Binary files a/docs/re/captures/xenia-profile-panel-signed-in.png and /dev/null differ diff --git a/docs/re/captures/xpr2-colour-check-deltasaber.png b/docs/re/captures/xpr2-colour-check-deltasaber.png deleted file mode 100644 index d3939634..00000000 Binary files a/docs/re/captures/xpr2-colour-check-deltasaber.png and /dev/null differ diff --git a/tools/re-capture/.gitignore b/tools/re-capture/.gitignore new file mode 100644 index 00000000..ed6a92f8 --- /dev/null +++ b/tools/re-capture/.gitignore @@ -0,0 +1,3 @@ + +# Game-derived digit templates for ob_read.py — pixels from the game (issue #49). +ob_digits.png diff --git a/tools/re-capture/ob_digits.png b/tools/re-capture/ob_digits.png deleted file mode 100644 index fa82f83e..00000000 Binary files a/tools/re-capture/ob_digits.png and /dev/null differ diff --git a/tools/re/check-capture-citations b/tools/re/check-capture-citations index e691e7c8..9e755bec 100755 --- a/tools/re/check-capture-citations +++ b/tools/re/check-capture-citations @@ -10,10 +10,17 @@ largest thing in the repository, and the one place a file can be added, never cited, and never noticed. -Two failures, which are opposites and must not be conflated: +⚠️ 2026-09-19, issue #49: **game assets are no longer committed.** Screenshots +and savegame blobs live in the working tree and are gitignored, so the pages' +relative links still resolve on a machine that has them while nothing ships. +That inverts half of this check — "is it committed?" became "is it PRESENT?", +and a NEW failure appeared: an asset that IS tracked. Both are below. - * a page cites a capture that **is not committed** — a reader following it +Three failures, which are opposites and must not be conflated: + + * a page cites a capture that **is not present** — a reader following it gets nothing. That is an error, exactly as in `check-citations`. + * a game asset that **is tracked by git** — issue #49 says it must not be. * a capture that **no page cites** — not an error. It may be evidence a page should have cited, and deleting on that basis would silently ratify the omission. Reported, counted, never failed on. @@ -65,7 +72,16 @@ def committed() -> tuple[set[str], set[str]]: proposed. `tools/port/check-citations` uses the working tree for exactly this reason; so does this. """ - files = {l for l in git("ls-files", ROOT).splitlines() if l} + # 🔴 NOT `git ls-files`: since #49 the assets are deliberately untracked, so + # the index no longer knows they exist. Presence is a question about the + # working tree, and asking git would report every screenshot as missing and + # fail on all 203 citations. + files = set() + for dirpath, _dirnames, filenames in os.walk(ROOT): + for fn in filenames: + if fn == ".gitignore": + continue + files.add(os.path.join(dirpath, fn).replace(os.sep, "/")) dirs = set() for f in files: parts = f.split("/") @@ -74,6 +90,24 @@ def committed() -> tuple[set[str], set[str]]: return files, dirs +ASSET_SUFFIXES = (".png", ".jpg", ".jpeg", ".bin") + + +def tracked_assets() -> list[str]: + """Game assets that are committed — forbidden since issue #49. + + The repo carries code, tooling and docs. A screenshot that sneaks back in + is invisible in review (a binary shows as "Bin 0 -> 1234567 bytes") and is + permanent once merged, because removing it later needs a history rewrite. + So this is the half of the check that has to be loud. + """ + out = [] + for l in git("ls-files").splitlines(): + if l.lower().endswith(ASSET_SUFFIXES): + out.append(l) + return out + + def cited() -> set[str]: raw = git("grep", "-rhoE", CITE_ERE, "--", *SEARCH, SELF).splitlines() out = set() @@ -141,7 +175,7 @@ def selftest() -> int: real_dir = next(iter(dirs), None) real_file = next(iter(files), None) if not real_dir or not real_file: - print("selftest: 🔴 no captures committed — nothing to test against") + print("selftest: 🔴 no captures present — nothing to test against") return 2 cases = [ ("planted dangling caught", "docs/re/captures/no-such-file-anywhere.png", False), @@ -168,7 +202,15 @@ def selftest() -> int: print(" %-34s %s" % ("own fixtures not counted", "🔴 FAILED" if fixture_counted else "ok")) - ok = gathering_ok and not fixture_counted + # 🔴 THE #49 RULE NEEDS ITS OWN TICK. Presence now comes from the working + # tree, so a checkout with the captures present looks identical whether or + # not they are tracked — only this assertion can tell the difference. + stowaways = tracked_assets() + print(" %-34s %s%s" + % ("no game asset tracked", "ok" if not stowaways else "🔴 FAILED", + "" if not stowaways else " (%d tracked)" % len(stowaways))) + + ok = gathering_ok and not fixture_counted and not stowaways for name, path, want in cases: got = resolves(path.rstrip(".,;:)`"), files, dirs) mark = "ok" if got == want else "🔴 FAILED" @@ -188,19 +230,33 @@ def main() -> int: print(f) return 0 - print("captures committed : %d" % len(files)) + stowaways = tracked_assets() + print("captures present on disk : %d" % len(files)) print(" cited by a page or a tool : %d" % (len(files) - len(orphans))) print(" cited by nothing : %d (reported, not failed —" % len(orphans)) print(" an orphan may be evidence a page owes)") + rc = 0 if dangling: - print(" 🔴 cited but NOT committed: %d" % len(dangling)) + print(" 🔴 cited but NOT present : %d" % len(dangling)) for d in dangling: print(" %s" % d) - print("\n🔴 a reader following those gets nothing. Commit the capture, fix the") + print("\n🔴 a reader following those gets nothing. Restore the capture, fix the") print(" path, or drop the citation.") - return 1 - print(" 🔴 cited but NOT committed: 0") - return 0 + rc = 1 + else: + print(" 🔴 cited but NOT present : 0") + + if stowaways: + print(" 🔴 game assets TRACKED : %d (issue #49 — code, tooling, docs only)" % len(stowaways)) + for a in stowaways[:10]: + print(" %s" % a) + if len(stowaways) > 10: + print(" … and %d more" % (len(stowaways) - 10)) + print("\n🔴 run `git rm --cached` on those; they stay on disk and stay ignored.") + rc = 1 + else: + print(" 🔴 game assets TRACKED : 0") + return rc if __name__ == "__main__":