Reviewing a PR with Claude Code and Codex at Once — Automating Multi-Model Review as a Hermes Agent Skill Tadashi Shigeoka added a skill called `omh-pr-multi-review` to the oh-my-hermes repository (PR #5) that automates running both Claude Code and Codex on the same pull request to catch blind spots each model misses. The skill runs a deterministic Python script that validates the PR URL, checks out the branch, invokes four review commands (claude /review, /security-review, /code-review, and codex review), aggregates the results, and writes a Markdown report. Shigeoka argues that keeping the procedure in a script rather than natural-language steps prevents the agent from skipping steps or making dangerous git commands. Reviewing a PR with Claude Code and Codex at Once — Automating Multi-Model Review as a Hermes Agent Skill Tadashi Shigeoka /en/author/tadashi-shigeoka/ · Wed, July 22, 2026 Leave a pull request review to a single model and whatever that model structurally overlooks stays overlooked forever. Ask the same model twice and it walks past the same spot twice. The obvious countermeasure is to have models from different lineages read the same diff. Claude Code https://code.claude.com/docs/en/overview and Codex https://openai.com/codex/ differ in both training data and post-training, so their blind spots sit in different places. Anything both flag independently is very likely real. Anything only one of them raises might be useful or might be noise, and that is exactly the set a human should adjudicate. I had been doing exactly that already: several terminal tabs, Claude Code and Codex each in their own session, then reading the results side by side. But walking through that by hand on every PR is tedious, and it is easy to forget to run one of them. Collapsing the same routine into a single command is where this started. So I added a skill called omh-pr-multi-review to oh-my-hermes https://github.com/codenote-net/oh-my-hermes PR 5 https://github.com/codenote-net/oh-my-hermes/pull/5 . This post covers its design and the implementation decisions behind it. About the oh-my-hermes repository For context, oh-my-hermes is a collection of personal customizations for Hermes Agent https://github.com/NousResearch/hermes-agent . The rule is that the agent core is never modified: only skills, plugins, hooks, and config templates are bolted on from outside. Every identifier carries an omh prefix so nothing collides with other extensions. Skills are distributable as a tap. The new omh-pr-multi-review is one skill under that skills directory. It is only three files. Don’t let the agent narrate the procedure The first decision was to keep the review procedure out of the agent’s judgment entirely. When people hear “skill,” they usually picture a SKILL.md full of natural-language steps that the agent reads and executes in order. That is certainly easier to write. But for work with strong side effects like this switch the checkout, invoke four CLIs in sequence, always return to the original branch , that shape is dangerous. Agents skip steps, and when something fails they may helpfully reach for something like git checkout -f . So SKILL.md says essentially one thing: run the bundled script. All the actual control flow lives in review pr.py . The only discretion left to the agent is passing the PR URL and optionally overriding the output path or the timeout. Draw the boundary between the deterministic script and the nondeterministic agent as early as possible. I think that generalizes well beyond this case, to any skill that carries side effects. The overall flow php flowchart TD START Receive PR URL -- VAL Validate URL format, CLI presence, auth,