🦇
🦇
🦇
👻
👻
👻
01 / 11
🎃 Mason Haunted Kitchen
One order. Nine checks. Zero shortcuts.
Watch one dish get cooked. Then zoom out: helpers scan every lane, and a human checks that it all works.
🎃 Served 0 ↩️ Sent back 0 🏆 This week -
You asked for less motion, so the page is still.
🧾 An order rolls into lane 13
▼ step inside the kitchen
🕸️
🦇 Halloween edition · October 2026

A haunted kitchen of AI cooks serves tested software, day and night.

The Implementation Manager asks for a change in Slack, or a ticket lands in Linear. Mason brings it to the kitchen. That is an order 🧾. A crew of AI cooks preps it, cooks it, tastes it, times it, and serves it. Nothing leaves the kitchen until automatic inspectors say it is good. Humans make the meaningful decisions. AI does the chore work.

25+stations always cooking
20+specialist cooks
9quality checkpoints
24/7open hours
Level 1

01The journey of one order

Click each step. Every step has an owner, a proof it must show, and a rule for what happens when it fails. A dish only moves forward with proof, and only a tool can move it.

Level 2

02X-ray: Mason's own browser and his own kitchen

Mason has his own browser and his own private LOS. He replays the exact sandbox payload into it, so he tests with real data in seconds.

