.claude/agents/security-guard.md
- Role
- Security reviewer
- Tools
- Read, Search, Shell
- Output
- findings-v1
One agent role, three independent reviewers
Built to find out whether independent agents on separate model CLIs produce a review worth reading. They do. I am not developing it further for now — it is here for what it explored, and it still runs.
Paused, not brokenI stopped looking for the best model. I look for models that fail differently.
Independent first. Adversarial after.
| Grok | Codex | Claude | Judge | |
|---|---|---|---|---|
| Round 1 Independent audit | G-01 authorization boundary — src/auth.py:84 | C-01 retry race — tests/retry_test.py:112 | A-01 validation gap — src/validate.py:57 | — |
| Round 2 Cross-critique | C-01 Keep tests/retry_test.py:112 A-01 Adopt src/validate.py:57 G-02 New src/rate_limit.py:33 | G-01 Keep src/auth.py:84 A-01 Withdraw src/validate.py:57 C-02 New src/backoff.py:21 | G-01 Keep src/auth.py:84 C-01 Adopt tests/retry_test.py:112 A-02 New src/parse.py:91 | — |
| Round 3 Movement check | positions changed: 2 continue: yes | positions changed: 2 continue: yes | positions changed: 1 continue: yes | — |
| Round 4 Convergence check | positions changed: 0 converged: stop | positions changed: 0 converged: stop | positions changed: 0 converged: stop | G-01 Verified C-01 Verified A-02 Rejected G-02 Merged C-02 Verified |
Illustrative run. Only findings that survive code verification reach the score.
| Verified | Adopted | Withdrawn | Score | |
|---|---|---|---|---|
| Grok | 6 | 2 | 1 | 7 |
| Codex | 7 | 2 | 1 | 8 |
| Claude | 5 | 1 | 2 | 3 |
Each model inspects the codebase alone.
Exchange claims and apply statuses: keep, withdraw, adopt, new.
Engine repeats rounds until positions stop moving.
Judge checks real files and marks outcomes: verified, rejected, merged.
Scoreboard includes only verified findings.
The scoreboard counts only what survived verification.
core.py never learns about a specific model: it normalizes your agent into a portable form, maps its tools onto a neutral capability vocabulary, and each adapter maps those onto its CLI's own tool names. Tools with no mapping are reported, never silently dropped. Adding a CLI is one adapter file; the core changes only for new features. Every spawned process starts in its own group and dies as a tree, no orphans.findings-v1: file, line, severity from critical to low, category, description and a proposed fix. Cross-model findings stay unverified claims until the judge confirms them against the real files, and the scoreboard only counts what survived that check./plugin marketplace add serdardb/multi-agent