| name | review-workspace-ui-state |
| description | Review changes to React workspace UI state, URL routing, toast/panel behavior, or engine adapter interactions. Use when a PR touches src/js/frontend/*, especially App.tsx, workspace hooks, or url-state.ts. |
Review Workspace UI State and Engine Adapter Boundary
Use this skill when reviewing or authoring changes to the React workspace shell, URL state, tool toggles, toast notifications, or any code that bridges src/js/frontend/ and src/js/milkdrop/.
Why this exists
~18% of fix commits are workspace UI races — now the #2 category (was understated): tool toggles double-firing, toast state leaking, URL param collisions between legacy (experience, panel) and canonical (tool, collection) keys. This skill keeps the adapter boundary clean.
Pre-merge checklist
1. All engine interaction goes through the adapter
2. URL state is canonicalized, not patched
3. Toast/panel state is isolated from engine state
4. Async state transitions are guarded
5. UI-state regression test
What to reject in review
- Direct imports from
src/js/milkdrop/runtime.ts or src/js/milkdrop/vm.ts into frontend components
- URL state updates that append rather than replace query params
- Toast or panel logic that reads
window.milkdropRuntime or similar global
- Missing cleanup for
useEffect subscriptions that touch engine lifecycle
Related skills