Hackathon field report
2026 AI Engineer World's Fair Hackathon
submittedBuilt reSKILL solo at the AI Engineer World's Fair, a sealed replay gate for self-improving agents. A skill rewrite gets promoted only if it fixes the target failures without breaking a single held-out case.
Built solo at the 2026 AI Engineer World’s Fair Hackathon, run by Cerebral Valley at Shack15 in San Francisco, June 27 to 28. The theme was continual learning and self-improvement. I didn’t place.
The problem I chose
Self-improving agents promote their own edits. A rewrite that fixes today’s failure can quietly break last month’s safety case, and nothing checks. reSKILL is the thing that checks: AI that refuses its own bad edits.
What shipped
The test subject is a refund-dispute skill from short-term-rental guest ops. The gate scores the current skill and a candidate rewrite against development traces and held-out traces. It promotes only when the candidate fixes the target failures and regresses nothing held out.
The demo: a guest named William was charged a late-checkout fee the host had already approved. The overbroad rewrite, “always allow refunds for late checkouts,” fixes William and breaks both held-out safety cases. Rejected. The constrained rewrite, “only refund pre-approved late checkouts under $50,” goes 3 for 3 on development traces with zero regressions. Promoted.
Honest boundary: the test set is five traces, the gate is deterministic, and the browser demo replays a cached run. The real gate runs from the command line.
Toolset
- Node.js and Express: the gate, the speedrun harness and the demo server.
- Plain HTML, CSS and JS: a two-pane UI with a trace timeline and a diff view.
- Web Speech API: voice narration of the run.
- Gemini: the rewrite step, with 3.5 Flash as primary and 2.5 Flash as fallback. Built, but it landed on a branch after the main merge.
- MongoDB Atlas and MiniMax: provisioned and smoke-tested, never wired in.
What was hard
- The preview API. The plan centered on a Gemini managed agent, but it was a preview API that could 500 at demo time. I cut it and cached the spin-up.
- Concept churn. Conference concierge two days out, HealOps an hour into hacking, then reSKILL. The demo script never caught up.
- Sponsor tools stayed in the parking lot. Atlas had a cluster, MiniMax and Gemini had passing smoke tests, LiveKit credentials never came through. Only what fit the core story got wired.
- Faking the eval is tempting. The first prototype had a hardcoded “33% to 100%.” The shipped gate computes its numbers, but the browser still replays a cached run.
- The best part shipped late. The real Gemini rewrite and model grader were done 30 to 40 minutes after the main merge.
What I learned
- Put the verifier at the center of the story. The top teams led with hard ground truth.
- A cached demo spine is fine if it’s labeled and backed by live artifacts.
- Turn sponsor logos into architecture: model, memory, runtime, deployment, eval.
- Build a product surface, not just a backend loop. Second place had a live URL.
- Seed a trap case so the gate has something real to reject, and capture before you polish.