| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 21 | | tagDensity | 0.476 | | leniency | 0.952 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.10% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1281 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 57.06% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1281 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "weight" | | 1 | "measured" | | 2 | "flicker" | | 3 | "scanning" | | 4 | "whisper" | | 5 | "standard" | | 6 | "silence" | | 7 | "glint" | | 8 | "pulsed" | | 9 | "grave" |
| |
| 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 | 118 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 118 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 129 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 4 | | totalWords | 1261 | | ratio | 0.003 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 1061 | | uniqueNames | 16 | | maxNameDensity | 1.32 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Harlow | 2 | | Quinn | 14 | | King | 1 | | Cross | 1 | | Morris | 4 | | Veil | 1 | | Market | 1 | | London | 1 | | Tube | 1 | | Herrera | 1 | | Saint | 1 | | Christopher | 1 | | Spanish | 1 | | Tomás | 3 | | Rain | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "King" | | 3 | "Cross" | | 4 | "Morris" | | 5 | "Market" | | 6 | "Herrera" | | 7 | "Saint" | | 8 | "Christopher" | | 9 | "Tomás" | | 10 | "Rain" |
| | places | | | globalScore | 0.84 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 64 | | glossingSentenceCount | 1 | | matches | | 0 | "something close to the chest—something wrapped i" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1261 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 129 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 64 | | mean | 19.7 | | std | 19.4 | | cv | 0.985 | | sampleLengths | | 0 | 98 | | 1 | 15 | | 2 | 62 | | 3 | 15 | | 4 | 59 | | 5 | 32 | | 6 | 2 | | 7 | 10 | | 8 | 2 | | 9 | 34 | | 10 | 17 | | 11 | 3 | | 12 | 59 | | 13 | 6 | | 14 | 32 | | 15 | 7 | | 16 | 79 | | 17 | 22 | | 18 | 48 | | 19 | 7 | | 20 | 6 | | 21 | 11 | | 22 | 51 | | 23 | 16 | | 24 | 22 | | 25 | 15 | | 26 | 36 | | 27 | 5 | | 28 | 27 | | 29 | 5 | | 30 | 16 | | 31 | 39 | | 32 | 20 | | 33 | 21 | | 34 | 17 | | 35 | 29 | | 36 | 9 | | 37 | 5 | | 38 | 36 | | 39 | 2 | | 40 | 5 | | 41 | 12 | | 42 | 29 | | 43 | 4 | | 44 | 13 | | 45 | 5 | | 46 | 10 | | 47 | 4 | | 48 | 16 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 118 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 205 | | matches | | 0 | "wasn’t letting" | | 1 | "was waking" | | 2 | "wasn’t running" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 129 | | ratio | 0.124 | | matches | | 0 | "Ahead, just vanishing around the corner of a graffiti-streaked alley, was the flicker of a dark jacket, the flash of pale hands gripping something close to the chest—something wrapped in oilcloth." | | 1 | "Three days ago, a body had turned up in a disused warehouse near King’s Cross—mutilated, eyes gouged, symbols carved into the flesh in a language no forensic linguist could decode." | | 2 | "She’d seen those marks before—on the walls of an abandoned flat where Morris had died." | | 3 | "Then—a whisper of movement behind a dumpster, the creak of a rusted door swinging on its hinges." | | 4 | "The alley dead-ended into a narrow service passage that opened onto a brick archway—unmarked, half-hidden behind ivy gone wild with neglect." | | 5 | "Graffiti smeared the walls—crude symbols, eyes, inverted crosses." | | 6 | "And then she heard it—a distant hum." | | 7 | "But now, standing at the mouth of those stairs, the air thick with the scent of ozone and something fouler—burnt hair, maybe, or charred bone—she wasn’t sure what she didn’t believe anymore." | | 8 | "The tunnel twisted sharply after ten yards, opening into a wide, vaulted chamber—what had once been a disused Tube station." | | 9 | "She caught glimpses—figures cloaked in shadow, a woman with eyes too wide and silvered at the edges, a boy no older than ten offering vials labeled *Dreams of the Drowned*." | | 10 | "She spun, heel digging into the tile, ready to draw—but froze." | | 11 | "The man in the jacket had reached a back stall—a hooded figure unrolling the oilcloth bundle." | | 12 | "Something in her face—maybe the set of that sharp jaw, the raw edge beneath military precision—made him hesitate." | | 13 | "The hooded figure—an androgynous face half in shadow—looked up." | | 14 | "The way he’d looked the last time she saw him—terrified." | | 15 | "For a second, she saw not herself—but a version older, hollow-eyed, uniform draped in cobwebs, standing over an open grave with no name on the stone." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1084 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.025830258302583026 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.004612546125461255 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 129 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 129 | | mean | 9.78 | | std | 7.86 | | cv | 0.804 | | sampleLengths | | 0 | 24 | | 1 | 27 | | 2 | 16 | | 3 | 31 | | 4 | 6 | | 5 | 3 | | 6 | 6 | | 7 | 30 | | 8 | 3 | | 9 | 15 | | 10 | 14 | | 11 | 10 | | 12 | 5 | | 13 | 20 | | 14 | 1 | | 15 | 17 | | 16 | 7 | | 17 | 2 | | 18 | 12 | | 19 | 21 | | 20 | 11 | | 21 | 2 | | 22 | 6 | | 23 | 2 | | 24 | 2 | | 25 | 2 | | 26 | 7 | | 27 | 16 | | 28 | 8 | | 29 | 2 | | 30 | 1 | | 31 | 7 | | 32 | 10 | | 33 | 3 | | 34 | 3 | | 35 | 2 | | 36 | 9 | | 37 | 22 | | 38 | 23 | | 39 | 4 | | 40 | 2 | | 41 | 32 | | 42 | 7 | | 43 | 20 | | 44 | 5 | | 45 | 14 | | 46 | 21 | | 47 | 19 | | 48 | 22 | | 49 | 13 |
| |
| 67.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.4186046511627907 | | totalSentences | 129 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 92 | | matches | | 0 | "Then—a whisper of movement behind" | | 1 | "Then, a hand grabbed her" | | 2 | "Then he reached into his" | | 3 | "Then a soft chime, like" | | 4 | "Then it was gone." |
| | ratio | 0.054 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 92 | | matches | | 0 | "Her breath came in sharp," | | 1 | "She didn’t know who it" | | 2 | "She’d seen those marks before—on" | | 3 | "Her boots splashed through oily" | | 4 | "She slowed, hand drifting to" | | 5 | "She unclipped her flashlight, switched" | | 6 | "She’d heard whispers." | | 7 | "She didn’t believe it." | | 8 | "She caught glimpses—figures cloaked in" | | 9 | "It made her skin crawl." | | 10 | "She followed, careful not to" | | 11 | "She spun, heel digging into" | | 12 | "he said, voice low, urgent" | | 13 | "He didn’t flinch." | | 14 | "She glanced past him." | | 15 | "She tried to move past" | | 16 | "She took it." | | 17 | "He glanced toward the stall," | | 18 | "She reached the stall." | | 19 | "She stepped through." |
| | ratio | 0.217 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 92 | | matches | | 0 | "Rain needled the narrow streets" | | 1 | "Detective Harlow Quinn’s trench coat" | | 2 | "Her breath came in sharp," | | 3 | "She didn’t know who it" | | 4 | "She’d seen those marks before—on" | | 5 | "Her boots splashed through oily" | | 6 | "She slowed, hand drifting to" | | 7 | "The alley dead-ended into a" | | 8 | "She unclipped her flashlight, switched" | | 9 | "The beam cut through the" | | 10 | "Graffiti smeared the walls—crude symbols," | | 11 | "The Veil Market." | | 12 | "She’d heard whispers." | | 13 | "Cops don’t talk about the" | | 14 | "She didn’t believe it." | | 15 | "Quinn took a breath and" | | 16 | "The tunnel twisted sharply after" | | 17 | "Booths lined the curved platform," | | 18 | "Merchants hawked vials of shimmering" | | 19 | "The air thrummed with low" |
| | ratio | 0.598 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 92 | | matches | | 0 | "Now, down in the city’s" | | 1 | "Now, it pulsed with life." |
| | ratio | 0.022 | |
| 79.37% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 4 | | matches | | 0 | "Detective Harlow Quinn’s trench coat clung to her frame, soaked through at the shoulders, its weight dragging her forward as if the city itself resisted her pur…" | | 1 | "The alley dead-ended into a narrow service passage that opened onto a brick archway—unmarked, half-hidden behind ivy gone wild with neglect." | | 2 | "Merchants hawked vials of shimmering liquid, feathers that floated on invisible currents, and cages containing things that whispered in dead languages." | | 3 | "Behind it, a narrow archway led deeper, into tunnels lined with cracked mirrors that reflected nothing." |
| |
| 75.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 1 | | matches | | 0 | "he said, voice low, urgent" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 21 | | tagDensity | 0.381 | | leniency | 0.762 | | rawRatio | 0.125 | | effectiveRatio | 0.095 | |