|
| 1 | +# PR 10.6R Tool UI Control Gaps |
| 2 | + |
| 3 | +## Scope |
| 4 | +- Docs-only gap analysis for Tool UI control readiness. |
| 5 | +- No runtime implementation changes in this PR. |
| 6 | +- Every unknown or missing readiness point found during inventory is explicitly listed below. |
| 7 | + |
| 8 | +## Coverage Baseline |
| 9 | +- Active visible launchable tools discovered: 17 |
| 10 | +- Additional required launch surfaces audited: 3 (`workspace-manager`, sample launch tiles, game launch tiles) |
| 11 | +- Total audited surfaces: 20 |
| 12 | + |
| 13 | +## Missing Controls |
| 14 | +- `sprite-editor`: dedicated `Color 1 selector` control id is not observed as a distinct runtime control. |
| 15 | +- `sprite-editor`: dedicated `Color 2 selector` control id is not observed as a distinct runtime control. |
| 16 | +- `manifest/data-flow inspector`: no standalone launchable tool id discovered in current registry/metadata. |
| 17 | + |
| 18 | +## Controls Without Required Data Mapping |
| 19 | +- `workspace-manager`: no explicit pre-launch required-input contract table per selected tool; forwarded query exists but readiness summary is not surfaced as a formal required-input/control matrix. |
| 20 | +- `samples-launch-tiles`: launch links validate route resolution but do not expose full downstream required dependency keys per tool in tile UI. |
| 21 | +- `games-launch-tiles`: launch links validate workspace route generation but do not expose downstream required tool dependency readiness. |
| 22 | +- `state-inspector`: missing explicit expected-vs-actual required-input and required-control count output fields. |
| 23 | + |
| 24 | +## Controls Using Defaults/Fallbacks (No-Default Rule Gaps) |
| 25 | +- `vector-asset-studio`: fallback palette/default classification paths exist and can classify required controls as `defaulted`. |
| 26 | +- `tile-map-editor`: document/atlas sanitizers include fallback value paths that can populate controls when required data is incomplete. |
| 27 | +- `parallax-editor`: default/seeded layer-document paths exist for map/layer state. |
| 28 | +- `performance-profiler`: integer readers accept fallback values when loaded settings are invalid/missing. |
| 29 | +- `3d-json-payload-normalizer`: numeric sanitizer includes fallback path. |
| 30 | +- `3d-camera-path-editor`: numeric sanitizer includes fallback path. |
| 31 | + |
| 32 | +## Lifecycle/Timer Risk Gaps |
| 33 | +- `replay-visualizer`: playback loop uses interval-driven updates; requires explicit lifecycle stability proof to avoid stale/reset overwrite. |
| 34 | +- `tile-map-editor`: requestAnimationFrame simulation loop requires explicit lifecycle classification coverage. |
| 35 | +- `parallax-editor`: requestAnimationFrame simulation loop requires explicit lifecycle classification coverage. |
| 36 | +- `vector-map-editor`: animation-frame spin flow requires explicit lifecycle classification coverage. |
| 37 | +- `palette-browser`: delayed setup with `setTimeout` requires explicit lifecycle non-reset proof. |
| 38 | + |
| 39 | +## Controls Not Mapped To Manifest-Declared Inputs |
| 40 | +- Sample tile flow: launch currently passes `sampleId`, `sampleTitle`, `samplePresetPath`; required downstream keys beyond preset path are not surfaced as a readiness contract at launch UI. |
| 41 | +- Game tile flow: launch currently passes workspace `gameId`/`mount`; downstream tool required-input readiness is not surfaced pre-launch. |
| 42 | +- Workspace Manager: forwards sanitized launch params, but does not expose per-tool required input keys, expected counts, and control-ready readiness before mount. |
| 43 | + |
| 44 | +## Missing/Partial UI Readiness Diagnostics |
| 45 | +- `[tool-ui:control-ready]` exists in shared diagnostics but is not emitted uniformly across all active tools. |
| 46 | +- `[tool-ui:lifecycle]` and `[tool-ui:final-ready]` are DoD-level required events but are not consistently represented across all audited tool runtime surfaces. |
| 47 | +- Several tools provide `[tool-load:*]` boundaries without complete control-level readiness proof for every required visible control. |
| 48 | + |
| 49 | +## Palette Contract Gaps |
| 50 | +- Canonical palette source target is `*.palette.json`; tools must not require duplicate palette payload files. |
| 51 | +- Compatibility/wrapper-tolerant extraction paths still exist in some loaders and can mask wrong-shape payloads without strict failure. |
| 52 | +- `sprite-editor` required Color1/Color2 readiness checks cannot be fully proven while dedicated controls are absent. |
| 53 | + |
| 54 | +## Uncertain Controls/Fields (Explicitly Tracked) |
| 55 | +- `asset-browser`: per-control readiness for every import action path is partially inferred from code flow; universal per-control diagnostics are not present. |
| 56 | +- `skin-editor`: palette/context dependency is clear, but standardized shared load/control readiness classification coverage is incomplete. |
| 57 | +- `workspace-manager`: required-input-summary behavior exists as status/diagnostic behavior, but no explicit structured readiness table with expected-vs-actual counts. |
| 58 | +- `state-inspector`: acts as closest inspector surface, but required manifest-path/fetch-results/control-readiness tables are incomplete. |
| 59 | + |
| 60 | +## Acceptance Ledger |
| 61 | +- `0 missing controls OR every missing control listed as gap`: PASS (all discovered missing controls listed). |
| 62 | +- `0 unknown bindings OR every unknown binding listed as gap`: PASS (all uncertain bindings listed). |
| 63 | +- `0 default usage OR every default usage listed as gap`: PASS (default/fallback usages listed). |
| 64 | +- `0 lifecycle violations OR every lifecycle violation listed as gap`: PASS (lifecycle/timer risks listed). |
| 65 | + |
| 66 | +## Files Audited |
| 67 | +- `docs/pr/BUILD_PR_LEVEL_10_6R_TOOL_UI_CONTROL_INVENTORY_COMPLETION.md` |
| 68 | +- `tools/toolRegistry.js` |
| 69 | +- `tools/shared/toolLaunchSSoT.js` |
| 70 | +- `tools/shared/toolLaunchSSoTData.js` |
| 71 | +- `tools/shared/toolLoadDiagnostics.js` |
| 72 | +- `samples/index.render.js` |
| 73 | +- `games/index.render.js` |
| 74 | +- `tools/Workspace Manager/main.js` |
| 75 | +- `tools/Sprite Editor/modules/spriteEditorApp.js` |
| 76 | +- `tools/Palette Browser/main.js` |
| 77 | +- `tools/Asset Browser/main.js` |
| 78 | +- `tools/Tilemap Studio/main.js` |
| 79 | +- `tools/Vector Asset Studio/main.js` |
| 80 | +- `tools/Vector Map Editor/editor/VectorMapEditorApp.js` |
| 81 | +- `tools/Replay Visualizer/main.js` |
| 82 | +- `tools/State Inspector/main.js` |
| 83 | +- `tools/Performance Profiler/main.js` |
| 84 | +- `tools/Physics Sandbox/main.js` |
| 85 | +- `tools/Asset Pipeline Tool/main.js` |
| 86 | +- `tools/Tile Model Converter/main.js` |
| 87 | +- `tools/3D JSON Payload Normalizer/main.js` |
| 88 | +- `tools/3D Asset Viewer/main.js` |
| 89 | +- `tools/3D Camera Path Editor/main.js` |
| 90 | +- `tools/Parallax Scene Studio/main.js` |
| 91 | +- `tools/Skin Editor/main.js` |
0 commit comments