Build notes · vibestats · chapter 2

Then the AI took over

The last twenty-odd releases of vibestats were shipped by Claude — planning, coding, testing, deploying, and grading its own work with a second, independent AI verifier.

Seth Goldstein · vibestats.io

The first chapter of this story ended with a product: vibestats, a privacy-preserving personality layer for Claude Code, built largely with Codex. It worked. Nobody came.

What happened next is the part I didn't expect to write: the last twenty-odd releases of vibestats were shipped by Claude — planning, coding, testing, deploying, and grading its own work with a second, independent AI verifier. My total contribution across those releases was four decisions and five DMs.

The diagnosis

It started with a question I asked Claude: why isn't this thing spreading? Instead of opinions, it ran a 53-agent review of the whole codebase and funnel, and came back with one sentence that hurt: "Every share path dead-ends at a shell command, and the one number people screenshot is fake."

The "top 2%" badge on my own share card was self-referential math — no population in it at all. And when someone clicked a shared card, they landed on… a curl command.

The loop

Fixing that list became an autonomous loop, and the loop is the actual story. Each goal ran the same way:

  1. A rubric file — pass/fail criteria written before any code.
  2. Implementation — code, tests, headless-browser verification.
  3. An independent grader — a separate AI agent, in a fresh context, re-runs every piece of evidence and tries to refute the work. Not "looks good to me" — adversarial re-execution.
  4. Deploy only on VERDICT: SATISFIED.

The graders caught real things: a temporal-dead-zone bug in the landing page, a prototype-pollution path in a privacy-critical allowlist, an OG image that would have shown "TOP 95%" to the most common users. One independent review (by a different model entirely) found that a crafted URL could imply a real user had an archetype they never revealed — fixed and erased before anyone hit it.

Models grade their own work badly. A verifier in an independent context window is a different animal.

That pattern comes straight from how Anthropic describes working with their newest models, and I can confirm it: this setup shipped things I'd have been afraid to let an agent ship alone — including changes to the privacy boundary that is this product's whole moat.

What it shipped while I slept

The honest part

The AI also made one real mistake: it committed an outreach list naming two unlisted users to this public repo. It caught the leak itself the next day while checking repo visibility, force-erased the commit, moved everything to a gitignored directory, and wrote itself a standing rule. I'm telling you because the failure mode and the recovery are both part of the truth of working this way.

Where it goes

The product thesis changed along the way, and the homepage with it: not "what kind of coder are you?" but "who would you build best with?" Claude Code already knows.


Try it: pick your type against mine and see our chemistry — no signup, nothing leaves your machine: vibestats.io

Terminal Party #1

Friday, June 19 · 3:00pm PT / 6:00pm ET · 90 minutes · online. Bring whatever you're building and code live alongside other Claude Code builders. Blind pairing reveals mid-party, two-minute demos at the end — and yes, the AI that shipped this product will be in the room.

Details & RSVP →