The short version
- The report and the work come from the same process, so the report cannot be the check.
- Measure the rendered page. Frontmatter becomes a takeaways box and an FAQ block, so counting the body alone under-reports what the reader sees.
- Ask questions that have a number for an answer. A count cannot be met with a summary.
- Scale settles it. 44 content pages on one account sit behind an automated count, and the largest engine we have shipped runs to 255 pages.
Verification runs on the rendered page. A generator reports what it intended to produce with the same confidence it reports what it produced, so the check has to count the artifact: words as they render, tables, links, headings, banned characters.
Why does a draft misreport itself?
A report of generated work is written by the process that produced the work, and it fails in the same direction.
The second reason is structural. What renders is not what sits in the source file. Frontmatter becomes a takeaways box and an FAQ block, so a word count taken on the body alone under-reports what the reader is given.
The claim, and where it stops matching the artifact:
| What the draft claims | Where the claim breaks | What you count instead |
|---|---|---|
| The post is long enough | Body words exclude the boxes that render | Words on the built page, boxes included |
| The table is in | Valid in the file, broken at mobile width | A real HTML table on the page |
| It links to two posts | A link can point at a slug nobody created | Links that resolve to real pages |
| The FAQs are there | Entries the template never renders | FAQ blocks visible on the page |
| No banned characters | A literal search misses the HTML entity forms | The character and its entities, whole file |
| The cover art is new | Uniqueness belongs to the library, not one file | Every cover in the library at once |
What do you count on the built page?
Length as it renders, including the blocks that come out of frontmatter. The FAQ count. Whether a real HTML table exists rather than a picture of one, whether a heading is phrased as a question, and how many internal links resolve.
Each returns a number or a yes, which is what makes it a gate. A check that returns an opinion is a review, and a review cannot exit with an error code.
Why measure the rendered page and not the source?
They differ in ways that only surface at the end.
The same failure runs at infrastructure scale. On one rebuild the production site turned out to be a different application from the staging URL everybody had been quoting, so the thing being reviewed was not the thing being served.
What does counting catch that reading does not?
The file nobody was reading. 44 content pages on one account sit behind a count, and the largest engine we have shipped runs to 255 pages.
At that size, reading everything before each release stops being a plan. The count names the files that failed and the reading goes to those.
Count the words, tables and links in the built page. Do not accept a claim that it was done.
What happens when the count disagrees with the report?
The count wins and the fix goes into the file. The report was a prediction of the work, written in the same pass as the work.
The two habits this depends on are tracing every number to a source file and why the gate sits in front of publish.
Frequently asked questions
How do you verify AI-generated work?
By measuring the built output rather than reading the draft or trusting the summary. Count the words as they render, the FAQ entries, the tables, the question headings and the internal links that resolve. Anything with a threshold can block a release.
Why does a model report a task as complete when it is not?
Because the report is generated by the same process as the work and inherits the same failure. It is a plausible account of what was produced rather than an inspection of it.
What should an automated content check measure?
Rendered length including any blocks that come from frontmatter, FAQ count, presence of a real HTML table, at least one question heading, internal links that resolve, and banned characters across the whole file including their entity forms.
Why measure the rendered page instead of the source file?
Because they differ where it matters. Components inject content the source never mentions, frontmatter renders as visible blocks, a link can point at a slug nobody created, and a valid table can still break the layout at mobile width.
What does counting catch that a review does not?
The file nobody opened. A review covers what is in front of it, while a count runs across the whole library every time. With 44 pages behind a gate on one account and a 255-page engine on another, reading everything each release is not a plan.
What still needs a human read?
Whether the argument holds, and whether an anonymised story could still be recognised by the client inside it. Neither has a threshold, so both get read one file at a time, and neither belongs in a script.
Sources
- Chua Network delivery data across 8 client accounts (internal fact bank)
- Chua Network engagement records, anonymized (internal experience bank)