Skip to content

Commit 6da7b5d

Browse files
committed
Add registry vlidator and restore Sprite Editor as a first-class active tool while preserving SpriteEditor_old_keep as hidden legacy.
1 parent ab322f0 commit 6da7b5d

15 files changed

Lines changed: 538 additions & 183 deletions

docs/dev/CODEX_COMMANDS.md

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,27 @@
1-
# Codex Commands
2-
3-
## Primary build
41
MODEL: GPT-5.4
52
REASONING: high
63

74
COMMAND:
8-
Create `BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL` as a docs-driven implementation PR that combines the final public-facing vector platform showcase with deterministic geometry runtime finalization.
9-
10-
### Goals
11-
- registry-driven showcase surface
12-
- mandatory engine theme across all active first-class tools
13-
- deterministic vector geometry runtime contracts
14-
- stable transform/render/precision behavior
15-
- preserve `tools/SpritEditor_old_keep/` but exclude it from active platform surface
5+
Create BUILD_PR_TOOL_REGISTRY_VALIDATOR_AND_SPRITE_FIRST_CLASS as a docs-aligned implementation PR.
166

17-
### Active first-class tools
18-
- `tools/Vector Map Editor/`
19-
- `tools/Vector Asset Studio/`
20-
- `tools/Tile Map Editor/`
21-
- `tools/Parallax Editor/`
7+
REQUIREMENTS:
8+
1. Keep `tools/` first-class and registry-driven.
9+
2. Make `Sprite Editor` first-class and active in `tools/toolRegistry.js`.
10+
3. Keep `SpriteEditor_old_keep` preserved but excluded from active tool rendering.
11+
4. Update all active header/tool-surface rendering to use `entry.active === true`.
12+
5. Add a registry validator script that compares registry entries to filesystem directories.
13+
6. Fail validation on missing folders, missing registry entries, duplicate ids/names/paths, inactive `Sprite Editor`, or active legacy `SpriteEditor_old_keep`.
14+
7. Add a validation report output under `docs/dev/reports/` or equivalent repo-appropriate dev report location.
2215

23-
### Constraints
24-
- keep changes surgical
25-
- do not delete legacy sprite editor preserved path
26-
- no obsolete `Sprite Editor V3` references
27-
- no runtime-breaking engine rewrites
28-
- do not hardcode duplicate tool lists outside registry
29-
- prefer shared engine/theme and shared vector runtime over tool-specific behavior
16+
EXPECTED ACTIVE TOOLS:
17+
- Vector Map Editor
18+
- Vector Asset Studio
19+
- Tilemap Studio
20+
- Parallax Scene Studio
21+
- Sprite Editor
3022

31-
### Package output
32-
Create:
33-
`<project folder>/tmp/BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL.zip`
23+
EXPECTED LEGACY TOOL:
24+
- SpriteEditor_old_keep
3425

35-
## Commit comment
36-
Use `docs/dev/commit_comment.txt`.
26+
OUTPUT:
27+
<project folder>/tmp/BUILD_PR_TOOL_REGISTRY_VALIDATOR_AND_SPRITE_FIRST_CLASS.zip

docs/dev/COMMIT_COMMENT.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Finalize the registry-driven vector platform showcase and deterministic geometry runtime contract while preserving legacy sprite paths outside the active surface.
1+
Restore Sprite Editor as a first-class active tool, keep SpriteEditor_old_keep preserved but hidden, and add a filesystem-aware tool registry validator with report output.
Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
11
CHANGE SUMMARY
22

3-
Bundle:
4-
BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL
5-
6-
Intent:
7-
Combine the last two major remaining docs-only steps into one Codex-ready PR bundle.
8-
9-
What this bundle tells Codex to do:
10-
1. Build the public-facing platform showcase / landing surface.
11-
2. Make active tools registry-driven and engine-theme consistent.
12-
3. Finalize deterministic vector geometry runtime contracts.
13-
4. Keep legacy sprite editor preserved but excluded from the active platform surface.
3+
- Makes Sprite Editor first-class on the registry-driven tools surface
4+
- Preserves SpriteEditor_old_keep as legacy and non-rendered
5+
- Adds registry validator requirements to prevent registry/filesystem drift
6+
- Tightens rendering rules so only active registry entries appear in the header and tool landing surface

docs/dev/reports/file_tree.txt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL/
2-
└── docs/
3-
├── pr/
4-
│ └── BUILD_PR_VECTOR_SHOWCASE_AND_GEOMETRY_RUNTIME_FINAL.md
5-
└── dev/
6-
├── codex_commands.md
7-
├── commit_comment.txt
8-
└── reports/
9-
├── change_summary.txt
10-
├── validation_checklist.txt
11-
└── file_tree.txt
1+
docs/
2+
pr/
3+
BUILD_PR_TOOL_REGISTRY_VALIDATOR_AND_SPRITE_FIRST_CLASS.md
4+
dev/
5+
codex_commands.md
6+
commit_comment.txt
7+
reports/
8+
change_summary.txt
9+
validation_checklist.txt
10+
file_tree.txt
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
TOOL_REGISTRY_VALIDATION
2+
status=PASS
3+
active=Vector Map Editor, Vector Asset Studio, Tilemap Studio, Parallax Scene Studio, Sprite Editor
4+
legacy=SpriteEditor_old_keep
5+
Filesystem Directories
6+
- Parallax Scene Studio
7+
- Sprite Editor
8+
- SpriteEditor_old_keep
9+
- Tilemap Studio
10+
- Vector Asset Studio
11+
- Vector Map Editor
12+
Registry Paths
13+
- Vector Map Editor
14+
- Vector Asset Studio
15+
- Tilemap Studio
16+
- Parallax Scene Studio
17+
- Sprite Editor
18+
- SpriteEditor_old_keep
19+
Issues
20+
- none
21+
Notes
22+
- registry and filesystem are aligned
Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,14 @@
11
VALIDATION CHECKLIST
22

3-
[ ] `tools/` remains the first-class active tool root
4-
[ ] Active tools shown only via registry
5-
[ ] Showcase surface lists only:
6-
[ ] Vector Map Editor
7-
[ ] Vector Asset Studio
8-
[ ] Tile Map Editor
9-
[ ] Parallax Editor
10-
[ ] `tools/SpritEditor_old_keep/` preserved
11-
[ ] Legacy sprite editor excluded from active showcase surface
12-
[ ] No `Sprite Editor V3` references remain
13-
[ ] All active tools consume engine theme tokens
14-
[ ] Shared shell/header/nav language is normalized
15-
[ ] Deterministic transform order documented
16-
[ ] Deterministic render ordering documented
17-
[ ] Precision / epsilon policy documented
18-
[ ] Path normalization rules documented
19-
[ ] Vector-native sample scenarios render stably
20-
[ ] No broken active tool links
21-
[ ] Combined PR remains surgical and docs-first
3+
[ ] Sprite Editor folder exists under tools/
4+
[ ] Sprite Editor registry entry exists
5+
[ ] Sprite Editor is active=true
6+
[ ] Sprite Editor is legacy=false
7+
[ ] Sprite Editor appears in tools/index.html header
8+
[ ] SpriteEditor_old_keep does not appear in tools/index.html header
9+
[ ] Active render path is derived from registry active entries only
10+
[ ] Validator detects missing registry entries
11+
[ ] Validator detects missing folders
12+
[ ] Validator detects duplicate ids, names, and paths
13+
[ ] Validator fails if Sprite Editor is inactive
14+
[ ] Validator fails if SpriteEditor_old_keep is active
Lines changed: 115 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,122 @@
11
# BUILD_PR_ENGINE_THEME_FINAL_PLATFORM_INTEGRATION
22

33
## Purpose
4-
Finish the active tools platform by making the engine theme the single visual source of truth for the first-class tools surface and by closing the remaining shared-shell integration gaps in one combined build PR.
4+
Finalize the active tools platform in the fewest possible remaining steps by applying the shared engine theme to all first-class tools and closing the remaining platform-surface integration gaps in one combined build PR.
55

6-
## Engine Theme Source Of Truth
7-
- `engine/ui/hubCommon.css` is the existing engine theme source of truth
8-
- no second theme system was introduced
9-
- no additional theme extraction layer was required beyond consuming the existing engine variables from the shared tools shell
6+
## Scope
7+
In scope:
8+
- Make the engine theme the required visual system for all active tools under `tools/`
9+
- Standardize shared shell/frame/navigation/header/footer behavior across active tools
10+
- Standardize shared tokens for color, spacing, typography, borders, shadows, focus, buttons, panels, dialogs, tabs, form controls, and status messaging
11+
- Align tool landing/index surfaces to the same engine-themed platform shell
12+
- Ensure active tools render consistently while preserving each tool's own workspace behavior
13+
- Ensure legacy `SpritEditor_old_keep` is excluded from active themed tool navigation unless explicitly opened by direct path
14+
- Fix pathing/imports/assets required to support the shared engine theme across tools
15+
- Perform one-pass validation for tool loading, theme application, and broken-reference checks
1016

