Skip to content

Commit f125592

Browse files
author
DavidQ
committed
Add batch 15 metadata-routing reports and roadmap marker confirming samples-to-tools roundtrip mapping is JSON-driven via roundtripToolPresets
1 parent cfa8f9e commit f125592

4 files changed

Lines changed: 258 additions & 0 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
BUILD_PR_LEVEL_20_1_PHASE20_TOOL_PRESET_INTEGRATION - Samples2Tools Batch 15 Summary
2+
3+
Scope: phase-01 through phase-19 metadata-driven roundtrip routing baseline
4+
5+
Total metadata roundtrip mappings: 28
6+
- parallax-editor: 4 mapped samples
7+
- performance-profiler: 2 mapped samples
8+
- physics-sandbox: 2 mapped samples
9+
- replay-visualizer: 3 mapped samples
10+
- sprite-editor: 9 mapped samples
11+
- tile-map-editor: 6 mapped samples
12+
- vector-asset-studio: 1 mapped samples
13+
- vector-map-editor: 1 mapped samples
14+
15+
Source of truth: samples/metadata/samples.index.metadata.json -> samples[].roundtripToolPresets
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
BUILD_PR_LEVEL_20_1_PHASE20_TOOL_PRESET_INTEGRATION - Samples2Tools Batch 15 Validation
2+
3+
[x] samples/index.render.js uses metadata-driven roundtrip mapping (`roundtripToolPresets`)
4+
[x] No hard-coded sample/tool matrix helper remains in samples/index.render.js
5+
[x] Metadata contains 28 explicit roundtrip mapping entries for phase-01 through phase-19
6+
[x] Link map report is generated from metadata mappings (samples2tools_link_map_15.json)
7+
8+
Validation checks performed
9+
- grep check for removed hard-coded helpers in samples/index.render.js
10+
- JSON parse + map extraction from samples/metadata/samples.index.metadata.json
11+
- phase 20 mappings excluded from this lane report
Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,231 @@
1+
{
2+
"generatedAt": "2026-04-24T16:46:11.137Z",
3+
"scope": "phase-01-phase-19",
4+
"purpose": "batch-15-metadata-roundtrip-routing",
5+
"links": [
6+
{
7+
"sampleId": "0207",
8+
"phase": "02",
9+
"title": "Animation System",
10+
"toolId": "sprite-editor",
11+
"href": "./phase-02/0207/index.html",
12+
"presetPath": "/samples/phase-02/0207/sample-0207-sprite-editor.json"
13+
},
14+
{
15+
"sampleId": "0213",
16+
"phase": "02",
17+
"title": "Sprite Render Layer",
18+
"toolId": "sprite-editor",
19+
"href": "./phase-02/0213/index.html",
20+
"presetPath": "/samples/phase-02/0213/sample-0213-sprite-editor.json"
21+
},
22+
{
23+
"sampleId": "0214",
24+
"phase": "02",
25+
"title": "Animation Sprite Binding",
26+
"toolId": "sprite-editor",
27+
"href": "./phase-02/0214/index.html",
28+
"presetPath": "/samples/phase-02/0214/sample-0214-sprite-editor.json"
29+
},
30+
{
31+
"sampleId": "0219",
32+
"phase": "02",
33+
"title": "Sprite Atlas Image Rendering",
34+
"toolId": "sprite-editor",
35+
"href": "./phase-02/0219/index.html",
36+
"presetPath": "/samples/phase-02/0219/sample-0219-sprite-editor.json"
37+
},
38+
{
39+
"sampleId": "0221",
40+
"phase": "02",
41+
"title": "Tilemap System",
42+
"toolId": "tile-map-editor",
43+
"href": "./phase-02/0221/index.html",
44+
"presetPath": "/samples/phase-02/0221/sample-0221-tile-map-editor.json"
45+
},
46+
{
47+
"sampleId": "0224",
48+
"phase": "02",
49+
"title": "Tile Camera Sprite Slice",
50+
"toolId": "sprite-editor",
51+
"href": "./phase-02/0224/index.html",
52+
"presetPath": "/samples/phase-02/0224/sample-0224-sprite-editor.json"
53+
},
54+
{
55+
"sampleId": "0301",
56+
"phase": "03",
57+
"title": "Real Sprite Rendering",
58+
"toolId": "sprite-editor",
59+
"href": "./phase-03/0301/index.html",
60+
"presetPath": "/samples/phase-03/0301/sample-0301-sprite-editor.json"
61+
},
62+
{
63+
"sampleId": "0302",
64+
"phase": "03",
65+
"title": "Animation System",
66+
"toolId": "sprite-editor",
67+
"href": "./phase-03/0302/index.html",
68+
"presetPath": "/samples/phase-03/0302/sample-0302-sprite-editor.json"
69+
},
70+
{
71+
"sampleId": "0303",
72+
"phase": "03",
73+
"title": "Physics System",
74+
"toolId": "physics-sandbox",
75+
"href": "./phase-03/0303/index.html",
76+
"presetPath": "/samples/phase-03/0303/sample-0303-physics-sandbox.json"
77+
},
78+
{
79+
"sampleId": "0305",
80+
"phase": "03",
81+
"title": "Tile Metadata",
82+
"toolId": "tile-map-editor",
83+
"href": "./phase-03/0305/index.html",
84+
"presetPath": "/samples/phase-03/0305/sample-0305-tile-map-editor.json"
85+
},
86+
{
87+
"sampleId": "0306",
88+
"phase": "03",
89+
"title": "Nes Style Zones Parallax",
90+
"toolId": "parallax-editor",
91+
"href": "./phase-03/0306/index.html",
92+
"presetPath": "/samples/phase-03/0306/sample-0306-parallax-editor.json"
93+
},
94+
{
95+
"sampleId": "0512",
96+
"phase": "05",
97+
"title": "Performance Metrics",
98+
"toolId": "performance-profiler",
99+
"href": "./phase-05/0512/index.html",
100+
"presetPath": "/samples/phase-05/0512/sample-0512-performance-profiler.json"
101+
},
102+
{
103+
"sampleId": "0708",
104+
"phase": "07",
105+
"title": "Replay System",
106+
"toolId": "replay-visualizer",
107+
"href": "./phase-07/0708/index.html",
108+
"presetPath": "/samples/phase-07/0708/sample-0708-replay-visualizer.json"
109+
},
110+
{
111+
"sampleId": "0901",
112+
"phase": "09",
113+
"title": "Vector Rendering System",
114+
"toolId": "vector-map-editor",
115+
"href": "./phase-09/0901/index.html",
116+
"presetPath": "/samples/phase-09/0901/sample-0901-vector-map-editor.json"
117+
},
118+
{
119+
"sampleId": "0905",
120+
"phase": "09",
121+
"title": "Pixel Perfect Collision",
122+
"toolId": "sprite-editor",
123+
"href": "./phase-09/0905/index.html",
124+
"presetPath": "/samples/phase-09/0905/sample-0905-sprite-editor.json"
125+
},
126+
{
127+
"sampleId": "1204",
128+
"phase": "12",
129+
"title": "Tilemap Parallax Hero",
130+
"toolId": "parallax-editor",
131+
"href": "./phase-12/1204/index.html",
132+
"presetPath": "/samples/phase-12/1204/sample-1204-parallax-editor.json"
133+
},
134+
{
135+
"sampleId": "1205",
136+
"phase": "12",
137+
"title": "Multi-System Demo",
138+
"toolId": "parallax-editor",
139+
"href": "./phase-12/1205/index.html",
140+
"presetPath": "/samples/phase-12/1205/sample-1205-parallax-editor.json"
141+
},
142+
{
143+
"sampleId": "1208",
144+
"phase": "12",
145+
"title": "Tool Formatted Tiles Parallax",
146+
"toolId": "parallax-editor",
147+
"href": "./phase-12/1208/index.html",
148+
"presetPath": "/samples/phase-12/1208/sample-1208-parallax-editor.json"
149+
},
150+
{
151+
"sampleId": "1208",
152+
"phase": "12",
153+
"title": "Tool Formatted Tiles Parallax",
154+
"toolId": "tile-map-editor",
155+
"href": "./phase-12/1208/index.html",
156+
"presetPath": "/samples/phase-12/1208/sample-1208-tile-map-editor.json"
157+
},
158+
{
159+
"sampleId": "1208",
160+
"phase": "12",
161+
"title": "Tool Formatted Tiles Parallax",
162+
"toolId": "vector-asset-studio",
163+
"href": "./phase-12/1208/index.html",
164+
"presetPath": "/samples/phase-12/1208/sample-1208-vector-asset-studio.json"
165+
},
166+
{
167+
"sampleId": "1209",
168+
"phase": "12",
169+
"title": "Tilemap Basic Layout Preset",
170+
"toolId": "tile-map-editor",
171+
"href": "./phase-12/1209/index.html",
172+
"presetPath": "/samples/phase-12/1209/sample-1209-tile-map-editor.json"
173+
},
174+
{
175+
"sampleId": "1210",
176+
"phase": "12",
177+
"title": "Tilemap Objective Layout Preset",
178+
"toolId": "tile-map-editor",
179+
"href": "./phase-12/1210/index.html",
180+
"presetPath": "/samples/phase-12/1210/sample-1210-tile-map-editor.json"
181+
},
182+
{
183+
"sampleId": "1211",
184+
"phase": "12",
185+
"title": "Tilemap Mario Learning Layout Preset",
186+
"toolId": "tile-map-editor",
187+
"href": "./phase-12/1211/index.html",
188+
"presetPath": "/samples/phase-12/1211/sample-1211-tile-map-editor.json"
189+
},
190+
{
191+
"sampleId": "1315",
192+
"phase": "13",
193+
"title": "Rollback Replay Diagnostics",
194+
"toolId": "replay-visualizer",
195+
"href": "./phase-13/1315/index.html",
196+
"presetPath": "/samples/phase-13/1315/sample-1315-replay-visualizer.json"
197+
},
198+
{
199+
"sampleId": "1406",
200+
"phase": "14",
201+
"title": "Regression Playback Harness",
202+
"toolId": "replay-visualizer",
203+
"href": "./phase-14/1406/index.html",
204+
"presetPath": "/samples/phase-14/1406/sample-1406-replay-visualizer.json"
205+
},
206+
{
207+
"sampleId": "1407",
208+
"phase": "14",
209+
"title": "Performance Benchmark Runner",
210+
"toolId": "performance-profiler",
211+
"href": "./phase-14/1407/index.html",
212+
"presetPath": "/samples/phase-14/1407/sample-1407-performance-profiler.json"
213+
},
214+
{
215+
"sampleId": "1414",
216+
"phase": "14",
217+
"title": "Texture Sprite Preprocess Pipeline",
218+
"toolId": "sprite-editor",
219+
"href": "./phase-14/1414/index.html",
220+
"presetPath": "/samples/phase-14/1414/sample-1414-sprite-editor.json"
221+
},
222+
{
223+
"sampleId": "1606",
224+
"phase": "16",
225+
"title": "Sample 1606 - 3D Physics Playground",
226+
"toolId": "physics-sandbox",
227+
"href": "./phase-16/1606/index.html",
228+
"presetPath": "/samples/phase-16/1606/sample-1606-physics-sandbox.json"
229+
}
230+
]
231+
}

docs/dev/roadmaps/MASTER_ROADMAP_SAMPLES2TOOLS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
- [x] Standard query parameters for tool launch:
5353
- `sampleId=<id>`
5454
- `samplePresetPath=/samples/phase-xx/xxxx/sample-xxxx-toolID.json`
55+
- [x] Explicit sample-to-tool preset routing now lives in metadata via `samples[].roundtripToolPresets` (no hard-coded sample/tool matrix in `samples/index.render.js`).
5556
- [.] Tool boot behavior:
5657
- detect contract params
5758
- fetch JSON from `samplePresetPath`

0 commit comments

Comments
 (0)