thalarch-media3listed
Install: claude install-skill LUC4N3X/antigravity-thalarch
# Thalarch Media3
Media3 work is state-machine and lifecycle work. A local symptom is not permission to redesign the
playback architecture.
## 1. Ground the real Media3 contract
Before changing version-sensitive code:
- inspect the project's actual Media3 artifacts and versions;
- inspect the concrete session/service/player classes in use;
- identify current controller/session commands and compatibility requirements;
- use current official AndroidX Media3 documentation for exact signatures or deprecation replacements;
- route uncertain API facts through `thalarch-source-grounding`.
A remembered Media3 signature is a hypothesis until it matches the project's version.
## 2. Build an ownership map before mutation
Trace who owns and mutates:
- Player / ExoPlayer;
- `MediaSession` / `MediaLibrarySession`;
- `MediaSessionService` / `MediaLibraryService`;
- queue/timeline state;
- playback intent;
- media identity and metadata;
- cache and preload state;
- audio/video track selection;
- audio processors and output routing;
- lifecycle/cancellation/recovery jobs.
Never change playback architecture to fix a local bug until the existing ownership, lifecycle,
timeline, and Media3 contract have been traced.
## 3. Session and controller invariants
When changing connection callbacks or command exposure, preserve deliberately:
- accepted/rejected controller policy;
- player commands;
- session/custom commands;
- connection hints/extras when used;
- notification/controller behavi