Skip to content

Commit 46714f4

Browse files
author
DavidQ
committed
BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES
- Migrated tool-local samples into /samples - Updated samples index - Removed local sample dropdown/select entries from processed tools - Preserved tool explicit-input behavior PR Details: - Processes Vector Map Editor, Vector Asset Studio, Parallax Scene Studio, and Tilemap Studio - No validators - No start_of_day changes
1 parent f9a953b commit 46714f4

60 files changed

Lines changed: 2450 additions & 81 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
# Expected Codex Return / Delta Template
22

3-
## Expected Changed Files
4-
- `games/GravityWell/game.manifest.json` if style defaults need adding
5-
- Vector Asset Studio / Workspace Manager binding file(s)
6-
- Runtime test file(s) for Vector Asset Studio binding
7-
- `docs/dev/reports/level_10_2f_vector_asset_palette_paint_binding_report.md`
3+
## Expected Changed/Added Files
4+
- `samples/phase-*/####/**`
5+
- `samples/index.html`
6+
- tool UI files for removing local sample dropdown/select entries
7+
- tests for sample index/launch behavior
8+
- `docs/dev/reports/level_10_3_tool_local_sample_migration_report.md`
89
- `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` if status update needed
910

1011
## Expected Validation Summary
11-
- `gravity_well_palette_loaded=true`
12-
- `gravity_well_vector_asset_present=true`
13-
- `gravity_well_vector_palette_selected=true`
14-
- `gravity_well_vector_stroke_selected=true`
15-
- `gravity_well_vector_paint_selected=<true|not-required-fill-false>`
16-
- `binding_test_added_or_updated=true`
17-
- `validators_added=0`
12+
- `tools_scanned=4`
13+
- `tool_local_samples_found=<count>`
14+
- `samples_migrated=<count>`
15+
- `duplicate_sample_ids=0`
16+
- `samples_index_updated=true`
17+
- `migrated_samples_launch=true`
18+
- `tool_local_sample_dropdowns_removed=true`
1819
- `start_of_day_changes=0`
1920

2021
## Expected Delta ZIP
2122
Codex must create:
2223

23-
`tmp/BUILD_PR_LEVEL_10_2F_VECTOR_ASSET_PALETTE_PAINT_BINDING_FIX_delta.zip`
24+
`tmp/BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES_delta.zip`
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# Level 10.3 Tool-Local Sample Migration Report
2+
3+
Date: 2026-04-26
4+
Build: `BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES`
5+
6+
## Scope Summary
7+
- Migrated discovered tool-local sample/demo payloads for:
8+
- `tools/Vector Map Editor`
9+
- `tools/Vector Asset Studio`
10+
- `tools/Parallax Scene Studio`
11+
- Audited `tools/Tilemap Studio` for tool-local sample/demo entries.
12+
- Added migrated sample entries under `samples/phase-12` using next available IDs `1212` to `1220`.
13+
- Updated samples hub indexing through `samples/metadata/samples.index.metadata.json` (the data source used by `samples/index.html`).
14+
- Removed tool-local sample dropdown/select UI entries from processed tools while keeping explicit query-based preset input support.
15+
16+
## Source To Destination Mapping
17+
18+
### Vector Map Editor
19+
- Source tool: `tools/Vector Map Editor`
20+
- Source sample/demo path: `tools/Vector Map Editor/samples/overworld_route_map.editor.json`
21+
- Destination sample path: `samples/phase-12/1212/`
22+
- Assigned phase/id: `phase-12 / 1212`
23+
- Files moved/copied:
24+
- Created `samples/phase-12/1212/sample-1212-vector-map-editor.json`
25+
- Created `samples/phase-12/1212/index.html`
26+
- Created `samples/phase-12/1212/assets/images/preview.svg`
27+
28+
- Source tool: `tools/Vector Map Editor`
29+
- Source sample/demo path: `tools/Vector Map Editor/samples/dungeon_layout_map.editor.json`
30+
- Destination sample path: `samples/phase-12/1213/`
31+
- Assigned phase/id: `phase-12 / 1213`
32+
- Files moved/copied:
33+
- Created `samples/phase-12/1213/sample-1213-vector-map-editor.json`
34+
- Created `samples/phase-12/1213/index.html`
35+
- Created `samples/phase-12/1213/assets/images/preview.svg`
36+
37+
- Source tool: `tools/Vector Map Editor`
38+
- Source sample/demo path: `tools/Vector Map Editor/samples/arena_zone_map.editor.json`
39+
- Destination sample path: `samples/phase-12/1214/`
40+
- Assigned phase/id: `phase-12 / 1214`
41+
- Files moved/copied:
42+
- Created `samples/phase-12/1214/sample-1214-vector-map-editor.json`
43+
- Created `samples/phase-12/1214/index.html`
44+
- Created `samples/phase-12/1214/assets/images/preview.svg`
45+
46+
### Vector Asset Studio
47+
- Source tool: `tools/Vector Asset Studio`
48+
- Source sample/demo path: `tools/Vector Asset Studio/samples/sky_gradient_scene.svg`
49+
- Destination sample path: `samples/phase-12/1215/`
50+
- Assigned phase/id: `phase-12 / 1215`
51+
- Files moved/copied:
52+
- Created `samples/phase-12/1215/sample-1215-vector-asset-studio.json`
53+
- Copied `samples/phase-12/1215/assets/data/vector/sky_gradient_scene.svg`
54+
- Created `samples/phase-12/1215/index.html`
55+
- Created `samples/phase-12/1215/assets/images/preview.svg`
56+
57+
- Source tool: `tools/Vector Asset Studio`
58+
- Source sample/demo path: `tools/Vector Asset Studio/samples/mountain_range_scene.svg`
59+
- Destination sample path: `samples/phase-12/1216/`
60+
- Assigned phase/id: `phase-12 / 1216`
61+
- Files moved/copied:
62+
- Created `samples/phase-12/1216/sample-1216-vector-asset-studio.json`
63+
- Copied `samples/phase-12/1216/assets/data/vector/mountain_range_scene.svg`
64+
- Created `samples/phase-12/1216/index.html`
65+
- Created `samples/phase-12/1216/assets/images/preview.svg`
66+
67+
- Source tool: `tools/Vector Asset Studio`
68+
- Source sample/demo path: `tools/Vector Asset Studio/samples/mario_style_learning_backdrop.svg`
69+
- Destination sample path: `samples/phase-12/1217/`
70+
- Assigned phase/id: `phase-12 / 1217`
71+
- Files moved/copied:
72+
- Created `samples/phase-12/1217/sample-1217-vector-asset-studio.json`
73+
- Copied `samples/phase-12/1217/assets/data/vector/mario_style_learning_backdrop.svg`
74+
- Created `samples/phase-12/1217/index.html`
75+
- Created `samples/phase-12/1217/assets/images/preview.svg`
76+
77+
### Parallax Scene Studio
78+
- Source tool: `tools/Parallax Scene Studio`
79+
- Source sample/demo path: `tools/Parallax Scene Studio/samples/parallax_sample.json`
80+
- Destination sample path: `samples/phase-12/1218/`
81+
- Assigned phase/id: `phase-12 / 1218`
82+
- Files moved/copied:
83+
- Created `samples/phase-12/1218/sample-1218-parallax-editor.json`
84+
- Copied referenced assets into `samples/phase-12/1218/assets/data/parallax/`
85+
- Created `samples/phase-12/1218/index.html`
86+
- Created `samples/phase-12/1218/assets/images/preview.svg`
87+
88+
- Source tool: `tools/Parallax Scene Studio`
89+
- Source sample/demo path: `tools/Parallax Scene Studio/samples/tilemap_parallax_sample.json`
90+
- Destination sample path: `samples/phase-12/1219/`
91+
- Assigned phase/id: `phase-12 / 1219`
92+
- Files moved/copied:
93+
- Created `samples/phase-12/1219/sample-1219-parallax-editor.json`
94+
- Copied referenced assets into `samples/phase-12/1219/assets/data/parallax/`
95+
- Created `samples/phase-12/1219/index.html`
96+
- Created `samples/phase-12/1219/assets/images/preview.svg`
97+
98+
- Source tool: `tools/Parallax Scene Studio`
99+
- Source sample/demo path: `tools/Parallax Scene Studio/samples/mario_style_learning_level_parallax.json`
100+
- Destination sample path: `samples/phase-12/1220/`
101+
- Assigned phase/id: `phase-12 / 1220`
102+
- Files moved/copied:
103+
- Created `samples/phase-12/1220/sample-1220-parallax-editor.json`
104+
- Copied referenced assets into `samples/phase-12/1220/assets/data/parallax/`
105+
- Created `samples/phase-12/1220/index.html`
106+
- Created `samples/phase-12/1220/assets/images/preview.svg`
107+
108+
### Tilemap Studio Audit Result
109+
- Source tool: `tools/Tilemap Studio`
110+
- Discovery result: no tool-local sample/demo `samples/` folder and no sample dropdown/select entries were found.
111+
- Migration action: none required for tool-local sample payloads.
112+
113+
## Tool-Local Sample UI Removal
114+
- `tools/Vector Map Editor/index.html`
115+
- Removed sample dropdown/select and load button controls.
116+
- `tools/Vector Asset Studio/index.html`
117+
- Removed sample dropdown/select and refresh/load controls.
118+
- `tools/Parallax Scene Studio/index.html`
119+
- Removed sample dropdown/select and load controls.
120+
- `tools/Vector Asset Studio/main.js`
121+
- Added null-safe guards so removed controls do not break runtime.
122+
- `tools/Parallax Scene Studio/main.js`
123+
- Added null-safe guards so removed controls do not break runtime.
124+
- `tools/Tilemap Studio`
125+
- No sample dropdown/select existed, retained unchanged.
126+
127+
## Samples Hub Update
128+
- Updated samples hub data source:
129+
- `samples/metadata/samples.index.metadata.json`
130+
- Added migrated sample rows for IDs:
131+
- `1212`, `1213`, `1214`, `1215`, `1216`, `1217`, `1218`, `1219`, `1220`
132+
- `samples/index.html` intro copy updated to reflect tool preset samples in hub listing.
133+
134+
## Launch Test Result
135+
136+
### Added/Updated Tests
137+
- Added `tests/tools/ToolLocalSampleMigration.test.mjs`
138+
- Verifies migrated sample IDs are indexed in metadata and files exist.
139+
- Verifies each migrated sample index launches correct tool route with `sampleId` and `samplePresetPath`.
140+
- Verifies old tool-local sample dropdown/select controls are removed from processed tool HTML.
141+
- Verifies query preset loading hooks remain in processed tool runtime files.
142+
143+
- Updated `tests/run-tests.mjs`
144+
- Added explicit run hook for `ToolLocalSampleMigration` test.
145+
146+
### Executed
147+
- `node --input-type=module -e "import('./tests/tools/ToolLocalSampleMigration.test.mjs').then((m)=>m.run())"` -> PASS
148+
- `node --input-type=module -e "import('./tests/tools/ToolEntryLaunchContract.test.mjs').then((m)=>m.run())"` -> PASS
149+
150+
### Note
151+
- `SamplesProgramCombinedPass` currently reports pre-existing metadata parity mismatch (`samples.curriculum.validation.json progression.totalSamples`) that is outside this PR’s migration-only scope.
152+
153+
## Roadmap Status
154+
- `docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md` was not updated because no explicit Level 10.3 status markers were present for this migration slice.
155+
156+
## Tool-Local Sample UI Removed/Retained Summary
157+
- Removed:
158+
- Vector Map Editor sample select/load controls
159+
- Vector Asset Studio sample select/refresh/load controls
160+
- Parallax Scene Studio sample select/load controls
161+
- Retained:
162+
- Query-based preset loading (`sampleId`, `samplePresetPath`) for explicit sample/workspace input
163+
- Tilemap Studio explicit input flow (no local sample dropdown existed)

