Shared engine for multi-persona adversarial pipelines on Hermes Agent / Claude Code / Codex / any LLM CLI.
Powers adversarial-spec, adversarial-plan, adversarial-code-loop, and adversarial-code-review.
A Python package providing the hardened infra that all adversarial skills share:
runner.py— subprocess execution with temp-file IO, process-group kill on timeout, non-UTF-8 toleranceproviders.py— CLI provider detection (Claude, Codex, pi, agy, …), persona injection, role-based command resolutionjsonio.py— 3-strategy JSON extraction (markdown fences,{…}extraction,[…]extraction), artifact persistencegitops.py— git workflow: init, branch, commit, diff, stash, squash-merge, tag, reject-markersnapshot.py— dirty-tree baseline for sandbox write detectionpersonas/— 15+ adversarial persona files (builder, critic, fixer, verifier, judge, architect, inspector, synthesis, …)
| Feature | adversarial-common | standalone MAD libs |
|---|---|---|
| Git-native isolation | ✅ Branch-per-loop | ❌ |
| Multi-provider | ✅ Claude, Codex, pi, agy, … | ❌ One provider |
| Persona injection | ✅ Provider-aware (pi gets tool-based personas) | ❌ |
| JSON robustness | ✅ 3-strategy parser | ❌ Strict json.loads |
| Subprocess hardening | ✅ tempfile IO, killpg, UTF-8 replace | ❌ |
- Python ≥ 3.11
- PyYAML (for frontmatter parsing)
- Git ≥ 2.5 (for worktree support)
0BSD — see LICENSE.