Skip to content

Commit e6147cb

Browse files
author
DavidQ
committed
Normalize Puckman to the Phase 08 games boundary model with a game-local rules source of truth and truthful roadmap status alignment.
1 parent 386aa55 commit e6147cb

24 files changed

Lines changed: 504 additions & 35 deletions

docs/MASTER_ROADMAP_HIGH_LEVEL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# MASTER ROADMAP - HIGH LEVEL (v7 ADDITIVE)
1+
# MASTER ROADMAP - HIGH LEVEL (v7 ADDITIVE)
22

33
## Status Key
44
- [x] complete
@@ -229,7 +229,7 @@
229229
### Track A - Debug Foundation
230230
- [x] Dev Console (input + command execution)
231231
- [x] Debug Overlay (visual panels)
232-
- [x] Console ↔ Overlay Boundary
232+
- [x] Console ↔ Overlay Boundary
233233
- [x] Panel Registry
234234
- [x] Data Providers (read-only model)
235235
- [x] Operator Commands (control surface)
@@ -428,7 +428,7 @@
428428
- [.] game-specific asset ownership enforced
429429
- [ ] shared-vs-game utility boundaries enforced
430430
- [ ] space_invaders normalized
431-
- [ ] puckman normalized
431+
- [x] puckman normalized
432432
- [ ] future games follow template-first path
433433

434434
---
@@ -535,7 +535,7 @@
535535
- [ ] 3D Movement Sample
536536
- [ ] Basic Collision Sample
537537

538-
### Core Sample Track (1601–1608)
538+
### Core Sample Track (1601–1608)
539539
- [ ] 1601 - 3D Cube Explorer
540540
- [ ] 1602 - 3D Maze Runner
541541
- [ ] 1603 - First Person Walkthrough

docs/dev/CODEX_COMMANDS.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1-
MODEL: GPT-5.4
2-
REASONING: medium
3-
COMMAND: Implement PR_08_03_GAMES_MIGRATION
1+
MODEL: GPT-5.4
2+
REASONING: high
3+
4+
COMMAND:
5+
Implement `BUILD_PR_LEVEL_08_04_PUCKMAN_BOUNDARY_NORMALIZATION` as a docs-aligned, smallest-scope repo change.
6+
7+
Scope:
8+
- Normalize `games/Puckman` to the Phase 08 games-layer boundary model only.
9+
- Follow the PR doc at `docs/pr/BUILD_PR_LEVEL_08_04_PUCKMAN_BOUNDARY_NORMALIZATION.md`.
10+
- Keep this PR limited to Puckman boundary normalization plus any necessary roadmap status correction earned by the implementation.
11+
- Do not modify engine core APIs.
12+
- Do not touch `start_of_day`.
13+
- Do not expand into Space Invaders, network work, tools work, or unrelated repo cleanup.
14+
15+
Validation:
16+
- Run targeted `node --check` on touched Puckman files.
17+
- Run the smallest relevant tests or smoke validation already present for Puckman / launch entry validation.
18+
- Capture outputs in `docs/dev/reports`.

docs/dev/COMMIT_COMMENT.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
PR_08_03_GAMES_MIGRATION
1+
build(games): normalize puckman boundaries for phase 08

