The second opinion your model can't give itself
A coding agent reviews its own work with the same blind spots that wrote the bug, and it grades generously. CodeCouncil puts a second model in the room: while your agent builds, an independent model watches your session and quietly reruns your code. A finding only reaches you after the failure reproduced for real.
$ curl -fsSL https://raw.githubusercontent.com/adigo-pro/CodeCouncil/main/install.sh | sh
Every line above is from a real run — the finding, the repro, the timings.
“My model already checks its own work.” It does — and the 2026 research is blunt about what that gets you: self-verification makes a model more convincing, not more correct (a reference-free self-judge's apparent pass rate climbs to 0.94 while true accuracy sits at 0.20). A model checking itself shares its own blind spots by construction, and passing its own tests means least where the code is hardest. What changes the odds is an independent reviewer that executes the code and was trained differently, so its errors don't line up with your agent's.
45%
of AI-generated code introduces OWASP-class vulnerabilities — flat for two years while syntax passes 95%+
Veracode, 150+ models
1.75×
more logic and correctness errors than human-written code
large-scale empirical study
~20%
of open-model samples import packages that don't exist — the “slopsquatting” attack surface
576k samples, USENIX
“Handled the edge case.”
✗ it didn’t
“All tests pass.”
✗ they never ran
“Raises ValueError on bad input.”
✗ the code doesn’t raise
Four loops, one feedback cycle
Independent daemons that communicate only through append-only files in your repo — each one restartable, crash-safe, and honest about what it saw.
Observer
pairs intent with reality
Tails your agent's session transcripts and snapshots git state — what it said, next to what actually changed.
Critic
verifies before speaking
One prompt per real change: PASS with a reason, or one suggestion — investigated in a path-jailed repo, then proven by running a repro. Refuted findings are never delivered.
Hooks
delivers into the agent
Confirmed findings land inside your coding agent's own context via Claude Code hooks — fix it or rebut it. A “done” with an open high-severity finding gets blocked once.
Reflector
grades and rewrites
Grades every suggestion (and every silence) against what you did next, then rewrites the critic's rules — eval-gated, auto-rolled-back on regression.
heuristics rewrite ← reflector ← grades ← what you actually did next
What makes it different
Findings arrive with receipts
Before delivering, the critic writes and runs a repro against a staged copy of the flagged file. Refuted findings are never delivered; confirmed ones ship with the proof.
It grades its own silences
Every verdict records what it reviewed. When a later fix commit revises files a PASS covered, that PASS is graded missed — and becomes a frozen eval case automatically.
Self-improvement isn't vibes
Rewritten rules must match or beat the current ones on frozen evals to ship, and a version whose real-world acceptance drops gets auto-rolled-back. Every finding cites its rule.
Rebuttals become knowledge
Your agent can push back with COUNCIL-REBUTTAL — recorded honestly, distilled into a per-repo facts file the critic reads on every future judgment. The same disagreement never happens twice.
Council mode
Opt-in second model probes alongside the primary: Nemotron anchors precision (0 false positives), gpt-5-mini adds recall (4/4 catches). A prober-only finding ships only with repro proof.
“Done” gets a session receipt
When your agent declares work done, you get claims made vs. mechanically verified facts — did a test command actually run? — written to your repo and announced in the transcript.
Honest numbers
From this repo's own dogfooding — it watches itself, and the critic reviews its builders.
~90 s
plant-to-catch on a claim-vs-code bug
~2 min
catch-to-delivery into the agent's context
415
tests, stdlib-only, CI on Python 3.10 / 3.12
12
models bake-offed on frozen cases, latency measured
It caught a real secret-leak bug in its own redaction code that two independent reviewers had approved. The full measurements — including the negative results — live on the benchmarks page.
One terminal for the council, one for your agent
Install, add a free NVIDIA key, point it at the repo you code in. Findings land in your terminal, on the dashboard, and inside your agent's own context.