skills/codex-review/SKILL.md
AI-powered code review using OpenAI Codex CLI. Use when the user asks to review, audit, or check their code — including "代码审核", "代码审查", "审查代码", "review", "code review", "帮我审核", "检查代码", "审一下". Performs lint + codex review in an isolated context, auto-updates CHANGELOG, and adapts reasoning effort based on change size.
npx skillsauth add escapewu/skills codex-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Running codex review --uncommitted alone only shows AI "what was done (Implementation)".
Recording intention first tells AI "what you wanted to do (Intention)".
"Code changes + intention description" as combined input is the most effective way to improve AI code review quality.
This skill operates in two phases:
git diff --name-only && git status --short
Decide review mode based on output:
codex review --commit HEADBefore any review, must check if CHANGELOG.md contains description of current changes.
# Check if CHANGELOG.md is in uncommitted changes
git diff --name-only | grep -E "(CHANGELOG|changelog)"
If CHANGELOG is not updated, you must automatically perform the following (don't ask user to do it manually):
git diff --stat and git diff to get complete changes[Unreleased] sectionAuto-generated CHANGELOG entry format:
## [Unreleased]
### Added / Changed / Fixed
- Feature description: what problem was solved or what functionality was implemented
- Affected files: main modified files/modules
Example - Auto-generation Flow:
1. Detected CHANGELOG not updated
2. Run git diff --stat, found handlers/responses.go modified (+88 lines)
3. Run git diff to analyze details: added CompactHandler function
4. Auto-generate entry:
### Added
- Added `/v1/responses/compact` endpoint for conversation context compression
- Supports multi-channel failover and request body size limits
5. Use Edit tool to write to CHANGELOG.md
6. Continue with lint and codex review
Before invoking codex review, must add all new files (untracked files) to git staging area, otherwise codex will report P1 error.
# Check for new files
git status --short | grep "^??"
If there are new files, automatically execute:
# Safely stage all new files (handles empty list and special filenames)
git ls-files --others --exclude-standard -z | while IFS= read -r -d '' f; do git add -- "$f"; done
Explanation:
-z uses null character to separate filenames, correctly handles filenames with spaces/newlineswhile IFS= read -r -d '' reads filenames one by onegit add -- "$f" uses -- separator, correctly handles filenames starting with -Count change scale:
# Count number of changed files and lines of code
git diff --stat | tail -1
Difficulty Assessment Criteria:
Model + Reasoning Effort Combinations:
| Combination | Quality | Time | Timeout | Recommended For |
|-------------|---------|------|---------|-----------------|
| model=gpt-5.2 model_reasoning_effort=xhigh | Best | ~15-20 min | 40 min | Critical code, architecture changes |
| model=gpt-5.3-codex model_reasoning_effort=xhigh | High | ~8-9 min | 15 min | Difficult tasks (default) |
| model=gpt-5.2 model_reasoning_effort=high | High | ~8-9 min | 15 min | Alternative for difficult tasks |
| model=gpt-5.3-codex model_reasoning_effort=high | Good | ~5-6 min | 10 min | Normal tasks (default) |
Critical Tasks (meets any condition, use best quality model):
--config model=gpt-5.2 --config model_reasoning_effort=xhigh, timeout 40 minutesDifficult Tasks (meets any condition):
--config model=gpt-5.3-codex --config model_reasoning_effort=xhigh, timeout 15 minutesNormal Tasks (other cases):
--config model=gpt-5.3-codex --config model_reasoning_effort=high, timeout 10 minutesEvaluation Method:
You MUST parse the git diff --stat output correctly to determine difficulty:
# Get the summary line (last line of git diff --stat)
git diff --stat | tail -1
# Example outputs:
# "20 files changed, 342 insertions(+), 985 deletions(-)"
# "1 file changed, 50 insertions(+)" # No deletions
# "3 files changed, 120 deletions(-)" # No insertions
Parsing Rules:
Important Edge Cases:
"1 file changed" (singular form)"insertions(+)" entirely → treat as 0"deletions(-)" entirely → treat as 0"0 insertions(+), 0 deletions(-)" or omit bothDecision Logic (check in order, first match wins):
Example Cases:
model=gpt-5.2 model_reasoning_effort=xhigh,超时 40 分钟(核心架构变更)model=gpt-5.3-codex model_reasoning_effort=xhigh,超时 15 分钟model=gpt-5.3-codex model_reasoning_effort=xhigh,超时 15 分钟model=gpt-5.3-codex model_reasoning_effort=high,超时 10 分钟model=gpt-5.3-codex model_reasoning_effort=high,超时 10 分钟Invoke codex-runner Subtask:
Use Task tool to invoke codex-runner, passing complete command (including Lint + codex review):
Task parameters:
- subagent_type: Bash
- description: "Execute Lint and codex review"
- timeout: 900000 (15 minutes for difficult tasks) or 600000 (10 minutes for normal tasks)
- prompt: Choose corresponding command based on project type and difficulty
Go project - Difficult task:
go fmt ./... && go vet ./... && codex review --uncommitted --config model=gpt-5.3-codex --config model_reasoning_effort=xhigh
(timeout: 900000)
Go project - Normal task:
go fmt ./... && go vet ./... && codex review --uncommitted --config model=gpt-5.3-codex --config model_reasoning_effort=high
(timeout: 600000)
Node project - Difficult task:
npm run lint:fix && codex review --uncommitted --config model=gpt-5.3-codex --config model_reasoning_effort=xhigh
(timeout: 900000)
Node project - Normal task:
npm run lint:fix && codex review --uncommitted --config model=gpt-5.3-codex --config model_reasoning_effort=high
(timeout: 600000)
Python project - Difficult task:
black . && ruff check --fix . && codex review --uncommitted --config model=gpt-5.3-codex --config model_reasoning_effort=xhigh
(timeout: 900000)
Python project - Normal task:
black . && ruff check --fix . && codex review --uncommitted --config model=gpt-5.3-codex --config model_reasoning_effort=high
(timeout: 600000)
Clean working directory:
codex review --commit HEAD --config model=gpt-5.3-codex --config model_reasoning_effort=high
(timeout: 600000)
If Codex finds Changelog description inconsistent with code logic:
codex review [OPTIONS] [PROMPT]
Note: [PROMPT] parameter cannot be used with --uncommitted, --base, or --commit.
| Option | Description | Example |
| -------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------ |
| --uncommitted | Review all uncommitted changes in working directory (staged + unstaged + untracked) | codex review --uncommitted |
| --base <BRANCH> | Review changes relative to specified base branch | codex review --base main |
| --commit <SHA> | Review changes introduced by specified commit | codex review --commit HEAD |
| --title <TITLE> | Optional commit title, displayed in review summary | codex review --uncommitted --title "feat: add JSON parser" |
| -c, --config <key=value> | Override configuration values | codex review --uncommitted -c model="o3" |
# 1. Review all uncommitted changes (most common)
codex review --uncommitted
# 2. Review latest commit
codex review --commit HEAD
# 3. Review specific commit
codex review --commit abc1234
# 4. Review all changes in current branch relative to main
codex review --base main
# 5. Review changes in current branch relative to develop
codex review --base develop
# 6. Review with title (title shown in review summary)
codex review --uncommitted --title "fix: resolve JSON parsing errors"
# 7. Review using specific model
codex review --uncommitted -c model="o3"
--uncommitted, --base, --commit are mutually exclusive, cannot be used together[PROMPT] parameter is mutually exclusive with the above three optionstimeout: 900000)timeout: 600000)Why separate contexts?
development
Use when working with the news fetcher REST API at <news-fetcher-host> for supported-site lookup, domain article discovery, URL fetching, batch fetch/crawl workflows, fetch history queries, and Bearer-authenticated integration examples.
development
create and refresh repository-specific development standards for an existing local codebase. use when the user wants to analyze a local repository, extract coding conventions from real files, generate docs/ai-dev-standards, create code review checklists, or update existing agents.md or claude.md files so future coding agents load the right standards before development. do not use for generic programming advice detached from a repository.
documentation
analyze postgresql or mysql database schemas from ddl files, schema-only dumps, migration sql, or read-only database metadata. use when the user wants table structure summaries, primary keys, foreign keys, indexes, inferred table relationships, er diagrams, dbml, mermaid erd, schema documentation, or database relationship analysis for postgres/mysql schemas.
tools
Replace with description of the skill and when Claude should use it.