Skip to content

Commit 48fd5e2

Browse files
author
DavidQ
committed
Reconcile sample tool link counts through a single metadata SSoT - PR 11.120
1 parent 1d42e08 commit 48fd5e2

12 files changed

Lines changed: 699 additions & 193 deletions

docs/dev/codex_commands.md

Lines changed: 70 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -4,93 +4,86 @@ Model: GPT-5.3-codex
44
Reasoning: medium
55

66
## PR
7-
BUILD_PR_LEVEL_11_119_SAMPLE_METADATA_SSOT_AND_RENDERER_GUARD_REMOVAL
7+
BUILD_PR_LEVEL_11_120_SAMPLE_TOOL_LINK_COUNT_RECONCILIATION
88

99
## Execute
1010

11-
1. Treat this as the correction to PR 11.118.
12-
13-
2. Confirm the active sample tile renderer path:
14-
- inspect `samples/index.render.js`
15-
- inspect any imports/loaders used by that renderer
16-
17-
3. Make this the only SSoT for sample tile tool roundtrip links:
18-
- `samples/metadata/samples.index.metadata.json`
19-
20-
4. Remove renderer/toolhint logic that can create roundtrip links from anything except:
21-
- `toolHints`
22-
- `roundtripToolPresets`
23-
in the metadata SSoT file.
24-
25-
5. Remove logic that:
26-
- infers tool hints from sample ids
27-
- infers tool hints from sample titles
28-
- infers tool hints from sample paths
29-
- infers tool hints from JSON files in sample folders
30-
- uses fallback/default tool hint arrays
31-
- uses samples2tools as active sample tile source
32-
- restores stale/generated tool links
33-
34-
6. Ensure empty arrays mean no rendered section:
35-
- `toolHints: []`
36-
- `roundtripToolPresets: []`
37-
must render no `sample-tool-roundtrip` section.
38-
39-
7. Delete or disable stale duplicate source files that can feed sample tile tool links outside the SSoT.
40-
- If unsafe to delete, remove runtime loading and report why file remains.
41-
42-
8. Validate these known-bad links cannot render:
43-
- 0201: 3D Camera Path Editor or unrelated Open Tool links
44-
- 0202: unrelated Open Tool links
45-
- 0204: unrelated Open Tool links
46-
- 0210: unrelated Open Tool links
47-
- 0220: unrelated Open Tool links
48-
- 0221: 3D JSON Payload Normalizer / 3D JSON Payload / 3d-json-payload
49-
- 0226: unrelated Open Tool links
50-
- 0227: unrelated Open Tool links
51-
- 0303: unrelated Open Tool links
52-
- 0305: 3D JSON Payload Normalizer / 3D JSON Payload / 3d-json-payload
53-
- 0901: Vector Map Editor
54-
- 1204: SVG Asset Studio
55-
- 1205: Vector Map Editor
56-
- 1208: 3D Asset Viewer and SVG Asset Studio
57-
- 1319: unrelated Open Tool links
58-
59-
9. Do not add a runtime hardcoded denylist as the final fix.
60-
- A temporary validation assertion is allowed only in tests/reports.
61-
62-
10. Do not:
63-
- add fake data
64-
- add fallback/default/preset inputs
65-
- reintroduce normalization
66-
- reintroduce inference
67-
- delete samples
68-
69-
11. Validate:
70-
- changed JSON parses
71-
- changed JS syntax is valid
72-
- 0201 metadata empty arrays render no roundtrip section
73-
- known-bad links absent from active runtime-loaded source
11+
1. Compare relationship sources:
12+
- tools/index.html expected sample/tool relationships
13+
- samples/index.html rendered Open Tool links
14+
- samples/metadata/samples.index.metadata.json
15+
- any generated/derived sample/tool metadata files
16+
17+
2. Confirm current counts:
18+
- tools/index.html relationships: expected 34
19+
- samples/index.html Open Tool links: observed 22
20+
21+
3. Make `samples/metadata/samples.index.metadata.json` the only SSoT for all sample/tool relationships.
22+
23+
4. Update sample hub renderer and tools hub renderer/loading so both read from:
24+
- samples/metadata/samples.index.metadata.json
25+
or from a generated artifact derived only from it.
26+
27+
5. Remove or disable duplicate active sources:
28+
- samples2tools
29+
- stale generated link files
30+
- fallback arrays
31+
- inferred renderer links
32+
- embedded sample/tool maps
33+
34+
6. Reconcile relationships:
35+
- add valid missing relationships to SSoT
36+
- remove stale/invalid relationships from SSoT
37+
- do not reintroduce known-bad links
38+
- do not create fake data to justify links
39+
40+
7. Known-bad links must remain absent:
41+
- 0201 3D Camera Path Editor/unrelated links
42+
- 0202 unrelated links
43+
- 0204 unrelated links
44+
- 0210 unrelated links
45+
- 0220 unrelated links
46+
- 0221 3D JSON Payload Normalizer / 3D JSON Payload / 3d-json-payload
47+
- 0226 unrelated links
48+
- 0227 unrelated links
49+
- 0303 unrelated links
50+
- 0305 3D JSON Payload Normalizer / 3D JSON Payload / 3d-json-payload
51+
- 0901 Vector Map Editor
52+
- 1204 SVG Asset Studio
53+
- 1205 Vector Map Editor
54+
- 1208 3D Asset Viewer and SVG Asset Studio
55+
- 1319 unrelated links
56+
57+
8. If the final count is not 34:
58+
- report exactly which relationships were removed/blocked and why.
59+
60+
9. Validate:
61+
- JSON parses
62+
- JS/HTML syntax valid where practical
63+
- sample hub rendered links match SSoT
64+
- tools hub relationships match SSoT
7465
- no second active source remains
7566

