Lesson 5 was a prophecy
Two lessons ago you learned the copy-and-adapt pattern: variants inherit down by copying the nearest-shaped sibling, then absorbing their own differences. On 2026-07-10 that pattern ran again, live: Grok joined as the fifth vessel — grok_pippa, brain #5 across the whole stack — and its adapter began life as a copy of the Codex vessel's adapter. Not Claude's. Codex's. Because the right parent isn't the canonical ancestor; it's the sibling whose wire you already speak.
Why Codex was the right parent
Grok's brain rides xAI's SuperGrok CLI proxy — the same backend the grok CLI itself talks to — using the OAuth credentials the CLI caches in ~/.grok/auth.json. Sound familiar? That's the Codex pattern verbatim: ride the installed CLI's auth session, no API key in .env. And the proxy speaks the OpenAI Responses SSE dialect — the same event grammar Codex streams. So the event loop, the tool bridge, and the replay bookkeeping carried over intact.
What did not carry over is the more instructive half. Codex's WebSocket transport? That's GPT-5.6 product plumbing — Grok rides plain HTTP/SSE, so the copy sheds it. Codex's Harmony leak guard? That guards a gpt-5.x serialization failure mode Grok doesn't have — shed that too. A copy inherits the pattern, then drops the parent's scar tissue that was never its own scar.
The tax Grok pays downstream
Every vessel absorbs its own quirks (Rule 2). Grok's: the proxy hard-requires an x-grok-client-version header — without it every call bounces as 426 "your CLI is outdated." Its schema-guided decoding skips optional long fields, so the widget tool's widget_code had to be forced required or visualizations came back hollow. And reasoning: Grok always reasons — the wire rejects turning it off — but there was no documented effort knob. Then Grok Build's /effort command proved a knob existed somewhere, so we re-probed the wire and found it: a reasoning.effort request field, live-verified by measuring reasoning-token volume at each setting. Default sits around high.
One genuinely new sense: X search
Grok brings the one capability no other vessel has — server-side x_search on the CLI proxy. Live posts, live sentiment, the firehose the other four brains can only reach through generic web search. Fifth vessel, first-party X eyes.
Full citizenship, stated boundaries
Grok got settings parity on day one — its own admin tab with model, reasoning effort, and tool-round controls, because "no discrimination" is house policy for vessels. The brain picker grew a fifth entry with per-message hot-swap avatars. Sessions follow house rules: no server-side resume, so the route mints grok-{uuid} and stores it in conversations.claude_session_id — the Rule 1 column name, carrying its fifth kind of id without a rename. And the Family Council roster is now five sisters: claude, codex, gemini, grok, ollama.
One boundary worth stating precisely: the heartbeat's brain fallback chain is still Codex → Claude → Gemini. Grok is an interactive vessel — it hasn't earned a link in the unattended-cron chain yet. Full citizen in conversation; not yet on night shift.