The checks that were being run by hand lived in /tmp and would have been
lost, and the colour-contrast pass was ad-hoc enough that it missed
--dim2 entirely.
- tools/verify.js: headless smoke test. Boots the page against a stubbed
DOM/canvas and checks all 9 tabs render, all 10 maps draw with no
non-finite geometry and no squashed labels, dog-tag sub-checkboxes cover
every tag in every list, no photo appears in two steps, every theme has a
CSS block, and no personal data shipped.
- tools/theme-contrast.py: WCAG check across all themes, now also covering
--on-acc on --acc.
Running the stricter check found real problems: --dim2 (small captions) was
2.3-3.0:1 in four themes and --acc-d was 2.7-2.8:1 in two. Lightened those.
Worst theme is now 3.2:1, all on-accent pairs are 4.8:1 or better.
- AGENTS.md documents the architecture, build stages, assertions, data
provenance, deployment and the traps already hit, so a future session does
not rediscover them the hard way.
The Pages deployment is now the primary copy, so two things had to change:
- Hosted pages fall back to steam-sync.py on 127.0.0.1:8765 instead of
refusing to sync. steam-sync.py now answers Chrome's Private Network
Access preflight (Access-Control-Allow-Private-Network), which is what a
public https page needs before it may call into localhost.
- The build sources lived in /tmp and would have been lost. They now live in
build/, and build.py outputs to the repo root. deploy.sh rebuilds,
commits and pushes in one step.
Editing index.html directly is no longer the workflow - edit build/ and run
./deploy.sh.
The repo is public and deployed now, so two things needed tightening:
- index.html: DEFAULT_PROFILE is empty instead of a Steam vanity name. The
page no longer tries to sync somebody else's account on first load, and
no personal handle ships in the repo. Anyone running it locally keeps
their profile in localStorage, so existing local use is unaffected.
- steam-proxy-worker.js: ALLOW_ORIGIN pinned to
https://rain.pages.melonbread.xyz rather than '*', so only the deployed
page can call the Worker if it is ever deployed.
- README: record the deployment URL and use a neutral example vanity name.
A single-file companion page for 100%-ing Metal Gear Solid 2: Sons of Liberty
(Master Collection Version), plus an optional local helper for live Steam sync.
What's in it:
- Roadmap: the 5-pass plan plus a 48-step ordered walkthrough of the Tanker and
Plant, with per-step sub-checklists for dog tags, achievements and items
- Achievements: all 51 with official Steam icons, missable/cumulative flags,
filters, search and a full how-to for each
- Dog Tags: all 394 across 10 difficulty lists, with 81 conditional-spawn notes
- Area Maps: 10 guard-position maps rebuilt cell-by-cell from the community
tracking spreadsheet, zoomable, with a label-size control
- Photos: 48 location screenshots pinned to the step where each thing is, with
cross-source duplicates removed by perceptual hash
- Big Boss Run, Missables, VR/Extra Modes, Sources & Notes
- Steam sync: ticks what you already own from any public profile
- 10 dark colour themes, contrast-checked
The page is one self-contained HTML file with no build step or dependencies.
Compiled from community guides (Steam Community, Video Chums, u/Spikeyroxas,
Dayngl's Guides, TrueSteamAchievements) - see README for full credits.