Skip to Content
Tares

Is a second model worth the extra time on framework migrations?

Tares challenger sessions add 30 to 90 seconds per plan, one Codex review per commit and a second bill on your OpenAI account, and in return a second model checks every plan and commit. For a framework migration that is worth it when a missed regression costs more than the wait. If you want findings that never block, set challenger_mode to advise, and Claude is not sent back to fix and amend.

How it works

In a challenger session, Claude Code plans and builds as usual and the OpenAI Codex CLI on your laptop critiques the work. Tares records the exchange and never waits on the review. The costs come in four places:

  • Per plan. When Claude leaves plan mode, Codex critiques the plan. It takes 30 to 90 seconds, so Claude’s first reply after you approve the plan is slower. A plan critique never blocks. Only a [P1] finding counts as blocking on a plan, and even then Claude is asked to revise or to tell you why it disagrees.
  • Per commit. After every git commit, Codex reviews that commit. Each commit you make during the migration gets its own review. The challenge_commit event records duration_seconds for every review, so you can read the real time per commit on your own repo.
  • Per fix round. In the default strict mode, a [P1] or [P2] finding blocks Claude, which fixes the problem and amends the commit. The amended commit is reviewed again as round 2, up to 8 rounds per commit and 5 turn ends per session. A Codex timeout, error or inconclusive review never blocks.
  • Per bill. Codex runs on your laptop and is billed to your OpenAI account. A session with a plan and three commits is typically five to eight Codex runs. The summarizer at the end is one Tares agent run per session, metered like every other agent run.

Set it up

  1. Install the Tares plugin for Claude Code, version 0.2 or later, and start Tares as described in Get started or on your Tares Cloud instance. The full prerequisites are in the challenger workflow guide.

  2. Install the Codex CLI and log in. This is the account that receives the second bill:

    npm install -g @openai/codex codex login
  3. Add an Anthropic API key for the summarizer under Settings > Model providers, or set ANTHROPIC_API_KEY. Tares Cloud instances come with one.

  4. Start Claude Code in the repo you are migrating and say “make this a challenger session”, or type /tares:challenger. The first marked session creates the Challenger workflow project by itself.

  5. Decide how strict to be. The default strict mode blocks Claude on [P1] and [P2] commit findings. To make commit findings advisory, set the plugin option challenger_mode to advise.

  6. If you disagree with a blocking finding in strict mode, run /tares:challenger-waive to waive one finding or all of them. The waiver is remembered on later rounds.

  7. Type /exit when you finish. The challenger_summarizer agent writes the summary, including a cost section.

What you get

  • A second model reads every plan and every commit, so a mistake Claude cannot see in its own work has another chance to be caught.
  • Findings carry a priority: [P1] means the plan fails as written, [P2] will cause rework, [P3] is advice. You see what matters first.
  • One timeline per session on Tares, with a badge per reviewed commit (Findings (N) or Pass) and the plan outcome, so you can see where the review time went.
  • A summary with what Codex caught on each commit and up to five Memory proposals. Nothing reaches memory until you accept it, and accepted sentences are handed to Claude at the start of the next session in that repo.
  • A direct way to answer the cost question for your own migration. Run one session, then compare the duration_seconds on the events and the run count on your OpenAI account against what Codex caught.

When something else fits

  • Choose advise mode when you want the second opinion recorded but never in the way. Commit findings are advisory, so Claude is not sent back to fix and amend. The plan critique still runs on every plan, with the same 30 to 90 seconds, because it never blocks in either mode.
  • Stay with strict mode when a finding that slips into a commit would cost you more than a few extra fix rounds.
  • Skip the challenger for a short, low-risk change where a second OpenAI bill and a slower first reply outweigh what a review is likely to catch. Without a marked session, nothing runs.

Still stuck? Get help

Last updated on