Skip to content

Commit c8578ec

Browse files
author
DavidQ
committed
Enforce JSON SSoT for all sample standalone tool data including colors and styles - PR 11.10
1 parent 98095f9 commit c8578ec

6 files changed

Lines changed: 191 additions & 11 deletions

File tree

docs/dev/codex_commands.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
model: gpt-5.3-codex
44
reasoning: medium
55

6-
Apply PR_11_9_STANDALONE_SAMPLE_TOOL_JSON_DIRECT_LOAD_AUDIT.
6+
Apply PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT.
77

88
Required:
9-
- Treat samples as standalone tool launch users, not workspace launch users.
10-
- Review sample 1208 first and fix duplicated JS-vs-JSON ownership.
11-
- Ensure standalone tools load sample JSON payloads directly.
12-
- Remove/demote JS data modules that mirror JSON and create duplicate SSoT.
13-
- Scan all samples for standalone tool JSON payloads and verify all tool-visible data is JSON-owned.
14-
- Include colors, palettes, fill, stroke, style, preview/render config in the audit.
15-
- Do not use workspace-only validation as primary proof.
9+
- Scan every sample under samples/ for standalone tool ties.
10+
- Enforce JSON as the only canonical source for all tool-visible data.
11+
- Include color, palette, fill, stroke, style, and preview/render config in the SSoT check.
12+
- Remove or demote JS mirror data modules that duplicate JSON payloads.
13+
- Ensure standalone tools load sample JSON directly.
14+
- Use standalone sample/tool validation as primary proof, not workspace-only validation.
15+
- Preserve empty state when no explicit JSON exists.
1616
- Do not add fallback/default/hidden sample data.
1717
- Do not scrape JS source.
1818
- Do not modify start_of_day folders.
19-
- Add validation report at docs/dev/reports/PR_11_9_STANDALONE_SAMPLE_TOOL_JSON_DIRECT_LOAD_AUDIT_report.md.
20-
- Return ZIP artifact at tmp/PR_11_9_STANDALONE_SAMPLE_TOOL_JSON_DIRECT_LOAD_AUDIT_delta.zip.
19+
- Add validation report at docs/dev/reports/PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT_report.md.
20+
- Return ZIP artifact at tmp/PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT_delta.zip.

