The session-start hook approach didn't work — Claude Code's TUI overwrites stdout before the agent sees it, and the hook only fires when the agent calls it as a tool. Instead, inject mission context directly into the composed system prompt via build_runtime_prompt(). When mission.json is active in CWD, the agent gets mission name, ID, milestone progress, and mandatory first-action instructions in its initial context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>