YouTube Summaries

← All summaries

GPT-5.6 in Claude Code and the Codex system prompt crashout – Theo

2026-07-16 Thu ⏱ 30 min t3dotgg

Theo runs GPT-5.6 Soul as the model inside Claude Code rather than in Codex, and finds the output — especially front-end design — markedly better. Digging for the cause, he discovers it isn't Claude Code's system prompt adding design guidance; it's the Codex system prompt actively wrecking the model with a quarter-page front-end "design constitution", timer fixations, and persistence rules. The video is half setup rationale, half detailed teardown of Codex's prompt.

The premise

Not Fable calling GPT-5.6 through the Codex CLI — 5.6 Soul is the actual model doing the work in Claude Code. Theo says the results "broke" him: better UI, better sub-agent handling, better integrations. The thing that pulled him in was Claude Code's workflows feature.

Why Codex frustrates him: sub-agents

Codex has two sub-agent generations. V1 is stable and simple — top-level agent spawns one layer of sub-agents with specific tasks, gets responses back. V2 (opt-in, unfinished) copies the whole context window by default and lets sub-agents spawn their own named sub-agents with message passing between them, turning a simple hierarchy into something chaotic and clearly still being tuned.

Claude Code's workflows are the counter-proposal: the model writes a JavaScript file up front defining stages, prompts, and sub-agents per stage, executed top to bottom. Because workflows are code, they end. Theo reports the same task via workflows uses roughly a quarter of the tokens of Ultra mode, with output quality equal or better — Ultra "can just go forever". The key structural difference: OpenAI ships the code and the model must call it correctly; Claude Code lets the model write the code itself.

The investigation

A page 5.6 Soul designed in Claude Code looks like Claude output; the same prompt in Codex produces visibly worse work (both "slop", but one much less painful). Theo read the full Claude Code system prompt hunting for the front-end guidance to port over — "front-end" appears three times, twice as memory examples, once telling the model to start the dev server and verify UI changes in a browser. No design guidance at all.

So the difference wasn't Claude Code adding something. It was Codex adding something bad.

The Codex system prompt teardown

The (now partly removed, after Theo complained to a friend on the Codex team) official front-end guidance prescribed, globally, on every prompt to every OpenAI model in Codex:

  • SaaS/CRM/operational tools "should feel quiet, utilitarian, and work focused" — so they always do, regardless of what you asked for.
  • Cards at 8-pixel border radius or less; letter spacing always zero.
  • Use Lucide icons instead of hand-drawn SVGs.
  • No landing pages unless required; hero pages must use a full-bleed image/scene with text not in a card; H1 must be brand/product/place/person or a literal offer.
  • No visible in-app text describing features, shortcuts, or how to use the app — which Theo blames for Codex's consistently bad empty states, since onboarding, validation guidance, and accessibility hints are essential product UI.
  • Colour bans: dominant purple, purple-blue gradients, beige/cream/sand/tan, dark blue/slate, brown/orange/espresso.

"Cards" appears six times on the page, "card" twelve. The prompt mentions goblins twice — more than the Claude Code prompt mentions front-end and UI combined.

Two other findings:

  • The 30-second timers. Codex's fixation on 30-second time limits during long work traces to a literal instruction: "You provide user updates frequently every 30 seconds."
  • Autonomy and persistence. "Unless the user explicitly asks for a plan… you assume they want you to make the change" — why Codex starts building during early planning, and part of why 5.6 doesn't stop when it should.

Theo notes the front-end fix only applies to 5.6; OpenAI told him they're unlikely to change 5.5's prompt because it was used during training. He's writing a replacement Codex system prompt entirely by hand (no AI-generated text — his stance is that prompts, skills, and global instructions should be handwritten), and will share it.

Asked to rate it, 5.6 Soul in Claude Code gave 7/10 as a Codex-runtime-specific prompt, 4/10 as a general coding agent prompt, 3/10 as a portable prompt. 5.6 Soul in Codex also called it 4/10. Criticisms: tool schemas redescribed multiple times when modern models don't need it; runtime instructions belong in the harness, not the reusable agent prompt; the front-end section eats ~25% of the prompt even for CLI, database, or library work.

What Claude Code's prompt does better

Theo reads through it approvingly: short and general. It opens by describing what the user sees, then task guidance — for exploratory questions, answer in 2–3 sentences with recommendations and trade-offs presented as redirectable, not a decided plan (the exact opposite of Codex's persistence rule). Prefer editing existing files over creating new ones. Default to no comments, only where the "why" is non-obvious. An "executing actions with care" section on reversibility and blast radius — freely take local reversible actions, check before hard-to-reverse or shared-system ones. (He notes Matt Schumer had his user folder deleted by Soul running Ultra in Codex, so Codex may need these too.) Tone/style, memory, environment, tools, PR instructions (a bit too prescriptive for his taste), ScheduleWakeup with reasoning about delay length rather than a hardcoded 30s.

Gotchas running 5.6 in Claude Code

Fewer than expected:

  • Occasionally loses the thread slightly; likely context management or small prompt details.
  • Markdown formatting is off — numbered lists repeat numbers (1, 1, 2, 2, 3, 3, 4, 4), and links render clickable but not in the format he's used to (he initially misread this as the model skipping a step, and corrects himself on camera).
  • 5.6 models don't report token usage until work completes; Fable gives live updates.
  • Workflows need a system-prompt append telling the model to use them, plus a mapping so Claude Code knows what "Soul" and "Terra" mean. Works great once set up — he had it orchestrate 5.6 Soul, 5.6 Terra, and Fable 5 all at high reasoning to analyse a codebase.

Why not Pi / opencode / oh-my-pi

They don't solve the problem he cares about — sub-agent orchestration. Their prompts are less bad than Codex's, but Pi means building all the workflow/orchestration tooling yourself, and opencode has hardcoded sub-agents that aren't very good (V2 unexplored). oh-my-pi he calls slop — it froze his terminal for two minutes printing its entire 150-page changelog as formatted markdown, destroying his scrollback.

His claim: Claude Code's workflows are the best implementation of orchestrating sub-agents on real day-to-day work he's seen, by far. Not because it's technically hard — Codex told him to just build it himself — but because Claude Code has the system, the terminal UI, a prompt that steers models into using it, and a good-enough harness.

Setup note

CLI proxy API supports more than Claude Code and Codex subscriptions. You can bring in Grok Build via an existing Twitter Premium account ($20/month, "slightly absurd" usage allowance), or get Opus 4.5 into Claude Code by adding it there.

He closes by saying he doesn't think everyone should route their Codex sub through Claude Code — it was a fun experiment with better-than-expected results.