Agent skill
council-review
Multi-model AI code review — runs Codex, Claude, and Simplify reviews in parallel, then synthesizes a unified report. Use when the user asks to review code changes, audit a diff, check code quality, review a PR, review commits, or review uncommitted changes. Also covers 'code review', 'review my changes', 'check this before I merge', or wanting multiple perspectives on code. Do NOT use for documentation/markdown review or trivial single-line changes.
Install this agent skill to your Project
npx add-skill https://github.com/trancong12102/agentskills/tree/main/council-review
SKILL.md
Council Review
Run Codex, Claude's own /review, and /simplify in parallel, then cross-validate and synthesize into one unified report — like a review board where three reviewers examine the code from different angles, and Claude as lead reviewer delivers the final opinion.
Prerequisites
- Codex CLI: Install with
npm i -g @openai/codex, authenticate withcodex login
If only one CLI is installed, fall back to the available reviewer with a warning — the review still has value with fewer perspectives, so don't fail entirely.
When to Use
- Reviewing uncommitted changes before committing
- Auditing a branch diff before opening a PR
- Reviewing a specific commit for regressions
When NOT to Use
- Reviewing documentation, markdown, or non-code files
- Trivial single-line changes where a full council review would be overkill
Workflow
Do not read script source code. Run scripts directly and use --help for usage.
Step 1: Determine Review Scope
If the scope is not already clear, use AskUserQuestion to ask:
- Uncommitted changes (default) — staged, unstaged, and untracked changes
- Branch diff — compare current branch against a base branch
- Specific commit — audit a single changeset
Step 2: Run All Three Reviews in Parallel
All three reviewers read the same diff independently — none depends on another's output. Launch all three at once in a single message to eliminate sequential wait time.
Scripts are in scripts/ relative to this skill's directory and enforce the correct model and read-only mode internally. Run <script> --help for full usage.
Codex — scripts/codex-review.py (background Bash task)
Launch as a background Bash task (run_in_background: true). Codex CLI may take up to 30 minutes. When it completes, use the Read tool on the output-file path from the notification to retrieve the review.
python3 scripts/codex-review.py uncommitted
python3 scripts/codex-review.py branch --base main
python3 scripts/codex-review.py commit <SHA>
Claude — /review skill (background Agent)
Launch a background Agent (run_in_background: true) to run /review on the same scope. Prompt the agent to invoke the /review skill (via the Skill tool) and return its complete findings. The agent's output arrives directly in its completion notification.
Simplify — /simplify skill (background Agent)
Launch a background Agent (run_in_background: true) to run /simplify on the same scope. Prompt the agent to invoke the /simplify skill (via the Skill tool), then return only its analysis and findings as text — do not apply any code fixes. The agent's output arrives directly in its completion notification.
After launching all three background tasks, end your turn immediately. Do not output anything else, do not proceed to Step 3, and do not check on task progress. You will be notified automatically when each task completes.
Step 3: Cross-Validate Findings
Once you have received completion notifications for all three tasks, cross-validate:
- Validate external findings — For each finding from Codex and
/simplify:- Confirm — Claude independently agrees the issue exists and is correctly described.
- Dispute — Claude believes the finding is a false positive or incorrectly categorized. Note the reasoning.
- Enhance — The issue exists but the explanation or suggested fix can be improved. Provide the improved version.
- Add Claude's own findings — Include any issues from
/reviewthat the other reviewers didn't catch. - Note cross-reviewer agreement — Track which findings were flagged by multiple reviewers (higher confidence).
Step 4: Synthesize into Unified Report
After your own review and validation are complete, merge, deduplicate, and rewrite all findings into one coherent report as if written by a single reviewer. Do not copy-paste or concatenate raw outputs.
Load references/output-format.md for the report template. Load references/merge-rules.md for how to reconcile findings across reviewers.
Rules
- Run all three reviewers in parallel — Codex,
/review, and/simplifyare independent reads of the same diff. Launch all three in a single message. - Use the same review scope for all reviewers — comparing different scopes would make deduplication meaningless.
- Wait for all three reviews to complete before cross-validation — the council's value depends on comparing complete outputs.
- Run
/simplifyagent as report-only — the agent must return findings as text, not apply edits to the workspace. Instruct the agent explicitly to skip code fixes. - Write one unified opinion — the report should read as a single reviewer's assessment. Never structure findings by reviewer (no "Codex found..." or "Simplify found..." sections).
- Sort findings by priority — P0 → P1 → P2 → P3 → P4.
- Exclude low-confidence findings — If Claude disputes an external finding or evidence is purely circumstantial, omit it from the report. The council's value is cross-validation; findings that fail it are noise.
- Always use the wrapper script for Codex — do not call
codexCLI directly, because the script sets the correct model and read-only mode. - Suppress intermediate outputs — Do not display raw reviewer outputs to the user. Running each skill in a subagent keeps its output out of the main conversation naturally. The only review output the user should see is the final unified report.
- Never use
TaskOutputfor background tasks —TaskOutputcannot find background Bash task IDs and will fail. Use theReadtool on theoutput-filepath from the completion notification instead. For background Agents, read the result directly from the completion notification. - If a reviewer fails at runtime — fall back to the remaining reviewers if at least two succeed. If fewer than two reviewers succeed, stop the review and report the error — a single-reviewer result lacks cross-validation.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
deps-dev
Look up the latest stable version of any open-source package across npm, PyPI, Go, Cargo, Maven, and NuGet. Use when the user asks 'what's the latest version of X', 'what version should I use', 'is X deprecated', 'how outdated is my package.json/requirements.txt/Cargo.toml', or needs version numbers for adding or updating dependencies. Also covers pinning versions, checking if packages are maintained, or comparing installed vs latest versions. Do NOT use for private/internal packages or for looking up documentation (use context7).
github-codebase-search
Semantic search for public GitHub repos without cloning. Use when the user wants to understand how an external library or framework works internally, investigate upstream bugs, trace code paths in a repo they haven't cloned, or search GitHub source code by intent. Do NOT use for local codebase questions (use codebase-search), documentation lookup (use context7), or private repos.
react-native-advanced
React Native and Expo patterns for navigation, data fetching lifecycle, infinite scroll lists, form handling, state persistence, authentication routing, gesture-driven animations, bottom sheets, push notifications, and OTA updates. Use when building Expo/React Native apps that need screen-level data prefetching, auth guards with protected routes, infinite scroll feeds, native form input handling, offline-capable state persistence, platform-specific setup (focus/online managers), fluid animations and gesture interactions, modal bottom sheets, push notification flows, or over-the-air update strategies. Do not use for React web apps.
react-web-advanced
Web-specific React patterns for type-safe file-based routing, route-level data loading, server-side rendering, search param validation, code splitting, and list virtualization. Use when building React web apps with route loaders, SSR streaming, validated search params, lazy route splitting, or virtualizing large DOM lists. Do not use for React Native apps — use react-native-advanced instead.
context7
Fetch up-to-date documentation for any open-source library or framework. Use when the user asks to look up docs, check an API, find code examples, or verify how a feature works — especially with a specific library name, version migration, or phrases like 'what's the current way to...' or 'the API might have changed'. Also covers setup and configuration docs. Do NOT use for general programming concepts, internal project code, or version lookups (use deps-dev).
ast-grep
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.
Didn't find tool you were looking for?