| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 86.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1128 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "completely" | | 1 | "really" | | 2 | "very" |
| |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 82.27% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1128 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "shattered" | | 1 | "unsettled" | | 2 | "footsteps" | | 3 | "electric" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 53 | | matches | (empty) | |
| 88.95% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 53 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 53 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 62 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1122 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1072 | | uniqueNames | 17 | | maxNameDensity | 0.65 | | worstName | "Morris" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Morris" | | discoveredNames | | Camden | 2 | | Quinn | 6 | | Sandhurst | 1 | | Chalk | 1 | | Farm | 1 | | Road | 2 | | Raven | 1 | | Nest | 1 | | Thames | 1 | | Morris | 7 | | Hartland | 1 | | Tube | 1 | | Council | 1 | | Vice | 1 | | Backup | 1 | | Highgate | 1 | | Victorian | 1 |
| | persons | | 0 | "Camden" | | 1 | "Quinn" | | 2 | "Sandhurst" | | 3 | "Nest" | | 4 | "Morris" | | 5 | "Council" | | 6 | "Vice" | | 7 | "Victorian" |
| | places | | 0 | "Chalk" | | 1 | "Farm" | | 2 | "Road" | | 3 | "Raven" | | 4 | "Thames" | | 5 | "Hartland" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 40 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1122 | | matches | (empty) | |
| 0.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 53 | | matches | | 0 | "stops that Camden" | | 1 | "made that she" | | 2 | "noted that fact" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 24 | | mean | 46.75 | | std | 30.09 | | cv | 0.644 | | sampleLengths | | 0 | 58 | | 1 | 52 | | 2 | 14 | | 3 | 97 | | 4 | 27 | | 5 | 81 | | 6 | 75 | | 7 | 11 | | 8 | 67 | | 9 | 88 | | 10 | 82 | | 11 | 11 | | 12 | 3 | | 13 | 85 | | 14 | 94 | | 15 | 31 | | 16 | 31 | | 17 | 6 | | 18 | 38 | | 19 | 41 | | 20 | 56 | | 21 | 30 | | 22 | 11 | | 23 | 33 |
| |
| 92.02% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 53 | | matches | | 0 | "were supposed" | | 1 | "were gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 173 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 53 | | ratio | 0.075 | | matches | | 0 | "She'd been running for six minutes—she counted these things, always had, ever since Sandhurst drilled the habit into her before she'd ever pinned on a badge—and her lungs burned with the effort of matching a man half her age." | | 1 | "Not electric—too warm, too unsteady for that—but firelight, dozens of small flames guttering in glass jars strung along a platform that stretched into a darkness she couldn't measure." | | 2 | "A figure at the base of the stairs blocked her path before she'd taken three steps onto the platform—an old man, skin like tanned leather, holding out one hand, palm up." | | 3 | "Quinn stood very still, water dripping from her hair onto the stone, watching her suspect disappear into the crowd beyond the firelight—into a market that moved with the moon, that traded in things she didn't have names for yet, that had swallowed Morris whole three years ago in some form she'd never let herself fully imagine." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 513 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 15 | | adverbRatio | 0.029239766081871343 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.001949317738791423 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 53 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 53 | | mean | 21.17 | | std | 15.46 | | cv | 0.73 | | sampleLengths | | 0 | 19 | | 1 | 39 | | 2 | 3 | | 3 | 49 | | 4 | 9 | | 5 | 5 | | 6 | 37 | | 7 | 11 | | 8 | 49 | | 9 | 5 | | 10 | 22 | | 11 | 21 | | 12 | 26 | | 13 | 3 | | 14 | 31 | | 15 | 30 | | 16 | 29 | | 17 | 16 | | 18 | 11 | | 19 | 16 | | 20 | 33 | | 21 | 18 | | 22 | 5 | | 23 | 47 | | 24 | 19 | | 25 | 17 | | 26 | 6 | | 27 | 31 | | 28 | 34 | | 29 | 11 | | 30 | 11 | | 31 | 3 | | 32 | 24 | | 33 | 24 | | 34 | 37 | | 35 | 4 | | 36 | 28 | | 37 | 62 | | 38 | 21 | | 39 | 4 | | 40 | 2 | | 41 | 2 | | 42 | 2 | | 43 | 31 | | 44 | 3 | | 45 | 3 | | 46 | 38 | | 47 | 8 | | 48 | 33 | | 49 | 56 |
| |
| 79.87% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.49056603773584906 | | totalSentences | 53 | | uniqueOpeners | 26 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 49 | | matches | | 0 | "Somewhere below she heard footsteps" | | 1 | "Just Morris, and then not" |
| | ratio | 0.041 | |
| 56.73% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 49 | | matches | | 0 | "She'd been running for six" | | 1 | "He was fast." | | 2 | "Her voice cracked against the" | | 3 | "He didn't even look back." | | 4 | "She'd clocked him three hours" | | 5 | "She pushed the thought down." | | 6 | "He cut left down Hartland" | | 7 | "Her chest ached." | | 8 | "She'd read about it once," | | 9 | "He went through it like" | | 10 | "She should call it in." | | 11 | "She thought of Morris again," | | 12 | "She'd never told anyone what" | | 13 | "Her torch beam caught cracked" | | 14 | "Her suspect was forty feet" | | 15 | "He glanced back once." | | 16 | "She showed her warrant card" | | 17 | "He nodded toward the ceiling," | | 18 | "She thought of Morris's torch" | | 19 | "She reached into her coat," |
| | ratio | 0.408 | |
| 72.24% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 49 | | matches | | 0 | "Rain came down in sheets" | | 1 | "She'd been running for six" | | 2 | "He was fast." | | 3 | "Her voice cracked against the" | | 4 | "He didn't even look back." | | 5 | "She'd clocked him three hours" | | 6 | "She pushed the thought down." | | 7 | "He cut left down Hartland" | | 8 | "Quinn followed, her leather watch" | | 9 | "Her chest ached." | | 10 | "The man veered toward a" | | 11 | "She'd read about it once," | | 12 | "The gate hung open now," | | 13 | "He went through it like" | | 14 | "Quinn slowed at the threshold," | | 15 | "The darkness beyond the gate" | | 16 | "She should call it in." | | 17 | "Radio that was the shorthand" | | 18 | "Backup would take twelve minutes" | | 19 | "She thought of Morris again," |
| | ratio | 0.776 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 49 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 10 | | matches | | 0 | "Rain came down in sheets over Camden, turning the pavement into a black mirror that shattered under Quinn's boots." | | 1 | "Faster than any smuggler had a right to be, cutting through the market stalls on Chalk Farm Road with a fluid economy of motion that made her think, not for the…" | | 2 | "When she'd flashed her warrant card he'd bolted through the kitchen, knocking over a stack of pans, and she'd gone after him without thinking, the way she alway…" | | 3 | "The darkness beyond the gate had a texture to it that unsettled her, thick and close, swallowing the orange wash of the streetlight before it could reach more t…" | | 4 | "Somewhere below she heard footsteps on iron stairs, receding, unhurried now, as if he knew she wouldn't follow." | | 5 | "Her torch beam caught cracked tile, Victorian lettering half-obscured by grime, a poster for a play that had closed before her mother was born." | | 6 | "Not electric—too warm, too unsteady for that—but firelight, dozens of small flames guttering in glass jars strung along a platform that stretched into a darknes…" | | 7 | "The old rails were gone, replaced by a market that had grown up out of the bones of the station like ivy through a fence: stalls built from salvaged wood and ha…" | | 8 | "Quinn stood very still, water dripping from her hair onto the stone, watching her suspect disappear into the crowd beyond the firelight—into a market that moved…" | | 9 | "Every instinct that had kept her alive for eighteen years told her to turn back, to call it in, to let the machinery of ordinary justice grind forward without h…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 1 | | matches | | 0 | "Her voice cracked, useless" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0 | | effectiveRatio | 0 | |