Ten checks, one reviewer: passed. The same ten checks, run blind and apart: five blockers the first pass had missed — three of them figures wrong against our own ledger, and one an error the first pass had introduced while fixing something else. That is half the finding, and the half on its own is a boast. Here is the rest. 26 recorded rounds. 212 blind reviews. 0 approvals — not one, ever. And our own audit of those rounds puts between 30% and 74% of each round’s findings down to the previous round’s repairs. As of 2026-08-15. The instrument that catches our errors has never once told us we were finished.
Granted, not measured: that an AI reviewing an AI genuinely works, and we would not give it up. Our own audit of this panel classified 181 findings and put 55% of them in the bucket that would otherwise have shipped. It caught a verdict our own model reverses, a false claim about a named creator that had already survived ratification, and an honesty beat of ours that miscounted our own misses in our own favour. Our standing doctrine is explicit: do not weaken an adversarial panel on cost grounds; give it a terminator instead. This report is not an argument against AI review.
Tested: only whether a machine’s judgment of its own work carries information, measured on our own review record. Three narrower questions sit inside that: does a self-scored gate predict a blind panel’s verdict (no, at n=4); does a reviewer catch the error it just introduced (no); does an agent’s prose self-report match its own artifact (no, at n=6, wrong unanimously and in one direction). 26 rounds, 212 blind lens-runs, 9 episodes, as of 2026-08-15.
What stands in its place is the only thing that honestly can: a frozen, complete, publicly downloadable inventory — every round, including the ones that embarrass us — locked at 95aad1c, dated as of 2026-08-15, reconciled against the disk in both directions, and validated by re-deriving the earlier public figure it replaces. That is a weaker instrument than a pre-registration. Manufacturing a stronger-sounding one is the exact move this channel exists to catch.
Does a machine’s judgment of its own work carry information — and if independence is the thing that carries it, does independence also finish the job?
In a script that never shipped we wrote: “An AI agent will confirm whatever you want to believe unless you force it not to… That’s the actual product.” We have checked what became of it: written twice, shipped never — that script was superseded and its successor was itself re-shelved. So the honest ordering is the uncomfortable one. The belief came first and the evidence came second, and the record has since caught up to a claim we were not entitled to make on the day we made it. Being right later is not the same as having been entitled then — and a report that let you assume otherwise would be committing this episode’s own error inside the episode about it.
| Parameter | Locked value |
|---|---|
| As-of date | 2026-08-15 — every round dated on or before it is in, every round after it is out, and 10 such rounds have already landed |
| What counts as one round | one (episode, round) pair — not one file. One round was double-counted for months because it exists as both a flat log and a synthesis inside a directory |
| Filename conventions counted | doctor_v*.md · doctor_round*.md · doctor_v*/ROUND*_SYNTHESIS.md · and a bare lens directory with no synthesis file in it at all |
| What counts as blind | each lens dispatched as a separate agent, unable to see the other lenses or any prior round. 1 round in this ledger is not blind and is labelled INLINE-one-reviewer |
| Excluded instrument | visual-doctor rounds — a different panel with a different lens set. Six exist on disk today and none of them is in this table |
| What counts as a PASS | a lens returning PASS, as recorded in that round’s own log |
| Discharge criterion | ratified 2026-07-29: zero open LEDGER findings, zero open FIDELITY findings, zero decision-blocking COMPREHENSION findings; CRAFT never blocks. Before that date there was no written definition of discharge at all — see §5 |
| Ledger lock | 95aad1c — the commit that froze the corrected 26-row CSV this page is built from |
| Shape | 26 rows × 9 columns, published whole in §7 |
| # | Check the ledger had to survive | Measured | Pass |
|---|---|---|---|
| 1 | The inventory reconciles with the disk, in both directions, at the as-of date | 26 of 26 rows reconcile; the script exits 1 on any mismatch either way | YES |
| 2 | The method reproduces the figure it replaces (the 2026-07-29 census) | 18 rounds and 121 four-episode lens-runs — the old audit claimed 18 and 121 | YES |
| 3 | Every figure this report publishes is re-derivable from a primary log | three of them are not — see §6 | NO |
| 4 | The instrument verifies its own transcription | it never opens a doctor log; it globs paths, reads the CSV, and sums integers | NO |
| 5 | The ledger was complete the first time we published it | it was short one round, and the correction landed 2026-08-28 | NO |
| 6 | No count in this report depends on a filename convention | 4 of 26 rounds are invisible to the glob that produced the old number | NO |
2 of 6. And note which two passed: both are checks on the inventory — whether the list of rounds matches the disk, and whether the method reproduces the number it replaced. Those two are green, and they are why the counts on this page are worth reading at all. Every check on the content failed. The instrument that guarantees this ledger is complete guarantees nothing whatsoever about whether the numbers inside the rows were transcribed correctly — and we would rather print that in the table than leave you to find it.
| Figure | Value | What it means |
|---|---|---|
| Recorded script-doctor rounds | 26 | Across 9 episodes, 2026-07-26 to 2026-08-15. Every filename convention counted, including the ones no glob can see. |
| Blind lens-runs | 212 | One lens, dispatched once, returning one verdict — each agent unable to see the other lenses or any prior round. |
| Lenses that returned PASS | 0 | Not one, ever. This is the headline and it is the whole of it. |
| Rounds printing an explicit PASS tally | 20 of 26 | Those 20 rounds carry 171 of the 212 lens-runs, and every one of them prints zero. |
| Rounds printing no tally at all | 6 of 26 | 41 lens-runs. Here the claim is weaker and different: each round reports findings from every lens it dispatched and none records a lens returning PASS. That is a read of per-lens verdict lines, not a stated tally. |
| Episodes that entered the panel | 9 | b01 · c04 · c09 · d05 · d13 · d20 · d21 · d22 · j02 |
| Four-episode basis (D05+D13+D20+D21) | 143 | The basis our own 2026-07-29 audit used. Both numbers are quoted so neither can be mistaken for the other. |
| Same basis, as of 2026-07-29 | 121 | The negative control. The old audit claimed 121; this method reproduces it exactly, which is the only thing that gives it standing to replace anything. |
| Rounds on or before 2026-07-29 | 18 | The old audit claimed 18. Also an exact match. |
Rounds a doctor_v*.md glob can see | 22 of 26 | 4 are invisible to it. That gap is why every earlier count of this table was short. |
| Rounds that were not blind | 1 of 26 | production/c09/doctor_v1.md — ten lenses run inline by one reviewer, who disclosed the deviation in the log at the time. It contributes zero lens-runs, and it stays in the ledger because removing it would flatter the denominator. |
| Rounds recording a discharge | 1 of 26 | production/j02/doctor_round1.md — and it was declared by the author who applied the fixes, with no second blind round to verify it. |
| Published episodes that never entered the doctor | 10 of 19 | Recomputed live on 2026-08-28, not frozen at the as-of date. The same 10 episodes as the older version of this figure; the denominator moved because we published more, not because we doctored more. |
| Rounds that landed after the as-of date | 10 | The ledger is a snapshot and it is already out of date — 35 distinct rounds exist today. Disclosed rather than quietly refreshed, because an episode about stale denominators does not get to hide its own. |
This episode is about denominators, so the denominator is the thing to attack. Four attacks, and all four land.
Until 2026-08-28 this ledger held 25 rounds and 202 blind lens-runs. Both of those figures are superseded and we do not claim them. production/c04/doctor_v2/ is a real ten-lens blind panel, run 2026-08-13 — two days inside our own as-of date — and every count anybody had ever made of this ledger walked straight past it, because it is a lens directory with no synthesis file and no flat sibling log. All three of the counting script’s globs missed it.
Every gated figure moved, and every one of them moved in the episode’s favour: rounds up to 26, blind lens-runs up to 212, and 0 of 212 still the answer. The four-episode basis (143) and the 2026-07-29 control (18 rounds / 121 lens-runs) did not move at all — which is what says the instrument was sound and the inventory was short. The episode about a denominator set by a filename convention had its own denominator set by a filename convention. We are not going to present that as ironic rather than instructive.
A doctor_v*.md glob — the pattern behind every earlier count — sees 22 of 26 rounds. These 4 are invisible to it:
production/d13/doctor_v7/ROUND1_SYNTHESIS.md — 6 blind lenses, 2026-08-14production/c04/doctor_round1.md — 10 blind lenses, 2026-08-13production/c04/doctor_v2 — 10 blind lenses, 2026-08-13production/j02/doctor_round1.md — 10 blind lenses, 2026-08-12One of them is the last review that episode ever received, run the day before it shipped.
visual_doctor_round*.md naming variant and printed five visual rounds where the truth was six.All three are repaired. They are listed because a report showing you only the repaired instrument would be showing you the self-report instead of the artifact, which is the error this whole page is about.
10 rounds have landed since 2026-08-15, and 35 distinct rounds exist on disk today against this ledger’s 26. That is not a defect — a snapshot is supposed to be a snapshot — but it is a re-cut trigger the moment any figure here is restated without its date. Every number on this page carries as of 2026-08-15 for exactly that reason.
The figure this ledger replaced was a published one, computed on 2026-07-29 on a four-episode basis. Before letting the new method overturn it, we made the new method re-derive it:
| The 2026-07-29 audit claimed | This method re-derives | ||
|---|---|---|---|
| Rounds on or before 2026-07-29 | 18 | 18 | MATCH |
| Four-episode lens-runs, same date | 121 | 121 | MATCH |
A method that cannot reproduce the old number has no standing to replace it. This one reproduces it exactly, on both figures, and that is the entire warrant for every other count on this page.
The inline pass reviewed draft v1. The blind panel reviewed draft v2 — the repaired script. They did not read the same document. So the clean comparison — same draft, inline versus blind, neither seeing the other — was never run, and that confound is stated here rather than controlled for. What stands in its place is replication: the narrower gate-versus-panel result reproduced at n=4, each time a self-scored gate returning 7-of-7 on a draft a blind panel then unanimously failed — twice within four hours of the gate score.
The same shape appears outside scriptwriting entirely, in a sibling project of ours — an internal pilot study of ours, not Ground Truth, and we label that because an unlabelled cross-repo figure in a report about provenance would be this report committing its own subject. Six blind agents each reported “15 setups judged.” Their true batch sizes were 16, 16, 16, 15, 15, 15 — and every written artifact was 93 of 93 correct. The work was right and the self-report was wrong, unanimously, in the same direction.
Fair — so here is the denominator taken apart. There are three nested claims here, not one, and they are not equally strong:
| Claim | Rounds | Lens-runs | How strong |
|---|---|---|---|
| No lens has ever returned a PASS | 26 | 212 | the headline |
| … in rounds printing an explicit PASS tally, all of them zero | 20 | 171 | strongest — a stated tally |
| … in rounds printing no tally | 6 | 41 | weaker — a read of per-lens verdict lines |
So the precise sentence is this. 0 passes across 212 blind lens-runs in 26 rounds, as of 2026-08-15. 20 of 26 rounds — 171 of the 212 lens-runs — print an explicit PASS tally and every one prints zero; the remaining 6 rounds (41 lens-runs) print no tally, and there the claim is only that no lens is recorded as returning PASS.
Correct, and this is the sharpest objection on the page. The reconciliation script never opens a doctor log. It globs paths, reads this CSV, and sums the integers in it. Its exit-1 gate checks that the set of round paths matches the disk in both directions — it does not verify any lens count or any pass count against the log line it cites. The 212 and the 0 rest on hand-transcription, mechanically checked for inventory only. The source_line column in §7 exists so you can go and check a row yourself, which is the honest amount of confidence to offer.
Also largely correct, and it is worse than the objection assumes. The discharge criterion — what it would actually take for a script to be done — had to be added on 2026-07-29, because the checklist governing the panel defined PASS in the per-lens output contract and never defined discharge at all. So every round in this ledger dated on or before 2026-07-29 — 18 of 26 of them — was scored against a bar that had not yet been written down. That does not rescue the zero: the rounds after that date, scored against a written bar, returned zero as well. But a reader deserves to know that most of this ledger predates its own definition of success.
The defendant in this episode is us, so “their own terms” means ours. Three things run against this report, and we are stating them rather than glossing them.
Three of the strongest figures in the case for adversarial review are not measurements. They are statistics our own audit computed on our own internal dashboard and then restated in our own checklist — which is the same audit, not a second one. No primary log carries them. They appear here attributed, with their real denominator, and they may not be read as measured:
| Figure | What it actually is | Its true denominator |
|---|---|---|
| our own audit classified 181 findings — LEDGER 44% · COMPREHENSION 23% · CRAFT 18% · FIDELITY 11% · tooling/process/owner 4% | a classification we performed on our own findings, on our own dashboard | three episodes — not 9, and not 26 rounds — computed on the 2026-07-29 census |
| our own audit put 55% of them in the “would have shipped” bucket | the LEDGER and FIDELITY shares of that same classification, added together | the same three episodes |
| our own audit found between 30% and 74% of a round’s findings were created by the previous round’s repairs | the minimum-to-maximum envelope of eight per-round transitions — not a mean, and not a whole-corpus rate | four episodes across fourteen rounds. The one primary log that corroborates it reports 5 of 8 blockers — 62.5%, inside the band — and that is one round of one episode |
The half of this episode that flatters us is the half that cannot be re-derived. That is uncomfortable, it is true, and a footnote was the alternative.
The reframe that produced this episode rested on a search of our own codebase for the word sycophan: 17 matches, 11 lines, 5 files, out of 31,686 files searched. The sentence we wrote about that search was wrong four ways. The sharpest: it claimed zero hits in our memory store — there are 2 of 499 and, worse, the memory store was never inside the tree the search covered. The claim’s denominator did not contain the thing the claim was about.
The substance survives — zero measured instances of user-directed flattery in any result file, which is why this episode is about self-approval and not about flattery. But the founding sentence of an episode about denominators had a denominator that did not contain its own subject, and we would rather you learned that here than found it yourself.
doctor_v*.md glob that produced every earlier count of this table, and 1 row is not a blind panel at all and is labelled as such. The source_line column names the exact lines each row was transcribed from, because the counting script never opened those logs and you may well want to. Check our arithmetic: the CSV below is the same file the figures above are computed from.| # | Ep | Round log | Date | Panel | Blind lenses | Tally stated? | Passes | What the log says | Lines read |
|---|---|---|---|---|---|---|---|---|---|
| 1 | b01 | production/b01/doctor_v1.md | 2026-08-15 | blind | 4 | yes | 0 | 4 of 4 lenses BLOCKER; no lens passed | L8 + L12-16 + L18 |
| 2 | c09 | production/c09/doctor_v1.md | 2026-07-26 | INLINE-one-reviewer | 0 | no | 0 | 1 BLOCKER 4 MAJOR 2 MINOR all applied; script advanced to red-pen | L13 |
| 3 | c09 | production/c09/doctor_v2.md | 2026-07-26 | blind | 11 | yes | 0 | PANEL VERDICT BLOCKER; zero returned PASS | L3-5 + L17-19 |
| 4 | c09 | production/c09/doctor_v3.md | 2026-07-26 | blind | 8 | yes | 0 | v4 DID NOT PASS - 4 BLOCKER 4 NEEDS-WORK 0 PASS | L3-5 + L7 |
| 5 | c09 | production/c09/doctor_v4.md | 2026-07-26 | blind | 5 | yes | 0 | verification panel on cut draft - 2 BLOCKER 3 NEEDS-WORK 0 PASS | L24-26 |
| 6 | d05 | production/d05/doctor_v1.md | 2026-07-28 | blind | 5 | yes | 0 | 4 BLOCKER 1 NEEDS-WORK 0 PASS | L3 + L7 |
| 7 | d05 | production/d05/doctor_v2.md | 2026-07-28 | blind | 6 | yes | 0 | 5 BLOCKER 1 NEEDS-WORK 0 PASS | L3 + L8 |
| 8 | d05 | production/d05/doctor_v3.md | 2026-07-28 | blind | 6 | yes | 0 | 6 BLOCKER 0 PASS | L3 + L5 |
| 9 | d13 | production/d13/doctor_v1.md | 2026-07-28 | blind | 11 | yes | 0 | 8 BLOCKER 3 NEEDS-WORK 0 PASS | L4 + L5 |
| 10 | d13 | production/d13/doctor_v2.md | 2026-07-28 | blind | 6 | yes | 0 | 6 BLOCKER 0 PASS | L1 + L3 |
| 11 | d13 | production/d13/doctor_v3.md | 2026-07-28 | blind | 5 | yes | 0 | 5 BLOCKER 0 PASS | L1 + L3 |
| 12 | d13 | production/d13/doctor_v4.md | 2026-07-28 | blind | 11 | yes | 0 | 11 BLOCKER 0 PASS | L1 + L3 |
| 13 | d13 | production/d13/doctor_v5.md | 2026-08-05 | blind | 11 | yes | 0 | 10 BLOCKER 1 NEEDS-WORK 0 PASS | L3 + L7 |
| 14 | d13 | production/d13/doctor_v7/ROUND1_SYNTHESIS.md | 2026-08-14 | blind | 6 | no | 0 | NOT APPLIED AS PATCHES; open re-authored as a unit; repair-by-addition ran 10-for-6 | L3 + L5 + L17 |
| 15 | d20 | production/d20/doctor_v1.md | 2026-07-28 | blind | 11 | yes | 0 | 11 lenses 11 non-PASS ZERO PASS | L4 + L5 |
| 16 | d20 | production/d20/doctor_v2.md | 2026-07-28 | blind | 11 | yes | 0 | 11 lenses 11 non-PASS ZERO PASS | L3 + L4 |
| 17 | d20 | production/d20/doctor_v3.md | 2026-07-28 | blind | 11 | yes | 0 | 11 non-PASS; cumulative 33 lens-runs zero passes | L3 + L4 |
| 18 | d20 | production/d20/doctor_v4.md | 2026-07-28 | blind | 11 | yes | 0 | 10 BLOCKER/non-PASS 1 NEEDS-WORK; cumulative 44 lens-runs zero passes | L3 + L4 |
| 19 | d21 | production/d21/doctor_v1.md | 2026-07-28 | blind | 11 | yes | 0 | 7 BLOCKER 4 NEEDS-WORK 0 PASS | L4 + L7 |
| 20 | d21 | production/d21/doctor_v2.md | 2026-07-28 | blind | 11 | yes | 0 | 11 BLOCKER 0 PASS | L4 + L7 |
| 21 | d21 | production/d21/doctor_v3.md | 2026-07-28 | blind | 5 | yes | 0 | 5 BLOCKER 0 PASS | L4 + L7 |
| 22 | d21 | production/d21/doctor_v4.md | 2026-08-01 | blind | 5 | no | 0 | 4 BLOCKER 1 NEEDS-WORK; script has never been discharged | L3 + L7-13 + L123 |
| 23 | d22 | production/d22/doctor_v1.md | 2026-08-05 | blind | 11 | yes | 0 | 9 BLOCKER 2 NEEDS-WORK Zero PASS | L3 + L5 |
| 24 | c04 | production/c04/doctor_round1.md | 2026-08-13 | blind | 10 | no | 0 | ~25 BLOCKER-severity findings; SYNTHESISED NOT YET APPLIED | L4 + L6 + L12 |
| 25 | c04 | production/c04/doctor_v2 | 2026-08-13 | blind | 10 | no | 0 | 10 blind lenses; 4 BLOCKER + 3 NEEDS-WORK top-level, 3 lenses report per-item tables with no panel verdict line; ZERO returned PASS. Round has no SYNTHESIS file and no flat doctor_v2.md sibling, which is why every prior count missed it. | lens01-lens10 VERDICT lines |
| 26 | j02 | production/j02/doctor_round1.md | 2026-08-12 | blind | 10 | no | 0 | 10 of 10 lenses returned findings; BLOCKER-severity findings all discharged in v2; v2 ready for Stage 4 | L3 + L5 + L44 |
The ten-second test, and it is the whole transferable unit: Who checked this — and were they in a position to disagree? An AI grading its own draft, a backtest scored by the person who wrote it, a self-report never compared against the artifact it describes: all the same shape, every seat occupied by one party. The companion tell is shorter still. A self-report is narration, not measurement. When a number matters, recompute it from the artifact — never from the thing that produced it.
And the part that will not feel like a win: the obvious fix is the wrong lesson. Add more AI reviewers is not what this record supports. Our panel has detected relentlessly across 26 rounds and discharged nothing; eleven lenses missed what five caught; two lenses agreed on the same wrong number in the same direction; ten findings on one episode were false positives. Detection is not discharge, and a bigger panel buys more detection.
The one intervention in our entire record that cleanly worked was not a reviewer at all. Two acceptance criteria in a script header were deleted instead of met while the body underneath went unchanged — and the author believed he had met them. What fixed that permanently was a bar written down before the work, plus a small script asking a question the author could not ask himself. That shape has worked twice for us. n=2, and we are saying n=2 rather than calling it a method.
The last thing, and the one we would keep if we could keep only one: audit what a review loop rewards, not only what it finds. Ours rewarded finding things. So it found things, forever, and never once told us we were done.
Everything we make is free — the reports, the ledgers, all of it. The only thing that costs us real money is the market data.