| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1728 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 50.81% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1728 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "measured" | | 1 | "weight" | | 2 | "navigate" | | 3 | "standard" | | 4 | "silence" | | 5 | "flickered" | | 6 | "scanned" | | 7 | "echoing" | | 8 | "pulsed" | | 9 | "velvet" | | 10 | "could feel" | | 11 | "fractured" | | 12 | "mosaic" | | 13 | "echoed" | | 14 | "depths" |
| |
| 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 | 154 | | matches | (empty) | |
| 96.47% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 4 | | narrationSentences | 154 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 154 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1709 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1709 | | uniqueNames | 16 | | maxNameDensity | 0.59 | | worstName | "Quinn" | | maxWindowNameDensity | 1 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Harlow | 2 | | Quinn | 10 | | Herrera | 9 | | Morris | 6 | | Raven | 1 | | Nest | 1 | | London | 2 | | Tube | 1 | | Underground | 1 | | Veil | 2 | | Market | 2 | | Saint | 1 | | Christopher | 1 | | Detective | 2 | | Close | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Morris" | | 4 | "Raven" | | 5 | "Underground" | | 6 | "Market" | | 7 | "Saint" | | 8 | "Christopher" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 43.62% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 94 | | glossingSentenceCount | 4 | | matches | | 0 | "photographs that seemed to watch her from the shadows" | | 1 | "quite fit the aesthetic" | | 2 | "fabrics that seemed to shift colors when she wasn't looking directly at them" | | 3 | "hood that seemed to absorb the candlelight" |
| |
| 24.46% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.755 | | wordCount | 1709 | | matches | | 0 | "not criminals, exactly, but not civilians either" | | 1 | "not orange, not blue, but something in between" | | 2 | "not blue, but something in between" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 154 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 32.87 | | std | 21.29 | | cv | 0.648 | | sampleLengths | | 0 | 22 | | 1 | 62 | | 2 | 16 | | 3 | 9 | | 4 | 68 | | 5 | 42 | | 6 | 48 | | 7 | 24 | | 8 | 11 | | 9 | 77 | | 10 | 5 | | 11 | 26 | | 12 | 3 | | 13 | 47 | | 14 | 42 | | 15 | 34 | | 16 | 52 | | 17 | 19 | | 18 | 25 | | 19 | 40 | | 20 | 28 | | 21 | 6 | | 22 | 10 | | 23 | 36 | | 24 | 59 | | 25 | 2 | | 26 | 56 | | 27 | 3 | | 28 | 43 | | 29 | 6 | | 30 | 70 | | 31 | 72 | | 32 | 17 | | 33 | 38 | | 34 | 48 | | 35 | 37 | | 36 | 61 | | 37 | 1 | | 38 | 51 | | 39 | 39 | | 40 | 21 | | 41 | 35 | | 42 | 40 | | 43 | 19 | | 44 | 78 | | 45 | 34 | | 46 | 29 | | 47 | 5 | | 48 | 42 | | 49 | 19 |
| |
| 93.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 154 | | matches | | 0 | "was gone" | | 1 | "were answered" | | 2 | "were paid" | | 3 | "were uncreased" | | 4 | "been told" | | 5 | "was focused" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 12 | | totalVerbs | 307 | | matches | | 0 | "was running" | | 1 | "wasn't hiding" | | 2 | "wasn't apologizing" | | 3 | "was standing" | | 4 | "wasn't looking" | | 5 | "was turning" | | 6 | "was talking" | | 7 | "was saying" | | 8 | "was traveling" | | 9 | "were exchanging" | | 10 | "was watching" | | 11 | "was waiting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 154 | | ratio | 0.104 | | matches | | 0 | "Eighteen years on the force had taught her how to run without sounding like she was running—how to keep her footfalls tight, her rhythm steady, her body leaned forward at just the right angle." | | 1 | "Now it was just another part of her—like the sharp set of her jaw, like the way her brown eyes tracked movement before her conscious mind registered it." | | 2 | "But she'd read his file, and the file hadn't mentioned how he moved—fluid and certain, like someone who'd learned to navigate spaces that didn't appear on any map." | | 3 | "But Morris was gone now—a cold case file gathering dust in a drawer no one wanted to open—and the department had a way of forgetting partners who'd died under circumstances that couldn't be explained in standard reports." | | 4 | "A haunt for people who operated in the margins—not criminals, exactly, but not civilians either." | | 5 | "Herrera had gone inside—she'd seen the door swing shut, heard the muffled clatter of someone descending steps in a hurry." | | 6 | "But there—behind the bar—a bookshelf that didn't quite fit the aesthetic." | | 7 | "An abandoned Tube station—the architecture was unmistakable, that distinctive London Underground tiling now cracked and grime-streaked, the curved ceiling arching overhead like the ribcage of something vast and sleeping." | | 8 | "A supernatural black market that moved locations every full moon, selling enchanted goods and banned alchemical substances and information that could end careers—or lives." | | 9 | "Candles burned in glass jars, their flames burning in shades that had no names—not orange, not blue, but something in between that made her eyes water." | | 10 | "A child—no, not a child, something shaped like a child—tugged at her mother's sleeve and pointed at a display of bone tokens arranged on black velvet." | | 11 | "The things she'd seen the night Morris died, the impossible things she'd tried to explain away with exhaustion and shock and grief—they were real, and they were here, spread out before her like a wound she'd been told was her own madness." | | 12 | "She could feel it—the same certainty that had kept her on his trail for three nights, the same instinct that had drawn her into this pursuit when rationality demanded she let it go." | | 13 | "The market hummed around her—a thousand tiny transactions, a thousand secrets changing hands." | | 14 | "A packet passed between them—small, wrapped in cloth, tucked into the pocket of his jacket with the kind of care that suggested it mattered." | | 15 | "The rules that governed her life—the evidence, the procedure, the slow grinding machinery of justice—had no purchase here." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1736 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.019009216589861752 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.004608294930875576 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 154 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 154 | | mean | 11.1 | | std | 10.07 | | cv | 0.907 | | sampleLengths | | 0 | 22 | | 1 | 10 | | 2 | 34 | | 3 | 2 | | 4 | 16 | | 5 | 16 | | 6 | 2 | | 7 | 1 | | 8 | 2 | | 9 | 4 | | 10 | 9 | | 11 | 24 | | 12 | 7 | | 13 | 28 | | 14 | 3 | | 15 | 21 | | 16 | 6 | | 17 | 2 | | 18 | 10 | | 19 | 3 | | 20 | 17 | | 21 | 28 | | 22 | 15 | | 23 | 7 | | 24 | 1 | | 25 | 1 | | 26 | 11 | | 27 | 9 | | 28 | 31 | | 29 | 37 | | 30 | 3 | | 31 | 2 | | 32 | 26 | | 33 | 3 | | 34 | 6 | | 35 | 2 | | 36 | 15 | | 37 | 24 | | 38 | 15 | | 39 | 7 | | 40 | 20 | | 41 | 5 | | 42 | 15 | | 43 | 14 | | 44 | 8 | | 45 | 1 | | 46 | 1 | | 47 | 17 | | 48 | 17 | | 49 | 8 |
| |
| 59.74% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.42857142857142855 | | totalSentences | 154 | | uniqueOpeners | 66 | |
| 78.13% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 128 | | matches | | 0 | "Somewhere above, a window was" | | 1 | "Of course not." | | 2 | "Somewhere, a bell rang, and" |
| | ratio | 0.023 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 128 | | matches | | 0 | "She'd stopped noticing the weight" | | 1 | "She hadn't forgotten." | | 2 | "She knew the bar by" | | 3 | "Her hand hovered near the" | | 4 | "She scanned the room." | | 5 | "She wasn't hiding." | | 6 | "She wasn't apologizing." | | 7 | "She pulled out her phone." | | 8 | "She'd heard the name in" | | 9 | "She'd filed reports." | | 10 | "Her sergeant had filed them" | | 11 | "She'd forgotten to look for" | | 12 | "She'd walked in without one." | | 13 | "Her training kept her pace" | | 14 | "She could feel it—the same" | | 15 | "She passed a stall selling" | | 16 | "She found him near the" | | 17 | "He was talking to a" | | 18 | "His olive skin looked pale" | | 19 | "His warm brown eyes were" |
| | ratio | 0.234 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 90 | | totalSentences | 128 | | matches | | 0 | "The rain came down like" | | 1 | "Detective Harlow Quinn kept her" | | 2 | "That was what they'd called" | | 3 | "Quinn pressed harder, her shoes" | | 4 | "The worn leather watch on" | | 5 | "She'd stopped noticing the weight" | | 6 | "The alley narrowed." | | 7 | "Brick walls shouldered in on" | | 8 | "Someone had left their life" | | 9 | "Herrera was fast." | | 10 | "The scar along his left" | | 11 | "A knife wound, her source" | | 12 | "Quinn copied the vault, felt" | | 13 | "She hadn't forgotten." | | 14 | "Herrera disappeared around another corner," | | 15 | "The Raven's Nest." | | 16 | "She knew the bar by" | | 17 | "A haunt for people who" | | 18 | "The kind of establishment where" | | 19 | "The green light hissed and" |
| | ratio | 0.703 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 5 | | totalSentences | 128 | | matches | | 0 | "Now it was just another" | | 1 | "Now she was standing in" | | 2 | "If she followed Herrera deeper," | | 3 | "If she retreated, she would" | | 4 | "By the time she was" |
| | ratio | 0.039 | |
| 8.93% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 64 | | technicalSentenceCount | 12 | | matches | | 0 | "But Morris was gone now—a cold case file gathering dust in a drawer no one wanted to open—and the department had a way of forgetting partners who'd died under c…" | | 1 | "The walls covered with old maps and black-and-white photographs that seemed to watch her from the shadows." | | 2 | "Beyond it, a narrow corridor descended into darkness that smelled of wet earth and old electricity." | | 3 | "Wait for uniformed officers who could enter the space with proper support, proper documentation, proper backup." | | 4 | "Protocol had left her standing in an alley at three in the morning, staring at a crime scene that shouldn't have existed, trying to explain to her superiors how…" | | 5 | "A supernatural black market that moved locations every full moon, selling enchanted goods and banned alchemical substances and information that could end career…" | | 6 | "Candles burned in glass jars, their flames burning in shades that had no names—not orange, not blue, but something in between that made her eyes water." | | 7 | "She could feel it—the same certainty that had kept her on his trail for three nights, the same instinct that had drawn her into this pursuit when rationality de…" | | 8 | "His warm brown eyes were tight with something that might have been fear." | | 9 | "The rules that governed her life—the evidence, the procedure, the slow grinding machinery of justice—had no purchase here." | | 10 | "She could feel it in the way the market breathed, in the way the shadows moved independent of their sources, in the way every person in this space knew exactly …" | | 11 | "Keep her reputation as a detective who had simply never recovered from the loss of her partner." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |