Skip to content

Evals: isolate Codex from the runner's own setup; record the post-rename eval - #134

Merged
YuqingNicole merged 2 commits into
masterfrom
codex/eval-codex-isolation
Nov 2, 2026
Merged

YuqingNicole merged 2 commits into
masterfrom
codex/eval-codex-isolation

Conversation

@YuqingNicole

@YuqingNicole YuqingNicole commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

Why

I wanted to confirm that renaming skills/*/SKILL.md to ROUTE.md (#121) didn't break real runs. While checking, I found that Codex eval runs were not isolated from the machine running them.

Results (pulse; details in docs/research/2026-11-03-eval-after-route-rename.md)

Run Checks Skill words read Usage Time
Claude 7/7 8,506 (8 files) $1.93 1,457 s
Codex, old command 7/7 7,483 (7 files) 563k tokens 1,097 s
Codex, isolated 7/7 8,506 (8 files) 544k tokens 192 s

All three runs read skills/variant-generate/ROUTE.md, so routing works after the rename.

The isolation problem

With the old command, Codex loaded the runner's ~/.codex:

  • It called the Computer Use MCP server (cua_repl) on the host machine to check the preview environment.
  • It ran the user's hooks.
  • It tried to update an unrelated plugin marketplace, which hit a 30-second network timeout.
  • It then took about 15 minutes to exit after finishing its work.

evals/run.mjs now passes --ignore-user-config --ignore-rules --ephemeral -c features.hooks=false. I verified this first with a probe that runs no commands: Computer Use is no longer exposed, hooks no longer load, and login still works. Then I re-ran the full eval.

Still not isolated: both CLIs read the runner's global instructions (~/.codex/AGENTS.md, ~/.claude/CLAUDE.md). I found no flag to skip them. The README now says so.

Checks that ran

  • The real eval runs above. Total model cost: about $1.93 for Claude, plus Codex usage.
  • node --test evals/grade.test.mjs: passed.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added evaluation findings, including successful checks across both supported command-line tools and noted limitations around global instructions.
    • Clarified that Codex evaluations now run without user settings, rules, or hooks while retaining workspace-write access and existing login credentials.
  • Chores
    • The isolated Codex evaluation completed in 192 seconds, down from 1,097 seconds in the reported comparison.

…rename eval

A Codex eval loaded the runner's ~/.codex config: it called the Computer Use
MCP server on the host, ran hooks and tried to update an unrelated plugin
marketplace, then took 15 minutes to exit. --ignore-user-config, --ignore-rules,
--ephemeral and hooks off keep that out; the same run now passes in 192s
instead of 1097s. Claude and Codex both pass all checks after the ROUTE.md rename.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
variant-design-skill Ready Ready Preview Nov 2, 2026 4:28pm UTC

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 54 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8e525438-d7e2-4071-a7b2-c79021331bae
Commits

Reviewing files that changed from the base of the PR and between d9126b6 and e532ac8.

Files selected for processing: 1
  • evals/README.md
Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 26fee2e0-a3ef-4d9a-b1e6-1451f565613a
Commits

Reviewing files that changed from the base of the PR and between 956d07d and d9126b6.

Files selected for processing: 3
  • docs/research/2026-11-03-eval-after-route-rename.md
  • evals/README.md
  • evals/run.mjs

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The Codex evaluation command now disables hooks and ignores user configuration and rules while running ephemerally. The README documents the options and remaining configuration sources. A research report records evaluation results and limitations.

Changes: Codex evaluation

Layer / File(s) Summary
Codex runner options and documentation
evals/run.mjs, evals/README.md
The Codex invocation adds options to disable hooks, ignore user configuration and rules, and run ephemerally. The README notes that login still uses ~/.codex and global instruction files remain active.
Evaluation results
docs/research/2026-11-03-eval-after-route-rename.md
The report records tested versions and runs, the observed effects of user configuration, the isolated rerun results, remaining global-instruction exposure, and evaluation limitations.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related issues

  • YuqingNicole/variant-design-skill#18: The report records a real-project evaluation after the ROUTE.md rename, which provides partial evidence for artifact-specific validation.
  • YuqingNicole/variant-design-skill#24: The report records real Codex and Claude runs that verify skill discovery and use, supporting host-environment validation.
  • YuqingNicole/variant-design-skill#25: The report records a first-run prompt in a real Vite/React project and generated output after the route rename.

Possibly related PRs

Merge Risk: Low · previous review d9126

The isolation changes are mergeable with a bounded compatibility caveat: older Codex installations may fail evals. Documenting a compatible CLI version would make setup more reliable.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely identifies both main changes: isolating Codex from the runner's setup and recording the post-rename evaluation.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 1 files. (2 skipped: 2 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

A rabbit checked the flags at dawn,
Then watched the Codex hooks switch off.
The tests ran on, the notes were clear,
Global instructions still stayed near.
I tucked the report beneath my ear.

@coderabbitai coderabbitai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Fix comments: Fix CodeRabbit comments on this PR

Comment thread evals/run.mjs Resolved
…cked with

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@YuqingNicole
YuqingNicole merged commit 3e35326 into master Nov 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant