Review notes (publish not approved)
Preview built 2026-11-07 by an unattended pipeline run. The game at
/play/ is a byte-identical copy of
~/Programming/games/shooters/bob-was-a-bomb at commit
c0e6865. Pipeline files live in
single-page-sales/pages/bob-was-a-bomb/.
Blockers before this goes public
-
Promotion is your call. The game sits in the arcade's
internal stage. This page sends players to its own
/play/copy, not the portal. Publishing the page means promoting the game. - Nobody has played it by hand. All proof comes from the game's bots. Play one run on a desktop and one on a phone, then reread "I'm bad at shooters" and "How long is a run?" to see if they still hold for a person.
- The phone touch rule. Every touch fires a shot from the caret, including the touch that starts a drag. A tap away from the caret misses (probe: tapped at x=921, fired at x=683). The hero and FAQ teach "drag, lift, tap." If you fix this in the game (repo finding R1), rewrite both lines.
- Sound is unheard. The page only says "a typewriter clack on every shot," which comes from the code comments. Listen before you keep it.
-
The hook image is staged. It's the game's own
?cardshotframe, and the caption says so (PLANET can't fall on page 1). Keep the image with that caption or replace it with a live capture. -
The
/play/copy will drift. When the game changes, recopyindex.htmlandsrc/intodist/play/and rerunbuild/check-page.mjsandbuild/probes/facts.mjs.
Game repo findings (found while building the page)
-
R1: touch fires on touchdown. In
main.js,pointerdown → press() → input.fire++, while the caret moves at most 43 logical px a tick. Starting a drag wastes a shot from the old position, and that shot can break a word under it. Suggested fix: on touch, fire on a short tap with no movement, not on touchdown. -
R2: the results "new:" list can show broken paths. A broken
BEAR (BER) that then lost its R logged
BER → BE. That counts as found inS.foundbut not toward n / 56. Suggested fix: filternewFindsagainstEDGESinbank(). - R3: the portrait phone board is a strip. At 390×844 the board scales to 0.30, so letters are about 13 px wide, with empty paper above and below. Landscape scales to 0.54.
- R4: the "you broke the word, not the thing" line is only in the docs. The game itself says "broken words still bite: clear every letter." The page uses the docs line as a rule, not as a quote.
-
R5: the docs describe the brute bot wrong. GDD and HANDOFF
say it shoots every letter.
bot.jsshoots the letter over its head on the nearest threat and dodges. It makes about 14 accidental saves a run. The page now describes it accurately.
How it was checked
-
npm run simpasses 17/17. Every number on the page traces to07-evidence/output/evidence-report.md. -
build/check-page.mjsfollows the hero sentence with real input inside the iframe on a desktop (mouse, plus Space without scrolling the page), a portrait phone and a landscape phone (CDP touch). Fresh profile: the tutorial BOMB turns into BOB. -
Stage 08 used an independent evaluator, and its results are in
08-test-readers/output/.