|
| 1 | +# BUILD PR — Games Template Engine Theme Canvas Status Text |
| 2 | + |
| 3 | +## Purpose |
| 4 | +Keep the minimal shared engine/theme bootstrap for `games/_template`, but require the status messaging to render on the canvas instead of as HTML text. |
| 5 | + |
| 6 | +## Problem Statement |
| 7 | +The template needs the standard shell/theme baseline, but the visible status should be canvas-rendered so the entrypoint behaves like a proper game shell. |
| 8 | + |
| 9 | +## Source Of Truth |
| 10 | +Use `games/Asteroids/index.html` only as the shell/theme/bootstrap reference. |
| 11 | + |
| 12 | +Do NOT copy gameplay behavior. |
| 13 | + |
| 14 | +## Scope (STRICT) |
| 15 | +- Modify `games/_template/index.html` |
| 16 | +- Modify only the direct minimal shell/bootstrap wiring needed to support canvas-rendered status text |
| 17 | +- Keep `_template` non-playable and game-neutral |
| 18 | + |
| 19 | +## Target Files (EXACT) |
| 20 | +Primary target: |
| 21 | +- `games/_template/index.html` |
| 22 | + |
| 23 | +Secondary allowed edits/additions: |
| 24 | +- only minimal direct shell/theme/bootstrap files already used by the canonical game shell, if required to preserve consistent view |
| 25 | +- no gameplay files |
| 26 | +- no assets |
| 27 | +- no entities, flow, levels, or rules |
| 28 | + |
| 29 | +## Required Behavior |
| 30 | +`games/_template/index.html` MUST: |
| 31 | +- show the standard shell/theme baseline used by the canonical game shell |
| 32 | +- render a visible canvas |
| 33 | +- render the following text ON THE CANVAS, not as DOM/HTML status text: |
| 34 | + |
| 35 | + HTML Says |
| 36 | + Template Status |
| 37 | + This template intentionally does not boot gameplay. |
| 38 | + |
| 39 | +- not auto-boot gameplay |
| 40 | +- not load Asteroids-specific game logic |
| 41 | +- not depend on Asteroids-specific assets |
| 42 | + |
| 43 | +## Allowed Operations |
| 44 | +- update `_template/index.html` |
| 45 | +- replace HTML status text with canvas-drawn status text |
| 46 | +- keep minimal shell/bootstrap/theme alignment |
| 47 | +- add only minimal direct non-game-specific support files if strictly required |
| 48 | + |
| 49 | +## Explicit Non-Goals |
| 50 | +- DO NOT modify `games/Asteroids` |
| 51 | +- DO NOT copy Asteroids gameplay |
| 52 | +- DO NOT copy Asteroids assets |
| 53 | +- DO NOT add a new theming system |
| 54 | +- DO NOT expand beyond template shell/bootstrap alignment |
| 55 | +- DO NOT leave the required status text as plain HTML text |
| 56 | + |
| 57 | +## Fail-Fast Conditions |
| 58 | +STOP with no changes if any of the following are true: |
| 59 | +- rendering the required text on canvas would require gameplay boot code |
| 60 | +- preserving the canonical shell/theme baseline would require copying Asteroids-specific gameplay files |
| 61 | +- more than minimal shell/bootstrap edits are required |
| 62 | +- any path outside the template shell/bootstrap scope must be changed |
| 63 | + |
| 64 | +## Acceptance Criteria |
| 65 | +- `games/_template/index.html` shows the consistent shell/theme baseline |
| 66 | +- canvas is visible |
| 67 | +- the following text appears on the canvas: |
| 68 | + - `HTML Says` |
| 69 | + - `Template Status` |
| 70 | + - `This template intentionally does not boot gameplay.` |
| 71 | +- the same text is not relied on as HTML body content |
| 72 | +- no gameplay starts |
| 73 | +- no Asteroids-specific code or assets are copied into `_template` |
| 74 | +- no console errors |
| 75 | + |
| 76 | +## Validation Steps |
| 77 | +1. Open `games/_template/index.html` |
| 78 | +2. Confirm the canonical shell/theme baseline is present |
| 79 | +3. Confirm a visible canvas is present |
| 80 | +4. Confirm the required three lines render on the canvas |
| 81 | +5. Confirm no gameplay starts |
| 82 | +6. Confirm no console errors |
| 83 | + |
| 84 | +## Output Requirement |
| 85 | +Codex must package: |
| 86 | +`<project folder>/tmp/BUILD_PR_GAMES_TEMPLATE_ENGINE_THEME_CANVAS_STATUS_TEXT_delta.zip` |
0 commit comments