docs/dev/ROADMAP_RULES.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Roadmap Rules
2+
3+
## Purpose
4+
Prevent roadmap drift by separating implementation work from roadmap truth updates.
5+
6+
## Ownership
7+
- Implementation PRs build or refactor code.
8+
- Validation PRs verify repo reality against roadmap criteria.
9+
- Roadmap status changes happen only in a dedicated validation or planning PR.
10+
11+
## Status Definitions
12+
- `[x]` Complete: every acceptance criterion is satisfied and evidenced.
13+
- `[.]` In Progress: meaningful partial completion exists, but at least one acceptance criterion is still unmet.
14+
- `[ ]` Not Complete: no sufficient evidence exists to claim progress or completion.
15+
16+
## Evidence Standard
17+
Before changing any roadmap line, collect all of the following:
18+
1. scoped acceptance criteria
19+
2. repo evidence for each criterion
20+
3. a pass/fail checklist
21+
4. missing-items summary
22+
5. recommendation with justification
23+
24+
## Forbidden Shortcuts
25+
Do not move a roadmap line to `[x]` because of:
26+
- folder placeholders
27+
- naming conventions alone
28+
- one-off samples when the line is repo-wide
29+
- inferred intent
30+
- partial migration without runtime boundary proof
31+
32+
## Validator Behavior
33+
Validators must report facts only:
34+
- what files exist
35+
- what boundaries are present
36+
- what criteria pass
37+
- what criteria fail
38+
39+
Validators must not:
40+
- decide roadmap status without explicit acceptance criteria
41+
- broaden scope
42+
- merge multiple roadmap lines into one conclusion
43+
44+
## Review Rule
45+
When there is uncertainty, preserve the stricter status.
46+
47+
## Phase-Based Rule
48+
A line that names multiple games, systems, or structures stays below `[x]` until all named targets are validated.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Phase 08 status correction after BUILD_PR_LEVEL_08_04_PUCKMAN_BOUNDARY_NORMALIZATION
2+
3+
Earned now
4+
- [x] puckman normalized
5+
6+
Still not earned repo-wide
7+
- [ ] game flow pattern standardized (`flow/attract.js`, `flow/intro.js`, `flow/highscore.js`)
8+
- [ ] gameplay/entities/levels/rules/assets boundaries normalized
9+
- [ ] shared-vs-game utility boundaries enforced
10+
- [ ] space_invaders normalized
11+
- [ ] future games follow template-first path
12+
13+
Notes
14+
- This PR normalizes Puckman only.
15+
- Repo-wide completion markers remain unchanged unless globally satisfied.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
PR: BUILD_PR_LEVEL_08_04_PUCKMAN_BOUNDARY_NORMALIZATION
2+
3+
Puckman boundary normalization (smallest scope)
4+
- Added game-local boundary folders under games/Puckman.
5+
- Added rules source of truth at games/Puckman/rules/gameFlowRules.js.
6+
- Added flow modules consuming rules constants:
7+
- games/Puckman/flow/attract.js
8+
- games/Puckman/flow/intro.js
9+
- games/Puckman/flow/highscore.js
10+
- Added gameplay runtime/scene modules consuming rules constants:
11+
- games/Puckman/game/PuckmanRuntime.js
12+
- games/Puckman/game/PuckmanGameScene.js
13+
14+
Boundary ownership
15+
- flow: descriptors only, no duplicated constants
16+
- game: runtime/scene orchestration only
17+
- rules: authoritative constants and flow contract helper
18+
- entities/levels/assets/systems/utils/config/debug/ui: game-local placeholders only
Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
1-
PR: PR_08_03_GAMES_MIGRATION
1+
PR: BUILD_PR_LEVEL_08_04_PUCKMAN_BOUNDARY_NORMALIZATION
22

3-
Validation Checklist
4-
- structural migration only (folder boundaries)
5-
- every game has game/entities/levels/rules/assets
6-
- runtime smoke remains passing
3+
Validation checklist
4+
- [x] Puckman has a game-local rules surface
5+
- [x] Flow files import constants from rules
6+
- [x] Gameplay scene/runtime files import constants from rules
7+
- [x] No engine files changed
8+
- [x] Status markers updated only where earned
79

8-
- PASS AITargetDummy
9-
- PASS Asteroids
10-
- PASS Bouncing-ball
11-
- PASS Breakout
12-
- PASS Gravity
13-
- PASS GravityWell
14-
- PASS MultiBallChaos
15-
- PASS Orbit
16-
- PASS PacmanFullAI
17-
- PASS PacmanLite
18-
- PASS PaddleIntercept
19-
- PASS Pong
20-
- PASS ProjectileLab
21-
- PASS SolarSystem
22-
- PASS SpaceDuel
23-
- PASS SpaceInvaders
24-
- PASS Thruster
10+
Commands run
11+
- node --check games/Puckman/rules/gameFlowRules.js
12+
- node --check games/Puckman/flow/attract.js
13+
- node --check games/Puckman/flow/intro.js
14+
- node --check games/Puckman/flow/highscore.js
15+
- node --check games/Puckman/game/PuckmanRuntime.js
16+
- node --check games/Puckman/game/PuckmanGameScene.js
17+
- node tests/runtime/LaunchSmokeAllEntries.test.mjs
2518

26-
Result: PASS
19+
Result
20+
- PASS

docs/dev/roadmaps/MASTER_ROADMAP_HIGH_LEVEL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# MASTER ROADMAP - HIGH LEVEL (v7 ADDITIVE)
1+
# MASTER ROADMAP - HIGH LEVEL (v7 ADDITIVE)
22

33
## Status Key
44
- [x] complete
@@ -229,7 +229,7 @@
229229
### Track A - Debug Foundation
230230
- [x] Dev Console (input + command execution)
231231
- [x] Debug Overlay (visual panels)
232-
- [x] Console ↔ Overlay Boundary
232+
- [x] Console ↔ Overlay Boundary
233233
- [x] Panel Registry
234234
- [x] Data Providers (read-only model)
235235
- [x] Operator Commands (control surface)
@@ -420,7 +420,7 @@
420420
- [.] game-specific asset ownership enforced
421421
- [ ] shared-vs-game utility boundaries enforced
422422
- [ ] space_invaders normalized
423-
- [ ] puckman normalized
423+
- [x] puckman normalized
424424
- [ ] future games follow template-first path
425425

426426
---
@@ -520,7 +520,7 @@
520520
- [ ] 3D Movement Sample
521521
- [ ] Basic Collision Sample
522522

