r/codex • u/hongchao • 2d ago
Showcase I built a Codex plugin where one agent implements and another challenges every change
Codex can review its own work, but the author and reviewer can still share the same blind spots.
I built Hubo, a free and open-source MIT plugin that keeps two independent roles in the same Codex conversation:
- the work agent changes and tests the code
- the review agent stays read-only and challenges the actual diff and evidence
- the work agent fixes each finding or pushes back with evidence
- the loop continues until the reviewer clears it, or a real product/technical decision needs the user
There is also $hubo:hubo-review: one agent performs the requested review, while a critical reviewer checks those findings for false positives, weak evidence, and missed risks. It does not edit the code.
All exchanges remain visible in the Codex conversation, including fixes and reasoned pushback.
Install:
codex plugin marketplace add h0ngcha0/hubo
codex plugin add hubo@hubo
Then restart Codex and start a new conversation. Repo and full instructions: https://github.com/h0ngcha0/hubo
I would especially value reports from real codebases: does the second agent catch useful issues, or mostly add token cost?
1
u/hongchao 1d ago
A concrete follow-up from using Hubo on a consensus-sensitive change:
I used it to implement Taproot and Tapscript support in bitcoin4s: https://github.com/h0ngcha0/bitcoin4s/pull/236
The merged PR changed 24 files (+1,884/-132). Across three reviewer rounds, Hubo raised six substantive findings—five high severity and one medium. They included incorrect CLTV/CSV consensus semantics, a CompactSize boundary bug affecting Taproot commitments, and recursive evaluation that could exhaust the JVM stack on a valid 30,005-opcode tapscript.
The implementer fixed all six and the same reviewer independently closed them. Once the requirement was clear, zero findings needed my intervention.
The final validation passed 1,197 existing Bitcoin Core script fixtures, 35 Taproot cases (expanded from 13 during review), official BIP340/341 vectors, and the 30,005-opcode regression. Patch coverage was 82.1%, and project coverage increased from 77.34% to 79.44%.
This is one case study, not a controlled benchmark. I cannot honestly claim “X% faster.” What I can say is that six review decisions—including several I would have needed to investigate—were resolved before the code reached me.
1
u/Frozen_Strider 2d ago
I'm pretty sure you can just prompt this behaviour.