Skip to content

Commit dfb8d09

Browse files
author
DavidQ
committed
MODEL: GPT-5.3-codex
REASONING: high TASK: Apply BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING. STEPS: 1. Read docs/pr/PLAN_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING.md. 2. Read docs/pr/BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING.md. 3. Inventory all `games/Asteroids/**/*.json`. 4. Treat `games/Asteroids/game.manifest.json` as SSoT. 5. Ensure game.manifest.json references every Asteroids JSON asset that is still intended for game/workspace use. 6. Audit duplicate HUD data: - compare `assets/palettes/hud.json` - compare `assets/palettes/asteroids-hud.palette.json` - delete hud.json only if converted and unreferenced 7. Audit legacy catalogs: - assets/tools.manifest.json - assets/workspace.asset-catalog.json Delete only if no runtime/scripts/docs reference them and manifest parity is proven. 8. Audit generic data folders: - assets/parallax/data/* - assets/sprites/data/* - assets/tilemaps/data/* - assets/vectors/data/* Move only if safe and manifest updates are clear; otherwise report deferred. 9. Ensure `assets/tilesets/ui.json` is wired or documented/deleted if safe. 10. Update docs/dev/reports/level_8_31_asteroids_json_cleanup_report.md. 11. Update docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md status only: - [ ] -> [.] - [.] -> [x] - no prose rewrite/delete 12. Do not add validators. 13. Do not modify start_of_day. 14. Avoid runtime code changes. 15. Create Codex delta ZIP: tmp/BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING_delta.zip ACCEPTANCE: - Every remaining Asteroids JSON file is manifest-wired, runtime-required legacy, or documented deferred cleanup. - Duplicate HUD JSON is removed if safe. - Delta ZIP exists.
1 parent 9566f70 commit dfb8d09

22 files changed

Lines changed: 1197 additions & 17 deletions
Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,29 @@
1-
# Expected Codex Output
1+
# Expected Codex Return / Delta Template
22

3-
- asteroids_preview_direct_launch=true
4-
- workspace_manager_not_used_for_preview=true
5-
- runtime_changes=minimal link/config only
6-
- no validators added
3+
## Expected Changed/Added Files
4+
- `games/Asteroids/game.manifest.json`
5+
- `docs/dev/reports/level_8_31_asteroids_json_cleanup_report.md`
6+
- `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` if status update needed
7+
8+
## Possible Deleted Files
9+
Only if proven safe:
10+
- `games/Asteroids/assets/palettes/hud.json`
11+
- `games/Asteroids/assets/tools.manifest.json`
12+
- `games/Asteroids/assets/workspace.asset-catalog.json`
13+
14+
## Expected Validation Summary
15+
- `asteroids_json_files_before=21`
16+
- `asteroids_json_files_after=<count>`
17+
- `game_manifest_referenced_json=<count>`
18+
- `deleted_files=<count>`
19+
- `legacy_files_retained=<count>`
20+
- `deferred_cleanup_items=<count>`
21+
- `unreferenced_json_final=<count>`
22+
- `runtime_changes=0`
23+
- `validators_added=0`
24+
- `start_of_day_changes=0`
25+
26+
## Expected Delta ZIP
27+
Codex must create:
28+
29+
`tmp/BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING_delta.zip`
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Level 8.30 All Games Manifest SSoT Rollout Report
2+
3+
## Scope
4+
- Read `docs/pr/PLAN_PR_LEVEL_8_30_MANIFEST_SSOT_ROLLOUT_ALL_GAMES.md`.
5+
- Read `docs/pr/BUILD_PR_LEVEL_8_30_MANIFEST_SSOT_ROLLOUT_ALL_GAMES.md`.
6+
- Inspected all game folders with `games/<game>/index.html` (12 total).
7+
- Preserved legacy catalogs (`workspace.asset-catalog.json` and `tools.manifest.json`) in place.
8+
- No runtime routing/preview logic changed in this PR.
9+
10+
## Per-Game Rollout
11+
| Game Folder | Manifest Path | Created/Updated | Palettes Wired | Skins Wired | JSON Wired | Legacy Catalogs Retained | Direct Launch Path Present | Workspace Manager Action | Unreferenced JSON Remaining |
12+
|---|---|---:|---:|---:|---:|---|---|---|---:|
13+
| `_template` | `games/_template/game.manifest.json` | `created` | 0 | 0 | 1 | yes | yes | present | 0 |
14+
| `AITargetDummy` | `games/AITargetDummy/game.manifest.json` | `created` | 0 | 0 | 1 | yes | yes | present | 0 |
15+
| `Asteroids` | `games/Asteroids/game.manifest.json` | `updated` | 0 | 0 | 21 | yes | yes | present | 0 |
16+
| `Bouncing-ball` | `games/Bouncing-ball/game.manifest.json` | `created` | 1 | 1 | 3 | yes | yes | present | 0 |
17+
| `Breakout` | `games/Breakout/game.manifest.json` | `created` | 1 | 1 | 3 | yes | yes | present | 0 |
18+
| `GravityWell` | `games/GravityWell/game.manifest.json` | `created` | 0 | 0 | 1 | yes | yes | present | 0 |
19+
| `Pacman` | `games/Pacman/game.manifest.json` | `created` | 0 | 0 | 1 | yes | yes | present | 0 |
20+
| `Pong` | `games/Pong/game.manifest.json` | `created` | 1 | 1 | 3 | yes | yes | present | 0 |
21+
| `SolarSystem` | `games/SolarSystem/game.manifest.json` | `created` | 1 | 1 | 3 | yes | yes | present | 0 |
22+
| `SpaceDuel` | `games/SpaceDuel/game.manifest.json` | `created` | 1 | 0 | 2 | yes | yes | present | 0 |
23+
| `SpaceInvaders` | `games/SpaceInvaders/game.manifest.json` | `created` | 1 | 0 | 2 | yes | yes | present | 0 |
24+
| `vector-arcade-sample` | `games/vector-arcade-sample/game.manifest.json` | `created` | 1 | 0 | 13 | yes | yes | present | 0 |
25+
26+
## Summary
27+
- `games_total=12`
28+
- `manifests_present=12`
29+
- `created_manifests=11`
30+
- `updated_manifests=1`
31+
- `legacy_catalogs_retained_games=12`
32+
- `direct_launch_path_present_games=12`
33+
- `workspace_manager_action_present_games=12`
34+
- `unreferenced_json_remaining_total=0`
35+
36+
## Palette Alpha Normalization
37+
- No `#RRGGBBFF` palette values were found in game-local JSON during this rollout (no changes required).
38+
39+
## Direct Launch + Workspace Manager Separation
40+
- Preview/direct launch paths are game URLs (`/games/<game>/index.html`) in game manifests.
41+
- Workspace Manager remains explicit and optional via `workspaceManagerPath` in each manifest.
42+
- No runtime launch guard logic was modified in this PR.
43+
44+
## Constraint Check
45+
- `validators_added=0`
46+
- `runtime_code_changes=0`
47+
- `start_of_day_changes=0`
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Level 8.31 Asteroids JSON Cleanup Report
2+
3+
## To Be Completed By Codex
4+
- Inventory all Asteroids JSON files before cleanup.
5+
- Verify manifest coverage.
6+
- Identify files safe to delete.
7+
- Identify files that must be retained as legacy/runtime dependencies.
8+
- Identify deferred moves from `assets/<tool>/data/*`.
9+
- Confirm final unreferenced JSON count.
10+
- Confirm no runtime/start_of_day changes.

docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -879,8 +879,10 @@
879879
- [x] Verify sample tool payload files match workspace/game `tools[]` item shape.
880880
- [ ] Verify palette/shared data never embeds inside tool payload files.
881881
- [.] Verify workspace schema has no sample-only concepts.
882-
- [.] Manifest SSoT audit across game workspace catalogs/tool manifests is in progress.
882+
- [x] Manifest SSoT audit across game workspace catalogs/tool manifests is complete.
883883
- [x] Asteroids-first `game.manifest.json` SSoT example implemented (palette + HUD typing + bezel override wiring).
884+
- [x] All-games `game.manifest.json` SSoT rollout completed with legacy catalogs retained.
885+
- [x] Asteroids preview direct launch separation from Workspace Manager remains valid.
884886
- [.] Unused JSON cleanup audit (tools + explicit deletion candidates) is in progress.
885887
- [.] Palette opaque alpha normalization (`#RRGGBBFF` -> `#RRGGBB`) is in progress.
886888
- [x] Code-defined asset extraction audit across games/samples is complete.
Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,42 @@
11
MODEL: GPT-5.3-codex
2+
REASONING: high
23

34
TASK:
4-
Fix Asteroids preview to launch game directly.
5+
Apply BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING.
56

67
STEPS:
7-
1. Locate preview.svg click handler / link source
8-
2. Replace Workspace Manager route with direct game launch route
9-
3. Ensure no gameId/mount query required
10-
4. Do not modify runtime logic beyond routing
11-
5. Do not modify start_of_day
8+
1. Read docs/pr/PLAN_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING.md.
9+
2. Read docs/pr/BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING.md.
10+
3. Inventory all `games/Asteroids/**/*.json`.
11+
4. Treat `games/Asteroids/game.manifest.json` as SSoT.
12+
5. Ensure game.manifest.json references every Asteroids JSON asset that is still intended for game/workspace use.
13+
6. Audit duplicate HUD data:
14+
- compare `assets/palettes/hud.json`
15+
- compare `assets/palettes/asteroids-hud.palette.json`
16+
- delete hud.json only if converted and unreferenced
17+
7. Audit legacy catalogs:
18+
- assets/tools.manifest.json
19+
- assets/workspace.asset-catalog.json
20+
Delete only if no runtime/scripts/docs reference them and manifest parity is proven.
21+
8. Audit generic data folders:
22+
- assets/parallax/data/*
23+
- assets/sprites/data/*
24+
- assets/tilemaps/data/*
25+
- assets/vectors/data/*
26+
Move only if safe and manifest updates are clear; otherwise report deferred.
27+
9. Ensure `assets/tilesets/ui.json` is wired or documented/deleted if safe.
28+
10. Update docs/dev/reports/level_8_31_asteroids_json_cleanup_report.md.
29+
11. Update docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md status only:
30+
- [ ] -> [.]
31+
- [.] -> [x]
32+
- no prose rewrite/delete
33+
12. Do not add validators.
34+
13. Do not modify start_of_day.
35+
14. Avoid runtime code changes.
36+
15. Create Codex delta ZIP:
37+
tmp/BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING_delta.zip
1238

13-
OUTPUT:
14-
tmp/BUILD_PR_LEVEL_8_29B_ASTEROIDS_DIRECT_LAUNCH_FIX_delta.zip
39+
ACCEPTANCE:
40+
- Every remaining Asteroids JSON file is manifest-wired, runtime-required legacy, or documented deferred cleanup.
41+
- Duplicate HUD JSON is removed if safe.
42+
- Delta ZIP exists.
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
PR 8.29B: Asteroids direct launch fix
1+
BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING
22

3-
- Preview now launches game directly
4-
- Workspace Manager decoupled from preview
3+
- Cleaned Asteroids JSON layout around game.manifest.json SSoT
4+
- Audited duplicate HUD palette data and legacy catalogs
5+
- Wired or documented remaining Asteroids JSON files
6+
7+
PR Details:
8+
- Asteroids-only cleanup
9+
- No all-games rollout
10+
- No validators
11+
- No start_of_day changes
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# BUILD_PR_LEVEL_8_30_MANIFEST_SSOT_ROLLOUT_ALL_GAMES
2+
3+
## Objective
4+
Apply the Asteroids SSoT manifest pattern to all game folders.
5+
6+
## Source Pattern
7+
Use the validated Asteroids direction:
8+
- game preview launches game directly
9+
- Workspace Manager is optional
10+
- game manifest is SSoT
11+
- legacy catalogs remain until parity is proven
12+
13+
## Required Game Manifest
14+
For each game folder under `games/<game>/`, create or normalize:
15+
16+
```text
17+
games/<game>/game.manifest.json
18+
```
19+
20+
## Manifest Should Own
21+
- game id
22+
- display name
23+
- version
24+
- direct launch path
25+
- optional Workspace Manager path/action
26+
- palettes
27+
- skins
28+
- sprites
29+
- vectors
30+
- tilemaps
31+
- parallax data
32+
- overlays/bezel/layout overrides
33+
- tool payload/data refs
34+
- legacy catalog references as deprecated/derived only if still present
35+
36+
## Inputs To Read Per Game
37+
- `games/<game>/assets/workspace.asset-catalog.json`
38+
- `games/<game>/assets/tools.manifest.json`
39+
- all `games/<game>/**/*.json`
40+
- existing runtime/bootstrap/config JSON
41+
42+
## Rules
43+
- Do not delete old `workspace.asset-catalog.json`.
44+
- Do not delete old `tools.manifest.json`.
45+
- Mark old catalogs as legacy/derived in report.
46+
- Do not embed palette data in tool payloads.
47+
- Normalize opaque alpha colors:
48+
- `#RRGGBBFF` -> `#RRGGBB`
49+
- Direct launch remains the preview behavior.
50+
- Workspace Manager remains an explicit separate action.
51+
52+
## Report
53+
Create:
54+
55+
```text
56+
docs/dev/reports/level_8_30_all_games_manifest_ssot_rollout_report.md
57+
```
58+
59+
Report per game:
60+
- manifest created/updated
61+
- assets wired
62+
- unreferenced JSON remaining
63+
- legacy catalog files retained
64+
- direct launch path present
65+
- Workspace Manager action present or deferred
66+
67+
## Roadmap Movement
68+
Update `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` status only:
69+
- advance all-games SSoT rollout item `[ ] -> [.]` or `[.] -> [x]`
70+
- advance direct launch separation item `[.] -> [x]` if 8.29B remains valid
71+
- no prose rewrite/delete
72+
73+
## Acceptance
74+
- Every game folder has `game.manifest.json`.
75+
- Each manifest references known JSON assets or reports why deferred.
76+
- Legacy catalogs are retained.
77+
- No runtime rewrite.
78+
- No validators.
79+
- No `start_of_day` changes.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# BUILD_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING
2+
3+
## Input List
4+
User-provided Asteroids JSON list includes 21 files:
5+
6+
```text
7+
games/Asteroids/assets/images/bezel.stretch.override.json
8+
games/Asteroids/assets/palettes/asteroids-classic.palette.json
9+
games/Asteroids/assets/palettes/asteroids-hud.palette.json
10+
games/Asteroids/assets/palettes/hud.json
11+
games/Asteroids/assets/parallax/data/overlay.data.json
12+
games/Asteroids/assets/parallax/data/title.data.json
13+
games/Asteroids/assets/parallax/overlay.json
14+
games/Asteroids/assets/parallax/title.json
15+
games/Asteroids/assets/sprites/data/demo.data.json
16+
games/Asteroids/assets/sprites/demo.json
17+
games/Asteroids/assets/tilemaps/data/stage.data.json
18+
games/Asteroids/assets/tilemaps/stage.json
19+
games/Asteroids/assets/tilesets/ui.json
20+
games/Asteroids/assets/tools.manifest.json
21+
games/Asteroids/assets/vectors/asteroid-large.json
22+
games/Asteroids/assets/vectors/asteroid-medium.json
23+
games/Asteroids/assets/vectors/asteroid-small.json
24+
games/Asteroids/assets/vectors/data/library.data.json
25+
games/Asteroids/assets/vectors/ship.json
26+
games/Asteroids/assets/vectors/title.json
27+
games/Asteroids/assets/workspace.asset-catalog.json
28+
games/Asteroids/game.manifest.json
29+
```
30+
31+
## Required Decisions
32+
33+
### 1. SSoT
34+
`games/Asteroids/game.manifest.json` is the SSoT.
35+
36+
### 2. Legacy catalogs
37+
These are not SSoT:
38+
- `games/Asteroids/assets/tools.manifest.json`
39+
- `games/Asteroids/assets/workspace.asset-catalog.json`
40+
41+
In this PR:
42+
- delete only if game manifest parity is proven and runtime does not reference them
43+
- otherwise move/mark as legacy in report only
44+
45+
### 3. HUD duplicate
46+
Both exist:
47+
- `games/Asteroids/assets/palettes/asteroids-hud.palette.json`
48+
- `games/Asteroids/assets/palettes/hud.json`
49+
50+
Target:
51+
- keep `asteroids-hud.palette.json`
52+
- delete `hud.json` if fully converted and unreferenced
53+
- otherwise report why retained
54+
55+
### 4. Generic data folders
56+
Current:
57+
- `assets/parallax/data/*.data.json`
58+
- `assets/sprites/data/*.data.json`
59+
- `assets/tilemaps/data/*.data.json`
60+
- `assets/vectors/data/*.data.json`
61+
62+
Target:
63+
- do not use generic `data/` folders long term
64+
- if safe, move to explicit tool asset path
65+
- update `game.manifest.json`
66+
- if not safe, document as deferred
67+
68+
### 5. Loose/unwired assets
69+
Ensure these are either wired or deleted/deferred:
70+
- `assets/tilesets/ui.json`
71+
- `assets/images/bezel.stretch.override.json`
72+
- all tool data files
73+
74+
## Required Report
75+
Create:
76+
77+
```text
78+
docs/dev/reports/level_8_31_asteroids_json_cleanup_report.md
79+
```
80+
81+
Report sections:
82+
- JSON file inventory
83+
- SSoT manifest coverage
84+
- deleted files
85+
- retained legacy files
86+
- deferred moves
87+
- runtime references found
88+
- final unreferenced JSON count
89+
90+
## Roadmap Movement
91+
Update `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` status only:
92+
- advance Asteroids JSON cleanup `[ ] -> [.]` or `[.] -> [x]`
93+
- advance legacy catalog parity `[ ] -> [.]`
94+
- no prose rewrite/delete
95+
96+
## Acceptance
97+
- Every remaining Asteroids JSON file is one of:
98+
- referenced by `game.manifest.json`
99+
- proven runtime-required legacy file
100+
- documented deferred cleanup item
101+
- `hud.json` removed if converted and unused.
102+
- No duplicate HUD palette data remains unless justified.
103+
- No validators added.
104+
- No `start_of_day` changes.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# PLAN_PR_LEVEL_8_30_MANIFEST_SSOT_ROLLOUT_ALL_GAMES
2+
3+
## Purpose
4+
Roll the validated Asteroids game-manifest SSoT pattern across the remaining games.
5+
6+
## Scope
7+
- Create or normalize `games/<game>/game.manifest.json` for every game folder.
8+
- Preserve existing runtime catalogs and tool manifests as legacy/derived files.
9+
- Wire all known JSON assets into each game manifest.
10+
- Keep direct game launch behavior separate from Workspace Manager.
11+
- Advance roadmap status only.
12+
13+
## Non-Goals
14+
- No deleting old catalogs yet.
15+
- No broad runtime rewrite.
16+
- No validators.
17+
- No `start_of_day` changes.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# PLAN_PR_LEVEL_8_31_ASTEROIDS_JSON_CLEANUP_AND_MANIFEST_WIRING
2+
3+
## Purpose
4+
Clean up Asteroids JSON layout after the game manifest SSoT rollout.
5+
6+
## Scope
7+
- Use `games/Asteroids/game.manifest.json` as SSoT.
8+
- Audit all Asteroids JSON files.
9+
- Remove or deprecate duplicate/legacy files only when safe.
10+
- Convert or delete loose HUD JSON now that `asteroids-hud.palette.json` exists.
11+
- Flatten or document `assets/<tool>/data/*` cleanup path.
12+
- Ensure every remaining Asteroids JSON file is wired by the manifest or explicitly marked legacy/derived.
13+
14+
## Non-Goals
15+
- No all-games rollout in this PR.
16+
- No broad runtime rewrite.
17+
- No validators.
18+
- No `start_of_day` changes.

0 commit comments

Comments
 (0)