11-
## First-Class Active Tools
17+
Out of scope:
18+
- New editor features unrelated to shared platform/theme integration
19+
- Engine runtime feature changes unrelated to theme/surface integration
20+
- Deleting legacy tools
21+
- Rewriting tool-specific domain logic unless required for shell/theme adoption
22+
23+
## Required Target State
24+
Active first-class tools:
1225
- `tools/Vector Map Editor/`
1326
- `tools/Vector Asset Studio/`
14-
- `tools/Tilemap Studio/`
15-
- `tools/Parallax Scene Studio/`
16-
17-
## Preserved But Excluded
18-
- `tools/SpriteEditor_old_keep/` remains preserved on disk
19-
- `tools/Sprite Editor/` remains on disk but is not promoted in the active tools landing page or shared navigation
20-
- preserved sprite paths are excluded from the registry-driven active surface
21-
22-
## Scope Implemented
23-
- rebased the shared tools shell onto the engine theme tokens from `hubCommon.css`
24-
- kept the active tools landing page and active-tool navigation registry-driven
25-
- kept the four active tool workspaces intact while standardizing the shell, header, nav, and status chrome around them
26-
- added validation for engine-theme stylesheet presence and shared-shell presence on active tool pages
27-
- kept path fixes and repo changes limited to the active tools platform surface
28-
29-
## Modules Created Or Changed
30-
- `tools/shared/platformShell.css`
31-
- `tools/shared/platformShell.js`
32-
- `tools/index.html`
33-
- `tools/renderToolsIndex.js`
34-
- `scripts/validate-active-tools-surface.mjs`
35-
- `docs/pr/BUILD_PR_ENGINE_THEME_FINAL_PLATFORM_INTEGRATION.md`
36-
- `docs/dev/COMMIT_COMMENT.txt`
37-
38-
## Public Surface Boundaries
39-
- `engine/ui/hubCommon.css` supplies the theme variables and shared visual tokens
40-
- `tools/shared/platformShell.css` consumes those tokens for platform chrome only
41-
- `tools/shared/platformShell.js` renders the shared shell from the canonical tool registry
42-
- `tools/toolRegistry.js` remains the source of truth for active-tool visibility and navigation
43-
- tool-specific editor logic and engine/game runtime code were not modified for this PR
44-
45-
## Implementation Summary
46-
- converted the shared shell from a hardcoded standalone palette to the engine theme variables already defined in `hubCommon.css`
47-
- kept the landing page and the four first-class tools visually aligned through the same shared shell
48-
- made the landing surface explicitly communicate that it is engine-themed and registry-driven
49-
- preserved the active tool list as the approved four-tool surface only
50-
- kept preserved sprite content excluded from the first-class tools platform
51-
52-
## Validation Performed
53-
- `node --check tools/toolRegistry.js`
54-
- `node --check tools/renderToolsIndex.js`
55-
- `node --check tools/shared/platformShell.js`
56-
- `node --check scripts/validate-active-tools-surface.mjs`
57-
- `node --check tools/Vector Asset Studio/main.js`
58-
- `node --check tools/Tilemap Studio/main.js`
59-
- `node --check tools/Parallax Scene Studio/main.js`
60-
- `node --check tools/Vector Map Editor/main.js`
61-
- `node scripts/validate-active-tools-surface.mjs`
62-
63-
## Validation Summary
64-
- active tool pages still load the engine theme stylesheet from `engine/ui/hubCommon.css`
65-
- active tool pages still load the shared shell stylesheet and module
66-
- the landing page loads the engine theme and shared shell
67-
- only the approved four tools appear in the active registry-driven surface
68-
- preserved sprite tooling does not appear in active landing or navigation output
69-
- stale deprecated sprite-rename references remain blocked by the validator
70-
71-
## Follow-Up Recommendations
72-
- keep future first-class tool visual changes routed through `hubCommon.css` tokens and `tools/shared/platformShell.css`
73-
- keep future active-tool additions gated through `tools/toolRegistry.js` and the same validator
74-
- avoid reintroducing bespoke shell palettes on per-tool pages
27+
- `tools/Tile Map Editor/`
28+
- `tools/Parallax Editor/`
29+
30+
Legacy preserved but excluded from active platform surface:
31+
- `tools/SpritEditor_old_keep/`
32+
33+
All active tools must:
34+
- use the engine theme
35+
- use the same platform shell
36+
- use the same shared design tokens/components where appropriate
37+
- appear as one coherent product family
38+
39+
## Engine Theme Rule (mandatory)
40+
All active tools must adopt the engine theme as the single source of truth for visual styling.
41+
42+
Codex must:
43+
- identify the current engine theme source(s)
44+
- normalize them into a reusable shared theme contract if needed
45+
- apply that contract to all active tools
46+
- remove duplicated per-tool visual drift where safe
47+
- preserve tool-specific layout/workspace needs while keeping the shared theme intact
48+
49+
Minimum theme contract should cover:
50+
- app background / panel background / workspace background
51+
- primary / secondary / accent / muted colors
52+
- typography scale
53+
- spacing scale
54+
- borders / radii
55+
- elevation / shadows
56+
- button/input/tab/menu styling
57+
- selected/hover/focus/disabled states
58+
- status colors/messages
59+
- light/dark behavior only if already supported by engine theme; do not invent a new mode system unless already present
60+
61+
## Implementation Plan (fewest remaining steps)
62+
Use a single combined build PR with these execution phases:
63+
64+
### Phase 1 — Shared Theme Extraction/Normalization
65+
- Locate engine theme assets/tokens/styles/components already present in repo
66+
- Create or refine a shared theme module usable by all active tools
67+
- Define a stable public contract for tool consumption
68+
- Avoid duplicating theme values inside each tool
69+
70+
### Phase 2 — Active Tool Adoption
71+
Apply the shared engine theme to:
72+
- Vector Map Editor
73+
- Vector Asset Studio
74+
- Tile Map Editor
75+
- Parallax Editor
76+
77+
Per tool:
78+
- replace divergent shell/header/nav styling with the platform shell
79+
- align panel/button/input/tab/dialog styling to engine theme
80+
- keep existing tool workflows intact
81+
- preserve existing functionality while updating surface appearance
82+
83+
### Phase 3 — Platform Surface Unification
84+
- Ensure tools landing/index/menu uses same engine-themed shell
85+
- Ensure active tool cards/listing/navigation are registry-driven where available
86+
- Ensure naming shown to user matches approved display names
87+
- Ensure legacy Sprite editor is not presented in the active tools surface
88+
89+
### Phase 4 — Validation and Cleanup
90+
- verify all active tools load
91+
- verify no obvious broken paths/imports caused by theme consolidation
92+
- verify no stale references to deprecated tool names
93+
- verify visual consistency across active tools
94+
- verify legacy exclusion behavior
95+
96+
## Acceptance Criteria
97+
- Every active tool clearly uses the engine theme
98+
- Tools look like one coherent platform, not separate mini-apps
99+
- No active tool retains outdated bespoke styling when an engine-theme equivalent exists
100+
- Shared shell/header/nav is consistent across active tools
101+
- Legacy `SpritEditor_old_keep` is preserved but excluded from active tool listings/navigation
102+
- No broken imports, obvious console errors, or missing style assets caused by the change
103+
- Tool names displayed to users are normalized and approved
104+
105+
## Preferred File Placement
106+
Codex should prefer shared theme/platform assets in stable shared locations already used by the engine. If a new shared location is needed, keep it minimal and aligned with existing repo organization.
107+
108+
## Constraints
109+
- Keep this as one combined build PR
110+
- Do not split into multiple follow-up PRs unless blocked by a real technical dependency
111+
- No destructive removal of legacy content
112+
- No unrelated refactors
113+
- Do not introduce a second competing theme system
114+
115+
## Suggested Deliverables from Codex
116+
- shared engine-theme contract/module updates
117+
- active tool shell/theme adoption changes
118+
- tool index/landing/platform surface polish updates
119+
- validation notes and any necessary path fixes
120+
121+
## Codex Execution Intent
122+
This PR is intended to be the shortest path from “mostly organized tools” to “coherent themed platform.” Favor surgical reuse of existing engine theme assets over reinvention.

0 commit comments

Comments
 (0)