| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 30 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.10% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1515 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slightly" | | 1 | "slowly" | | 2 | "really" |
| |
| 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) | |
| 30.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1515 | | totalAiIsms | 21 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | word | "down her spine" | | count | 1 |
| | 20 | |
| | highlights | | 0 | "efficient" | | 1 | "flickered" | | 2 | "tension" | | 3 | "warmth" | | 4 | "scanning" | | 5 | "eyebrow" | | 6 | "glint" | | 7 | "etched" | | 8 | "pulse" | | 9 | "footsteps" | | 10 | "echoed" | | 11 | "tinged" | | 12 | "rhythmic" | | 13 | "grave" | | 14 | "porcelain" | | 15 | "glinting" | | 16 | "flicked" | | 17 | "pulsed" | | 18 | "chill" | | 19 | "down her spine" | | 20 | "raced" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "clenched jaw/fists" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "clenched her fist" | | 1 | "sent a chill down" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 133 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 133 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 152 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 17 | | markdownWords | 31 | | totalWords | 1494 | | ratio | 0.021 | | matches | | 0 | "The Raven’s Nest" | | 1 | "Complete Works of Poe" | | 2 | "Damn it." | | 3 | "Poe" | | 4 | "click" | | 5 | "bone token" | | 6 | "He went down there." | | 7 | "“Quinn, it’s not—”" | | 8 | "alive" | | 9 | "thump" | | 10 | "Close enough." | | 11 | "Tomás Herrera." | | 12 | "exist" | | 13 | "friend" | | 14 | "things" | | 15 | "always" | | 16 | "wrong" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 50 | | wordCount | 1303 | | uniqueNames | 18 | | maxNameDensity | 1.15 | | worstName | "Harlow" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Herrera" | | discoveredNames | | Soho | 1 | | Harlow | 15 | | Quinn | 1 | | Old | 1 | | Compton | 1 | | Street | 1 | | Raven | 1 | | Nest | 2 | | Silas | 1 | | Works | 1 | | Danny | 2 | | Veil | 2 | | Market | 8 | | Morris | 3 | | Saint | 1 | | Christopher | 1 | | Sevillian | 1 | | Herrera | 7 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Nest" | | 4 | "Silas" | | 5 | "Danny" | | 6 | "Market" | | 7 | "Morris" | | 8 | "Saint" | | 9 | "Christopher" | | 10 | "Herrera" |
| | places | | 0 | "Soho" | | 1 | "Old" | | 2 | "Compton" | | 3 | "Street" |
| | globalScore | 0.924 | | windowScore | 0.833 | |
| 23.42% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | glossingSentenceCount | 4 | | matches | | 0 | "looked like they’d be more at home in a b" | | 1 | "quite music—more like a heartbeat, slow and deliberate" | | 2 | "smelled like grave dirt and summer storms" | | 3 | "something like this when he disappeared" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1494 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 152 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 28.19 | | std | 26.42 | | cv | 0.937 | | sampleLengths | | 0 | 81 | | 1 | 82 | | 2 | 78 | | 3 | 4 | | 4 | 26 | | 5 | 41 | | 6 | 10 | | 7 | 20 | | 8 | 34 | | 9 | 13 | | 10 | 24 | | 11 | 84 | | 12 | 4 | | 13 | 92 | | 14 | 14 | | 15 | 11 | | 16 | 25 | | 17 | 4 | | 18 | 9 | | 19 | 79 | | 20 | 3 | | 21 | 49 | | 22 | 83 | | 23 | 49 | | 24 | 21 | | 25 | 24 | | 26 | 6 | | 27 | 3 | | 28 | 77 | | 29 | 28 | | 30 | 24 | | 31 | 18 | | 32 | 2 | | 33 | 34 | | 34 | 8 | | 35 | 26 | | 36 | 34 | | 37 | 1 | | 38 | 47 | | 39 | 39 | | 40 | 7 | | 41 | 9 | | 42 | 4 | | 43 | 24 | | 44 | 11 | | 45 | 9 | | 46 | 9 | | 47 | 39 | | 48 | 10 | | 49 | 2 |
| |
| 99.99% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 133 | | matches | | 0 | "been buried" | | 1 | "being traded" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 227 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 1 | | flaggedSentences | 14 | | totalSentences | 152 | | ratio | 0.092 | | matches | | 0 | "The suspect—lean, dark-clad, moving like a shadow with purpose—ducked around the corner of Old Compton Street, his boots splashing through puddles that reflected the sickly yellow of streetlamps." | | 1 | "The suspect hesitated for half a second—just long enough for Harlow to see the tension in his shoulders—before shoving through the bar’s heavy oak door." | | 2 | "She burst into the bar, the warmth of it hitting her like a wall—smoke, whiskey, the low hum of hushed conversations." | | 3 | "Her gaze locked onto the bookshelf at the back—the one with the *Complete Works of Poe* that was always slightly askew." | | 4 | "The back room was smaller than she remembered, the air thick with the scent of old paper and something metallic—copper, maybe, or blood." | | 5 | "The Market wasn’t just off-limits; it was a goddamn fairy tale, the kind of place rookies whispered about after too many pints." | | 6 | "She’d heard the stories—cops who’d gone in after a lead and come back…" | | 7 | "The sound of the city above faded, replaced by the murmur of voices, the clink of glass, the low, rhythmic *thump* of music that wasn’t quite music—more like a heartbeat, slow and deliberate." | | 8 | "The suspect—tall, dark hair slicked back from the rain—counted out coins that gleamed dull gold in the lamplight." | | 9 | "Not because she recognized him—she didn’t." | | 10 | "He reached into his jacket—slow, deliberate—and pulled out a syringe." | | 11 | "She’d heard that tone before—in hostage negotiators, in doctors delivering bad news." | | 12 | "And Morris—*always* Morris, lurking at the edges of her thoughts." | | 13 | "“Because you’re the first cop who’s ever made it this far without losing her mind. And because” —he glanced over her shoulder, his expression darkening— “you’re about to need all the help you can get.”" |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1132 | | adjectiveStacks | 2 | | stackExamples | | 0 | "suspect—lean, dark-clad," | | 1 | "suspect—tall, dark hair" |
| | adverbCount | 35 | | adverbRatio | 0.030918727915194347 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.00441696113074205 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 152 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 152 | | mean | 9.83 | | std | 8.41 | | cv | 0.855 | | sampleLengths | | 0 | 17 | | 1 | 7 | | 2 | 28 | | 3 | 12 | | 4 | 17 | | 5 | 15 | | 6 | 25 | | 7 | 5 | | 8 | 2 | | 9 | 2 | | 10 | 33 | | 11 | 4 | | 12 | 21 | | 13 | 39 | | 14 | 2 | | 15 | 6 | | 16 | 6 | | 17 | 4 | | 18 | 21 | | 19 | 3 | | 20 | 2 | | 21 | 20 | | 22 | 17 | | 23 | 4 | | 24 | 7 | | 25 | 3 | | 26 | 12 | | 27 | 8 | | 28 | 20 | | 29 | 14 | | 30 | 6 | | 31 | 7 | | 32 | 4 | | 33 | 20 | | 34 | 23 | | 35 | 21 | | 36 | 25 | | 37 | 5 | | 38 | 5 | | 39 | 5 | | 40 | 4 | | 41 | 9 | | 42 | 22 | | 43 | 8 | | 44 | 2 | | 45 | 13 | | 46 | 1 | | 47 | 1 | | 48 | 2 | | 49 | 14 |
| |
| 68.86% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4407894736842105 | | totalSentences | 152 | | uniqueOpeners | 67 | |
| 85.47% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 117 | | matches | | 0 | "Slowly, he turned." | | 1 | "At least, according to the" | | 2 | "Just an inch." |
| | ratio | 0.026 | |
| 93.50% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 117 | | matches | | 0 | "She followed, her own breath" | | 1 | "She cursed under her breath." | | 2 | "She burst into the bar," | | 3 | "She ignored them, scanning the" | | 4 | "Her gaze locked onto the" | | 5 | "She strode forward, her leather" | | 6 | "She palmed her warrant card," | | 7 | "He jerked his chin toward" | | 8 | "She shoved the *Poe* collection" | | 9 | "She knew what it was." | | 10 | "*He went down there.*" | | 11 | "She’d heard the stories—cops who’d" | | 12 | "She crouched, running her fingers" | | 13 | "He was still running." | | 14 | "She could call it in." | | 15 | "She tucked the token into" | | 16 | "She knew that instinctively, the" | | 17 | "She moved forward, her boots" | | 18 | "Her target was twenty feet" | | 19 | "She stepped forward, shoulder checking" |
| | ratio | 0.316 | |
| 41.20% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 98 | | totalSentences | 117 | | matches | | 0 | "Rain lashed the pavement in" | | 1 | "Detective Harlow Quinn didn’t slow" | | 2 | "The suspect—lean, dark-clad, moving like" | | 3 | "She followed, her own breath" | | 4 | "The green neon of *The" | | 5 | "The suspect hesitated for half" | | 6 | "She cursed under her breath." | | 7 | "The Nest was a haven" | | 8 | "Harlow didn’t break stride." | | 9 | "She burst into the bar," | | 10 | "The usual crowd: a mix" | | 11 | "She ignored them, scanning the" | | 12 | "Her gaze locked onto the" | | 13 | "The hidden door." | | 14 | "She strode forward, her leather" | | 15 | "The bartender, a wiry man" | | 16 | "Harlow didn’t stop" | | 17 | "Danny exhaled through his nose," | | 18 | "She palmed her warrant card," | | 19 | "A muscle in Danny’s jaw" |
| | ratio | 0.838 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 117 | | matches | (empty) | | ratio | 0 | |
| 49.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 6 | | matches | | 0 | "The suspect—lean, dark-clad, moving like a shadow with purpose—ducked around the corner of Old Compton Street, his boots splashing through puddles that reflecte…" | | 1 | "The usual crowd: a mix of off-duty cops who didn’t ask questions, journalists chasing leads that didn’t exist on paper, and the occasional suit who looked like …" | | 2 | "A *bone token* lay on the top step, white and smooth as river stone, etched with symbols that made her fingers itch to touch them." | | 3 | "The sound of the city above faded, replaced by the murmur of voices, the clink of glass, the low, rhythmic *thump* of music that wasn’t quite music—more like a …" | | 4 | "Stalls lined the tunnel, their wares displayed on rickety tables or hung from hooks: vials of liquid that shifted color when she blinked, bundles of herbs that …" | | 5 | "The suspect—tall, dark hair slicked back from the rain—counted out coins that gleamed dull gold in the lamplight." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 4 | | matches | | 0 | "he said, voice low, accented" | | 1 | "He held, the light catching the needle" | | 2 | "He gestured, the stalls, the *things* being traded in the shadows" | | 3 | "—he glanced, his expression darkening—" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 30 | | tagDensity | 0.1 | | leniency | 0.2 | | rawRatio | 0.333 | | effectiveRatio | 0.067 | |