Anyone can claim their AI catches continuity errors. Here is ours with the cover off — what logic decides, what a model decides, and how we test whether it works at all.

How Guardian works.

By

Tim Shen Founder, Creader

Wrote fiction for a decade before building Creader. Started the project after Scrivener forgot his protagonist's mother by chapter eleven.

Published
Read
7 min · 1,450 words

Section 1

Why publish this

Most AI writing products are a prompt in a trench coat. That’s not a slur — a good prompt is a real product decision. But it means the interesting question, what does this thing actually do to my manuscript?, has no answer beyond the vendor’s word for it.

We make a specific claim: Creader’s Guardian engine checks your draft against your story’s canon and tells you where they disagree. That claim should be inspectable. So this page is the machine with the cover off — what is decided by logic, what is decided by a language model, where the boundary sits, and how we test whether any of it works. The argument for why we point AI at checking rather than writing lives in Verification, not generation. This page is the how.

Section 2

The prompt ceiling

The obvious way to build a consistency checker is to hand the manuscript to a model and ask it to find the problems. This works impressively on a short story and degrades on a novel, for a reason that isn’t a temporary model limitation: recall over long contexts thins out as the material grows, and it thins out unevenly. The middle of a long input is where things go quiet.

A novel is the worst possible shape for this. The contradiction you care about is almost never local — it’s between a detail in chapter two and a sentence in chapter forty, separated by ninety thousand words the model is also trying to hold. By book three of a series, the fact being contradicted isn’t even in the file you have open.

There is a second problem, quieter and worse: a naive checker is unfalsifiable. Ask a model for plot holes and it will return plot holes, because that is what you asked for. Some will be real. Nothing in the design distinguishes the real ones from the fluent ones, and nothing tells you what it missed.

Section 3

Structured canon, not scrollback

Guardian doesn’t check your chapter against your manuscript. It checks it against a structured record of what your story has established: characters and their traits, locations, timeline events with timestamps, and — the part that does the real work — typed relationships between them. Parent of. Located in. Ally of. Ruler of.

This is the difference between a story bible and a checkable one. A wiki stores facts for you to consult. A typed graph stores facts a machine can reason over. When you write that Mara is Aleth’s daughter, that isn’t a note — it’s an edge, and edges have consequences.

Prose that hasn’t been captured as structure still matters, so a second path indexes your chapters as embeddings and retrieves semantically related passages when a check needs them. Structure handles what is decidable; retrieval handles what is merely relevant. Both feed the same pipeline.

Section 4

Deterministic first: inference without a model

A large class of continuity errors doesn’t require reading comprehension at all. It requires arithmetic and bookkeeping — exactly what humans are bad at across a hundred thousand words, and what software has been good at since forever.

So Guardian runs a symbolic inference engine over your relationship graph before any model is involved. It computes a bounded closure: it derives the facts that follow from the facts you authored — your character’s parent’s parent is their grandparent — and stops at a fixed depth, so the derived set stays small, fast, and predictable rather than exploding across the graph.

Then it looks for contradictions in the combined set. Among them:

  • Kinship and age — cycles in descent, a parent younger than their child, ages that can’t coexist with the timeline.
  • Containment — a place inside a place inside the first one. Geography that closes a loop.
  • Residence — a character established as living in two mutually exclusive homes.
  • Status — a character recorded as dead still holding a role that asserts a present state.
  • Timeline — a chapter naming a dated event and stating a year that contradicts the record, or ordering two dated events against their own timestamps.

None of this involves a language model. That matters for three reasons: it is reproducible — the same graph always yields the same findings; it is testable, because a deterministic function has a correct answer; and it is cheap, so it can run constantly instead of when you remember to ask.

Section 5

Where the model earns its place

Plenty of real problems aren’t decidable from structure. Whether a character’s arc actually turns, whether a scene’s causality holds, whether your prose slid out of its own register — these need reading. Here Guardian uses a language model, under two constraints.

It is grounded, not asked. Detectors run against retrieved, relevant material rather than a general request to find problems. The model is given the passage, the canon it must be consistent with, and one narrow question.

It has to show its work. A proposed finding passes through an evidence gate, and the gate’s default is to drop. Anything the model cannot ground in quoted text from your manuscript doesn’t reach you. This deliberately costs us recall — some real problems get dropped — because we think a checker that cries wolf is worse than one that occasionally stays quiet. You are trying to write. Every false alarm spends your attention, and attention is the thing the tool exists to protect.

