Skip to content

Commit 2d432d4

Browse files
author
DavidQ
committed
BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA
- Removed internal manifest pointer references from Asteroids game.manifest.json - Kept actual data directly under owning tool sections - Preserved external media paths only where appropriate PR Details: - Completes Asteroids direct-data manifest model - No validators - No start_of_day changes
1 parent 9f5b348 commit 2d432d4

9 files changed

Lines changed: 337 additions & 187 deletions

docs/dev/reports/expected_delta_template.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,24 @@
22

33
## Expected Changed Files
44
- `games/Asteroids/game.manifest.json`
5-
- Asteroids loader/runtime files only where needed to read manifest-owned data
6-
- `docs/dev/reports/level_9_6_asteroids_hard_cutover_report.md`
5+
- Asteroids loader/runtime files only if required to remove internal pointer resolution
6+
- `docs/dev/reports/level_9_7_remove_internal_references_report.md`
77
- `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` if status update needed
88

9-
## Expected Deleted Files
10-
All Asteroids JSON except `game.manifest.json`.
11-
129
## Expected Validation Summary
13-
- `asteroids_json_before=22`
14-
- `asteroids_json_after=1`
15-
- `only_remaining_json=games/Asteroids/game.manifest.json`
16-
- `deleted_json_files=21`
17-
- `old_json_references_remaining=0`
18-
- `json_404s=0`
10+
- `asteroids_json_count=1`
11+
- `runtimeSource_remaining=0`
12+
- `internal_fragment_refs_remaining=0`
13+
- `root_assetCatalog_json_refs_remaining=0`
14+
- `inlinedSourceFiles_remaining=0`
15+
- `toolDomains_remaining=0`
16+
- `old_deleted_json_filename_refs_remaining=0`
17+
- `external_media_paths_allowed=true`
1918
- `asteroids_direct_launch=true`
2019
- `validators_added=0`
2120
- `start_of_day_changes=0`
2221

2322
## Expected Delta ZIP
2423
Codex must create:
2524

26-
`tmp/BUILD_PR_LEVEL_9_6_ASTEROIDS_HARD_CUTOVER_SINGLE_MANIFEST_delta.zip`
25+
`tmp/BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA_delta.zip`
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# LEVEL 9.7 - Remove Internal References And Inline Data Report
2+
3+
## Build
4+
- `BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA`
5+
6+
## Target File
7+
- `games/Asteroids/game.manifest.json`
8+
9+
## Internal Reference Removal Summary
10+
- Removed `runtimeSource` pointers from tool payload sections.
11+
- Removed internal manifest fragment pointer strings (`game.manifest.json#`, `#tools/`, `#tools.`).
12+
- Removed `lineage.inlinedSourceFiles`.
13+
- Removed `lineage.toolDomains`.
14+
- Removed internal self-reference paths from vector `source.path` fields.
15+
- Kept only minimal lineage marker:
16+
- `lineage.build = BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA`
17+
18+
## Removed Internal References Count (git diff pattern scan)
19+
- `runtimeSource` removed lines: `9`
20+
- internal fragment refs removed lines (`game.manifest.json#`, `#tools/`, `#tools.`): `33`
21+
- `inlinedSourceFiles` removed lines: `1`
22+
- `toolDomains` removed lines: `1`
23+
- `source.path` self-manifest references removed lines: `6`
24+
25+
## Root assetCatalog Status
26+
- Root `assetCatalog` retained with external media assets only.
27+
- JSON-data entries in root `assetCatalog`: `0`
28+
- Remaining external file paths:
29+
- `/games/Asteroids/assets/audio/fire.wav`
30+
- `/games/Asteroids/assets/audio/bangLarge.wav`
31+
- `/games/Asteroids/assets/audio/bangMedium.wav`
32+
- `/games/Asteroids/assets/audio/bangSmall.wav`
33+
- `/games/Asteroids/assets/audio/beat1.wav`
34+
- `/games/Asteroids/assets/audio/beat2.wav`
35+
- `/games/Asteroids/assets/audio/extraShip.wav`
36+
- `/games/Asteroids/assets/audio/thrust.wav`
37+
- `/games/Asteroids/assets/audio/saucerBig.wav`
38+
- `/games/Asteroids/assets/audio/saucerSmall.wav`
39+
- `/games/Asteroids/assets/images/bezel.png`
40+
41+
## Validation Checks
42+
- Pattern scan in `games/Asteroids/game.manifest.json`:
43+
- `runtimeSource`: `0`
44+
- `game.manifest.json#`: `0`
45+
- `#tools/`: `0`
46+
- `#tools.`: `0`
47+
- `inlinedSourceFiles`: `0`
48+
- `toolDomains`: `0`
49+
- Stale deleted JSON filename references in manifest: `0`
50+
- JSON file count under `games/Asteroids`: `1`
51+
52+
## Direct Launch Validation
53+
- Executed: `tests/games/AsteroidsValidation.test.mjs`
54+
- Result: `PASS AsteroidsValidation`
55+
- Boot trace reached `Asteroids boot-complete` repeatedly in the test harness.
56+
57+
## Retained References
58+
- Retained root `assetCatalog` because it now contains only external binary/media file paths used by runtime audio/bezel resolution.
59+
- No internal manifest fragment references retained.

