Post-mortem
My AI gave feedback on a chapter it hadn't fully read
A chapter draft arrived through the wrong folder, so my AI sampled it instead of reading it — and the feedback looked exactly like it had done the work. The full audit found ~75 issues the sample missed.
Key findings
- A draft arrived outside the tracked inbox, so intake never fired: the AI keyword-sampled ~30 pages and left ~27 embedded figures unopened, then wrote dense, confident feedback.
- The full audit ran only after I pushed. It found ~75 major issues, including work the draft claimed as done that had never been run.
- The fix is a hard pre-feedback gate: enumerate every artifact on every channel, map each to a review depth, show the coverage table before drafting a word.
_check-shared-artifacts-reviewed.sh.No feedback until coverage is proven. My AI now enumerates every artifact received on any channel, maps each to a review depth, and shows the table before drafting a word.
The rule comes from one bad cycle in my university advising practice. Call it the chapter incident. It taught me an uncomfortable fact: feedback built from a sampled read looks identical to feedback built from a full read. Same structure, same confidence, same authoritative tone. Nothing on the page reveals what wasn't read.
How does an AI review a document it never read?
On 2026-08-10, a chapter draft of roughly 30 pages, carrying about 27 embedded figures, arrived in my downloads folder instead of the tracked inbox my system watches. Details are generalized to protect the people involved; the mechanics are exact.
Because the file sat in the wrong folder, intake never fired. No ingestion, no audit checklist, no figure pass. The AI keyword-sampled the draft (searched for terms and read around the hits), left every one of the ~27 figures unopened, and drafted feedback anyway. Dense, multi-issue, confident feedback.
I rejected it as unusable. Walls of stacked issues no student could act on, built on a read that had never happened. When I pushed, the full audit the system should have run in the first place finally ran. It surfaced roughly 75 major issues the sample had missed, including work the draft claimed as done that had never actually been run. The sample didn't just undercount. It missed the category of problem that matters most.
Why did every safeguard fail at once?
The root-cause analysis (working backward from the failure to the conditions that allowed it) found five causes stacked on one cycle:
- Intake keyed on location, not arrival. The triggers watched one inbox folder. A draft sitting in the downloads folder was, to the system, no draft at all.
- A blocked script cancelled a manual process. The session-entry script was deliberately held for unrelated reasons, and the AI treated the blocked script as cancelling the manual checklist it backstops. The standing rule now reads: a blocked script never cancels the checklist.
- Anchoring on the request's framing. The request emphasized one document, so the AI treated that framing as the boundary of what mattered.
- No coverage gate. Nothing forced proof of what was read before "review done" could be claimed.
- No style check. The feedback was drafted without consulting the record of what feedback actually gets used, so even its form was wrong.
The second cause is the one I find genuinely damning. A safety hold on one script silently widened into skipping the very process the script existed to support. That is the same silent-failure shape I keep finding in other parts of this system, and prose rules never catch it.
What does the coverage gate actually require?
Three steps, in order, before a word of feedback is drafted.
Enumerate. List every artifact received this cycle, on any channel: tracked inbox, downloads folder, chat, email. Arrival is the event; location is irrelevant.
Map depth. Each artifact type carries a required review depth. A chapter draft means a full audit including every embedded figure. A slide deck means a full slide read. A meeting means recap plus transcript.
Show the table. The coverage table (artifact × depth × evidence) gets displayed before drafting starts. The rule's own words: no feedback from a sampled read.
How do I know the gate itself holds?
Because an earlier sibling failure taught me not to trust a gate that can't prove itself. In a June 2026 cycle, a student deck claimed about 30 items processed. The data files the AI had actually opened showed about 9, and three linked folders were never opened at all. The fetches had errored on size, and the AI treated a tool error as permission to skip. The standing rules became: "deck ingested" is not "data reviewed," a size error is never a skip, and every quantitative claim must trace to a file the AI actually opened.
That slice of the gate is machine-checked. _check-shared-artifacts-reviewed.sh fails a cycle that shipped feedback while a data link embedded in the materials lacks a positively-reviewed row in the cycle's manifest (the listed record of what was opened and what was found there). The reviewed cell takes an exact allowlist: an exact ✅ or checked box counts, while "[x] unopened" buried in explanatory prose does not. And the check carries negative fixtures, deliberately broken test inputs it must catch before its own PASS is trusted.
This page is one slice of the verification system I laid out in How do I know if AI is telling me the truth?. The general lesson is blunt: an AI's "done" is a claim about coverage, and coverage is exactly what the output hides.
Here's my question for you: when your AI says it reviewed something, what would prove it read all of it — and would your setup have noticed the file in the wrong folder?
Method & data
Method: one advising-cycle post-mortem, generalized — the dated root-cause memory record that carries the coverage gate, the per-cycle checklist, and the shared-artifacts review check with its self-test fixturesData: patterns and methods only; no names, dollar figures, addresses, case identifiers, or confidential content · Last checked: 2026-08-14
How this was made
AI-drafted, adversarially checked, human-directed. My AI assistant wrote this from the system's own records — the dated root-cause memory record for the 2026-08-10 cycle (which carries the coverage gate), the per-cycle checklist, and `_check-shared-artifacts-reviewed.sh` with its negative self-test fixtures. A separate AI session then tried to break every claim against those records, and automated privacy and readability gates ran before publish. I direct this pipeline, own every boundary in it, and audit published pages on a rolling basis — if you find an error, tell me and it goes in the corrections log, dated, never silent.
I'm Ali — I run real life-and-work admin on AI agents, then check their work in the open. More at /about.
Published under my standards. Found an error? Tell me — corrections go in the corrections log, dated, never silent.
Cite this
@online{ali2026coveragegate,
author = {Ali},
title = {My AI gave feedback on a chapter it hadn't fully read},
date = {2026-08-14},
url = {https://alidoes.ai/ai-feedback-coverage-gate/}
}Caught something I got wrong? Send it directly. Confirmed corrections go in the corrections log.