523-
### Core Sample Track (1601–1608)
523+
### Core Sample Track (1601–1608)
524524
- [ ] 1601 - 3D Cube Explorer
525525
- [ ] 1602 - 3D Maze Runner
526526
- [ ] 1603 - First Person Walkthrough
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
# BUILD_PR_LEVEL_08_04_PUCKMAN_BOUNDARY_NORMALIZATION
2+
3+
## Purpose
4+
Normalize **Puckman** to the Phase 08 games-layer boundary model only.
5+
6+
This PR is intentionally narrow:
7+
- no engine edits
8+
- no repo-wide restructuring
9+
- no Space Invaders edits
10+
- no unrelated sample cleanup
11+
- no gameplay feature expansion
12+
13+
## Why this is next
14+
`PR_08_03_GAMES_MIGRATION` added placeholder `rules` folders across many games, but it did **not** complete Phase 08.
15+
16+
What is now true:
17+
- broad folder coverage improved
18+
- placeholder boundaries exist for many games
19+
20+
What is still not true:
21+
- repo-wide flow standardization is not earned
22+
- shared-vs-game utility enforcement is not earned
23+
- Puckman normalization is still not earned
24+
- full current-games migration is still not earned
25+
26+
The smallest valid next move is:
27+
1. normalize **Puckman** to the same game-local boundary model used for focused game migrations,
28+
2. keep the PR game-local and surgical,
29+
3. update Phase 08 status only where actually earned.
30+
31+
## Required boundary target
32+
Puckman should follow this ownership model:
33+
34+
- `games/Puckman/flow/*`
35+
- attract / intro / highscore flow modules when those states exist
36+
- no duplicated rule constants
37+
- `games/Puckman/game/*`
38+
- runtime orchestration and scene wiring only
39+
- `games/Puckman/entities/*`
40+
- player, ghost, pellet, fruit, tunnel, collision-domain entities
41+
- `games/Puckman/levels/*`
42+
- maze/layout/start-state progression definitions
43+
- `games/Puckman/rules/*`
44+
- authoritative game-local constants and flow/rules contracts
45+
- `games/Puckman/assets/*` and platform-local assets
46+
- only Puckman-owned media/content
47+
- `games/Puckman/systems/*` and `games/Puckman/utils/*`
48+
- game-specific helpers only
49+
50+
## Implementation goals
51+
Codex should make only the smallest changes needed to achieve the following:
52+
53+
1. Create or normalize a Puckman rules surface
54+
- add a game-local rules module if missing
55+
- move duplicated flow/gameplay constants there
56+
- make flow + gameplay import from one source of truth
57+
58+
2. Normalize flow contract files
59+
- ensure `flow/attract.js`, `flow/intro.js`, and `flow/highscore.js` exist if the game supports those states
60+
- keep exports stable unless a correction is required
61+
- do not change player-facing behavior unless needed to preserve current behavior
62+
63+
3. Normalize gameplay ownership
64+
- move game-flow constants out of gameplay scene/runtime files into rules
65+
- keep scene/runtime files focused on orchestration
66+
67+
4. Preserve game-local ownership
68+
- do not move Puckman assets/utilities into shared unless they are already clearly cross-game
69+
- do not pull engine utilities into the game folder
70+
71+
5. Update status truthfully
72+
- only mark roadmap items complete when the repo actually satisfies them after this PR
73+
- preserve full roadmap line text when editing status markers
74+
- do not downgrade any item that is already truly complete
75+
76+
## Non-goals
77+
- no engine API redesign
78+
- no start_of_day edits
79+
- no network work
80+
- no sample index work
81+
- no broad tools cleanup
82+
- no Phase 09+ work
83+
84+
## Expected touched areas
85+
- `games/Puckman/flow/*`
86+
- `games/Puckman/game/*`
87+
- `games/Puckman/rules/*`
88+
- optional: `games/Puckman/entities/*`, `levels/*`, `systems/*`, `utils/*`
89+
- roadmap/status docs only if already part of the repo’s active tracking files
90+
91+
## Acceptance criteria
92+
- Puckman has a clear local boundary split for flow/game/rules
93+
- no duplicated flow-rule constants across flow and gameplay
94+
- gameplay scene/runtime files consume rules constants instead of defining them
95+
- no engine files changed
96+
- targeted validation passes
97+
- roadmap status updated only to reflect actual repo truth
98+
99+
## Corrected Phase 08 status after reviewing `PR_08_03_GAMES_MIGRATION`
100+
101+
Earned now:
102+
- [x] `games/_template/` created
103+
- [.] per-game structure normalized
104+
- [.] current games migrated to target structure
105+
106+
Still not earned from the uploaded PRs:
107+
- [ ] game flow pattern standardized (`flow/attract.js`, `flow/intro.js`, `flow/highscore.js`)
108+
- [ ] gameplay/entities/levels/rules/assets boundaries normalized
109+
- [ ] shared-vs-game utility boundaries enforced
110+
- [ ] space_invaders normalized
111+
- [ ] puckman normalized
112+
- [ ] future games follow template-first path
113+
114+
## Suggested commit title
115+
`build(games): normalize puckman boundaries for phase 08`
116+
117+
## After this PR
118+
Phase 08 should be reassessed strictly from repo truth. Likely remaining work after Puckman will be:
119+
- Space Invaders normalization, if not already fully implemented in repo
120+
- shared-vs-game utility boundary enforcement
121+
- final truthful status alignment

0 commit comments

Comments
 (0)