docs/operations/dev/codex_commands.md

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,47 @@ MODEL: GPT-5.3-codex
22
REASONING: high
33

44
TASK:
5-
Apply BUILD_PR_LEVEL_9_6_ASTEROIDS_HARD_CUTOVER_SINGLE_MANIFEST.
6-
7-
THIS IS A HARD CUTOVER.
8-
Final Asteroids state must have only:
9-
- games/Asteroids/game.manifest.json
5+
Apply BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA.
106

117
STEPS:
12-
1. Read docs/pr/PLAN_PR_LEVEL_9_6_ASTEROIDS_HARD_CUTOVER_SINGLE_MANIFEST.md.
13-
2. Read docs/pr/BUILD_PR_LEVEL_9_6_ASTEROIDS_HARD_CUTOVER_SINGLE_MANIFEST.md.
14-
3. Inventory all `games/Asteroids/**/*.json`.
15-
4. For each JSON except `game.manifest.json`:
16-
- load contents
17-
- inline actual JSON data into `game.manifest.json`
18-
- map data to the owning tool section
19-
5. Search Asteroids code/config for deleted JSON references.
20-
6. Update Asteroids-scoped loaders/references to read from `game.manifest.json`.
21-
7. Delete all old Asteroids JSON files except `game.manifest.json`.
8+
1. Read docs/pr/PLAN_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA.md.
9+
2. Read docs/pr/BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA.md.
10+
3. Open `games/Asteroids/game.manifest.json`.
11+
4. Remove internal pointer patterns:
12+
- runtimeSource
13+
- game.manifest.json#
14+
- #tools/
15+
- #tools.
16+
- source.path pointing back to this manifest
17+
- lineage.inlinedSourceFiles
18+
- lineage.toolDomains
19+
5. Remove or restrict root assetCatalog:
20+
- no JSON-data entries
21+
- external binary/media paths only if retained
22+
6. Preserve actual data under owning tool sections:
23+
- primitive-skin-editor
24+
- sprite-editor
25+
- tile-map-editor
26+
- parallax-editor
27+
- vector-asset-studio
28+
- asset-browser for external media only
29+
7. Search for old deleted JSON filenames and remove stale references.
2230
8. Verify:
23-
- JSON count under games/Asteroids is 1
24-
- no old JSON path references remain
25-
- Asteroids launches directly
26-
- no 404s for deleted JSON
27-
9. Update docs/dev/reports/level_9_6_asteroids_hard_cutover_report.md.
31+
- only one JSON remains under games/Asteroids
32+
- no internal manifest fragment refs remain
33+
- no runtimeSource remains
34+
- Asteroids direct launch works
35+
9. Update docs/dev/reports/level_9_7_remove_internal_references_report.md.
2836
10. Update docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md status only if needed:
2937
- [ ] -> [.]
3038
- [.] -> [x]
3139
- no prose rewrite/delete
3240
11. Do not add validators.
3341
12. Do not modify start_of_day.
3442
13. Create Codex delta ZIP:
35-
tmp/BUILD_PR_LEVEL_9_6_ASTEROIDS_HARD_CUTOVER_SINGLE_MANIFEST_delta.zip
43+
tmp/BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA_delta.zip
3644

3745
ACCEPTANCE:
38-
- asteroids_json_after=1
39-
- only remaining JSON is games/Asteroids/game.manifest.json
40-
- Asteroids launches directly
46+
- manifest is data, not pointer map
47+
- Asteroids launches
4148
- delta ZIP exists
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
BUILD_PR_LEVEL_9_6_ASTEROIDS_HARD_CUTOVER_SINGLE_MANIFEST
1+
BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA
22

3-
- Consolidated Asteroids JSON into game.manifest.json
4-
- Removed all legacy Asteroids JSON files
5-
- Updated Asteroids references to manifest-owned data
6-
- Verified direct launch
3+
- Removed internal manifest pointer references from Asteroids game.manifest.json
4+
- Kept actual data directly under owning tool sections
5+
- Preserved external media paths only where appropriate
76

