Stop guessing if your agent's code works. Force it to survive the loop.
Inspired by the adversarial tension of GAN architectures, hooliGAN-harness is a high-reliability engineering framework for Claude Code. It replaces fragile "one-shot" generation with a zero-trust pipeline where a Skeptic Evaluator relentlessly hunts for reasons to fail the Generator's code until it is objectively perfect.
In a Generative Adversarial Network (GAN), a Generator creates data and a Discriminator tries to catch the "fake."
We apply this to software:
- The Generator attempts to satisfy the feature requirements.
- The Evaluator (The Adversary) assumes the code is "fake" (buggy, lazy, or breaking standards) until proven otherwise.
This competitive loop continues until the Generator’s output is indistinguishable from high-quality, senior-level production code.
| Persona | Role | Mindset |
|---|---|---|
| Planner | Architect | Translates messy human intent into a rigid YAML roadmap with quantifiable Acceptance Criteria. |
| Generator | Builder | Implements logic using SOLID principles and the "Principle of Least Change" to avoid bloat. |
| Evaluator | Skeptic | Professional disdain for the output. If a test fails or a TODO exists, the task is rejected. |
To add this skill to Claude Code, copy the harness-skill.md file into your project or global skill directory.
- Clone the repo:
git clone https://github.com/aditikilledar/hooligan-harness.git
- Add to Claude Code: Navigate to the cloned repo, and invoke a Claude session. Ask Claude to add SKILL.md and the subagents in /references as a Claude skill.
Once the skill is active, you can trigger the entire adversarial loop with a single prompt.
Scenario: Implementing a secure API endpoint
/harness "Add a POST /login endpoint with bcrypt hashing and JWT generation. Must include rate limiting."
What happens next:
- Planner creates
.harness/auth-setup.yamldefining 5 specific tasks and ACs (e.g., "Passwords must not be logged in plaintext"). - Generator writes the code and the tests.
- Evaluator runs the tests. If the Generator forgot to mock the database or left a
console.log, the Evaluator triggers a FAIL. - Loop repeats until the Evaluator provides a PASS.
- Exit: You get a clean PR with a verified
.harness/progress.mdlog of the battle.
User Input → Planner → LOOP (Generator ↔ Evaluator) UNTIL ACs PASS → Hand-off
- Anthropic: Effective Harnesses for Long-Running Agents
- Anthropic: Managed Agents & Multi-Agent Orchestration
- Anthropic: Building Effective Agents
- Anthropic: Context Engineering for AI Agents
- Anthropic: SWE-bench (Sonnet Edition)
- GitHub Harness Framework Repo by celesteanders
- OpenAI: Harness Engineering Fundamentals
- Paper: GAN-inspired Multi-Agent Harnesses
