Looks for places where the story contradicts itself in time (Tuesday before Monday) or where things that should still exist — a character, an object, a wound — quietly vanish without explanation.
What it measures
The analyzer builds an entity timeline by walking your manuscript in reading order and tracking three kinds of facts as they're established: characters (with their attributes — alive/dead, injured/healed, family relations, occupation, age); objects (with their state — locked/open, present/lost, described condition); and temporal anchors (dates, days of the week, "three days later", "the following spring"). Each fact carries the paragraph reference where it was set.
It then re-walks the manuscript and, for every subsequent reference to one of those entities, asks whether the new reference is consistent with the accumulated state. If chapter 5 says Ada is an only child and chapter 14 has Ada mention her younger brother Owen, that's a flagged pair. If a locked drawer is picked open in chapter 5 and described as "still unopened" in chapter 9, that's a flagged pair. If a storm arrives on Tuesday and the next morning is described as Monday, that's a flagged pair.
The output is a causality score on a 0–100 scale (100 = no detectable contradictions, 50 = several worth reviewing, below 50 = the manuscript is drifting) and a list of specific logical gaps, each with the two paragraph references, the entity in question, and a short "why this looks inconsistent" note. The card also surfaces a dead characters list when it detects characters explicitly killed off — useful because "dead character returns" is a specific class of continuity break the analyzer catches with high confidence.
The analyzer is looking for factual drift, not thematic inconsistency. It doesn't flag a character's mood swings, tonal reversals, or contradictory beliefs unless they're stated as facts about the world. That's the province of the LLM-based Flags pass.
Why it's useful
Continuity errors are the single most common piece of feedback readers give a first draft. Beta readers and copy editors chase them for a living. They're also the hardest to spot yourself, because when you wrote both scenes you knew which was current — your brain silently reconciles the drift as you re-read. A machine reader doesn't have that context, so it catches what your eye slides past.
The typical scenario: you rewrote chapter 5 during your second pass to add a new sibling for Ada, but you forgot that chapter 2 explicitly introduced her as an only child. Or you decided mid-draft to change a character's age from 34 to 28 and got most of the references — but missed one paragraph in chapter 8. Or the timeline compressed in revision and now Tuesday is followed by Monday. This report catches those in seconds where a manual continuity pass would take an afternoon per chapter.
The complement is Worldbuilding stability — same idea, but for the rules of a fictional world rather than the facts about characters and objects. Both cards catch different kinds of drift and both are worth running before you send a draft out. Flags also does an LLM pass over the same manuscript looking for continuity errors from a different angle (semantic rather than fact-based); the overlap is small and both catch things the other misses.
How to read it
The card opens with two stat tiles: causality (the 0–100 score, colored green if 80+, amber if 50–79, red if under 50) and flagged (the count of logical gaps found — colored green if 0, red otherwise). Below the tiles is a thin colored bar showing the causality score as a fill percentage. Underneath that is the Logical gaps list.
Each gap is a red-swatched card in the list. The heading of each card is the contradiction type (e.g. "Character sibling count changes", "State reverts without explanation", "Day-of-week continuity"). Below the heading are one or two paragraph references marked with a ◆ diamond — the two positions in the manuscript that contradict each other, each with a short quote or description of what was said. Click either reference and the editor jumps to that paragraph in the prose, letting you compare the two positions side by side.
A Dead characters chip list appears at the bottom only if the analyzer detected explicit deaths — those are surfaced separately because "dead character reappears" is such a specific class of bug that the panel calls it out on its own. The collapsed card summary in the reports rail shows a headline like "3 flagged · score 62" so you can see the state of continuity at a glance without expanding.
Read each gap by asking one question: is this drift you actually intended, or drift that sneaked in? Real contradictions get fixed by editing one of the two paragraphs. Intended arcs — a character who was declared dead but is now revealed alive as a plot beat — get dismissed by simply moving on. The report doesn't force you to resolve anything; it just tells you what to look at.
When to ignore it
False positives are common when a character has been through a life-changing event mid-book. The analyzer sees the "before wound" and "after wound" states as contradictions even when the wound in between is exactly what your plot is about. Same with a character who fakes their death and comes back, a location that gets rebuilt, an object that gets destroyed and replaced with a copy. Read each flag and dismiss the ones that reflect an intended arc, not a mistake — the report is a fact-checker, not a plot editor, and it can't tell whether a contradiction is deliberate.
Books with multiple POVs or unreliable narrators will also generate more noise, because a fact stated by an unreliable narrator in chapter 3 might be legitimately overturned in chapter 10 without being an error. If your book leans on that device, expect the causality score to sit lower than a straightforward third-person novel would, and treat the list as a starting point rather than a checklist.
Time-loop, memory-loss, and parallel-timeline stories will produce a very long gap list — the analyzer can't tell the difference between "the storyteller is drifting" and "time is drifting on purpose." For those manuscripts the report is basically not the right tool; lean on the LLM-based Flags pass instead, which reads context more forgivingly.
How to run it
- Click Write in the left sidebar and open the document you want to analyze.
- Open the right-side rail: click the Reports button in the editor's top toolbar (the bar-chart icon).
- In the rail header, click the Reports tab.
- Scroll to the Plot holes card under the Structural heading.
- Click the card to expand it. First-time runs take 5–20 seconds; a spinner in the header shows while the LLM streams. Subsequent visits are cached and render instantly. Use the re-run button inside the expanded card to force a fresh pass.
- The card renders two stat tiles at the top — Contradictions and Chapters scanned — over a list of flagged pairs. Each row is a red-swatched card with the contradiction type (e.g. "Character sibling count changes") and two paragraph references marked with a ◆ diamond. Tap a reference to jump to that paragraph.
What to read next
- Worldbuilding stability — the same idea for invented-world rules
- Flags — the LLM-driven continuity pass; use both, they catch different things
- Reports — back to the panel overview