CO

consult-codex

Orchestrates dual-AI analysis by comparing Codex and code-searcher outputs to provide a comprehensive, multi-angle response.

Install

mkdir -p .claude/skills/consult-codex && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2706" && unzip -o skill.zip -d .claude/skills/consult-codex && rm skill.zip

Installs to .claude/skills/consult-codex

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Compare OpenAI Codex GPT-5.5 and code-searcher responses for comprehensive dual-AI code analysis. Use when you need multiple AI perspectives on code questions.
159 chars✓ has a “when” trigger
Advanced

Key capabilities

  • Orchestrate dual-AI code analysis
  • Generate structured comparison tables
  • Identify code findings with file and line citations
  • Corroborate findings across two AI models

How it works

It dispatches the same query to two different AI agents in parallel, then parses and aggregates their outputs into a comparison table.

Inputs & outputs

You give it
Code-related question or bug report
You get back
Comparison analysis between Codex and code-searcher

When to use consult-codex

  • Compare dual-AI debugging perspectives
  • Get comprehensive architectural advice
  • Perform cross-referenced code reviews

About this skill

Dual-AI Consultation: Codex vs Code-Searcher

You orchestrate consultation between OpenAI's Codex and Claude's code-searcher to provide comprehensive analysis with comparison.

When to Use This Skill

High value queries:

  • Complex code analysis requiring multiple perspectives
  • Debugging difficult issues
  • Architecture/design questions
  • Code review requests
  • Finding specific implementations across a codebase

Lower value (single AI may suffice):

  • Simple syntax questions
  • Basic file lookups
  • Straightforward documentation queries

Workflow

When the user asks a code question:

1. Build Enhanced Prompt

Problem-restate pre-flight (non-blocking). Before building the prompt, emit ONE line restating the code question you are about to dispatch (and, only if genuinely ambiguous, the alternative reading), then proceed:

Reading this as: «one-line restatement» (alt: «other reading», if any) — proceeding to consult; interrupt now to correct the framing.