87
PR Details:
9-
- Hard cutover to true single-manifest Asteroids model
8+
- Completes Asteroids direct-data manifest model
109
- No validators
1110
- No start_of_day changes
Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA
2+
3+
## Objective
4+
Convert Asteroids from:
5+
6+
```text
7+
single JSON file with internal references
8+
```
9+
10+
to:
11+
12+
```text
13+
single JSON file with direct inline data
14+
```
15+
16+
## Current Bad Patterns
17+
18+
Remove these from `games/Asteroids/game.manifest.json`:
19+
20+
### 1. Root `assetCatalog`
21+
Remove the root `assetCatalog` object unless it only describes external binary/media files. If kept for binaries, rename/limit to asset-browser external file assets only and do not use it for JSON data.
22+
23+
Bad:
24+
25+
```json
26+
"assetCatalog": {
27+
"palette.asteroids.classic": {
28+
"path": "/games/Asteroids/game.manifest.json#tools/primitive-skin-editor/palettes/palette.asteroids.classic"
29+
}
30+
}
31+
```
32+
33+
### 2. `runtimeSource`
34+
Remove fields like:
35+
36+
```json
37+
"runtimeSource": "/games/Asteroids/game.manifest.json#tools/..."
38+
```
39+
40+
### 3. Internal `source.path`
41+
Remove fields like:
42+
43+
```json
44+
"source": {
45+
"kind": "svg",
46+
"path": "/games/Asteroids/game.manifest.json#tools/vector-asset-studio/vectors/vector.asteroids.ship"
47+
}
48+
```
49+
50+
### 4. Internal fragment paths
51+
Remove any string containing:
52+
53+
```text
54+
/game.manifest.json#
55+
#tools/
56+
#tools.
57+
```
58+
59+
### 5. Lineage pointer sections
60+
Remove:
61+
- `lineage.inlinedSourceFiles`
62+
- `lineage.toolDomains`
63+
64+
Keep only minimal build note if needed:
65+
66+
```json
67+
"lineage": {
68+
"build": "BUILD_PR_LEVEL_9_7_REMOVE_INTERNAL_REFERENCES_AND_INLINE_DATA"
69+
}
70+
```
71+
72+
or remove `lineage` entirely if not needed.
73+
74+
## Correct Data Model
75+
76+
### Vector Data
77+
Correct:
78+
79+
```json
80+
{
81+
"id": "vector.asteroids.ship",
82+
"type": "vector",
83+
"geometry": {
84+
"viewBox": "-24 -24 48 48",
85+
"paths": []
86+
},
87+
"style": {
88+
"stroke": true,
89+
"fill": false
90+
}
91+
}
92+
```
93+
94+
No internal `source.path`.
95+
96+
### Sprite Data
97+
Correct:
98+
99+
```json
100+
{
101+
"id": "sprite.asteroids.demo",
102+
"frames": []
103+
}
104+
```
105+
106+
No `runtimeSource`.
107+
108+
### Tilemap Data
109+
Correct:
110+
111+
```json
112+
{
113+
"id": "tilemap.asteroids.stage",
114+
"screens": [],
115+
"systems": []
116+
}
117+
```
118+
119+
No `project.runtimeSource`.
120+
121+
### Parallax Data
122+
Correct:
123+
124+
```json
125+
{
126+
"id": "parallax.asteroids.overlay",
127+
"role": "gameplay-overlay",
128+
"enabled": true
129+
}
130+
```
131+
132+
No `runtimeSource`.
133+
134+
### Primitive Skin / HUD Data
135+
Correct:
136+
- HUD/skin data belongs under `primitive-skin-editor`.
137+
- It must be actual color/skin JSON data.
138+
- It must not be a reference to old `hud.json`.
139+
140+
### External File Assets
141+
Only binary/media assets may keep paths:
142+
- audio
143+
- png/webp/svg image files
144+
- fonts
145+
146+
These belong under `asset-browser`.
147+
148+
## Required Validation
149+
150+
After changes:
151+
152+
Search `games/Asteroids/game.manifest.json` for:
153+
- `runtimeSource`
154+
- `assetCatalog`
155+
- `game.manifest.json#`
156+
- `#tools/`
157+
- `#tools.`
158+
- `inlinedSourceFiles`
159+
- `toolDomains`
160+
- old deleted JSON filenames
161+
162+
Expected:
163+
- none remain, except external media paths that are not JSON.
164+
165+
## Direct Launch
166+
Asteroids must still launch directly.
167+
168+
## Required Report
169+
Create:
170+
171+
```text
172+
docs/dev/reports/level_9_7_remove_internal_references_report.md
173+
```
174+
175+
Report:
176+
- removed internal references count
177+
- remaining external file paths
178+
- remaining JSON file count under Asteroids
179+
- direct launch result
180+
- any retained reference and reason
181+
182+
## Acceptance
183+
- `games/Asteroids/**/*.json` count remains 1.
184+
- `game.manifest.json` contains no internal `#tools` references.
185+
- `game.manifest.json` contains no `runtimeSource`.
186+
- `game.manifest.json` contains no root JSON-data `assetCatalog`.
187+
- Actual data remains in owning tool sections.
188+
- External media paths are allowed only for non-JSON files.
189+
- Asteroids launches directly.
190+
- No validators added.
191+
- No `start_of_day` changes.

0 commit comments

Comments
 (0)