C-Codex
Connect-to-Codex. Bring OpenAI Codex into the loop as a second-opinion peer reviewer during planning or code review. Codex never works alone — Claude always summarizes, sends a specific question, and synthesizes the reply.
Why a Second Model?
Claude and Codex have different training biases. At the two highest-leverage moments — planning and code review — cross-model critique reduces confirmation bias. think-deeply is the internal equivalent; /c-codex is the external equivalent, using a second model instead of a second pass.
When It Triggers
| Trigger | Details |
|---|---|
| Manual | "/c-codex", "get codex's take", "ask codex", "second opinion from codex", "cross-check with codex" |
| Contextual | Starting a plan or code review where divergent-model critique is valuable |
Scope: Planning vs Code Review
The skill activates only in two contexts, detected from the conversation:
| Context | Signals |
|---|---|
| Planning | Plan mode active, writing-plans skill engaged, user is designing an approach before code, no diff in focus. |
| Code review | A PR, diff, commit range, or changed files are in focus; code-reviewer agent engaged; git diff / gh pr output in context. |
If neither applies, the skill asks which context the user means. It does not default silently.
First-Run Setup
C-Codex uses the codex-plugin-cc plugin. On first invocation in a repo, Claude checks whether the plugin is installed and authenticated. If not, it points the user to the repo for install and login, and pauses until setup is confirmed. Claude never fabricates Codex command syntax — if the plugin's invocation is unclear in the local install, it asks the user to confirm the wiring.
The Interaction Contract
Codex never works alone. Every exchange follows this shape:
- Claude frames the question. Summarize current state in 5–12 lines: what's being planned or reviewed, Claude's current position, the specific decision or concern.
- Claude sends a sharp question to Codex. Not "what do you think" — ask for the single strongest counter-approach, a failure mode Claude hasn't listed, or bugs by
file:line. - Codex replies. Treat it as one input, not a verdict.
- Claude synthesizes. Produce a structured comparison: agreement, disagreement (with Claude's current read), new points Codex raised.
- Claude presents to the user. The user decides what to act on.
Codex's output is never passed through to the user unfiltered, and never used to silently rewrite a plan or a diff. Claude must produce the comparison card and explain its current read.
Output Format
┌─ /c-codex — <planning | code-review> ───────────────────────────┐
│ Question sent to Codex: │
│ <one line> │
│ │
│ Agreement: │
│ • <point> │
│ │
│ Disagreement (Claude's read): │
│ • <point> — Claude: <position>. Codex: <position>. │
│ │
│ New from Codex: │
│ • <point> (severity: high/med/low) │
│ │
│ Recommended action: │
│ <1–2 lines> │
└────────────────────────────────────────────────────────┘
Optional Flag: Codex-Lead
By default Claude owns synthesis. If the user arms the codex-lead flag for this exchange, the contract flips: Codex produces the primary output and Claude becomes the adversarial checker, verifying every file:line claim against the actual repo. The flag is ephemeral — single-use per invocation — so it must be re-armed each time. See the Codex-Lead page for the full flipped contract and when it's appropriate.
Guardrails
| Guardrail | Why |
|---|---|
| Don't invoke for trivial questions | A round-trip to Codex costs tokens; reserve for real decisions. |
| Codex proposes, Claude implements | Codex never writes code directly into the repo. |
| Don't bias the question | Ask Codex to find problems, not to confirm Claude's position. |
| Agreement is weaker evidence than divergence investigated | If both models agree, say so plainly, but don't treat agreement as proof. |
| Redact secrets | Anything sent to Codex leaves the local context. |