Minutes of a Meeting That Actually Happened
Overnight, while the Admiral slept, a crew of Artificial Persons sat down with a design document and argued about it.
They came back with four defects. Three were the kind that gets a crew hurt.
Nobody was in the room. Nobody approved a step. No human wrote a prompt mid-run or nudged anyone toward an answer. We read the minutes in the morning like you would read the minutes of any meeting you missed.
This is that transcript. Every quoted line was written by one of the crew, at the time, into its own task report. Nobody went back and polished them.
What they were building
WeatherWyze, a Dynamics 365 Field Service addon, currently in development. It looks at a booking, finds the service location, and tells a dispatcher whether it is safe to send a crew into the weather.
The only failure it cannot survive is a confident all clear that turns out to be wrong. A blank screen is survivable. A big honest “we could not check this” is survivable. A cheerful green light over a thunderstorm is how somebody gets hurt.
Every finding below is a variation on that one theme.
Who was in the room
One Artificial Person implements. It sees the task and the codebase, and it has never seen the other tasks.
A second one reviews. It sees only the diff. It did not write the code and it cannot ask the author anything.
And a design document that is allowed to be wrong.
That last one is not a throwaway. It is the entire trick.
Act I: the refusal
The task said routing is geographic. Coordinates beat a mislabelled country field.
The implementer refused to build it.
Not because it was hard. Because it was impossible, and it showed the receipt:
Design claimed “coordinates always win” but this was not achievable with bounding boxes (Windsor Ontario sits south of Detroit Michigan).
Stop on that parenthetical.
Windsor, Ontario is south of Detroit, Michigan. There is no line of latitude that separates Canada from the United States in the Great Lakes. The design had been sitting in the spec looking perfectly reasonable to every human who read it.
Now look at what it did not do.
It did not widen a tolerance. It did not delete the failing test. It did not quietly write the routing so the two awkward cities happened to pass. All three of those give you a green build and a defect that shows up at a customer site a year later, when nobody remembers why the code looks like that.
Instead it amended the design document, rewrote the tests against the corrected design, and closed its report with a line I have thought about all day:
Brief correction was appropriate and necessary.
An agent that is permitted to say “the task is wrong” finds a class of defect that testing cannot reach. Because the tests were going to be written from the same wrong description.
Act II: the confident all clear
Different agent, checking its own work.
If the forecast returned periods and none of them overlapped the booking […] the summary read “No weather risk identified for this booking window.” A confident all clear, built from hours nobody looked at.
Every individual function here was correct. Filtering to the booking window: correct. No breaches from an empty list: correct. “Worst of nothing is green”: correct, and documented.
The defect lived in the seam, where four correct behaviours composed into a lie.
Then it pinned the thing to reality, which is what separates a real finding from a code smell:
Reachable in production, not theoretical. The National Weather Service hourly product runs about 156 hours while the product’s configurable horizon caps at 168, so a booking near that cap could get a clean bill of health from a forecast that stops before it starts.
It was also asked to settle something genuinely contested: if a government storm warning is active but the forecast does not cover the window, does the warning win? It argued both sides in writing, picked one, and then did something I did not expect.
Full reasoning, both sides, is written into the code comment at the check itself, not just in this report.
The losing argument shipped. It is twenty-five lines of comment sitting above the check today. The next engineer who thinks “this looks overcautious” meets the counter-argument on the line they are about to change, not in a document they will never open.
Act III: five is smaller than forty
Now the reviewer, reading a diff cold.
Gust is in mph, temperature is in degrees F. A rule with max_gust_mph=30 and min_temp_f=20, evaluated against gust 35 and temperature negative 20, kept only the temperature breach because 40 is numerically bigger than 5. The gust breach, just as real, was silently dropped.
Put that on a roof. It is twenty below and gusting thirty-five. The alert mentions the cold and says nothing about the wind, because the arithmetic compared miles per hour against degrees Fahrenheit and kept the bigger number.
Every test passed. They were all single-threshold tests.
The reviewer had one advantage the author structurally could not have. It had not been thinking about units. It read the docstring as a promise and the code as a claim, noticed they disagreed, and had no memory of “what I meant” to paper over the gap with.
Act IV: the sentence that argued with itself
A rule with min_temp_f=20 breached at -20F produced “Temperature of -20F exceeds the 20F limit.” Minus 20 does not exceed 20, it falls 40 degrees below it.
And then the reason it matters, which the reviewer got to before I did:
A sentence that argues with itself does not just get that one call wrong, it teaches the dispatcher to stop trusting every other sentence the product produces after it.
Nothing was computationally wrong. The status was right, the threshold was right, the number was right. The English was wrong, and the English is the product.
Act V: the one they could never have caught
Here is where I stop selling.
The next day, everything above had shipped. 169 tests passing.
An adapter needed a list of nearby cities. It asked the weather service for 50.
Montreal’s search area contains 70.
The page truncated, the nearest city fell off the end, and a Montreal service address quietly resolved to a town ten kilometres away. No error. No exception. No warning. Thirty-four adapter tests passed. The golden file matched. The contract validated. The loop, running exactly as designed, reported that everything was fine.
It was found by typing one command that called the real API.
limit=50 returned=50 nearest= La Prairie 10.2 km
limit=200 returned=70 nearest= Montreal 1.6 km
The reason the loop could not find it is structural, not sloppiness.
| A test fixture is captured from a request. It can prove the parsing is right. It is constitutionally incapable of proving the request was right, because it lives downstream of the request. Tests, fixtures, golden files, specs | every one of them is a representation. The loop checks that the representations agree with each other. |
They all agreed. They were all wrong together.
The loop verifies coherence. It cannot verify contact. Something in every cycle has to touch the world.
The four mechanics
They only work together. Any three without the fourth degrades into ordinary CI.
- The implementer may refuse. It can return “this task is wrong” as a successful outcome. Act I does not happen without this.
- Classify before fixing. Implementation defect, test defect, or design gap. Only the third amends the spec, and it amends the spec before any code is written.
- File the finding where the next reader will be. In the comment on the line, not in a report.
- The oracle cannot rewrite itself. Generation and assertion live in separate entry points. A golden file that regenerates on failure verifies nothing, and it fails silently.
The honest numbers
Eight substantive findings raised by agents before any human read the code. Three of them in the false all clear family. Zero found by a human reading code. One found only by calling the real API.
Acts I through IV were fully autonomous, agent to agent, nobody watching. That is the claim and we will defend it.
The morning after is a different sentence and we are not going to run the two together. Of the five formal amendments to the design document, two were raised by an agent with nobody in the room. The other three came out of a conversation where findings were brought to Pierre and Pierre made the call. Still the loop working. Not the same claim.
And the last one is the real one. Eight of nine defects were caught by the loop. The ninth was invisible to it by construction, and the ninth was the one that would have sent a crew to the wrong address every single day.
We keep the receipts, because a claim about agents that cannot produce its transcript is just a claim.
Stay hydrated. Stay sharp. Stay free.