Dual-AI pull request review that runs both Claude and OpenAI Codex as independent reviewers, merges their findings into a unified report, and can apply fixes with Codex re-review. Use this skill when the user wants multiple AI perspectives on a PR: mentions reviewing with Codex, asks for dual/combined review, wants both Claude and Codex opinions, or says things like 'codex にもレビューさせて', 'codex と一緒にレビュー', 'review PR with codex', 'dual review PR 123'. Do NOT trigger for simple PR reviews that don't mention Codex or dual/combined review — those belong to the code-review command.
Two independent AI reviewers (Claude + Codex) examine the same PR, then their findings are merged into one unified report. Each reviewer has different strengths — Claude excels at framework-specific patterns and runtime lifecycle issues, while Codex tends to focus on accessibility and interaction models. Running both gives broader coverage than either alone.
The user provides a PR number: /dual-review 240 or "dual review PR 240".
If no number is given, ask for one via AskUserQuestion.
Fetch PR metadata and diff in parallel:
gh pr view <number> --json title,body,headRefName,baseRefName,additions,deletions,files,commits
gh pr diff <number>
Then read the full contents of each changed file (not just the diff) for context.
Use AskUserQuestion to ask the user two questions in a single prompt:
gpt-5.4 (recommended), gpt-5.3-codex (complex software engineering), or gpt-5.4-mini (fast/lightweight)xhigh, high, medium, or lowLaunch Claude and Codex reviews at the same time — don't wait for one before starting the other.
Use the feature-dev:code-reviewer agent with these inputs:
Run Codex in read-only sandbox:
echo '<review prompt>' | codex exec --skip-git-repo-check -m <model> --config model_reasoning_effort="<effort>" --sandbox read-only -C <repo-root> 2>/dev/null
The review prompt should include:
Always append 2>/dev/null to suppress Codex thinking tokens.
Combine both reviews into a unified report. Deduplicate findings that overlap (even if worded differently) and note which reviewer(s) detected each one.
## PR #<number> Unified Review: Claude + Codex
**PR**: <title>
**Changes**: +<additions> / -<deletions> (<file count> files)
---
### Findings
| # | Severity | Finding | Detected By |
| --- | ------------- | ----------------- | --------------------- |
| 1 | **Important** | Brief description | Claude / Codex / Both |
---
### Detail per Finding
#### 1. [Important] Finding title — Detected by X
**`file:line`**
Explanation and suggested fix.
---
### Checked and Clean
- **XSS**: no issues found
- (other areas checked)
Sorting: Critical > Important > Medium > Low.
Only fix issues when you determine they are warranted OR the user explicitly asks.
After fixes are applied, use Codex resume to re-review. This preserves the original session context so Codex can verify its earlier findings are resolved and catch any new issues from the fixes.
echo 'I have applied fixes for all issues you identified. Please re-review the changed files to verify the fixes are correct and check for any new issues. The fixes were: <brief summary>' | codex exec --skip-git-repo-check resume --last 2>/dev/null
The resume command must not include model/effort/sandbox flags — those are inherited from the original session.
If the re-review finds new issues, present them and fix if needed (repeat Phase 5-6).