D12 "build first" wrapper: `rigdoctor wrap %command%` (Steam launch option /
Lutris/Heroic wrapper field) auto-brackets a focused diagnostic around a game —
start a game-tagged capture on launch, clean stop on exit; a hard freeze leaves
it unterminated → flagged as a crash next launch.
- core/wrap.py: game name from SteamAppId, PATH-proof launch_option(), run()
that doesn't disturb an existing capture and returns the game's exit code.
- diagnostic.start() preserves an unanalyzed crash to diagnostic-crash.jsonl
before clearing, so auto-relaunch can't wipe an unseen crash; pending_crash/
analyze_crash check the archive first.
- GUI: "Auto-capture…" helper dialog (copyable launch-option string).
- Tests for wrap (name resolution, exit-code passthrough, no-double-start).
- docs: fix stale MODULES.md status column (M1/M3/M4/M5/M8/M10/M13 → done),
update ROADMAP/MODULES for the wrapper + crash detection.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>