docs/operations/dev/codex_commands.md

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

44
TASK:
5-
Apply BUILD_PR_LEVEL_10_2F_VECTOR_ASSET_PALETTE_PAINT_BINDING_FIX.
5+
Apply BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES.
66

77
STEPS:
8-
1. Read docs/pr/PLAN_PR_LEVEL_10_2F_VECTOR_ASSET_PALETTE_PAINT_BINDING_FIX.md.
9-
2. Read docs/pr/BUILD_PR_LEVEL_10_2F_VECTOR_ASSET_PALETTE_PAINT_BINDING_FIX.md.
10-
3. Inspect Gravity Well game manifest:
11-
- tools["palette-browser"].palette
12-
- tools["vector-asset-studio"].vectors
13-
4. Inspect Workspace Manager to Vector Asset Studio data passing.
14-
5. Inspect Vector Asset Studio palette/paint/stroke selection initialization.
15-
6. Fix binding so shared palette loads into Vector Asset Studio selection state.
16-
7. Ensure stroke-enabled vectors select a valid stroke swatch.
17-
8. Add/adjust defaults in Gravity Well manifest only if style data is missing.
18-
9. Add/update test coverage so palette loaded + vector asset present but palette/stroke selected false fails.
19-
10. Write docs/dev/reports/level_10_2f_vector_asset_palette_paint_binding_report.md.
20-
11. Update docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md status only if needed:
8+
1. Read docs/pr/PLAN_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES.md.
9+
2. Read docs/pr/BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES.md.
10+
3. Inspect these tool folders for local samples/demo entries:
11+
- tools/Vector Map Editor
12+
- tools/Vector Asset Studio
13+
- tools/Parallax Scene Studio
14+
- tools/Tilemap Studio
15+
4. Identify each tool-local sample/demo payload.
16+
5. Move/copy each sample into the correct `samples/phase-*` folder using next available sample IDs.
17+
6. Preserve sample behavior and required data.
18+
7. Update `samples/index.html`.
19+
8. Remove tool-local sample dropdown/select entries from the processed tools after migrated samples exist.
20+
9. Ensure tools still accept explicit manifest/input data.
21+
10. Add/update tests for:
22+
- migrated sample presence in samples/index.html
23+
- migrated sample launch
24+
- removal of tool-local sample dropdown/select entries
25+
11. Write docs/dev/reports/level_10_3_tool_local_sample_migration_report.md.
26+
12. Update docs/dev/roadmaps/MASTER_ROADMAP_ENGINE.md status only if needed:
2127
- [ ] -> [.]
2228
- [.] -> [x]
2329
- no prose rewrite/delete
24-
12. Do not add validators.
2530
13. Do not modify start_of_day.
26-
14. Create Codex delta ZIP:
27-
tmp/BUILD_PR_LEVEL_10_2F_VECTOR_ASSET_PALETTE_PAINT_BINDING_FIX_delta.zip
31+
14. Do not add validators.
32+
15. Create Codex delta ZIP:
33+
tmp/BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES_delta.zip
2834

