# Unspooled UI/UX Audit + Docs + Commit Workflow

Use this when the user asks to audit/rebuild Unspooled UI/UX, update project docs, commit to GitHub, or preserve the current state.

## Required workflow

1. Load `unspooled-tv-development`; for GitHub operations also load `github-pr-workflow`.
2. Work from `~/Unspooled` and verify current state with `git status --short`, `git branch --show-current`, and `git remote -v`.
3. Update the SSOT docs, not just code:
   - `PROJECT_STATE.md` — current branch, APK size/status, recent fixes, known gaps.
   - `README.md` — user-facing UI/UX status and audit artifact link.
   - `ARCHITECTURE.md` — architectural focus/navigation/card changes.
   - `UNSPOOLED_UI_UX_FULL_AUDIT_REBUILD.md` — root-cause audit, reference takeaways, rebuild plan, snippets, D-pad test matrix.
   - `UNSPOOLED_SSTEM_BRIEF.md` if present — correct stale/typoed system-contract details.
4. Verify before commit:
   - `JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 ./gradlew :app:assembleDebug`
   - banned scan: `rg 'NuvioModernSidebar|HomeTopBar\(|TvLazyRow|focusManager\.moveFocus\(|postInvalidate\(' app/src/main/java || true`
   - If matches are comment-only, rewrite comments so future scans are clean.
5. Commit everything the user asked to preserve with a conventional, broad message, e.g. `docs: capture UI UX audit and focus rebuild state`.
6. Push the active branch: `git push origin HEAD`.
7. Report concrete handles only: branch, commit short SHA, build result, banned scan result, pushed remote.

## Durable UI/UX state to preserve in docs

- Primary chrome is DebridStream-style horizontal top bar only.
- Legacy sidebar/rail chrome is not the target active UX and should be deleted/quarantined, not reused.
- `PremiumContentCard` is the target catalog card: `CardSpec` dimensions, spring focus scale, 2dp white focus border, `#26FFFFFF` glow, 300ms image crossfade.
- Profile picker must focus active profile on entry and visually separate focused vs selected states.
- Settings rail/top bar/content traversal must use explicit `FocusRequester`/`FocusLinks`, not guessed movement.
- Player controls hide after 4s and overlays/panels must trap focus.

## Pitfalls

- Do not say the UI/UX spec is “complete” just because the app builds. Keep root-cause gaps and remaining rebuild targets explicit in the audit doc.
- Do not leave stale doc values like old APK size, sidebar-first wording, or misspelled dependency names (`Coin3` → `Coil3`).
- Do not save PR numbers/commit SHAs to memory; put transient Git handles only in the final response or docs if the user explicitly wants history.
