Skip to content

Commit 4ada28e

Browse files
author
DavidQ
committed
Canonicalize schema filenames and restore compact primitive array enforcement - PR 11.104
1 parent ce8714e commit 4ada28e

46 files changed

Lines changed: 473 additions & 707 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.

docs/dev/PROJECT_INSTRUCTIONS.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,9 @@ Treat this as a recovery/stabilization PR only. Do not expand into a broader gam
292292

293293
## ARRAY FORMATTING RULE
294294

295-
- Primitive-only arrays in JSON must use compact single-line formatting.
295+
- Primitive-only arrays in JSON must use compact grouped formatting.
296296
- Primitive values are: string, number, boolean, and null.
297-
- Complex arrays (arrays containing objects or nested arrays) must not be compacted.
297+
- Valid compact form example:
298+
`[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]`
299+
- Do not compact arrays of objects, nested arrays, or complex structures.
298300
- Do not change JSON contracts or semantics while applying array formatting.

docs/dev/codex_commands.md

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,58 @@
33
Model: GPT-5.3-codex
44
Reasoning: low
55

6-
1. Update workspace.manifest.schema.json:
7-
- change required key from "palette" to "palette-browser"
8-
- rename properties.palette to properties.palette-browser
6+
## PR
7+
BUILD_PR_LEVEL_11_104_SCHEMA_FILENAME_CANONICALIZATION_AND_ARRAY_RULE_RESTORE
98

10-
2. Scan repo:
11-
- replace all tool key usage:
12-
palette → palette-browser
9+
## Execute
1310

14-
3. Remove invalid references:
15-
- palette-editor
16-
- duplicate palette tools
11+
1. Rename schema files:
12+
- tools/schemas/tools/3d-json-payload.schema.json -> tools/schemas/tools/3d-json-payload.schema.json
13+
- tools/schemas/tools/asset-pipeline.schema.json -> tools/schemas/tools/asset-pipeline.schema.json
1714

18-
4. Validate:
19-
- all workspace manifests use tools.palette-browser
20-
- schema validation passes
15+
2. Update every repo reference to the renamed schema files:
16+
- `$ref`
17+
- schema ids
18+
- validation scripts
19+
- docs
20+
- tool/sample/game JSON
2121

22-
5. Output report:
23-
docs/dev/reports/validation_after_11_103.txt
22+
3. Validate all JSON against strict schemas.
23+
24+
4. Fix JSON/schema mismatches only:
25+
- stale schema references
26+
- stale tool ids
27+
- invalid/unknown properties
28+
- missing required fields
29+
- wrong canonical names
30+
31+
5. Restore the Project Instructions compact primitive-array formatting rule if it is missing or changed:
32+
- simple primitive arrays must use compact grouped form:
33+
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
34+
- do not apply to arrays of objects, nested arrays, or complex structures
35+
36+
6. Normalize repo JSON primitive arrays to match the rule.
37+
38+
7. Confirm no old names remain:
39+
- 3d-json-payload.schema.json
40+
- asset-pipeline.schema.json
41+
- palette
42+
- palette-browser
43+
44+
8. Write reports:
45+
- docs/dev/reports/schema_filename_canonicalization_11_104.txt
46+
- docs/dev/reports/json_schema_alignment_11_104.txt
47+
- docs/dev/reports/array_formatting_rule_11_104.txt
48+
49+
9. Roadmap:
50+
- only update status markers if execution-backed
51+
- do not rewrite roadmap text
52+
- do not delete roadmap text
53+
54+
## Constraints
55+
56+
- Do not loosen schemas.
57+
- Do not add aliases.
58+
- Do not add fallback/default asset data.
59+
- Do not write implementation code unless required only to update validation/reference paths.
60+
- Do not run full samples smoke test unless validation proves shared sample loader/framework was changed.

docs/dev/commit_comment.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Normalize palette tool to palette-browser and enforce single canonical naming - PR 11.103
1+
Canonicalize schema filenames and restore compact primitive array enforcement - PR 11.104

docs/dev/reports/PR_10_27_DUPLICATE_CLASSIFICATION_AND_SAFE_CLEANUP_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ PASS
3939
| Hash (short) | Representative File | Reason |
4040
|---|---|---|
4141
| 971437553d34 | `docs/design/gdd/Capcom/Final Fight/gdd.txt` | Potential intentional/doc-specific duplication or unclear ownership |
42-
| df859606f030 | `tools/palette-editor/tool.schema.json` | Potential intentional/doc-specific duplication or unclear ownership |
42+
| df859606f030 | `tools/palette-browser/tool.schema.json` | Potential intentional/doc-specific duplication or unclear ownership |
4343
| f01a374e9c81 | `games/Pacman/assets/.gitkeep` | Potential intentional/doc-specific duplication or unclear ownership |
4444
| e3b0c44298fc | `docs/design/gdd/Nameco/Galaga/gdd.txt` | Potential intentional/doc-specific duplication or unclear ownership |
4545