2935
ACCEPTANCE:
30-
- Gravity Well vector palette/stroke binding works
31-
- test covers selection state
36+
- all discovered tool-local samples from listed tools are migrated
37+
- samples/index.html updated
38+
- local sample dropdown/selects removed
3239
- delta ZIP exists
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
BUILD_PR_LEVEL_10_2F_VECTOR_ASSET_PALETTE_PAINT_BINDING_FIX
1+
BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES
22

3-
- Fixed Vector Asset Studio palette/paint/stroke binding from game manifest palette
4-
- Added Gravity Well vector selection regression coverage
5-
- Ensured stroke-enabled vectors select a valid palette swatch
3+
- Migrated tool-local samples into /samples
4+
- Updated samples index
5+
- Removed local sample dropdown/select entries from processed tools
6+
- Preserved tool explicit-input behavior
67

78
PR Details:
9+
- Processes Vector Map Editor, Vector Asset Studio, Parallax Scene Studio, and Tilemap Studio
810
- No validators
911
- No start_of_day changes
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# BUILD_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES
2+
3+
## Objective
4+
Make `/samples` the only home for samples.
5+
6+
## Tools To Process
7+
1. `tools/Vector Map Editor`
8+
2. `tools/Vector Asset Studio`
9+
3. `tools/Parallax Scene Studio`
10+
4. `tools/Tilemap Studio`
11+
12+
The user says each has three samples. Codex must discover the actual local sample/demo files.
13+
14+
## Placement Rules
15+
Pick the correct `/samples/phase-*` location based on existing repo organization.
16+
17+
Rules:
18+
- Preserve current sample phase numbering conventions.
19+
- Do not reuse existing sample IDs.
20+
- Continue the next available sample IDs in the correct phase.
21+
- Keep sample folder naming consistent:
22+
- `samples/phase-XX/####/`
23+
- Each migrated sample should have:
24+
- `index.html`
25+
- sample tool payload file(s), if needed
26+
- any manifest/data needed by that sample
27+
- Update `samples/index.html`.
28+
29+
## Suggested Classification
30+
Use the current sample phase taxonomy if already present:
31+
- Vector Map Editor samples → vector/map/tool integration phase.
32+
- Vector Asset Studio samples → vector asset/tool integration phase.
33+
- Parallax Scene Studio samples → parallax/rendering/tool integration phase.
34+
- Tilemap Studio samples → tilemap/tool integration phase.
35+
36+
If phase placement is ambiguous, use the closest existing phase containing related tool samples and document the decision.
37+
38+
## Tool Cleanup Rule
39+
After migrated samples exist and launch:
40+
- remove those sample options from tool-local dropdown/select UI
41+
- tools should no longer show internal sample choices
42+
- tools should accept explicit manifest/tool input only
43+
44+
Do not remove generic "Open" or "Load" functionality for real workspace/game data.
45+
46+
## Required Audit
47+
Create:
48+
49+
```text
50+
docs/dev/reports/level_10_3_tool_local_sample_migration_report.md
51+
```
52+
53+
Report:
54+
- source tool
55+
- source sample/demo path
56+
- destination sample path
57+
- assigned phase/id
58+
- files moved/copied
59+
- tool-local sample UI removed/retained
60+
- launch test result
61+
62+
## Required Tests
63+
Update or add tests to verify:
64+
- migrated samples appear in `samples/index.html`
65+
- migrated samples launch from `/samples`
66+
- old tool-local sample dropdown/select entries are gone
67+
- tools still open with explicit input
68+
69+
## Acceptance
70+
- Tool-local samples from the four tools are migrated to `/samples`.
71+
- `samples/index.html` includes the migrated samples.
72+
- Migrated samples launch.
73+
- Tool-local sample dropdown/select entries are removed.
74+
- No duplicate sample IDs.
75+
- No `start_of_day` changes.
76+
- Delta ZIP returned.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# PLAN_PR_LEVEL_10_3_MIGRATE_TOOL_LOCAL_SAMPLES_TO_SAMPLES
2+
3+
## Purpose
4+
Move tool-local sample/demo payloads out of tools and into `/samples`, preserving sample behavior while enforcing the rule that tools do not own samples.
5+
6+
## User Request
7+
Move the three samples from each tool into `/samples`:
8+
- Vector Map Editor
9+
- Vector Asset Studio
10+
- Parallax Scene Studio
11+
- Tilemap Studio
12+
13+
Vector Asset Studio was listed twice by the user; treat it once unless the repo contains two distinct sample groups.
14+
15+
## Scope
16+
- Find tool-local samples/demos in the listed tools.
17+
- Move each to the correct `/samples/phase-*` location.
18+
- Use existing sample naming and directory conventions.
19+
- Update `samples/index.html`.
20+
- Remove tool-local sample dropdown/select entries only after sample parity exists.
21+
- Add/update tests so samples still launch from `/samples`.
22+
23+
## Non-Goals
24+
- No broad tool UX rewrite beyond removing/migrating sample entry points.
25+
- No game manifest changes unless a migrated sample requires manifest input.
26+
- No validators.
27+
- No `start_of_day` changes.

samples/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ <h1>Samples Hub</h1>
2323
<p>
2424
Browse phase-based sample collections that demonstrate engine systems and gameplay patterns.
2525
Start from the phase links below and open individual sample entries from each phase page.
26+
Tool preset launch samples are listed alongside gameplay samples in this hub.
2627
</p>
2728
</section>
2829

0 commit comments

Comments
 (0)