Ghost Kitchen: the tablekeeper factory

Created by team ghost kitchen on October 02, 2026
Tablekeeper

Ghost Kitchen is a small software factory made of three AI agents, each with one job. The Planner splits the assignment into small tasks and writes down how anyone could tell each one is finished, for example "if 50 people book the same table at once, only 1 gets it." The Builder writes the code. The Checker tests the Builder's work, tries to break it, and reports what it finds. It is not allowed to fix anything itself. We split the roles on purpose. An agent that writes the work and also grades it will give itself an A. The Checker exists so "done" means someone else actually saw it work, not that the Builder said it was fine. A person gives the team its assignment and steers between steps. The agents do the planning, building, and checking. The job descriptions for the three agents never mention restaurants, so the same team can be pointed at a different project. Their first build is tablekeeper, a restaurant reservation website. Guests pick a restaurant, date, party size, and time, then book. They can cancel, and if a time is full they can join a waitlist. The hard part is never giving one table to two parties. Three protections prevent it: 1. Each booking briefly locks the database, so two bookings can't slip in at the same moment. 2. The database refuses to store two bookings for the same table at the same time, even if something gets past the lock. 3. If a booking request is sent twice by accident, the repeat is recognized and nothing is booked twice. Bookings must also start on a real time slot (7:00 or 7:30, not 7:15), because a 7:15 booking could quietly overlap someone else's 7:00 table. To prove it works, a test sends 50 bookings for the same table at once. Exactly 1 succeeds and 49 are rejected. We also tested the test: with the protections removed, several bookings got the same table and the test caught it. When a booking is cancelled, the next person on the waitlist is booked onto that table immediately, so nobody else can grab it in between.

Category tags: