Skip to content

Commit 35019d4

Browse files
author
DavidQ
committed
Remove known-bad samples2tools launcher entries before broader validation - PR 11.116
1 parent 3caef93 commit 35019d4

13 files changed

Lines changed: 556 additions & 45 deletions

docs/dev/codex_commands.md

Lines changed: 75 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,81 @@ Model: GPT-5.3-codex
44
Reasoning: medium
55

66
## PR
7-
BUILD_PR_LEVEL_11_114_ENFORCE_JSON_FIX_ON_FAILURE
7+
BUILD_PR_LEVEL_11_118_SAMPLE_TILE_LINK_SSOT_ENFORCEMENT
88

99
## Execute
1010

11-
1. Continue from PR 11.113
12-
13-
2. For each validation failure:
14-
classify:
15-
- FIXABLE
16-
- NON-FIXABLE
17-
18-
3. FIXABLE:
19-
- apply fix directly in JSON
20-
- revalidate
21-
- confirm schema passes
22-
23-
4. NON-FIXABLE:
24-
- record blocker with:
25-
file
26-
field
27-
reason
28-
required action
29-
30-
5. Auto-fix:
31-
- schema mismatches
32-
- invalid keys
33-
- naming issues
34-
- extra fields
35-
- array formatting
36-
- canonical names
37-
38-
6. DO NOT:
39-
- invent missing data
40-
- use defaults
41-
- use presets
42-
- normalize at runtime
43-
44-
7. Validate:
45-
- JSON parses
46-
- schema passes after fix
47-
48-
8. Reports:
49-
docs/dev/reports/fixes_applied_11_114.txt
50-
docs/dev/reports/fix_blockers_11_114.txt
51-
52-
9. Output ZIP:
53-
tmp/PR_11_114_ENFORCE_JSON_FIX_ON_FAILURE.zip
11+
This replaces PR 11.117. Do not run 11.117.
12+
13+
1. Trace where visible sample tile "Open <tool>" links actually come from.
14+
15+
2. Search candidate sources:
16+
- samples/index.html
17+
- samples index JSON/JS files
18+
- generated sample registry files
19+
- sample tile renderer data/config
20+
- samples2tools data
21+
- sample manifests
22+
- per-sample metadata JSON
23+
- generated static metadata used by samples page
24+
25+
3. Identify the one active SSoT file for sample tile tool links.
26+
27+
4. Enforce only one active source:
28+
- update loader/index code to use only the SSoT if needed
29+
- delete stale duplicate link files if safe
30+
- otherwise disable them from runtime loading and report why
31+
32+
5. Remove known-bad links from the SSoT and any active duplicates:
33+
- 0201: remove unrelated Open Tool links
34+
- 0202: remove unrelated Open Tool links
35+
- 0204: remove unrelated Open Tool links
36+
- 0210: remove unrelated Open Tool links
37+
- 0220: remove unrelated Open Tool links
38+
- 0221: remove 3D JSON Payload Normalizer / 3D JSON Payload / 3d-json-payload
39+
- 0226: remove unrelated Open Tool links
40+
- 0227: remove unrelated Open Tool links
41+
- 0303: remove unrelated Open Tool links
42+
- 0305: remove 3D JSON Payload Normalizer / 3D JSON Payload / 3d-json-payload
43+
- 0901: remove Vector Map Editor
44+
- 1204: remove SVG Asset Studio
45+
- 1205: remove Vector Map Editor
46+
- 1208: remove 3D Asset Viewer and SVG Asset Studio
47+
- 1319: remove unrelated Open Tool links
48+
49+
6. Delete bad/stale launcher data that is not the SSoT and can reintroduce bad links.
50+
51+
7. Do not:
52+
- delete samples
53+
- add fake data
54+
- add fallback/default/preset inputs
55+
- reintroduce normalization or inference
56+
57+
8. Validate:
58+
- changed JSON parses
59+
- changed JS/HTML/index files are syntactically valid where practical
60+
- listed bad links no longer exist in active SSoT
61+
- no second active source remains
62+
- stale duplicate sources are deleted or disabled
63+
64+
9. Write populated reports:
65+
- docs/dev/reports/sample_tile_link_ssot_11_118.txt
66+
- docs/dev/reports/sample_tile_bad_links_removed_11_118.txt
67+
- docs/dev/reports/stale_launcher_sources_deleted_11_118.txt
68+
- docs/dev/reports/validation_after_11_118.txt
69+
70+
10. Reports must include:
71+
- exact files searched
72+
- chosen SSoT
73+
- exact entries removed
74+
- stale files deleted/disabled
75+
- validation command/result
76+
- blockers
77+
78+
11. Roadmap:
79+
- status-only update if execution-backed
80+
- do not rewrite roadmap text
81+
- do not delete roadmap text
82+
83+
12. Package Codex output ZIP at:
84+
tmp/PR_11_118_SAMPLE_TILE_LINK_SSOT_ENFORCEMENT.zip

docs/dev/commit_comment.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Enforce auto-fix of deterministic JSON/schema issues - PR 11.114
1+
Enforce sample tile tool-link SSoT and delete stale bad launcher sources - PR 11.118
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
PR 11.118 - Sample Tile Known-Bad Link Removal Evidence
2+
Generated: 2026-04-30T15:52:18.072Z
3+
4+
File edited for launcher data in this PR:
5+
- No launcher data edits were required.
6+
7+
Requested removals and status:
8+
- 0201: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
9+
- 0202: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
10+
- 0204: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
11+
- 0210: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
12+
- 0220: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
13+
- 0226: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
14+
- 0227: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
15+
- 0303: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
16+
- 1319: PASS - unrelated Open <tool> links already absent (toolHints=[], roundtripToolPresets=[]).
17+
- 1204: PASS - banned entries not present (already removed).
18+
current toolHints=["palette-browser"]
19+
current preset toolIds=["palette-browser"]
20+
- 1205: PASS - banned entries not present (already removed).
21+
current toolHints=[]
22+
current preset toolIds=[]
23+
- 1208: PASS - banned entries not present (already removed).
24+
current toolHints=["palette-browser"]
25+
current preset toolIds=["palette-browser"]
26+
- 0221: PASS - banned entries not present (already removed).
27+
current toolHints=["tile-model-converter"]
28+
current preset toolIds=["tile-model-converter"]
29+
- 0305: PASS - banned entries not present (already removed).
30+
current toolHints=["tile-model-converter"]
31+
current preset toolIds=["tile-model-converter"]
32+
- 0901: PASS - banned entries not present (already removed).
33+
current toolHints=["palette-browser"]
34+
current preset toolIds=["palette-browser"]
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
PR 11.118 - Sample Tile Link SSoT Enforcement
2+
Generated: 2026-04-30T15:52:18.072Z
3+
4+
Candidate files searched:
5+
- samples/index.html
6+
- samples/index.render.js
7+
- samples/metadata/samples.index.metadata.json
8+
- samples/metadata/metadataReference.js
9+
- samples/shared/sampleDetailPageEnhancement.js
10+
- tools/renderToolsIndex.js
11+
- tools/Asset Browser/main.js
12+
- tools/SVG Asset Studio/main.js
13+
- tools/Sprite Editor/modules/spriteEditorApp.js
14+
15+
Active sample-tile SSoT file:
16+
- samples/metadata/samples.index.metadata.json
17+
18+
Why this is the SSoT:
19+
- samples/index.html loads only samples/index.render.js for tile rendering.
20+
- samples/index.render.js fetches only ./metadata/samples.index.metadata.json (METADATA_PATH).
21+
- visible tile Open <tool> links are built from sample.toolHints + sample.roundtripToolPresets in that metadata file.
22+
- no second runtime data file in samples/ defines toolHints/roundtripToolPresets.
23+
24+
Non-SSoT readers that do not replace tile SSoT:
25+
- samples/shared/sampleDetailPageEnhancement.js (sample detail page only).
26+
- tools/renderToolsIndex.js and tool modules (tool-side metadata lookup only).
27+
28+
SSoT enforcement action taken:
29+
- Confirmed single active tile-link source already enforced; no loader code change required.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
PR 11.116 - Known Bad samples2tools Entry Removals
2+
Generated: 2026-04-30T15:42:47.292Z
3+
4+
Launcher source files inspected:
5+
- samples/metadata/samples.index.metadata.json
6+
- samples/index.render.js
7+
- samples/shared/sampleDetailPageEnhancement.js
8+
9+
Launcher metadata edits applied:
10+
- No data edits were required; all requested bad entries were already absent in the live metadata source.
11+
12+
Sample-wide removal targets (remove unrelated Open <tool> entries):
13+
- 0201: already clean (toolHints=[], roundtripToolPresets=[]).
14+
- 0202: already clean (toolHints=[], roundtripToolPresets=[]).
15+
- 0204: already clean (toolHints=[], roundtripToolPresets=[]).
16+
- 0210: already clean (toolHints=[], roundtripToolPresets=[]).
17+
- 0220: already clean (toolHints=[], roundtripToolPresets=[]).
18+
- 0226: already clean (toolHints=[], roundtripToolPresets=[]).
19+
- 0227: already clean (toolHints=[], roundtripToolPresets=[]).
20+
- 0303: already clean (toolHints=[], roundtripToolPresets=[]).
21+
- 1319: already clean (toolHints=[], roundtripToolPresets=[]).
22+
23+
Specific bad entry targets:
24+
- 1204: requested bad tool entries not found (already removed): svg-asset-studio.
25+
- 1205: requested bad tool entries not found (already removed): vector-map-editor.
26+
- 1208: requested bad tool entries not found (already removed): 3d-asset-viewer, svg-asset-studio.
27+
- 0221: requested bad tool entries not found (already removed): 3d-json-payload-normalizer, 3d-json-payload.
28+
- 0305: requested bad tool entries not found (already removed): 3d-json-payload-normalizer, 3d-json-payload.
29+
- 0901: requested bad tool entries not found (already removed): vector-map-editor.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PR 11.116 - samples2tools Remaining Entries After Targeted Cleanup
2+
Generated: 2026-04-30T15:42:47.292Z
3+
4+
Source of truth: samples/metadata/samples.index.metadata.json
5+
6+
Entries intentionally kept for targeted samples:
7+
- 0201: no remaining launcher entries.
8+
- 0202: no remaining launcher entries.
9+
- 0204: no remaining launcher entries.
10+
- 0210: no remaining launcher entries.
11+
- 0220: no remaining launcher entries.
12+
- 0226: no remaining launcher entries.
13+
- 0227: no remaining launcher entries.
14+
- 0303: no remaining launcher entries.
15+
- 1319: no remaining launcher entries.
16+
- 1204:
17+
toolHints=["palette-browser"]
18+
roundtripToolPresets:
19+
- toolId=palette-browser presetPath=/samples/phase-12/1204/sample.1204.palette.json
20+
- 1205: no remaining launcher entries.
21+
- 1208:
22+
toolHints=["palette-browser"]
23+
roundtripToolPresets:
24+
- toolId=palette-browser presetPath=/samples/phase-12/1208/sample.1208.palette.json
25+
- 0221:
26+
toolHints=["tile-model-converter"]
27+
roundtripToolPresets:
28+
- toolId=tile-model-converter presetPath=/samples/phase-02/0221/sample.0221.tile-model-converter.json
29+
- 0305:
30+
toolHints=["tile-model-converter"]
31+
roundtripToolPresets:
32+
- toolId=tile-model-converter presetPath=/samples/phase-03/0305/sample.0305.tile-model-converter.json
33+
- 0901:
34+
toolHints=["palette-browser"]
35+
roundtripToolPresets:
36+
- toolId=palette-browser presetPath=/samples/phase-09/0901/sample.0901.palette.json
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
PR 11.118 - Stale Launcher Source Deletion/Disable Report
2+
Generated: 2026-04-30T15:52:18.072Z
3+
4+
Stale duplicate launcher sources deleted:
5+
- None.
6+
7+
Stale duplicate launcher sources disabled from runtime:
8+
- None.
9+
10+
Rationale:
11+
- Search of samples runtime path found one data source for tile links: samples/metadata/samples.index.metadata.json.
12+
- Other matches are readers/consumers of the same metadata, not competing tile-link source files.
13+
- Deleting consumer files would break valid features outside tile-link ownership and is out of scope.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
PR 11.116 - Validation After Known-Bad samples2tools Removal Pass
2+
Generated: 2026-04-30T15:42:47.292Z
3+
4+
Commands and results:
5+
- node -e "const fs=require('fs');JSON.parse(fs.readFileSync('samples/metadata/samples.index.metadata.json','utf8'));console.log('PASS');"
6+
Result: PASS (samples.index.metadata.json parses).
7+
- Node metadata target check for required sample-wide/specific removals.
8+
Result: PASS (all listed bad launcher entries are absent).
9+
- git diff --name-status -- samples
10+
Result: no changed/deleted sample files in this targeted pass.
11+
12+
Changed sample/tool manifest files validate:
13+
- N/A (no sample/tool manifest files were edited for this pass).
14+
15+
Full samples smoke test:
16+
- Skipped by design (targeted launcher-entry cleanup only; full suite is ~20 minutes).
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
PR 11.118 - Targeted Validation
2+
Generated: 2026-04-30T15:52:18.072Z
3+
4+
Validation commands and results:
5+
- node -e "const fs=require('fs');JSON.parse(fs.readFileSync('samples/metadata/samples.index.metadata.json','utf8'));console.log('PASS json parse samples.index.metadata.json');"
6+
Result: PASS (metadata JSON parses).
7+
- node --check samples/index.render.js
8+
Result: PASS.
9+
- node --check samples/shared/sampleDetailPageEnhancement.js
10+
Result: PASS.
11+
- rg -l "roundtripToolPresets|toolHints" samples
12+
Result: samples/index.render.js, samples/metadata/samples.index.metadata.json, samples/shared/sampleDetailPageEnhancement.js.
13+
- targeted Node audit for required sample IDs and banned entries
14+
Result: PASS (all listed bad links absent from active SSoT).
15+
- git diff --name-status -- samples
16+
Result: no sample files changed/deleted in this pass.
17+
18+
No second active source remains:
19+
- PASS for sample tiles (single runtime data source file).
20+
21+
Full samples smoke test:
22+
- Skipped by design (targeted SSoT tracing/cleanup only; full suite ~20 minutes).
23+
24+
Blockers:
25+
- None for requested bad-link removals; targets were already removed before this PR run.

docs/dev/restart_notes_11_116.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Restart Notes — PR 11.116
2+
3+
This PR must run before broader tool/sample validation.
4+
5+
Goal:
6+
- remove the known-bad `samples2tools` Open Tool entries first.
7+
- then proceed to broader end-to-end validation in the next PR.

0 commit comments

Comments
 (0)