# Local Review Codex

Run the CI Codex PR review locally against this branch's unpushed work (committed +...

- Repository: https://github.com/windmill-labs/windmill (18352 stars)
- Category: Git and review
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add windmill-labs/windmill --skill local-review-codex -g -a claude-code -y`
Codex: `npx skills add windmill-labs/windmill --skill local-review-codex -g -a codex -y`
Cursor: `npx skills add windmill-labs/windmill --skill local-review-codex -g -a cursor -y`
Gemini CLI: `npx skills add windmill-labs/windmill --skill local-review-codex -g -a gemini-cli -y`

## Description

Run the CI Codex PR review locally against this branch's unpushed work (committed + uncommitted) before pushing. Same policy, model and reasoning effort as the codex-pr-review GitHub action.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Local Codex Review (pre-push)

Runs the exact same review Codex performs in CI (`.github/workflows/codex-pr-review.yml`),
but locally and scoped to work you have not pushed yet, so you catch what CI would flag
before the PR exists. Use this before `git push` on a non-trivial change.

**Correspondence with CI**, identical:
- Policy: `REVIEW.md` (severity triage, public-surface checklist, AGENTS.md compliance, test coverage).
- Model: `gpt-6.1-sol`.
- Reasoning effort: `model_reasoning_effort="xhigh"`.
- Output: markdown starting with `## Codex Review`, findings tagged P0 / P1 / P2 with file:line.

**Differences from CI**, local-only:
- Scope is the current branch vs `main` at the merge-base, **including uncommitted changes** (CI reviews a pushed PR diff).
- Sandbox is `read-only` (CI uses `danger-full-access` on an ephemeral runner). Codex reads the diff and files but cannot modify your working tree.
- Fresh context is inherent: `codex exec` is a separate cold process, so it does not anchor on the current chat session, the same reason `local-review` insists on a subagent.

## Prerequisites

- `codex` CLI **>= 0.159.3** installed and authed via `codex login` or an `OPENAI_API_KEY` in the environment (which takes priority). Older CLIs reject the model with "requires a newer version of Codex"; `run.sh` checks the version up front. Upgrade with `npm install --global @openai/codex@0.159.3` (may need `sudo` for a global install). This matches the pin in `.github/workflows/codex-pr-review.yml`, the CLI version is the same on both sides.
- `git fetch` the base ref if it's stale, so the merge-base is accurate.

## Run

```bash
bash .agents/skills/local-review-codex/run.sh          # review vs main (default)
bash .agents/skills/local-review-codex/run.sh <base>   # review vs a different base ref
```

The rest: https://github.com/windmill-labs/windmill/blob/HEAD/.agents/skills/local-review-codex/SKILL.md
