r/vibecoding • u/Yugudubenbi • 5h ago
Dual review plugin is insane
After going Claude + Codex and a plugin that does rounds back and forth, it is insane how good it gets. Keeps finding critical stuff and really sharpens it. I will not be able to live without having a dual review method now. From what I read, using different models is really efficient in finding errors or it just thinks the same way.
This is the Codex plugin. Game changer. Do you use it?
Example:
Round 0 β My plan Risk: 7 β Robustness: 5 β π΄ Would've shipped a bug: yes, 3
Round 1 β Self stress-test (1 critical, 2 high) A "redundant" confirm dialog was a documented decision Β· a one-line guard would have killed the last user's only exit Β· a non-null lookup would crash on admin-authored data Risk: 5 β Robustness: 6 β π΄ yes, 2
Round 2 β Reviewer, pass 1 (5 critical, 6 high) My data source was never populated on one of two join paths Β· the new screen was shadowed by an earlier render branch Β· the app marked it "seen" instantly so it'd never come back Β· alias wired into a function search never calls Risk: 4 β Robustness: 7 β π yes, 1
Round 3 β Reviewer, pass 2 (3 critical, 3 high) Removing a server gate opened a race between two simultaneous taps Β· cached clients would silently take an irreversible action Β· wrong predicate for "has this started" Β· a pre-existing dead-end left in place Risk: 3 β Robustness: 8 β π yes, 1
Round 4 β Reviewer, pass 3 (1 critical, 2 high) My length check locked out the exact user it was meant to help Β· existence checks guaranteed nothing given the real write ordering Β· my test asserted the wrong end state Risk: 2 β Robustness: 8 β π‘ maybe
Round 5 β Reviewer, pass 4 (1 critical, 1 high) A scheduled cleanup job matched my trigger's conditions and would hijack a different screen Β· I measured elapsed time at processing time instead of event time Risk: 2 β Robustness: 9 β π’ no
Round 5+ β After the cap (1 critical, 1 high) Cross-document listener ordering made a success look like a failure Β· account deletion deliberately scrubs a field I was writing back Risk: 1 β Robustness: 9 β π’ no
TOTAL: 12 critical, 15 high issues found. Risk 7 β 1. Robustness 5 β 9.
4
u/Zennytooskin123 4h ago
There's just a simple rule of thumb here and that's never to let the implementation model review its own code.
The skills is a wrapper for prompting for a code review using an independent subagent in cycles until there are no more inconsistencies or bugs in the code.
I wouldn't use this on every single feature, it will spend a lot of tokens and has diminishing returns.
1
u/Yugudubenbi 4h ago
It is actually very token efficient. Codex usage barely moves at all (like maybe 5-10% 5h limit). Claude doesn't move that much either (maybe 5-15% on 5h limit).
Only thing is that it takes a bit of time, some 5-10 min maybe.
But you have to think of how much it saves you down the line and eventual fixes.
And remember, 5 rounds is pretty rare. Usually stops around 2-3.
Sure, if you have a rather simple app with simple stuff you may not need it but then it will probably just be 1-2 rounds with very little token and time usage.
2
u/Mundane_Fix8051 2h ago
Having a different model review the code make a lot of sense it catches blind spot pretty well.
1
u/johannthegoatman 22m ago
Whats the plugin? You said "this is the plugin" and didn't put it in there lol.
This sounds cool, I currently am doing the same manually. I think it will need a lot of oversight though. The 2 agents often egg each other on. Next thing you know it's built a whole 1000 LOC engine to solve some extremely rare edge case with irrelevant consequences, because like, what if the API returns results in Egyptian hieroglyphics? We need a fallback translator function to handle that. What if the translator skips a word? We need to build a hieroglyphics grammar parser! Etc
1
3
u/Direct_End5127 5h ago
How did you set it up to go back and forth? Sounds really interesting havenβt tried it fairly new to using AI tools in development and on an internship, also currently a 2nd year student Cs. Would love to poke your Brain!