|
| 1 | +# BUILD_PR_PROJECT_SYSTEM |
| 2 | + |
| 3 | +## Runtime scope |
| 4 | +- Shared project manifest contract for active first-class tools |
| 5 | +- Shared project controller in the engine-themed shell |
| 6 | +- Serializer, validator, and migration entry points |
| 7 | +- Dirty-state tracking, prompts, and project header status |
| 8 | +- Per-tool persistence adapters for active tools only |
| 9 | + |
| 10 | +## Modules created |
| 11 | +- `tools/shared/projectManifestContract.js` |
| 12 | +- `tools/shared/projectSystem.js` |
| 13 | +- `tools/shared/projectSystemAdapters.js` |
| 14 | +- `docs/specs/project_manifest_contract.md` |
| 15 | +- `scripts/validate-project-system.mjs` |
| 16 | + |
| 17 | +## Modules changed |
| 18 | +- `tools/shared/platformShell.js` |
| 19 | +- `tools/shared/platformShell.css` |
| 20 | +- `tools/Tilemap Studio/main.js` |
| 21 | +- `tools/Parallax Scene Studio/main.js` |
| 22 | +- `tools/Sprite Editor/main.js` |
| 23 | +- `tools/Sprite Editor/modules/spriteEditorApp.js` |
| 24 | +- `tools/Vector Asset Studio/main.js` |
| 25 | +- `tools/Asset Browser/main.js` |
| 26 | +- `tools/Palette Browser/main.js` |
| 27 | + |
| 28 | +## Public/runtime boundaries |
| 29 | +- The shell owns project actions: New, Open, Save, Save As, Close |
| 30 | +- The manifest contract owns schema/version/validation/migration rules |
| 31 | +- Adapters own tool-specific capture/apply behavior |
| 32 | +- Shared asset/palette references stay rooted in manifest `sharedReferences` |
| 33 | +- `tools/index.html` remains tool-only |
| 34 | +- `Sprite Editor` remains first-class |
| 35 | +- `SpriteEditor_old_keep` remains hidden legacy and excluded |
| 36 | + |
| 37 | +## Implementation summary |
| 38 | +- Added `html-js-gaming.project` as the shared project root with `version: 1` |
| 39 | +- Added migration and validation entry points before manifest use |
| 40 | +- Added shell project controls and project-name/dirty-state chrome in the shared header |
| 41 | +- Added unsaved-change prompts for tool navigation, new/open, and close flows |
| 42 | +- Added per-tool adapters for: |
| 43 | + - Vector Map Editor |
| 44 | + - Vector Asset Studio |
| 45 | + - Tilemap Studio |
| 46 | + - Parallax Scene Studio |
| 47 | + - Sprite Editor |
| 48 | + - Asset Browser / Import Hub |
| 49 | + - Palette Browser / Manager |
| 50 | +- Persisted shared asset/palette handoffs through manifest references instead of duplicating them in shell state |
| 51 | + |
| 52 | +## Validation performed |
| 53 | +- `node --check tools/shared/projectManifestContract.js` |
| 54 | +- `node --check tools/shared/projectSystem.js` |
| 55 | +- `node --check tools/shared/projectSystemAdapters.js` |
| 56 | +- `node --check tools/shared/platformShell.js` |
| 57 | +- `node --check tools/Tilemap Studio/main.js` |
| 58 | +- `node --check tools/Parallax Scene Studio/main.js` |
| 59 | +- `node --check tools/Sprite Editor/main.js` |
| 60 | +- `node --check tools/Sprite Editor/modules/spriteEditorApp.js` |
| 61 | +- `node --check tools/Vector Asset Studio/main.js` |
| 62 | +- `node --check tools/Asset Browser/main.js` |
| 63 | +- `node --check tools/Palette Browser/main.js` |
| 64 | +- `node scripts/validate-tool-registry.mjs` |
| 65 | +- `node scripts/validate-active-tools-surface.mjs` |
| 66 | +- `node scripts/validate-project-system.mjs` |
| 67 | + |
| 68 | +## Follow-up recommendations |
| 69 | +- Add focused browser/manual QA for cross-tool open/save navigation flows |
| 70 | +- Add explicit automated round-trip tests for each adapter |
| 71 | +- Add future manifest migrations through `migrateProjectManifest()` only |
0 commit comments