🌐 Test site - 🎥 Videos 0 📸 Screenshots 0 📡 Network calls 0
    🧾 Values check
    FieldOn the test siteIn the LOS
    📥 What Mason typed
    📤 What the dealer sees

    🧪 Example: the IM (Implementation Manager) asks for a bankruptcy test

    👩‍💼 IM: Mason, run an Equifax bankruptcy persona in RouteOne. Check the LOS decision, then decline it and check RouteOne.
      🏦 LOS · decision pageMason's private copy
      🚗 RouteOne test sitewhat the dealer sees
      🧾 Values check after the decline
      FieldIn the LOSIn RouteOne
      Level 3

      03Meet the crew

      Every cook has one job, its own tools, and a clear list of things it never does. The small grey name on each card is the real agent behind the costume.

      Watch them work together on one order. Each message flies from one cook to the next, and only the two cooks who talk light up. Humans make the meaningful decisions: what to cook, the answers to business questions, what ships. The AI crew does the chore work.

      🧾 Order - ✉️ Message 0 of 0 ↩️ Sent back 0 🍽️ Served 0
      Level 4

      04Which chef cooks it? Dynamic model routing

      Not every order needs the most expensive chef. The OpenAI Decisions API reads the order and picks a recipe size. A routing board then picks the AI model and how hard it should think for each step. Quota meters swap chefs when one runs low.

      🧾

      1 · Order in

      Mason brings orders from the Implementation Manager and from Linear: requests, tickets, bugs. Internal tasks too. All go through the same router.

      🔮

      2 · OpenAI Decisions API

      Sorts every order into no code small fix full chain. If it cannot answer, the head chef decides and writes the reason down.

      📋

      3 · Routing board

      A dashboard row says which model and effort to use per step, for example a strong model to build and a fast one for small fixes.

      📢

      4 · Route printed

      Every launch and every move prints one line, so anyone can see who cooks, how hard, and what comes next.

      T-455-REWORK-1 lane=36 host=wsl role=verify model=claude-sonnet-5-5 effort=xhigh class=full_chain now=verification next=perf plan=verification -> perf -> pr_cart -> publish -> merge -> staging

      🧭 Routing follows a state machine

      Routing is not a guess. Every dish has exactly one state, and the ticket graph lists the only legal moves out of it. The router asks the graph which roles may work next. Any other move is refused and printed. Some moves belong to humans only 👤: the plating check, the panel decision and the merge.

      Watch one dish walk the graph, or tap a state to print its valid next states. The real graph has more states (scoping, held and older ones); this is the main path.

      🟣 No code
      📋 answer→✅ done

      Questions, config, research. No kitchen station used.

      🔵 Small fix
      🔥 cook→👻 2nd chef→👅 taste→🛎️ serve

      One small change, lighter model, same inspectors.

      🟠 Full chain
      🔪 prep→🔥 cook→👻 2nd chef→🎨 plate→👅 taste→⏱️ timing→🛎️ serve→🍽️ check

      New features. Every inspector, every proof.

      🔄 Many Claude chefs, plus Codex

      The kitchen holds several Claude accounts and Codex. An hourly quota watch reads each one. Below 25% left = starving, new work prefers the other provider. Below 10% = disabled for routing. Back above 15% = recovered. Running cooks finish their dish; only new launches move. Labels stay generic (Claude 1, Claude 2), never account names.

      👻 The second chef is always from another kitchen

      If Claude cooked it, a GPT model reviews it. If GPT cooked it, Claude reviews it. Two different "palates" catch different mistakes. Unknown cook model = review refused, never a same-provider default.

      claude-opus-5-5 → reviewed by gpt-6.1-sol xhigh
      gpt-6.1-sol → reviewed by claude-opus-5-5 medium
      claude-sonnet-5-5 → reviewed by gpt-6-luna xhigh

      🧪 Every cook works in its own lab

      The head chef never launches a generic chatbot. Each cook starts in its own lab harness, set up for that one job.

      🧠
      Best model per step

      Claude Code or Codex, whichever cooks that step best. The routing board picks the model and how hard it thinks.

      🧰
      Only the tools it needs

      The second chef only reads and reviews. A cook cannot publish; only the publisher can. Each role gets a short tool list.

      📏
      Lean context

      Short role rules, compressed skills and a context budget. When the context gets big, the cook saves notes and starts fresh.

      🪝
      Event hooks

      Small scripts run at session start and before and after every tool call. They block unsafe moves, log every step and nudge the cook back on track.

      Level 5

      05Every step checks itself: built for AI self verification

      Every step in the kitchen is built so an AI cook can check its own work. A cook never just says "done". It runs a real check, saves the proof and prints one result line. If the check fails, the dish goes back with the exact reason, gets fixed and is checked again.

        🔍

        Every cook checks itself

        Each station ends with its own automatic check: a test run, a verdict script, a database query, a timing run. The cook does not decide that it is done. The check decides.

        🧾

        Proof, not promises

        Every pass leaves proof: test logs, a caught mutant, a verdict file, screenshots, database rows, a speed report. No proof means not done, even if the reply says "success".

        ↩️

        Fails come back with a reason

        A fail names the exact cause, for example mutant_survived or db_row_missing. The dish goes back to the cook who can fix it, and the same check runs again.

        🧪

        The checks are tested too

        Every check script has its own test and a mutant: a broken copy of the check that the test must catch. So a check can never quietly stop checking.

        🤖 Why this works for AI cooks

        • 📢One typed result line per step: impl-done, verify-pass, perf-fail, staging-pass. The head chef moves orders on these lines, not on long chat replies.
        • 🤖Same input, same answer. Checks are scripts, so two runs of the same dish give the same result.
        • 👻Fresh eyes. The second chef is a model from another AI company, so no cook grades its own homework alone.
        • 🏠Real proof. Each check runs on the cook's own station, with its own app copy and database, never on a shared or guessed result.
        Level 6

        06Automatic verification: the inspectors

        Two kinds of inspector work together. Machines run the same checks the same way every time. AI judges on the OpenAI Decisions API handle things that need reading and judgment. The rule: AI may suggest, but only a script can record a verdict, and the script refuses anything malformed.

        🔎 What each inspector testsThe card lights up when the dish reaches its gate.
        1. 🧪 Tests🤖 machine

          Does the code do what the order asks? The cook writes the tests first, then the code, plus one full browser test that clicks through the app like a person.

        2. 📐 Config🤖 machine

          Are the loan workflow files safe? It finds broken JSON, missing or duplicate IDs, unsafe handler files and steps that point to nothing.

        3. 🚫 No comments🤖 machine

          Is the code clear without notes? An added code comment blocks the dish. Good names and tests explain the intent.

        4. 🧬 Mutants🤖 machine

          Do the tests really test? A script breaks the fix on purpose. If the tests still pass, they are too weak and the dish goes back.

        5. 📝 Review🔮 AI judge

          Is it correct, easy to change and secure? A second chef reads the change with a checklist. The AI suggests; only the verdict script records.

        6. 🔬 Lean proof: formal verification📐 math proof + 🔮 AI score

          Is the money rule right for every possible input, not only for the test examples? Rules for fees, limits and eligibility are written as math theorems in Lean. A test checks a few cases; a proof covers all of them.

          theorem fee_le_cap : ∀ amount, fee amount ≤ cap

          "For any loan amount, the fee is never above the cap." Lake must build the proof at the exact code version. If the code has the cap off by one, the proof does not build and the dish goes back. Then the OpenAI Decisions API scores the result.

        7. 👅 Taste🧾 real proof

          Does it really work for a person? The taste tester proves every acceptance rule in a real browser on its own copy of the app, checks the database and saves screenshots, video and traces.

        🍲 Dishes inspected 0 🚨 Caught 0 🍽️ Served 0 🔖 Code version -

        ⚡ Fast checks first, paid questions last

        When a cook says done, plain LOS checks run first: config files, IDs, handler files, handler code, broken references, type imports and added comments. No AI, no cost, an answer in seconds. A fail goes straight back to the cook with the exact line.

        Only a dish that passes them gets questions from the OpenAI Decisions API: the code rules, plus questions for each core loan flow the change touched (decisioning, failed rules, stips, adverse actions, pricing, task flows, workflows). A fail in a hard flow sends the dish back. Answers are saved per code version, so the same version is never asked twice.

        ⚡ Fast check runs 0 🚨 Caught in seconds 0 🔮 Questions asked 0 💰 Paid runs skipped 0 🔖 Code version -
        ⚡ 1 · LOS checksno AI · seconds
          🔮 2 · OpenAI Decisions APIonly the flows the change touched
            🤖

            Deterministic checks

            same input, same answer
            • 🧪Tests first. Cooks write the test before the code, plus one full end-to-end browser test per order.
            • 📐Workflow config check. Validates loan workflow configs: broken JSON, missing or duplicate IDs, unsafe handler files, syntax errors, dangling references.
            • 🚫No sneaky comments. Added code comments block the dish. Names and tests explain intent.
            • 🔖Head-bound receipts. Every verdict names the exact code version. A new commit = the check runs again.
            • 🧱Blocker-only send-backs. A fail must name a class: AC not met, wrong behavior, red check, security, data loss, paid call. No nitpick loops.
            • 🚦Graph gates. Illegal moves are refused. A dish with a PR never goes back except after a staging failure.
            • 🧬Mutant tests. Every kitchen fix ships with a test and a deliberately broken copy of the fix. The test must catch the broken copy.
            🔮

            AI judges

            OpenAI Decisions API
            • ⚖️Route judge. Sorts every order: no code, small fix, full chain.
            • 👀15-minute glance. Reads all stations and flags stuck, silent or confused cooks so the head chef reads only those.
            • 📝Review checklist. The second chef checks correctness, maintainability, security, and tests that really test.
            • 🔬Formal proof with Lean validation. Logic-heavy rules (fees, limits, eligibility) are written as Lean theorems. Lake must build the proofs at the exact code version, then the OpenAI Decisions API scores the result.
            • 🏛️Arbiter. After 5 rounds without a pass, a judge reads the goals and the evidence and decides on business value: ship it or not.
            👅 Proof, not promises. The taste tester proves every acceptance criterion in a real browser on its own copy of the app, checks the database, and saves screenshots, video and traces. After deploy, a second tester proves it again on staging.
            Level 7

            07Rubber spiders and real ones: testing providers

            Loans talk to credit bureaus, dealer networks and pricing partners. Every provider adapter is proven against the real provider API (its test environment) on a lane, before it reaches staging. No AI guessing: endpoints, fields and test personas come from the provider's own docs and real answers. Anything unknown is flagged, never made up.

            🔌 No guessed APIs: the real API decides

            🔌 Real API calls 0 🤖 Guessed APIs caught 0 ✅ Adapters proven 0 🚫 Unproven at staging 0
              Endpoint
              🎭 Fake answertests the plumbing
              🔌 Real provider test APIthe only proof

              🎭 Fake providers

              every lane, by default

              By default every lane talks to fake providers, not real ones. The test picks the answer it needs, like a clean report or a sanctions hit, and the fake confirms which answer it sent.

              ✅ clean🚨 sanctions hit🐢 slow❌ declined

              A fake proves our side works. Only a real provider answer proves the integration.

              🔌 Real provider lanes

              written permission only

              To prove an integration works, a lane calls the provider's real test system. Only a lane whose ticket has written permission can do it. Logins come from the password vault and never show. Every real answer is saved.

              Test systems only, never live ones. Test people only, never real customers.

              🧛 Mason's real-scenario run

              own stack · own browser

              Mason has his own copy of the app with real providers allowed, and his own browser that stays logged in. He sees every request that comes in and every call that goes out, so he knows exactly what is going on. Provider traffic rides the Tailscale exit node, so it leaves from the approved Fuse address.

              He records the video and screenshots himself and posts the proof.

              📼 Record once, replay forever

              A real provider answer is saved as a new case in the mock registry. From then on, every mock lane can replay that exact answer in seconds, with no real call and no cost. Real lanes keep the fakes honest; mock lanes keep the kitchen fast.

              Level 8

              08The crypt behind the kitchen

              Good cooks need good stoves. These are the pieces that let 25 stations cook at once without bumping into each other.

                🏗️

                Provisioning

                new station in minutes

                Each station gets its own copy of the code, its own running app, database, test data and provider mocks, plus its own two browsers: Playwright clicks through the app like a person, and Chrome DevTools measures speed and every network call. A queue builds one station at a time per machine, so builds never fight. Real provider logins come from the vault, checked for parity.

                🔒

                Private lanes, real HTTPS

                NAT + wildcard SSL

                Lanes sit on internal IPs behind NAT. Private DNS points each lane name to the internal address, and the proxy serves it with the wildcard certificate. Only the LAN and Tailscale can reach it, so tests see real HTTPS without exposing anything.

                🚚

                Tailscale exit node

                the approved delivery truck

                Credit bureaus and dealer networks only accept traffic from approved addresses. Every provider test rides in one container that exits through the Fuse IP, never a laptop. "IP not allowed" = first check the truck.

                🪪

                Mason's own browser

                keeps its session

                Station browsers reset after each test. Mason has a separate browser that stays logged in to the admin tools and the app, so he can check, record videos and take screenshots any time.

                📈

                Grafana + Loki

                kitchen cameras

                Every station streams logs and CPU to Grafana. The detective reads logs to find the exact line of a bug. The photographer proves the log stream for each verified dish.

                🔐

                One address per station

                wildcard HTTPS

                Every station gets its own secure web address under one wildcard certificate, served by one shared web gateway.

                🧠

                Memory

                never ask twice

                Every decision, answer and root-cause fix is saved. Before anyone asks a question, the kitchen searches memory first. Found = apply it, no new question.

                🖥️

                Two kitchens, one menu

                Mac + WSL in sync

                A laptop and a big desktop both cook. Same scripts, same router, same gates. Any path that only exists on one machine is treated as a bug.

                📺

                Dashboard

                live board

                Every order, station and question shows live on a board. It accepts changes only from tools, so the board can never drift from reality.

                🔑

                Vault first

                secrets never shown

                Credentials come from the password vault and are used in place. They never appear in chat, logs, reports, commits or this page.

                Level 9

                09Staging: the automatic check, then a monkey in many hats

                Every merged change lands on staging, a shared copy of the app with made-up data only. First Chef's Check proves the change by itself. Then the Chaos Critic tries to break it on purpose: it puts on a hat, acts like that person, and lets a seeded monkey click around. People decide what happens with each finding.

                  🍽️ Automatic staging check

                  after every deploy

                  Chef's Check waits for the deploy, then opens only the screens the change touched. Every acceptance check needs proof: a screenshot with a numbered red box on what is new. A success reply alone never counts. A pass means staging-pass. A fail sends the dish back to the kitchen.

                  🐒 Monkey testing

                  seeded random

                  A monkey clicks, types and jumps between screens at random. A seed number controls the random choices, so the same seed gives the same steps. A bug found by chance can be shown again on purpose.

                  🎩 Exploratory testing in hats

                  Chaos Critic

                  Each run picks a hat, a person to act like: 😈 troublemaker, 🧑‍💼 loan officer, 🙋 applicant in a hurry, 🧾 underwriter, 📱 phone on a slow network, 🛠️ admin. Each hat looks for the problems that person would hit.

                  🗂️ Triage, not automatic tickets

                  people decide

                  Each finding gets its own EXP id, with screenshots of every step, what we expected and what happened. Mason posts it in the kitchen thread. No ticket is made automatically: people in triage decide.

                  Allowed test targets only, made-up data only, never production.

                  Level 10

                  10Chaos testing in custom lanes

                  Staging is shared, so nobody may flood it. For the hard tests Mason builds a custom lane only for chaos: its own copy of the app, database and fake providers. A load tool sends thousands of made-up users at once, and the chaos monkey switches providers off and on in the middle of the rush. Nothing may get lost, nothing may be sent twice, and the slowest 1 in 100 users must still get an answer in under 1 second.

                  🌪️ One chaos run, live

                  🧪 Chaos runs 0 🗂️ Findings to triage 0 ✅ Runs passed 0 🚫 Applications lost 0
                    answeredwaitingsent twice1 dot = 100 users
                    👥 Users at once0
                    ⏱️ Slowest 1 in 100…
                    📥 Waiting for a provider0
                    🔁 Sent twice0

                    🧪 Custom lanes

                    built for one test

                    A chaos lane is set up for one test. It has its own app, database and fake providers, so a crash there never touches the build lanes, staging or production.

                    📈 High load

                    thousands of users

                    A load tool acts like thousands of made-up users who apply at the same time. It grows step by step: 10, 100, 1,000, then 5,000. It measures how long the slowest 1 in 100 users waits.

                    🔌 Providers off and on

                    outage on purpose

                    In the middle of the rush the chaos monkey switches a provider off, like the credit bureau or the dealer network, then on again. Applications must wait and retry once. None may get lost or be sent twice.

                    🔁 Same seed, same chaos

                    proof of the fix

                    Each run has a seed number. After a fix, Mason runs the same seed again: the same users, the same switch at the same moment. Each finding gets an EXP id and goes to triage. People decide.

                    Custom lanes and made-up data only. Never production, never a real provider.

                    Level 11

                    11A glance at 20 lanes cooking at once

                    The desktop keeps 20 build lanes and 5 staging lanes working at all times. A lane only counts if a live cook is on it. Each lane is its own private copy of the app, database and browser, so nobody bumps into anyone. On the 5 staging tables each change gets Chef's check 🍽️, then exploratory testing 🎩 and monkey testing 🐒. Lanes live on internal IPs behind NAT, never open to the internet, yet each one gets real HTTPS names (app, API, database console) on the shared wildcard certificate, provisioned automatically.

                    🔥 Working 20/20 🍽️ Staging tables 5/5 🎃 Handoffs this minute 0 🔒 HTTPS 75 names · 🏠 NAT only 🎭 Mock lanes 0 🔌 Real provider lanes 0
                    Level 12

                    12Play a shift

                    A simulation of a real shift. Mason brings orders from the Implementation Manager and from Linear. The head witch sends each one to a free station. Inspectors send bad dishes back. On staging, Chef's Check proves each dish, then a tester in many hats 🎩 and a seeded monkey 🐒 look for surprises. Their findings go to triage, not back to the oven. Press Break a stove to see the kitchen fix itself.

                    🎃 Served 0 ↩️ Sent back 0 🗂️ To triage 0 🔥 Stations busy 0/25 🕛 20:00
                    Stations: 🍳 cooking · 👅 tasting on staging · 🎩 exploring in hats · 🐒 monkey testing · 💤 empty (gets refilled) · 💥 broken (infra crew on the way)
                    Haunted radio 📻 · press Start shift
                    Level 13

                    13Self-healing, self-improving and always moving

                    Kitchens break. Stoves go cold, a cook freezes, a delivery fails. Timers ring all night, and every ring means: find what is stuck and fix it now. The kitchen also improves itself: every piece of feedback for the agents is saved and ranked, and the top items become automatic fixes and new features, tested and live for every agent. A self-evolving harness.

                    🍳 Orders moving 25/25 🍽️ Served tonight 140 🩹 Fixes tonight 0

                    🧬 Self-improving: the harness evolves itself

                    📥 Feedback saved 0 🚀 Shipped automatically 0 🧬 Harness v1.36
                      🏆 Feedback, rankedhelps most and comes back most, on top
                        🚀 Shippedtested, live for every agent
                          👂15 sMason listens to the Implementation Manager
                          👀15 minAI glance at every station
                          ♻️15 minReclaim idle stations, refill empty ones
                          🔔30 minHead chef reminder: keep orders moving
                          📸1 hRead every station screen, no filters
                          ⬆️1 hUpdate the AI tools on both machines
                          🍽️3 hKitchen board posted in Slack

                          🚑 Healing playbook

                          Launch over 10 minutes: read the log, fix the cause, clear the lock, relaunch.
                          Station empty or idle: refill with the next order. The desktop keeps 20 cooking and 5 tasting at all times.
                          Cook frozen: an engine that stopped is "missing" even if its window is open. Relaunch the same tick.
                          Before removing a cook: save its last 100 lines and act on any unrecorded verdict first.
                          Failed deploy or red check: fix on sight. "Waiting for X" with no owner counts as an incomplete shift.
                          Stations are sticky: an order keeps its station from first cook until the pass cart. No reshuffling.

                          🛠️ Support crew and continuous improvement

                          🔧 Infra crew repairs stations: rebuilds stacks, checks credentials, swaps a broken station, frees disk. One task, then it leaves.

                          🛠️ Harness engineer improves the kitchen itself: scripts, gates, cook instructions. Every change comes with a real test and a mutant that must fail.

                          📚 Learnings board: the top 15 lessons each get an automatic check in the shift doctor. A failed check is a finding to fix the same turn.

                          🩺 Bootstrap doctor: at every shift start it checks routing, station floor, publisher count, tool versions and memory before any cooking.

                          feedback or error → saved and ranked → top item: fix or feature + test + mutant → live for every agent → new doctor check
                          Level 14

                          14What the team sees in Slack

                          Mason posts a kitchen board every morning and an update every 3 hours, with screenshots of every screen that changed. Times are in EST. ETAs come from the last 6 hours of real cooking times, not guesses. Emails are posted in Slack too, so Mason reads them. He is also proactive: he offers help nobody asked for, like adding a client's dealer list to the LOS, inviting a client user or testing a reported bug, waits for a person to say go, then does every part.

                          📋
                          Prep

                          Reading the order, asking questions.

                          🔥
                          In the oven

                          Being built and reviewed.

                          👅
                          Taste test

                          Being verified on its own copy of the app.

                          🛒
                          On the cart

                          Verified, bundled every hour into one deploy.

                          ✅
                          Served

                          Live on staging.

                          🧙
                          Chef's check

                          Proven again on staging.

                          🧊
                          Freezer

                          Blocked. Always with the question and lettered options a) b) c).

                          ↩️
                          Sent back

                          Failed a check with a named blocker. Back to its station.

                          Level 15

                          15The FDE's stream: only the changes that matter

                          Many changes reach the LOS every day, for many clients. The FDE does not read them all. Mason sorts every change and sends the FDE a stream of only the important ones: money math, credit rules, provider calls, database changes and who can see what. Each item says what changed and why it matters, so the FDE can review it and act at once: approve, ask a question or send it back. Routine changes, like text, colors and tests, are proven by the inspectors and only counted. So one FDE can look after more clients.

                          ⭐ The FDE's stream, live

                          📦 Changes to the LOS 0 ⭐ Sent to the FDE 0 🧹 Routine, only counted 0 🧑‍💻 FDE acted on 0
                          📦 Every changeall clients
                          🧹 Routine, proven by the inspectors: 0
                            ⭐ FDE streamonly what matters, newest first

                              ⭐ What is important

                              goes to the FDE

                              Money math, credit rules, provider calls, database changes and who can see what. A mistake there costs money or trust, so a person looks at it.

                              🧹 What is routine

                              only counted

                              Text, colors, tests and tidy-ups that do not change behavior. The inspectors already proved them, so they never fill the FDE's day.

                              🧾 Short items

                              plain words

                              Each item says which client, what changed, why it matters and the proof. The FDE reads one short item, not the whole code change.

                              🏢 More clients per FDE

                              focus

                              The FDE spends time only where a person adds value. The rest of the day goes to clients: calls, decisions and new work.