@@ -78,7 +78,7 @@ PASS
7878
| 2fb3e00d7762 | 3 | sample-variant-intentional | kept-no-action | high | `samples/phase-12/1218/assets/data/parallax/mountain-ridge-tall.svg` |
7979
| 6435cd00ef69 | 9 | sample-variant-intentional | kept-no-action | high | `games/AITargetDummy/rules/gameFlowRules.js` |
8080
| 9a97352ae4b6 | 9 | sample-variant-intentional | kept-no-action | high | `games/Pacman/rules/gameFlowRules.js` |
81-
| df859606f030 | 3 | ambiguous-no-action | kept-no-action | high | `tools/palette-editor/tool.schema.json` |
81+
| df859606f030 | 3 | ambiguous-no-action | kept-no-action | high | `tools/palette-browser/tool.schema.json` |
8282
| 9454a8b0c6e3 | 2 | sample-variant-intentional | kept-no-action | high | `samples/phase-12/1220/assets/data/parallax/mario_style_sky.svg` |
8383
| 7fac6c68998c | 2 | report-evidence | demoted-moved | high | `docs/dev/reports/level_10_6d_palette_contract_evidence/repo_relative/tools/schemas/tools/palette-browser.schema.json` |
8484
| 3a6e82fbca11 | 2 | template-intentional | kept-no-action | medium | `docs/operations/dev/templates/CODEX_AUTO_COMMAND.md` |

docs/dev/reports/PR_11_14_WORKSPACE_SCHEMA_PALETTE_TOOL_AND_1902_REBUILD_report.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
- Removed top-level required `palettes`.
1313
- Removed top-level `palettes` property from the workspace manifest schema.
1414
- Kept top-level `tools` required.
15-
- Added required singular `tools.palette`.
16-
- Added shape checks for `tools.palette` (`id`, `name`, `swatches`).
15+
- Added required singular `tools.palette-browser`.
16+
- Added shape checks for `tools.palette-browser` (`id`, `name`, `swatches`).
1717

1818
## Final 1902 JSON Structure
1919
- Top-level keys:
@@ -24,12 +24,12 @@
2424
- `name`
2525
- `tools`
2626
- Canonical palette location:
27-
- `tools.palette`
27+
- `tools.palette-browser`
2828
- Tool payloads remain under `tools.<toolId>` for all active tools.
2929

3030
## Palette Contract Confirmation
31-
- `tools.palette` exists and is the canonical workspace palette payload.
32-
- Only one canonical palette object exists in the manifest (`tools.palette`).
31+
- `tools.palette-browser` exists and is the canonical workspace palette payload.
32+
- Only one canonical palette object exists in the manifest (`tools.palette-browser`).
3333
- Top-level `palettes` collection is removed.
3434
- `sample.1902.palette.json` sidecar is not present.
3535
- No `sample.1902.palette.json` references remain in the 1902 workspace manifest.

docs/dev/reports/PR_11_17_SCHEMA_SET_NORMALIZATION_AND_WORKSPACE_REF_ENFORCEMENT_report.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ File:
1616
Verified:
1717
- Top-level `palettes` is removed.
1818
- Top-level `tools` is required.
19-
- `tools.palette` is singular and required.
19+
- `tools.palette-browser` is singular and required.
2020
- `tools.properties` explicitly lists all active workspace-supported registry ids.
2121
- `tools.additionalProperties` is `false`.
2222
- `$ref` entries are used for each declared tool/palette schema target.
@@ -36,9 +36,9 @@ Verified resolvable and valid JSON:
3636
- `./tools/replay-visualizer.schema.json`
3737
- `./tools/performance-profiler.schema.json`
3838
- `./tools/physics-sandbox.schema.json`
39-
- `./tools/asset-pipeline-tool.schema.json`
39+
- `./tools/asset-pipeline.schema.json`
4040
- `./tools/tile-model-converter.schema.json`
41-
- `./tools/3d-json-payload-normalizer.schema.json`
41+
- `./tools/3d-json-payload.schema.json`
4242
- `./tools/3d-asset-viewer.schema.json`
4343
- `./tools/3d-camera-path-editor.schema.json`
4444

@@ -48,7 +48,7 @@ File:
4848

4949
Verified:
5050
- No top-level `palettes`.
51-
- Contains `tools.palette` singleton payload.
51+
- Contains `tools.palette-browser` singleton payload.
5252
- Uses canonical registry-id tool keys plus `palette`.
5353
- No `sample.1902.palette.json` file present.
5454
- No `sample.1902.palette.json` references in sample 1902 payload.

docs/dev/reports/PR_11_18_FULL_STRICT_SCHEMA_MODE_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
- `tools/schemas/tool.manifest.schema.json`
1010
- `tools/schemas/tools/3d-asset-viewer.schema.json`
1111
- `tools/schemas/tools/3d-camera-path-editor.schema.json`
12-
- `tools/schemas/tools/3d-json-payload-normalizer.schema.json`
12+
- `tools/schemas/tools/3d-json-payload.schema.json`
1313
- `tools/schemas/tools/asset-browser.schema.json`
14-
- `tools/schemas/tools/asset-pipeline-tool.schema.json`
14+
- `tools/schemas/tools/asset-pipeline.schema.json`
1515
- `tools/schemas/tools/palette-browser.schema.json`
1616
- `tools/schemas/tools/palette.schema.json`
1717
- `tools/schemas/tools/parallax-editor.schema.json`

docs/dev/reports/PR_11_19_SCHEMA_CLEANUP_TOOL_PAYLOADS_AND_PALETTE_CANONICALIZATION_report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@
5757
- `tools/schemas/sample.tool-payload.schema.json`
5858
- `tools/schemas/tools/3d-asset-viewer.schema.json`
5959
- `tools/schemas/tools/3d-camera-path-editor.schema.json`
60-
- `tools/schemas/tools/3d-json-payload-normalizer.schema.json`
60+
- `tools/schemas/tools/3d-json-payload.schema.json`
6161
- `tools/schemas/tools/asset-browser.schema.json`
62-
- `tools/schemas/tools/asset-pipeline-tool.schema.json`
62+
- `tools/schemas/tools/asset-pipeline.schema.json`
6363
- `tools/schemas/tools/palette-browser.schema.json`
6464
- `tools/schemas/tools/parallax-editor.schema.json`
6565
- `tools/schemas/tools/performance-profiler.schema.json`
@@ -78,7 +78,7 @@
7878
- `samples/phase-19/1902/sample.1902.workspace-all-tools.json`
7979
- Changes include:
8080
- tool entry `config` -> `payload`
81-
- `tools.palette` migrated to canonical palette-browser payload shape
81+
- `tools.palette-browser` migrated to canonical palette-browser payload shape
8282
- `tools.palette-browser` given explicit strict payload
8383
- generic `projectId` replacements
8484
- removed nested tile payload `$schema` reference to `sample.tool-payload.schema.json`

docs/dev/reports/PR_11_20_WORKSPACE_LOADER_SCHEMA_V2_TOOLS_PAYLOAD_SUPPORT_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ PASS
1010

1111
## Old Loader Assumptions Found
1212
- Workspace Manager previously derived available tools from registry/game filters, not strictly from `Object.keys(manifest.tools)` when a sample workspace manifest was provided.
13-
- Shared shell sample preset scoping previously matched `manifest.tools` keys by exact tool id only, so a singular `tools.palette` key would not resolve for `palette-browser` launches.
13+
- Shared shell sample preset scoping previously matched `manifest.tools` keys by exact tool id only, so a singular `tools.palette-browser` key would not resolve for `palette-browser` launches.
1414

1515
## New Loader Path
1616
- Workspace Manager now reads `samplePresetPath` workspace manifest, classifies `manifest.tools` keys, validates each key against tool host registry IDs (with explicit singular palette mapping), validates payload `tool` id equality, and uses accepted tool IDs as the active tool list filter.
17-
- Shared shell scoped preset resolution now supports singular `tools.palette` mapped to `palette-browser` and rejects mismatched/malformed tool payload entries.
17+
- Shared shell scoped preset resolution now supports singular `tools.palette-browser` mapped to `palette-browser` and rejects mismatched/malformed tool payload entries.
1818

1919
## Sample 1902 Manifest Tool Key Evidence
2020
Source:

docs/dev/reports/PR_11_21_WORKSPACE_MANAGER_TOOL_PRESENT_DETECTION_FIX_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ PASS
2121
- Classification now records and validates, per key:
2222
- raw key
2323
- normalized key
24-
- palette alias mapping (`tools.palette` -> `palette-browser`)
24+
- palette alias mapping (`tools.palette-browser` -> `palette-browser`)
2525
- registry match
2626
- workspace-schema allowed key
2727
- tool-schema validity

0 commit comments

Comments
 (0)