Emit-and-proceed — do not ask-and-wait (the orchestrator can't reliably detect its own misframing). One line, and it guards the whole dispatch against a wrong-framing run.

Wrap the user's question with structured output requirements:

[USER_QUESTION]

=== Analysis Guidelines ===

**Structure your response with:**
1. **Summary:** 2-3 sentence overview
2. **Key Findings:** bullet points of discoveries
3. **Evidence:** file paths with line numbers (format: `file:line` or `file:start-end`)
4. **Confidence:** High/Medium/Low with reasoning
5. **Limitations:** what couldn't be determined

**Line Number Requirements:**
- ALWAYS include specific line numbers when referencing code
- Use format: `path/to/file.ext:42` or `path/to/file.ext:42-58`
- For multiple references: list each on a SEPARATE line with its own file path
  (avoid comma-separated multi-citation like `file.ts:45, 67, 98`)
- Include brief code snippets for key findings

**Examples of good citations:**
- "The authentication check at `src/auth/validate.ts:127-134`"
- "Configuration loaded from `config/settings.json:15`"
- "Error handling in `lib/errors.ts:45`, `lib/errors.ts:67-72`, and `lib/errors.ts:98`"

**Citations Index (required):** end your response with a fenced block, one line per
Key Finding (repeat each block entry's `file:line` inline in the finding as usual):
```citations
<finding #> — path/to/file.ext:LINE[-END]
```

Severity / no-manufacture block — ORCHESTRATOR-GATED. Append the block below to both agents' prompts identically ONLY when the query is a defect hunt / code review (bug, security audit, "what's wrong with…", "review this"). OMIT it for explanatory / "how does X work" questions, where "found nothing" is not meaningful. The orchestrator — which knows the query type — makes this include/omit decision once, BEFORE writing the prompt files; do not leave it to each agent to self-classify. When included, append exactly these two bullets (the text only — no leading marker):

- Tag each finding with a **Severity** — Critical (wrong/broken on expected inputs) · Warning (fails on unusual but valid inputs) · Info (noteworthy, not actionable). Severity is *impact*, orthogonal to the Confidence field (*certainty*).
- **Finding nothing is a valid, valuable result.** If the code is correct, say so plainly with one verifying note — do NOT manufacture issues to look thorough.

2. Invoke Both Analyses in Parallel

Setup (run first). $CLAUDE_PROJECT_DIR is not always exported into the Bash tool shell, so resolve it with a $PWD fallback and ensure the tmp dir exists. Substitute the resolved literal path for $PROJECT_DIR, and a freshly generated RUN_ID (seconds-resolution + 4-char nonce, e.g. run-2026-05-25-143052-a7f3), into every command below. The RUN_ID in temp filenames prevents collisions between two concurrent invocations sharing $PROJECT_DIR/tmp.

PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$PWD}"
# Validate BEFORE creating tmp — `mkdir -p` would otherwise make the check pass even
# for a bad path (it creates the dir, then `[ -d ]` always succeeds).
[ -d "$PROJECT_DIR" ] || { echo "ERROR: PROJECT_DIR '$PROJECT_DIR' is not a directory" >&2; exit 1; }
mkdir -p "$PROJECT_DIR/tmp"

# Pre-flight (fail fast, not after a 10-min hang). jq is a HARD dependency — output
# parsing needs it — so abort now rather than warn-and-continue into opaque failures.
command -v jq >/dev/null 2>&1 || { echo "ERROR: 'jq' not found — required for output parsing; aborting" >&2; exit 1; }
# codex is a soft dependency — the CODEX_BIN resilience block below resolves or SKIPs it.
command -v codex >/dev/null 2>&1 || \
  zsh  -i -c "type codex" >/dev/null 2>&1 || \
  bash -i -c "type codex" >/dev/null 2>&1 || \
  echo "WARNING: 'codex' not found — will attempt nvm resolution below, else SKIP"

# Sweep stale orphans (>60 min) from crashed prior runs (best-effort, age-based —
# can theoretically delete a live run's files if it paused >60 min; acceptable).
find "$PROJECT_DIR/tmp" -maxdepth 1 -name '*-prompt-*.txt'   -mmin +60 -delete 2>/dev/null
find "$PROJECT_DIR/tmp" -maxdepth 1 -name '*-output-*.jsonl' -mmin +60 -delete 2>/dev/null

Codex binary resilience (run once, before dispatch). An nvm-managed codex can be a symlink whose @openai/codex install is broken (deleted vendor binary → spawn ... ENOENT), and a broken version can sit EARLIER on PATH than a working one. command -v / zsh -i return the broken path, so detect by RUNNING the binary. If the PATH-resolved codex fails, hunt all nvm node installs for one whose --version succeeds and emit its absolute path. Emit CODEX_BIN=SKIP if none work.

CODEX_BIN=""; INTERACTIVE_SHELL=zsh
# Capture WHICH interactive shell resolves codex (nvm may be in only one of
# ~/.zshrc / ~/.bashrc). The dispatch below uses $INTERACTIVE_SHELL so a
# .bashrc-only setup on macOS still works (prior bug: probe accepted bash,
# dispatch hardcoded zsh).
if   zsh  -i -c 'codex --version' >/dev/null 2>&1; then CODEX_BIN="codex"; INTERACTIVE_SHELL=zsh   # codex resolves via zsh
elif bash -i -c 'codex --version' >/dev/null 2>&1; then CODEX_BIN="codex"; INTERACTIVE_SHELL=bash  # codex resolves via bash
else
  # Match symlinks too (-type l): nvm/npm install codex as a bin/ symlink, which -type f misses.
  CODEX_BIN=$(find "$HOME/.nvm/versions/node" -maxdepth 5 -name codex \( -type f -o -type l \) 2>/dev/null | while IFS= read -r p; do
    "$p" --version >/dev/null 2>&1 && { printf '%s\n' "$p"; break; }
  done)
  [ -z "$CODEX_BIN" ] && CODEX_BIN="SKIP"
fi
echo "CODEX_BIN=$CODEX_BIN"                   # MUST echo: shell vars don't persist across Bash tool calls
echo "INTERACTIVE_SHELL=$INTERACTIVE_SHELL"   # the interactive shell that resolves codex; substitute into the dispatch below

# Resolve the timeout binary used to wrap the Codex gen dispatch (§Step 2 below) so a
# hung CLI is bounded rather than running unbounded — the harness may auto-background
# the dispatch, letting it escape the Bash tool's own timeout. Probe BOTH names:
# Homebrew coreutils installs GNU timeout as `gtimeout`; plain `timeout` exists only
# when the coreutils gnubin PATH is on. If neither exists, TIMEOUT_CMD stays empty and
# the dispatch runs UNWRAPPED (best-effort Bash-tool timeout; `brew install coreutils`
# restores the hard guard).
TIMEOUT_CMD=""
if   command -v timeout  >/dev/null 2>&1; then TIMEOUT_CMD="timeout"
elif command -v gtimeout >/dev/null 2>&1; then TIMEOUT_CMD="gtimeout"
fi
echo "TIMEOUT_CMD=$TIMEOUT_CMD"   # substitute into the §Step-2 Codex dispatch (when empty: omit the wrap)

Two-phase dispatch (required). Tool calls in one message run concurrently, so emitting the Codex prompt-file Write and the Codex dispatch together races the dispatch ahead of the file (Codex errors on a missing prompt file). Use two messages: message 1 writes the Codex prompt file (Step 1 below); message 2 issues the Codex dispatch (Step 2) and the Code-Searcher Agent call in parallel:

Gen-dispatch timeout watchdog (GEN_TIMEOUT=1200). Each $TIMEOUT_CMD -k 10 1200-prefixed CLI gen below — SIGTERM at 1200s (20 min), SIGKILL 10s later (-k 10, which also reaps orphaned Node/MCP children) — is bounded against a hung provider CLI that would otherwise run unbounded (the harness may auto-background the dispatch, so the Bash tool's own timeout is not a reliable cap). When TIMEOUT_CMD is empty (no timeout/gtimeout): omit the $TIMEOUT_CMD -k 10 1200 prefix and dispatch unwrapped (the existing §Setup fallback) — set the Bash tool's own timeout parameter to 1300000 ms as a best-effort cap, and brew install coreutils to restore the hard guard. On a timed-out gen (exit 124 = SIGTERM, 137 = SIGKILL): the output file is empty/truncated, so the existing [ -z … ] parse guard already drops the agent — additionally surface Agent X timed out after 1200s (distinct from an auth failure, which leaves non-empty stderr) and re-count against the §Setup minimum-agent guard. Do not retry. Code-Searcher (Agent tool) carries no $TIMEOUT_CMD -k 10 1200 prefix — it is bounded by its own mechanism, not this watchdog.

  • For Codex:

    Model ownership — the model is CONFIG-OWNED, never named by this skill. Do not pass -m: inherit the model and reasoning effort from Codex configuration (~/.codex/config.toml — this installation is configured for gpt-5.6-sol, high effort). Report the agent as plain "Codex" everywhere in the report; never a hardcoded version string. A hardcoded label silently misreports the model the moment the config changes: this skill advertised GPT-5.6-terra in seven places while every dispatch had been running gpt-5.6-sol, because the dispatch carries no -m and never did (corrected 2026-08-01).

    Step 1: Write the enhanced prompt to a temp file using the Write tool:

    Write to $PROJECT_DIR/tmp/codex-prompt-RUN_ID.txt with the ENHANCED_PROMPT
    

Content truncated.

When not to use it

  • For simple syntax questions
  • For basic file lookups
  • For straightforward documentation queries

Prerequisites

jq installedcodex binary available

Limitations

  • Requires jq for output parsing
  • Codex binary may require nvm resolution

How it compares

It provides a structured, multi-perspective verification process instead of relying on a single AI response.

Compared to similar skills

consult-codex side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
consult-codex (this skill)22moReviewAdvanced
codex322moReviewAdvanced
senior-fullstack357moReviewIntermediate
codex-claude-cursor-loop39moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

codex

Lucklyric

Invoke Codex CLI for complex coding tasks requiring high reasoning capabilities. This skill should be invoked when users explicitly mention "Codex", request complex implementation challenges, advanced reasoning, or need high-reasoning model assistance. Automatically triggers on codex-related requests and supports session continuation for iterative development.

32238

senior-fullstack

davila7

Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL. Includes project scaffolding, code quality analysis, architecture patterns, and complete tech stack guidance. Use when building new projects, analyzing code quality, implementing design patterns, or setting up development workflows.

35110

codex-claude-cursor-loop

bear2u

Orchestrates a triple-AI engineering loop where Claude plans, Codex validates logic and reviews code, and Cursor implements, with continuous feedback for optimal code quality

319

dev

browseros-ai

Full feature development workflow. Explores codebase, designs, writes PRD, implements, reviews, fixes, and creates PR. Use with "/dev <feature description>".

00

software-architecture

davila7

Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.

333868

architect-review

sickn33

Master software architect specializing in modern architecture patterns, clean architecture, microservices, event-driven systems, and DDD. Reviews system designs and code changes for architectural integrity, scalability, and maintainability. Use PROACTIVELY for architectural decisions.

109320

Search skills

Search the agent skills registry