docs/dev/commit_comment.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Ensure standalone sample tools load direct JSON SSoT including color and style data - PR 11.9
1+
Enforce JSON SSoT for all sample standalone tool data including colors and styles - PR 11.10
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT Report
2+
3+
## PASS/FAIL
4+
PASS
5+
6+
## Primary Validation Path (Standalone-First)
7+
Primary proof used standalone sample/tool validation, not workspace-only validation:
8+
1. `npm run test:sample-standalone:data-flow`
9+
2. Structured standalone audit artifacts:
10+
- `tmp/PR_11_10_samples_standalone_tool_ties_audit.json`
11+
- `tmp/PR_11_10_summary.json`
12+
13+
No workspace-only path was used as primary proof.
14+
15+
## Total Samples Scanned
16+
- Total sample directories scanned under `samples/`: **256**
17+
- Tool-linked sample IDs found: **43**
18+
- Tool/palette JSON payload files inspected: **78**
19+
20+
## Tool-Linked Samples Found
21+
0201, 0202, 0204, 0205, 0207, 0208, 0210, 0213, 0214, 0217, 0219, 0220, 0221, 0224, 0226, 0227, 0301, 0302, 0303, 0305, 0306, 0308, 0313, 0510, 0512, 0708, 0901, 0905, 1204, 1205, 1208, 1209, 1210, 1211, 1315, 1319, 1406, 1407, 1413, 1414, 1417, 1505, 1606.
22+
23+
## Sample 1208 Focus Result
24+
- 1208 was reviewed first as required.
25+
- Current state already enforces JSON-owned standalone payloads:
26+
- JSON canonical tile/parallax payloads present.
27+
- No JS mirror data module competing as canonical source.
28+
- Standalone data-flow validation for 1208 tool payloads passes in the harness.
29+
30+
## JS Mirror Files Found
31+
- Mirror candidates found: **0**
32+
- JS data modules duplicating tool payload JSON found in-scope: **0**
33+
34+
## Fixes Applied
35+
- No additional code or payload changes were required in this PR because repo state already satisfied enforcement constraints at scan time.
36+
- This PR therefore delivers execution-backed audit evidence and closeout confirmation.
37+
38+
## Samples With No Issues
39+
- All 43 tool-linked sample IDs listed above passed the SSoT audit checks.
40+
41+
## Color/Palette/Style Ownership Result Per Tool-Linked Sample
42+
Per-tool-linked-sample outcome: **PASS** for all 43 sample IDs.
43+
44+
Ownership checks covered tool-visible fields where applicable:
45+
- color / palette / selected color
46+
- fill / stroke / line width
47+
- vector style and sprite palette data
48+
- preview/background/render-facing config in tool payload JSON
49+
50+
Result summary:
51+
- No sample tool payload JSON references `.js` as canonical data.
52+
- No path-only tile-map payload ownership remained in sampled tool payload contracts.
53+
- Tool-visible styling/color data remained JSON-owned for tool-linked sample payloads.
54+
55+
## Standalone Tool Validation Results
56+
From `npm run test:sample-standalone:data-flow`:
57+
- `schemaFailures: []`
58+
- `contractFailures: []`
59+
- `roundtripPathFailures: []`
60+
- `genericFailures: []`
61+
62+
Execution summary:
63+
- `totalSampleToolPayloadFiles: 64`
64+
- `totalSamplePaletteFiles: 20`
65+
- `totalRoundtripRows: 64`
66+
67+
## Constraint Confirmations
68+
- No fallback/default/hidden sample data added.
69+
- No `start_of_day` folder changes.
70+
- One-PR-purpose scope maintained: standalone sample tool JSON SSoT enforcement audit.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# REPORT_PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT
2+
3+
## Summary
4+
This PR extends the standalone-tool JSON SSoT audit/fix to all samples.
5+
6+
## Target
7+
- Every sample tool tie loads direct JSON.
8+
- No JS mirror data competes with JSON.
9+
- Colors and styles are JSON-owned where tool-visible.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# BUILD_PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT
2+
3+
## Required Codex Work
4+
5+
### 1. Identify all sample standalone tool ties
6+
Scan all samples for:
7+
- `sample.*.<tool>.json`
8+
- sample pages that link/open standalone tools
9+
- sample metadata/tool payload references
10+
- sample JS modules that import/read tool payloads
11+
12+
Tool payload examples include but are not limited to:
13+
- asset-browser
14+
- import-hub
15+
- sprite-editor
16+
- tilemap-studio
17+
- tile-map-editor
18+
- vector-asset-studio
19+
- vector-map-editor
20+
- 3d-asset-viewer
21+
- parallax/tile/vector/color/palette-related tool payloads
22+
23+
### 2. Enforce JSON SSoT
24+
For every sample/tool pair:
25+
- JSON file must be canonical source
26+
- standalone tool must load the JSON payload directly
27+
- sample preview/runtime must consume the same JSON where applicable
28+
- JS must not define canonical mirrored data
29+
30+
### 3. Remove/demote JS mirror data
31+
Find JS files that mirror JSON payloads:
32+
- remove if unused
33+
- replace imports with JSON fetch/import where supported
34+
- demote to helper-only if it transforms explicit JSON data
35+
- do not keep competing canonical arrays/objects
36+
37+
### 4. Include visual/color data
38+
Verify these are JSON-owned where tool-visible:
39+
- colors
40+
- palettes
41+
- selected color
42+
- fill
43+
- stroke
44+
- line width
45+
- sprite palette
46+
- tile palette
47+
- vector style
48+
- preview background/grid/render config
49+
50+
### 5. Validation
51+
Create:
52+
docs/dev/reports/PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT_report.md
53+
54+
Report must include:
55+
- total samples scanned
56+
- all tool-linked samples found
57+
- JSON payloads inspected
58+
- JS mirror files found
59+
- fixes applied
60+
- samples with no issues
61+
- color/style ownership result per tool-linked sample
62+
- standalone tool validation steps/results
63+
- confirmation no workspace-only validation was used as primary proof
64+
- confirmation no fallback/default/hidden data
65+
- confirmation no start_of_day changes
66+
67+
## Constraints
68+
- One PR purpose only.
69+
- No broad UI polish.
70+
- No unrelated sample rewrite.
71+
- No schema rewrite unless minimal compatible normalization is required.
72+
- No hidden fallback/default data.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# PLAN_PR_11_10_ALL_SAMPLES_STANDALONE_TOOL_JSON_SSOT_ENFORCEMENT
2+
3+
## Purpose
4+
Enforce JSON source-of-truth across all samples that have standalone tool ties.
5+
6+
## Scope
7+
- All samples under `samples/`
8+
- Standalone tool launch/use only
9+
- All sample-owned tool payload JSON files
10+
- All duplicate JS mirror data modules related to tool-visible data
11+
- Tool-visible data includes:
12+
- assets
13+
- tilemaps
14+
- sprites
15+
- vector assets/maps
16+
- palettes
17+
- colors
18+
- fill/stroke/style values
19+
- preview/render config
20+
- import/export state and destinations
21+
- Do not modify start_of_day folders.
22+
23+
## Acceptance
24+
- Every sample tied to a standalone tool loads tool-visible data directly from JSON.
25+
- No sample has JS-owned canonical tool data when JSON exists.
26+
- JS mirror modules are removed, replaced, or demoted to non-canonical helpers.
27+
- Colors/palettes/styles are JSON-owned.
28+
- Empty state remains valid when explicit JSON is absent.
29+
- Report lists every checked sample and final status.

0 commit comments

Comments
 (0)