Rebuild handoff around a pure, inline-first transition master
One transition core now drives every entry point: collect briefing → archive the outgoing state → install the fresh current.md (or remove the stale one) → regenerate context.md → launch → log. current.md exists iff a validated briefing produced it — the template and the manual-upkeep protocol are gone, so a previous round can never impersonate a fresh contract. The briefing is agent-authored and inline-first: `prowl handoff to <agent> --brief -` takes it on stdin, and the source defaults to the calling pane via the socket peer PID, so an agent hands off itself no matter what the UI focuses. A brief-less self-handoff errors with a copy-pasteable heredoc; resume-fork survives only as the third-party fallback and degrades to context-only on failure instead of blocking a rescue. `handoff status` and the status-transition auto-save are removed (context.md is derived at transition time; nothing consumes it in between), and the payload schema bumps to prowl.cli.handoff.v2. The launch is headless — a background tab with no worktree switch and no focus steal — announced through the bell notification pipeline unless the user is already watching that worktree. The Hand Off HUD becomes a trigger and observer for the same CLI transition: it types a one-line request into the live source pane, waits for the handler's completion signal, and offers fork/context-only fallbacks while waiting, which also widens handoff sources from claude/codex to every detected agent. Claude-Session: https://claude.ai/code/session_01EtBU9JYAcRp3nUuPfGH3n8