|
| 1 | +# Level 10.6M Tool UI Readiness DoD Gap Review |
| 2 | + |
| 3 | +## Scope and Method |
| 4 | +- Reviewed `docs/pr/BUILD_PR_LEVEL_10_6M_TOOL_UI_READINESS_DOD.md` against currently sample-launched and game-launched tools. |
| 5 | +- Compared DoD coverage to tool UI/data contracts evidenced in runtime tests and tool source. |
| 6 | +- Runtime code changes were not made. |
| 7 | + |
| 8 | +## Tool reviewed: Sprite Editor (`sprite-editor`) |
| 9 | +Observed required controls: |
| 10 | +- `paletteSelect`, `paletteButtons`, `colorPicker`, `activeColorSwatch`, `activeColorText` |
| 11 | +- `editorCanvas`, `previewCanvas`, frame controls (`add/duplicate/delete/prev/next`) |
| 12 | +- `playPreviewButton`, `pausePreviewButton`, `fpsInput`, `fpsValue` |
| 13 | +- `saveProjectButton`, `packageProjectButton`, `exportPngButton`, `exportSheetButton` |
| 14 | +- `loadProject*`, `loadAssetRegistry*`, `saveAssetRegistryButton`, `paletteLockText` |
| 15 | +Observed required fields/data: |
| 16 | +- `samplePresetPath` (sprite project input) |
| 17 | +- manifest-resolved `palettePath` to canonical `*.palette.json` |
| 18 | +- canonical palette fields used by loader: `schema`, `version`, `name`, `source`, `swatches` |
| 19 | +DoD gaps found: |
| 20 | +- Current DoD does not require palette lock-state UI verification (`paletteLockText`) after sample load. |
| 21 | +- Current DoD does not require playback/FPS readiness checks tied to loaded frame data. |
| 22 | +- Current DoD does not include asset-registry controls that are part of sprite-editor readiness in sample workflows. |
| 23 | +Suggested DoD additions: |
| 24 | +- Add control-ready checks for `paletteLockText`, `fpsInput/fpsValue`, preview play/pause, and asset-registry load/save controls. |
| 25 | +- Add requirement that `sampleSourceText/sampleSourceDetailText` reflect loaded sample context. |
| 26 | +Files inspected: |
| 27 | +- `tools/Sprite Editor/modules/spriteEditorApp.js` |
| 28 | +- `samples/metadata/samples.index.metadata.json` |
| 29 | +No implementation changes made: |
| 30 | +- yes |
| 31 | + |
| 32 | +## Tool reviewed: Palette Browser (`palette-browser`) |
| 33 | +Observed required controls: |
| 34 | +- `paletteTitle`, `paletteSummaryText`, `paletteSwatches`, `paletteSelectionText` |
| 35 | +- edit controls (`paletteNameInput`, `swatchColorInput`, `swatchNameInput`, `swatchSymbolInput`) |
| 36 | +- actions (`copyPaletteJsonButton`, `exportPaletteJsonButton`, `importPaletteJsonButton`) |
| 37 | +Observed required fields/data: |
| 38 | +- canonical palette data (`name`, `swatches`, `source`) |
| 39 | +- sample preset load signal in `paletteSelectionText` |
| 40 | +DoD gaps found: |
| 41 | +- DoD does not explicitly require load-status control verification (`paletteSelectionText`) even though this is a primary readiness signal in current tests. |
| 42 | +- DoD does not require summary correctness (`paletteSummaryText` not showing empty/zero state when swatches exist). |
| 43 | +Suggested DoD additions: |
| 44 | +- Add explicit control-ready checks for `paletteSelectionText` and `paletteSummaryText`. |
| 45 | +- Add requirement that swatch count in UI equals loaded `swatches.length`. |
| 46 | +Files inspected: |
| 47 | +- `tools/Palette Browser/main.js` |
| 48 | +- `tests/runtime/SampleStandaloneToolDataFlow.test.mjs` |
| 49 | +No implementation changes made: |
| 50 | +- yes |
| 51 | + |
| 52 | +## Tool reviewed: Tilemap Studio (`tile-map-editor`) |
| 53 | +Observed required controls: |
| 54 | +- map canvas and metadata (`mapCanvas`, `canvasMeta`, zoom controls) |
| 55 | +- tile palette (`tilePalette`) and tileset controls (`tilesetTileWidth/Height`, spacing, margin, PNG loaders) |
| 56 | +- layer list and layer controls (`layerList`, visibility, add/remove) |
| 57 | +- save/export/package controls (`saveProjectButton`, `exportRuntimeButton`, package/export actions) |
| 58 | +Observed required fields/data: |
| 59 | +- tilemap document payload |
| 60 | +- optional tilemap document indirection path |
| 61 | +- tileset atlas/image metadata and layer arrays |
| 62 | +DoD gaps found: |
| 63 | +- Current DoD misses tileset-atlas readiness (tile width/height/spacing/margin and generated tile grid). |
| 64 | +- Current DoD misses layer-kind readiness (`tile`/`collision`/`data`) and per-kind rendering checks. |
| 65 | +Suggested DoD additions: |
| 66 | +- Add required controls for tileset atlas configuration and generated tile preview state. |
| 67 | +- Add readiness checks for layer-kind-specific rendering and selected-layer visibility state. |
| 68 | +Files inspected: |
| 69 | +- `tools/Tilemap Studio/main.js` |
| 70 | +- `tests/runtime/SampleStandaloneToolDataFlow.test.mjs` |
| 71 | +No implementation changes made: |
| 72 | +- yes |
| 73 | + |
| 74 | +## Tool reviewed: Vector Map Editor (`vector-map-editor`) |
| 75 | +Observed required controls: |
| 76 | +- canvas and object list (`editorCanvas`, `objectList`) |
| 77 | +- selected-object editors (position, rotation, style, flags) |
| 78 | +- document controls (`saveDocumentButton`, `exportRuntimeButton`, `loadDocumentInput`) |
| 79 | +- mode and status controls (`workspaceModeSelect`, `toolModeSelect`, status triplet) |
| 80 | +Observed required fields/data: |
| 81 | +- vector map document (`vectorMapDocument` / `vectorMap` / `document`) |
| 82 | +- object flags and transform fields used by selection/editor controls |
| 83 | +DoD gaps found: |
| 84 | +- Current DoD section is too narrow for actual required selection/transform/flag controls. |
| 85 | +- Current DoD does not require readiness of object-detail panel fields after load. |
| 86 | +Suggested DoD additions: |
| 87 | +- Add required control checks for object selection detail panel, transform controls, and flag binding. |
| 88 | +- Add required check that object list count and selected-object editor state match loaded document. |
| 89 | +Files inspected: |
| 90 | +- `tools/Vector Map Editor/editor/VectorMapEditorApp.js` |
| 91 | +No implementation changes made: |
| 92 | +- yes |
| 93 | + |
| 94 | +## Tool reviewed: Vector Asset Studio (`vector-asset-studio`) |
| 95 | +Observed required controls: |
| 96 | +- SVG viewport and element list (`editorSvg`, `elementList`) |
| 97 | +- palette target controls (paint/stroke/gradient start/end selectors and readouts) |
| 98 | +- style controls (`strokeWidthInput`, `gradientAngleInput`, apply buttons) |
| 99 | +- save/load controls (`loadSvg*`, `saveSvgButton`) |
| 100 | +Observed required fields/data: |
| 101 | +- vector asset payload plus palette-affecting style configuration |
| 102 | +- loaded palette groups/options and active palette target state |
| 103 | +DoD gaps found: |
| 104 | +- Current DoD does not require readiness for multi-target palette binding (paint/stroke/gradient start/end). |
| 105 | +- Current DoD does not require gating checks that editing is disabled until required palette targets are set. |
| 106 | +Suggested DoD additions: |
| 107 | +- Add control-ready checks for each palette target readout and active swatch state. |
| 108 | +- Add explicit failure condition when editing proceeds with missing required palette target bindings. |
| 109 | +Files inspected: |
| 110 | +- `tools/Vector Asset Studio/main.js` |
| 111 | +No implementation changes made: |
| 112 | +- yes |
| 113 | + |
| 114 | +## Tool reviewed: Replay Visualizer (`replay-visualizer`) |
| 115 | +Observed required controls: |
| 116 | +- `replayJsonInput`, `loadReplayButton`, `playReplayButton`, `pauseReplayButton`, `resetReplayButton` |
| 117 | +- `replayTimeSlider`, `replayTimeReadout`, `replayEventList`, `replayEventOutput`, `replayStatusText` |
| 118 | +Observed required fields/data: |
| 119 | +- replay events array (`events` / `replayEvents` variants) |
| 120 | +DoD gaps found: |
| 121 | +- Current DoD does not include JSON source input/load action controls which are core readiness controls in current tool. |
| 122 | +- Current DoD includes speed control but current tool readiness is primarily slider/time readout + event output binding. |
| 123 | +Suggested DoD additions: |
| 124 | +- Add required checks for source JSON input/load controls and event output panel binding. |
| 125 | +- Keep speed control optional unless implemented in current tool UI. |
| 126 | +Files inspected: |
| 127 | +- `tools/Replay Visualizer/main.js` |
| 128 | +- `tests/runtime/SampleStandaloneToolDataFlow.test.mjs` |
| 129 | +No implementation changes made: |
| 130 | +- yes |
| 131 | + |
| 132 | +## Tool reviewed: Workspace Manager (`workspace-manager`) and launch routing |
| 133 | +Observed required controls: |
| 134 | +- host mount/pager controls (`[data-tool-host-prev]`, `[data-tool-host-next]`, mount container) |
| 135 | +- current tool label and status text |
| 136 | +- workspace launch links from game cards |
| 137 | +Observed required fields/data: |
| 138 | +- forwarded launch params: `sampleId`, `sampleTitle`, `samplePresetPath`, `gameId`, `gameTitle`, `gameHref`, `workspaceHref`, `returnTo` |
| 139 | +- game launch params from SSoT: `gameId`, `mount=game` |
| 140 | +DoD gaps found: |
| 141 | +- Current DoD does not include forwarded launch-query contract validation across workspace mount boundary. |
| 142 | +- Current DoD does not include game-card workspace launch error surfacing as readiness control. |
| 143 | +Suggested DoD additions: |
| 144 | +- Add required readiness checks for forwarded launch params and mount failure surface. |
| 145 | +- Add explicit launch-tile check for workspace-launch error badge/text visibility when launch href resolution fails. |
| 146 | +Files inspected: |
| 147 | +- `tools/Workspace Manager/main.js` |
| 148 | +- `tools/shared/toolLaunchSSoT.js` |
| 149 | +- `games/index.render.js` |
| 150 | +No implementation changes made: |
| 151 | +- yes |
| 152 | + |
| 153 | +## Tool reviewed: Sample launch tiles and sample detail tool links |
| 154 | +Observed required controls: |
| 155 | +- sample roundtrip launch link list and launch issue section |
| 156 | +- sample detail tool preset status text (`Preset: ... | Status: ...`) |
| 157 | +Observed required fields/data: |
| 158 | +- sample launch currently routes `sampleId`, `sampleTitle`, `samplePresetPath` |
| 159 | +- sample detail preset status check validates preset file fetch only |
| 160 | +DoD gaps found: |
| 161 | +- Current DoD does not explicitly require declared dependency paths beyond `samplePresetPath` at sample-launch surface. |
| 162 | +- Current DoD does not require launch indicator to validate secondary required inputs (for example palette path dependencies) before launch. |
| 163 | +Suggested DoD additions: |
| 164 | +- Add readiness checks for per-tool required path keys in launch query, not just preset path. |
| 165 | +- Require launch indicator to separate `preset exists` from `all required dependencies declared`. |
| 166 | +Files inspected: |
| 167 | +- `samples/index.render.js` |
| 168 | +- `samples/shared/sampleDetailPageEnhancement.js` |
| 169 | +- `tools/shared/toolLaunchSSoT.js` |
| 170 | +No implementation changes made: |
| 171 | +- yes |
| 172 | + |
| 173 | +## Tool reviewed: Current sample-launched tools missing explicit DoD sections |
| 174 | +Observed required controls: |
| 175 | +- `asset-browser`: import plan controls (`importNameInput`, category/destination selectors, status) |
| 176 | +- `asset-pipeline-tool`: pipeline input/output + status controls |
| 177 | +- `state-inspector`: snapshot refresh/load controls and snapshot output |
| 178 | +- `3d-camera-path-editor`: camera path input/status controls |
| 179 | +- `3d-asset-viewer`: asset input/status controls |
| 180 | +- `3d-json-payload-normalizer`: map payload input/status controls |
| 181 | +- `physics-sandbox`: physics body input/status controls |
| 182 | +- `performance-profiler`: workload/frame sample setting controls and status |
| 183 | +- `tile-model-converter`: candidate/conversion input controls and status |
| 184 | +- `parallax-editor`: layer list and layer property controls |
| 185 | +Observed required fields/data: |
| 186 | +- `asset-browser`: `assetBrowserPreset.importName` and selected category/destination bindings |
| 187 | +- `asset-pipeline-tool`: `pipelinePayload.gameId`, non-empty `domainInputs` |
| 188 | +- `state-inspector`: snapshot payload (`snapshot`/`inspectJson`/`stateSnapshot` variants) |
| 189 | +- `3d-camera-path-editor`: `config.cameraPath.waypoints` |
| 190 | +- `3d-asset-viewer`: `config.asset3d.vertices` |
| 191 | +- `3d-json-payload-normalizer`: `config.mapPayload.points/segments` |
| 192 | +- `physics-sandbox`: `config.physicsBody` |
| 193 | +- `performance-profiler`: `config.profileSettings` (`workloadIterations`, `workSize`, `frameSamples`) |
| 194 | +- `tile-model-converter`: `config.candidate` + `config.conversion` |
| 195 | +- `parallax-editor`: `config.parallaxDocument.layers` |
| 196 | +DoD gaps found: |
| 197 | +- DoD currently does not contain dedicated sections/readiness checks for these active sample-launched tools. |
| 198 | +Suggested DoD additions: |
| 199 | +- Add explicit per-tool DoD sections for all sample-launched tools listed above. |
| 200 | +- For each section, include minimum required field checks and minimum required control-binding checks aligned to existing runtime test expectations. |
| 201 | +Files inspected: |
| 202 | +- `tools/Asset Browser/main.js` |
| 203 | +- `tools/Asset Pipeline Tool/main.js` |
| 204 | +- `tools/State Inspector/main.js` |
| 205 | +- `tools/3D Camera Path Editor/main.js` |
| 206 | +- `tools/3D Asset Viewer/main.js` |
| 207 | +- `tools/3D JSON Payload Normalizer/main.js` |
| 208 | +- `tools/Physics Sandbox/main.js` |
| 209 | +- `tools/Performance Profiler/main.js` |
| 210 | +- `tools/Tile Model Converter/main.js` |
| 211 | +- `tools/Parallax Scene Studio/main.js` |
| 212 | +- `samples/metadata/samples.index.metadata.json` |
| 213 | +- `tests/runtime/SampleStandaloneToolDataFlow.test.mjs` |
| 214 | +- `tools/toolRegistry.js` |
| 215 | +No implementation changes made: |
| 216 | +- yes |
| 217 | + |
| 218 | +## Tool reviewed: Cross-tool diagnostic contract |
| 219 | +Observed required controls: |
| 220 | +- tools consistently expose load/status controls used to determine readiness after preset load. |
| 221 | +Observed required fields/data: |
| 222 | +- current DoD proposes `[tool-ui:control-ready]` classification with `success|missing|wrong-shape|empty|defaulted`. |
| 223 | +DoD gaps found: |
| 224 | +- Current DoD diagnostic shape misses classification states used by existing fetch/load diagnostics (`wrong-path`) and does not specify required evidence for count/value parity checks. |
| 225 | +Suggested DoD additions: |
| 226 | +- Extend control-ready classification to include `wrong-path` where control-level data source fetch fails. |
| 227 | +- Require evidence fields for count parity when applicable (`expectedCount`, `actualCount`) to avoid false success. |
| 228 | +Files inspected: |
| 229 | +- `docs/pr/BUILD_PR_LEVEL_10_6M_TOOL_UI_READINESS_DOD.md` |
| 230 | +- `tools/shared/toolLoadDiagnostics.js` |
| 231 | +No implementation changes made: |
| 232 | +- yes |
| 233 | + |
| 234 | +## Roadmap marker update |
| 235 | +- No execution-backed roadmap line for this 10.6M docs review was identified in inspected roadmap files. |
| 236 | +- No roadmap status marker was changed. |
| 237 | + |
| 238 | +## Validation |
| 239 | +- Ran `git status` for docs-only validation. |
0 commit comments