How do I have a second model review dependency upgrades in a documentation website before each commit?
Tares lets the OpenAI Codex CLI critique your plan and review every commit Claude Code makes, so a second model checks each dependency upgrade in your docs site. Claude plans and builds, and Codex argues with it on your laptop. A blocking finding sends Claude back to amend the commit, and you can waive a finding you disagree with. Tares records the whole exchange on one timeline per session.
How it works
In a challenger session, Claude Code does the work and Codex acts as the reviewer. The check runs in two places.
- The plan. When you approve the plan and Claude leaves plan mode, the plugin hands the plan to Codex in a read-only sandbox. Codex critiques it for gaps, wrong architecture, scope, unhandled risks and missing verification. For an upgrade plan, that means Codex looks at what your plan leaves unchecked. Each finding is tagged
[P1](the plan fails as written),[P2](will cause rework) or[P3](advice). A plan critique never blocks. Claude revises, or tells you why it disagrees. - Every commit. After each
git commit, the plugin has Codex review that commit. With no findings, Claude carries on. With[P1]or[P2]findings, Claude is blocked and told to fix them and fold the fix into the same commit withgit commit --amend. If the reviewed commit is already on a remote, Claude makes a new commit instead. The amended commit is reviewed again as round 2, and so on until Codex is satisfied.
[P3] findings are context only. A Codex timeout, error or inconclusive review never blocks. The loop is capped at 8 rounds per commit and 5 turn ends per session, and after that the findings come back as context.
The review runs in your Claude Code hooks against your OpenAI account. Tares only receives the results, so a slow or stopped Tares never holds up a review. The challenger workflow guide has the full mechanics.
Set it up
-
Run Tares with its MCP endpoint next to it. On Tares Cloud the endpoint is already served for you.
uv tool install tares tares up tares mcp --transport streamable-http -
In Claude Code, install the Tares plugin, version 0.2 or later. The install asks for the Tares URL, the MCP endpoint and, on a secured instance, a
read + ingestAPI key./plugin marketplace add glassflow/tares /plugin install tares@tares -
Install the Codex CLI and run
codex login. Codex runs on your laptop and is billed to your OpenAI account. -
Set an Anthropic API key under Settings > Model providers or as
ANTHROPIC_API_KEY, for the end-of-session summary. Tares Cloud instances come with one. -
Open Claude Code in your docs repo and say “make this a challenger session”, or type
/tares:challenger. The first marked session creates the Challenger workflow project on its own. -
Describe the upgrades you want in plan mode, for example which packages to move and what a successful docs build looks like. Approve the plan and read the critique Claude relays in its first reply. Allow 30 to 90 seconds for it.
-
Let Claude upgrade and commit. If a commit is blocked, Claude amends it and Codex reviews it again.
-
If you think a blocking finding is wrong, run
/tares:challenger-waive. It lists the blocking findings and waives one or all. The waiver is remembered for that finding on later rounds and shipped to Tares as achallenge_waivedevent. -
To make commit reviews advisory too, set the plugin option
challenger_modetoadvise. The default isstrict.
If you run the software factory crew instead of a single session, tares factory crew up asks whether a second model checks every commit. Answer yes there. The Codex CLI is the optional extra in the Get started checklist.
tares factory crew upWhat you get
- A second opinion on the upgrade plan before any code changes, with each finding ranked
[P1],[P2]or[P3]. - A review of every upgrade commit, with blocking findings folded into the same commit through an amend rather than piling up as follow-up commits.
- A way out when Codex is wrong: waive the finding and the loop moves on.
- One timeline per session on Tares. Open the project page and Sessions shows the plan outcome and one badge per reviewed commit,
Findings (N)orPass. Click a session to read the Claude and Codex exchange as a single thread. - A summary when you
/exit. It covers what was asked and built, how Codex changed the plan, what it caught in each commit, cost, and up to five Memory proposals. Accept one and the next session in that repo starts with it as context. Nothing reaches memory without your accept.
Costs are Codex runs billed by OpenAI. A session with a plan and three commits is typically five to eight Codex runs.
When something else fits
- If you only need one pass over an upgrade and not a review loop on every commit, a plain Claude Code session without the challenger mark is lighter, because nothing runs and no Codex account is needed.
- If you want a whole project built by a crew with a fixed review bar, start from the Get started page and use the crew’s own reviewer, with the second-model check as an option.
Related
- Build a software factory with Claude Code
- How do I have a second model review test coverage in a monorepo before each commit?
- How do I have a second model review internal refactors in a Python backend before each commit?
- How do I have a second model review bug fixes in a monorepo before each commit?
Still stuck? Get help