# Beat Saber Live Validation Use this policy when a task changes or verifies a live BSManager instance. ## Smoke Test - Follow `docs/SMOKETEST.md` for live game validation. - Before starting Beat Saber, announce how long the smoke window will run, using the current duration in `docs/SMOKETEST.md` unless the user requested a different duration. - Do not rely on `timeout` to kill the full game process tree. - Prefer the documented foreground Proton launch with a background watchdog that sleeps for the smoke window, then terminates Beat Saber by process name. - After the run, confirm no Beat Saber process remains. If cleanup fails, say so and ask the user to close it manually. ## Required After Live Apply After any successful helper `apply` that changes a live BSManager instance, run the documented live smoke test before the final response unless the user explicitly says not to. Helper `check`, unit tests, compile checks, and file-hash verification are useful but do not replace live validation. ## Logs Inspect `Logs/_latest.log`, Unity `Player.log` when relevant, and the live process command line before calling a black screen or launch failure a plugin failure. Duplicate launch args such as repeated `--no-yeet fpfc` can trigger fatal command-line parsing after BSIPA/plugin loading succeeds. Expected successful BSIPA/SongCore lines include: ```text Game version Loading plugins from Plugins and found Beat Saber IPA (BSIPA): SongCore (SongCore): ``` Warnings about older mod target game-version metadata can be acceptable when BeatMods verified that exact package for the target Beat Saber version. Record them in the tracker or roadmap rather than treating them as automatic install failure.