The checks are organised in layers by nature and cost — consistency, style and prose, deeper narrative analysis, chapter craft, plot structure — so that the cheap deterministic work can run continuously while the expensive interpretive work runs when you ask for it. Keeping them separate also keeps us honest: the layers do not perform equally, and averaging a strong check with a weak one into a single confidence score would hide exactly the information you need.

Section 6

What we refuse to detect

The most requested check we have declined to build: flagging a chapter that references an event the timeline places later. The data is right there. It would have been a morning’s work.

We didn’t build it because that pattern is also the definition of foreshadowing — one of the core techniques of the craft, and something Creader ships a dedicated feature for. Separating “you contradicted yourself” from “you set something up” requires reading intent, and we don’t believe a checker should guess at intent and then present the guess as an error. Guardian would have spent its credibility fighting your technique.

The general rule: when a signal is genuinely ambiguous, we would rather stay silent than be confidently wrong. Every false positive teaches you to ignore the panel, and a panel you ignore is worth nothing no matter what it catches.

Section 7

How we know it works

A consistency engine makes a testable claim, so we test it. Clean fiction fixtures are corrupted with known, catalogued errors — a changed eye colour, a broken timeline, a contradicted rule — and the engine is scored on how much of the damage it recovers, and how precisely.

The suite also carries trap fixtures: passages that are entirely correct and must come back clean. These matter more than the positives. Recall is easy to buy by lowering thresholds until everything trips; the traps are what stop us buying it.

Results are compared against a committed baseline, and the comparison runs in continuous integration as a merge gate. A change that degrades detection, loses coverage, or trips more traps fails the build — which means it can’t quietly ship because a demo still looked fine.

We’re not publishing scores here, and we’d rather say why than pretend the omission is modesty: our layers do not perform equally. The deterministic consistency work is strong. Some of the interpretive analysis is early, and we know which parts. Publishing a single flattering headline number would misrepresent that spread, and publishing the full table invites comparison against benchmarks that don’t measure the same thing. What we will commit to is the shape of the thing: every layer is measured, the measurements gate our releases, and the weak ones are known to us and being worked on.

If you want to see it against your own manuscript rather than ours, that’s the honest test — here’s how the writing side fits together.

FAQ

Frequently asked

Does Guardian use an LLM to find continuity errors?
Only where symbols can't reach. Contradictions that follow from your story's structure — kinship, ages, where places sit inside each other, who is alive — are decided by a deterministic inference engine with no model involved. The LLM handles what genuinely needs reading comprehension, and every finding it proposes must survive an evidence gate that drops anything it cannot ground in quoted text.
How is this different from asking ChatGPT to find my plot holes?
A prompt can only reason over what fits in its context window, and long-context recall degrades as the manuscript grows. Guardian checks your draft against a persistent, structured record of your world — database rows, not scrollback — so a chapter-forty draft is checked against facts established in chapter two, or in a previous book.
Why does Guardian have layers?
Because the checks have different natures and different costs. Consistency is largely decidable from structure and runs cheaply on every keystroke-scale check. Analysis of arc, causality, and structure requires a model, costs more, and is less certain. Separating them lets each run at the right moment and lets us report their reliability honestly rather than averaging strong checks and weak ones into one score.
Can Guardian rewrite my prose when it finds a problem?
It can propose a fix on the deterministic layers, where the correction is mechanical and the intended text is unambiguous. It never applies one on its own, and it does not propose rewrites on the interpretive layers — a model that isn't sure enough to be graded isn't sure enough to touch your sentences.
How do you know the engine actually catches anything?
We benchmark it. Known errors are injected into clean fiction fixtures and the engine is scored on what it recovers. The suite also carries trap fixtures — correct passages that must not be flagged — because a checker that flags everything is worse than none. Results are compared against a committed baseline, and a regression fails the build.
Does Guardian detect foreshadowing automatically?
No, and this is deliberate. A chapter that references something the timeline places later is either a continuity error or a piece of craft, and distinguishing them reliably needs judgment we don't think a checker should fake. Foreshadowing in Creader is a marker you place; Guardian tracks whether it pays off rather than guessing at your intent.

Try it

Run it on your own manuscript.

Every claim on this page is one you can check against your own book — which is the only test that counts.

Start writing