Zero lines of human code. Not zero engineering.
GaemGhost directs this project; the AI types the code. Three different AI harnesses — running different frontier models — implement it, review each other's work, and audit the whole thing at every milestone. The human's job is product intent, decisions, live testing, and the final "yes, merge it".
The cast
| Agent | Role on this project |
|---|---|
| Hermes (GLM-5.2) | Implementation — built the corpus lifecycle, Sources viewer, codex, and this V2 showcase. Remediated the first full audit. |
| Codex (GPT-5.6-sol) | Implementation & independent review — built ingestion, adapters, and all of hybrid retrieval |
| Claude Code (Claude-Fable-5) | Independent audits, wave-boundary reviews, roadmap design, decision records, and the V1 showcase |
| GaemGhost (the only human) | Product direction, trade-off decisions, spoiler/privacy policy, live play-testing, merge authorization |
Every pull request and review names its harness and model — "coded by AI" is too vague to be accountable, so accountability is a written standard in the repo.
The loop that keeps AI code honest
1 · Decide before coding
Every design fork gets answered on the GitHub issue before implementation — inventory limits, deletion semantics, spoiler defaults. Agents can't silently pick; deviations must be flagged on the record.
2 · Tests first
Test-driven development isn't ceremony here — it stops an AI from writing tests that merely agree with its own code. The spec is encoded before the implementation exists. 457 tests and counting.
3 · Cross-model review
A different AI reviews the exact commit — and then, for risky changes, a third one attacks it. Any code change makes earlier reviews stale. No self-grading.
4 · Wave-boundary audits
At every milestone, an independent audit re-attacks the whole system with fresh reproductions — not by re-running the tests, but by trying to break it the way reality would.
Receipts: bugs the process actually caught
All of these passed hundreds of tests and at least one clean AI review before an independent audit reproduced them:
Running the tests wrote fake "Torment" notes into the actual campaign file — 193 times over the project's history. Found by counting them. Fixed with hard test isolation the same week.
The migration passed all 324 tests — because the test faked the old database with new code. Rebuilding a real old database from the shipped schema made it fail instantly. Rule since then: migration tests must use the frozen, actually-shipped schema.
Delete a page, research the same page again, restart → the integrity validator refused to open the database, forever. Ordinary user flow, zero test coverage. Now it's a typed, tested refusal.
The fix for the bug above interacted with the new ingestion wizard: honoring a deletion crashed the job queue. Cross-slice interactions are why boundary audits exist.
Zero findings — and the retrieval benchmark gate kept hybrid search disabled because it missed its latency budget. The process didn't just catch bugs; it declined to ship something mediocre.
Cross-slice boundary audit found five medium findings around codex evidence-loss, Recall reconciliation, and platform-import authority. Remediation PR is open, CI passing, pending final review.
Numbers, because friends ask
What this project is — and isn't
It is
A personal tool that runs 100% locally, a working example of multi-agent AI software engineering with real quality gates, and honestly, a very good gaming companion already.
It isn't
A product. Nobody else can use it, there's no installer, no cloud, no accounts, no telemetry leaving the machine — and no plans to change that. This is a hobby with unusually strict code review.
This showcase
Two versions exist, both 100% AI-generated:
V1 — by Claude Code (Claude-Fable-5)
The original showcase. Faithful HTML re-renders of the widget with simulated data. Still available at /v1/.
V2 — by Hermes (GLM-5.2) on Featherless
This version. Mobile-friendly, working drawer demos, real Torment screenshots from the Recall DB, and proper AI attribution throughout. Built as a springboard for future UI decisions.