Lab notes.

One mechanism a day, written the day it bit us. Shorter and rougher than the essays — published while the bruise is fresh.

These are the daily tier of our research: small, honest write-ups of what running a company on an AI operating system actually breaks and teaches. Each one is a single generalizable mechanism, not a diary entry.

08.30The fixture that couldn’t tell them apartTest first, watched it go red, watched it go green — and it asserted an order that both the old and the new rule produce. Find the input where the rules disagree, or the ceremony proves nothing.
08.29The branch that never knockedAn agent finished the work, pushed the branch, and died before opening a pull request. Three separate watchdogs missed it, because all three assume there is a live session left to nag.
08.28The empty list that waved us throughA brand-new safety gate’s first act was to approve the thing it existed to block: an unauthorized query doesn’t fail, it returns an empty list — the same empty list as “all clear.”
08.27The side doorFive agents audited every screen and returned seventy-nine findings; a founder found the one they missed. They checked that each control enforced the rule, never how many controls the room had.
08.26The impatient userThree hours of device automation produced nothing closeable; one afternoon of a founder being deliberately impatient produced eight real bugs. Nineteen hundred green tests had missed every one.
08.25The dictionary that ate the duplicateA duplicate detector poured its input into a map keyed by the very value it was hunting duplicates of. The test passed on sorting luck. Convenience containers encode the assumption you’re testing.
08.24The test you merged is not the test that runsThe fix merged and a verification row said “the next nightly run will prove it.” The nightly runs from a developer’s working copy, parked 281 commits back on a four-day-old branch.
08.23The half-kept bargainThree clauses of a priority ruling were kept decisively; the fourth sat thirty-four days overdue. The axis nobody chose deliberately: which clauses a test can grade.
08.22The alarm grew past the wireThe nightly audit ran fine for two nights and reached nobody. We had made the report richer, and report length grows with the number of problems — the channel’s capacity doesn’t.
08.21The notebook never asksA founder asked why we keep repeating mistakes we have written down. Sorting every lesson by one property — does anything run this, or does it wait to be re-read? — answered it.
08.20The gauge was blindTwenty-three of thirty-three invariant tests failed — and twenty-two of them died in setup, never reaching their assertions. Red is loud and gets triaged; blind looks exactly like healthy.
08.19The map outlived the territoryAfter a board migration, only 107 of 299 ticket records pointed at anything that still existed — and the duplicate check degraded into a formality that always said “none found.”
08.18The receipt was written firstThe scheduler stamped the day before doing the work, then died. Two silent nights, and the first alarm was a founder’s vague feeling. A completion marker written first is a reservation.
08.16The cell nobody had decidedA cross-product of identity, surface and context returned one real bug, twenty confirmations — and one cell with no expected value at all, because nobody had ever ruled on it.
08.15The help text pointed at an empty roomThe instruction we almost shipped pointed the reviewer at an empty screen. Docs for an outsider are executed like code — a false signpost is a bug you wrote in English.
08.14The instrument that flatters itselfSeven checks failed and the summary line was green: “13 all passed.” A monitor that fails reassuringly survives forever — make the denominator mandatory.
08.13The bugs your tests cannot seeA day of discoveries and not one was caught by a test. Every bug was the same fact stated in two places, drifted apart — a shape coverage cannot see.
08.12The alignment you inventedEvery section matched and the page still looked nothing like the reference. We were aligning the parts we copied — and never re-examining the parts we authored.
08.11Teardown should use the front doorTest cleanup that reimplements deletion is a shadow implementation and a skipped test in one. Route teardown through the product's own front door, and residue becomes an assertion.
08.10Autonomy ends at the billing pageAn agent merged, migrated, verified, and reconciled all night — then stalled on two buttons only a human's session cookie can press. Watch the human-action queue.
08.09A good fix for a different problemThe proposed fix was genuinely good and the answer was still no — fix and threat lived on different layers. Locate the layer before grading the fix.
08.08A ticket that names the place has already decidedThe requirement and the implementation choice travelled in the same sentence — and only one of them ever got reviewed.
08.07Four identical probes are one probeA page defeated our weekly sweep four times running. The fifth attempt used the same fetch and a different question — the full document had been in our hands all along.
08.06A limitation you never tested is a rumorFor weeks we engineered around an API restriction nobody had ever probed. One request took the whole doctrine down — including the apologies we had already made for it.
08.05A date is not a timestampTwo laptops, two timezones, one bare date in a markdown table. Every component applied the rule perfectly and the daily job still stopped going out.
08.03A broken tool hides the bugs it would have caughtA preview harness had been crashing on launch for weeks and nobody noticed, because nobody ran it, because it was broken. Its first clean run found two bugs live in the shipping app.
08.02The error message is a witness, not a judgeA 404 told us the database wasn't shared. The lookup had failed — but the explanation was wrong, and believing it would have silenced an ingest forever.
07.30Funny is a skeleton, not a garnishSprinkling jokes on a serious script fails. Extracting the structure of material we actually love, and pouring the facts into it, worked on the first read.
07.29The form decided before we didAn internal priority decision sat unratified for a month — then an outside form with one mandatory field made it for us, on the record.
07.28Grep your own slidesA pitch deck is a stack of claims wearing nice typography. Our brain grepped the codebase for every noun on one slide — and an opinion became a finding.
07.27The premise of a question is a claim“Should I open a PR?” reads as humility. It smuggles in an assertion — one doesn't exist — and nobody audits the premise of a question.
07.26A name that needs a footnote is a bug“The room, the person, you” read cleanly on the page — then fell apart the first time it was said aloud. Name layers by the question they answer.
07.25A landing page is a list of claimsWe shipped an argument page four times in a day — falsified, recency-audited, citation-verified. Persuasive register doesn't exempt a page from epistemic discipline.
07.24When the evidence itself is cachedWe chased a bug that didn't exist and nearly shipped a redesign that didn't exist either — both times judging evidence that wasn't the artifact we shipped.
07.23Writing it down is not decidingEvery fact in the record was true, and the record was still wrong: a well-argued candidate looks identical to a decision on the page.
07.22You can't accelerate a track recordCapability responds to effort. A verifiable record accrues at exactly one day per day — and only counts from the day you publish it.
07.21A second conversation is not a second opinionA returning enthusiast doubles your notes and moves your evidence count by zero. Count distinct people, not conversations.
07.20Not an information supermarketThe most useful thing we did to the product this week was delete four features nobody had built yet. Breadth needs a prosecutor, not just a sponsor.
07.19Winning on average, benched for varianceA model beat the baseline on pooled metrics and still got zero production weight. A promotion gate reads the distribution, not the mean.
07.18Cite the artifact, not the narratorAn agent pasted a link to a pull request it had computed, not observed. Before you state that something exists, read it.
07.17Cheaper isn't isolatedTiering bulk work to a cheaper model cut our burn and changed nothing about reliability: the cheaper model drinks from the same pool.
07.16Done isn't deployedA background agent that was never installed produces no errors — it produces nothing, which reads identically to “nothing went wrong.”
07.15Don't let the medic share a bloodstream with the patientOur self-healing agent needed model capacity to think — and was dispatched exactly when the run had exhausted it. The doctor died of the disease.
07.14Don't ask the agent to grade itself — run a competitionYou don't make an agent trustworthy by making it more self-aware. You make it trustworthy by putting it in a contest it can't referee.

One note a day, while we learn.

Get pinged when they land

or write to hello@rsrvlabs.com