76-
12. Write populated reports:
77-
- docs/dev/reports/sample_metadata_ssot_11_119.txt
78-
- docs/dev/reports/renderer_toolhint_cleanup_11_119.txt
79-
- docs/dev/reports/stale_roundtrip_sources_11_119.txt
80-
- docs/dev/reports/known_bad_links_validation_11_119.txt
67+
10. Write populated reports:
68+
- docs/dev/reports/sample_tool_relationship_reconciliation_11_120.txt
69+
- docs/dev/reports/tools_index_expected_relationships_11_120.txt
70+
- docs/dev/reports/samples_index_rendered_links_11_120.txt
71+
- docs/dev/reports/sample_tool_ssot_after_11_120.txt
72+
- docs/dev/reports/validation_after_11_120.txt
8173

82-
13. Reports must include:
74+
11. Reports must include:
8375
- files searched
84-
- files changed
85-
- exact removed logic
76+
- counts before/after
77+
- entries added
78+
- entries removed
79+
- blocked entries
8680
- chosen SSoT
87-
- validation evidence for 0201
88-
- blockers if any
81+
- validation commands/results
8982

90-
14. Roadmap:
83+
12. Roadmap:
9184
- status-only update if execution-backed
9285
- do not rewrite roadmap text
9386
- do not delete roadmap text
9487

95-
15. Package Codex output ZIP at:
96-
tmp/PR_11_119_SAMPLE_METADATA_SSOT_AND_RENDERER_GUARD_REMOVAL.zip
88+
13. Package Codex output ZIP at:
89+
tmp/PR_11_120_SAMPLE_TOOL_LINK_COUNT_RECONCILIATION.zip

docs/dev/commit_comment.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Enforce sample metadata SSoT and remove renderer tool-link inference - PR 11.119
1+
Reconcile sample tool link counts through a single metadata SSoT - PR 11.120
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
PR 11.120 - Sample/Tool Relationship Reconciliation
2+
3+
Chosen SSoT
4+
- samples/metadata/samples.index.metadata.json
5+
6+
Files searched
7+
- docs/pr/BUILD_PR_LEVEL_11_120_SAMPLE_TOOL_LINK_COUNT_RECONCILIATION.md
8+
- tools/index.html
9+
- tools/renderToolsIndex.js
10+
- samples/index.html
11+
- samples/index.render.js
12+
- samples/shared/sampleDetailPageEnhancement.js
13+
- samples/metadata/samples.index.metadata.json
14+
- samples/phase-12/*/index.html
15+
- docs/dev/reports/samples2tools_link_map_*.json
16+
17+
Files changed
18+
- samples/metadata/samples.index.metadata.json
19+
- samples/index.render.js
20+
- tools/renderToolsIndex.js
21+
- docs/dev/reports/sample_tool_relationship_reconciliation_11_120.txt
22+
- docs/dev/reports/tools_index_expected_relationships_11_120.txt
23+
- docs/dev/reports/samples_index_rendered_links_11_120.txt
24+
- docs/dev/reports/sample_tool_ssot_after_11_120.txt
25+
- docs/dev/reports/validation_after_11_120.txt
26+
27+
Baseline counts
28+
- BUILD-reported tools/index expected relationship count: 34.
29+
- BUILD-reported samples/index rendered Open Tool link count: 22.
30+
- User-observed current samples/index link count after prior cleanup: 31.
31+
- User-observed current tools/index Samples count after prior cleanup: 30.
32+
33+
Reconciled counts
34+
- Final metadata SSoT relationships: 31.
35+
- Final samples hub visible relationships: 31 total = 30 Open <tool> links + 1 Open with Workspace Manager link.
36+
- Final tools hub Samples counts: 31.
37+
- samples/index.html and tools/index.html now agree at 31.
38+
39+
Entries added or restored to SSoT
40+
- 1208:tile-map-editor -> /samples/phase-12/1208/sample.1208.tile-map-editor.json
41+
- 1208:parallax-editor -> /samples/phase-12/1208/sample.1208.parallax-editor.json
42+
- 1209:tile-map-editor -> /samples/phase-12/1209/sample.1209.tile-map-editor.json
43+
- 1210:tile-map-editor -> /samples/phase-12/1210/sample.1210.tile-map-editor.json
44+
- 1211:tile-map-editor -> /samples/phase-12/1211/sample.1211.tile-map-editor.json
45+
- 1212:vector-map-editor -> /samples/phase-12/1212/sample-1212-vector-map-editor.json
46+
- 1213:vector-map-editor -> /samples/phase-12/1213/sample-1213-vector-map-editor.json
47+
- 1214:vector-map-editor -> /samples/phase-12/1214/sample-1214-vector-map-editor.json
48+
- 1217:svg-asset-studio -> /samples/phase-12/1217/sample-1217-svg-asset-studio.json
49+
- 1218:parallax-editor -> /samples/phase-12/1218/sample-1218-parallax-editor.json
50+
- 1219:parallax-editor -> /samples/phase-12/1219/sample-1219-parallax-editor.json
51+
- 1220:parallax-editor -> /samples/phase-12/1220/sample-1220-parallax-editor.json
52+
- 1902:workspace-manager -> /samples/phase-19/1902/sample.1902.workspace-all-tools.json
53+
54+
Entries removed from SSoT
55+
- 1902:vector-map-editor -> replaced by the single 1902:workspace-manager relationship
56+
- 1902:svg-asset-studio -> replaced by the single 1902:workspace-manager relationship
57+
- 1902:tile-map-editor -> replaced by the single 1902:workspace-manager relationship
58+
- 1902:parallax-editor -> replaced by the single 1902:workspace-manager relationship
59+
- 1902:sprite-editor -> replaced by the single 1902:workspace-manager relationship
60+
- 1902:skin-editor -> replaced by the single 1902:workspace-manager relationship
61+
- 1902:asset-browser -> replaced by the single 1902:workspace-manager relationship
62+
- 1902:palette-browser -> replaced by the single 1902:workspace-manager relationship
63+
- 1902:state-inspector -> replaced by the single 1902:workspace-manager relationship
64+
- 1902:replay-visualizer -> replaced by the single 1902:workspace-manager relationship
65+
- 1902:performance-profiler -> replaced by the single 1902:workspace-manager relationship
66+
- 1902:physics-sandbox -> replaced by the single 1902:workspace-manager relationship
67+
- 1902:asset-pipeline -> replaced by the single 1902:workspace-manager relationship
68+
- 1902:tile-model-converter -> replaced by the single 1902:workspace-manager relationship
69+
- 1902:3d-json-payload -> replaced by the single 1902:workspace-manager relationship
70+
- 1902:3d-asset-viewer -> replaced by the single 1902:workspace-manager relationship
71+
- 1902:3d-camera-path-editor -> replaced by the single 1902:workspace-manager relationship
72+
73+
Renderer reconciliation
74+
- samples/index.render.js now reads only metadata-backed preset paths for tile roundtrip relationships.
75+
- samples/index.render.js now builds the 1902 Workspace Manager launch href from roundtripToolPresets instead of a hardcoded sample.1902 path constant.
76+
- samples/index.render.js derives tool filter tokens from renderable relationships, including workspace-manager for the 1902 workspace link.
77+
- samples/index.render.js no longer injects a skin-editor filter option when no renderable SSoT relationship exists.
78+
- tools/renderToolsIndex.js now counts explicit roundtripToolPresets with matching toolHints and presetPath.
79+
- tools/renderToolsIndex.js now counts workspace-manager and renders Samples (1) on the Workspace Manager card.
80+
- tools/renderToolsIndex.js no longer uses toolsUsed or raw toolHints as the relationship count source.
81+
82+
Why final count is not 34
83+
- The old 34 count included direct visible-tool fan-out for sample 1902.
84+
- Sample 1902 is a workspace aggregation sample and must expose only Open with Workspace Manager from the sample hub.
85+
- The 17 prior 1902 direct tool rows were removed from sample metadata as direct relationships.
86+
- The single valid 1902 relationship is now workspace-manager.
87+
- The reconciled visible hub count is therefore 31, not 34.
88+
89+
Blocked direct relationships
90+
- 1902:vector-map-editor - blocked because 1902 is workspace-only and launches through Workspace Manager
91+
- 1902:svg-asset-studio - blocked because 1902 is workspace-only and launches through Workspace Manager
92+
- 1902:tile-map-editor - blocked because 1902 is workspace-only and launches through Workspace Manager
93+
- 1902:parallax-editor - blocked because 1902 is workspace-only and launches through Workspace Manager
94+
- 1902:sprite-editor - blocked because 1902 is workspace-only and launches through Workspace Manager
95+
- 1902:skin-editor - blocked because 1902 is workspace-only and launches through Workspace Manager
96+
- 1902:asset-browser - blocked because 1902 is workspace-only and launches through Workspace Manager
97+
- 1902:palette-browser - blocked because 1902 is workspace-only and launches through Workspace Manager
98+
- 1902:state-inspector - blocked because 1902 is workspace-only and launches through Workspace Manager
99+
- 1902:replay-visualizer - blocked because 1902 is workspace-only and launches through Workspace Manager
100+
- 1902:performance-profiler - blocked because 1902 is workspace-only and launches through Workspace Manager
101+
- 1902:physics-sandbox - blocked because 1902 is workspace-only and launches through Workspace Manager
102+
- 1902:asset-pipeline - blocked because 1902 is workspace-only and launches through Workspace Manager
103+
- 1902:tile-model-converter - blocked because 1902 is workspace-only and launches through Workspace Manager
104+
- 1902:3d-json-payload - blocked because 1902 is workspace-only and launches through Workspace Manager
105+
- 1902:3d-asset-viewer - blocked because 1902 is workspace-only and launches through Workspace Manager
106+
- 1902:3d-camera-path-editor - blocked because 1902 is workspace-only and launches through Workspace Manager
107+
108+
Blockers
109+
- None.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
PR 11.120 - SSoT After Reconciliation
2+
3+
Active SSoT
4+
- samples/metadata/samples.index.metadata.json
5+
6+
Runtime readers
7+
- samples/index.render.js reads samples/metadata/samples.index.metadata.json for sample tile links.
8+
- tools/renderToolsIndex.js reads samples/metadata/samples.index.metadata.json for Samples (x) counts.
9+
- samples/shared/sampleDetailPageEnhancement.js reads samples/metadata/samples.index.metadata.json for sample detail metadata.
10+
11+
No second active hub source
12+
- No samples2tools runtime file is imported by samples/index.render.js.
13+
- No generated link-map report is imported by samples/index.render.js or tools/renderToolsIndex.js.
14+
- tools/renderToolsIndex.js no longer falls back to toolsUsed/raw toolHints counts.
15+
- samples/index.render.js no longer uses a hardcoded sample.1902 workspace preset constant.
16+
- samples/index.render.js no longer injects a fallback skin-editor filter option.
17+
18+
Explicit metadata relationships after PR 11.120
19+
- Total SSoT relationships with matching toolHints and presetPath: 31.
20+
- Direct Open <tool> relationships: 30.
21+
- Workspace Manager relationships: 1.
22+
23+
Entries added or restored
24+
- 1208:tile-map-editor -> /samples/phase-12/1208/sample.1208.tile-map-editor.json
25+
- 1208:parallax-editor -> /samples/phase-12/1208/sample.1208.parallax-editor.json
26+
- 1209:tile-map-editor -> /samples/phase-12/1209/sample.1209.tile-map-editor.json
27+
- 1210:tile-map-editor -> /samples/phase-12/1210/sample.1210.tile-map-editor.json
28+
- 1211:tile-map-editor -> /samples/phase-12/1211/sample.1211.tile-map-editor.json
29+
- 1212:vector-map-editor -> /samples/phase-12/1212/sample-1212-vector-map-editor.json
30+
- 1213:vector-map-editor -> /samples/phase-12/1213/sample-1213-vector-map-editor.json
31+
- 1214:vector-map-editor -> /samples/phase-12/1214/sample-1214-vector-map-editor.json
32+
- 1217:svg-asset-studio -> /samples/phase-12/1217/sample-1217-svg-asset-studio.json
33+
- 1218:parallax-editor -> /samples/phase-12/1218/sample-1218-parallax-editor.json
34+
- 1219:parallax-editor -> /samples/phase-12/1219/sample-1219-parallax-editor.json
35+
- 1220:parallax-editor -> /samples/phase-12/1220/sample-1220-parallax-editor.json
36+
- 1902:workspace-manager -> /samples/phase-19/1902/sample.1902.workspace-all-tools.json
37+
38+
Entries removed
39+
- 1902:vector-map-editor
40+
- 1902:svg-asset-studio
41+
- 1902:tile-map-editor
42+
- 1902:parallax-editor
43+
- 1902:sprite-editor
44+
- 1902:skin-editor
45+
- 1902:asset-browser
46+
- 1902:palette-browser
47+
- 1902:state-inspector
48+
- 1902:replay-visualizer
49+
- 1902:performance-profiler
50+
- 1902:physics-sandbox
51+
- 1902:asset-pipeline
52+
- 1902:tile-model-converter
53+
- 1902:3d-json-payload
54+
- 1902:3d-asset-viewer
55+
- 1902:3d-camera-path-editor
56+
57+
Known-bad links remain absent
58+
- 0201: no 3D Camera Path Editor or unrelated links
59+
- 0202: no unrelated links
60+
- 0204: no unrelated links
61+
- 0210: no unrelated links
62+
- 0220: no unrelated links
63+
- 0221: no 3D JSON Payload / 3d-json-payload link
64+
- 0226: no unrelated links
65+
- 0227: no unrelated links
66+
- 0303: no unrelated links
67+
- 0305: no 3D JSON Payload / 3d-json-payload link
68+
- 0901: no Vector Map Editor link
69+
- 1204: no SVG Asset Studio link
70+
- 1205: no Vector Map Editor link
71+
- 1208: no 3D Asset Viewer or SVG Asset Studio link
72+
- 1319: no unrelated links
73+
74+
Notes
75+
- sample 1902 remains a workspace aggregation sample.
76+
- sample 1902 workspace-supported tool payload coverage remains inside samples/phase-19/1902/sample.1902.workspace-all-tools.json.
77+
- Metadata now records the sample hub relationship truthfully as 1902:workspace-manager only.

0 commit comments

Comments
 (0)