| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 22 | | tagDensity | 0.409 | | leniency | 0.818 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.96% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1237 | | 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) | |
| 43.41% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1237 | | totalAiIsms | 14 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | word | "down her spine" | | count | 1 |
| | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | |
| | highlights | | 0 | "pulse" | | 1 | "whisper" | | 2 | "flicker" | | 3 | "chill" | | 4 | "down her spine" | | 5 | "gleaming" | | 6 | "dancing" | | 7 | "pulsed" | | 8 | "scanning" | | 9 | "shimmered" | | 10 | "echoed" | | 11 | "flickered" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 100 | | matches | (empty) | |
| 85.71% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 100 | | filterMatches | (empty) | | hedgeMatches | | 0 | "happened to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 113 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 0.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 29 | | markdownWords | 148 | | totalWords | 1221 | | ratio | 0.121 | | matches | | 0 | "Three years." | | 1 | "Too easy." | | 2 | "safety briefings" | | 3 | "Morris’s file." | | 4 | "wrong" | | 5 | "\"You shouldn’t have followed.\"" | | 6 | "\"The Veil Market doesn’t welcome outsiders,\"" | | 7 | "\"Especially not cops.\"" | | 8 | "\"I’m not here for the market. I’m here for answers.\"" | | 9 | "\"Answers cost more than you can afford, detective.\"" | | 10 | "\"Last chance,\"" | | 11 | "\"Turn back. Or stay. But know this—once you step inside, the rules change.\"" | | 12 | "\"Welcome to the Veil, Detective Quinn.\"" | | 13 | "\"What the hell are you doing here?\"" | | 14 | "\"Lost, little bird? I can help you find your way.\"" | | 15 | "\"Where is he?\"" | | 16 | "\"You don’t understand what this place is. It’s not like the surface. The rules—\"" | | 17 | "\"I don’t care about the rules.\"" | | 18 | "\"That’s the back exit. If you go through there—\"" | | 19 | "\"I know.\"" | | 20 | "shifted" | | 21 | "\"You are not welcome here, Detective Quinn.\"" | | 22 | "\"You shouldn’t have come,\"" | | 23 | "\"This isn’t your fight.\"" | | 24 | "\"Where’s Morris?\"" | | 25 | "\"He’s gone. Like the others.\"" | | 26 | "\"You don’t understand what you’re dealing with,\"" | | 27 | "\"This place doesn’t forgive trespassers.\"" | | 28 | "unmade" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 85.36% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 1083 | | uniqueNames | 8 | | maxNameDensity | 1.29 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Detective | 1 | | Harlow | 1 | | Quinn | 14 | | Three | 2 | | Morris | 5 | | Met | 1 | | Tomás | 3 | | Herrera | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Met" | | 4 | "Tomás" | | 5 | "Herrera" |
| | places | (empty) | | globalScore | 0.854 | | windowScore | 1 | |
| 34.62% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 3 | | matches | | 0 | "quite human" | | 1 | "trinkets that seemed to writhe in their own hands" | | 2 | "shadows that seemed to move on their own" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.819 | | wordCount | 1221 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 113 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 31.31 | | std | 23.02 | | cv | 0.735 | | sampleLengths | | 0 | 1 | | 1 | 76 | | 2 | 66 | | 3 | 70 | | 4 | 1 | | 5 | 51 | | 6 | 44 | | 7 | 84 | | 8 | 10 | | 9 | 45 | | 10 | 15 | | 11 | 12 | | 12 | 59 | | 13 | 10 | | 14 | 18 | | 15 | 40 | | 16 | 5 | | 17 | 44 | | 18 | 43 | | 19 | 33 | | 20 | 65 | | 21 | 11 | | 22 | 17 | | 23 | 42 | | 24 | 14 | | 25 | 53 | | 26 | 10 | | 27 | 24 | | 28 | 5 | | 29 | 53 | | 30 | 30 | | 31 | 46 | | 32 | 18 | | 33 | 10 | | 34 | 14 | | 35 | 42 | | 36 | 32 | | 37 | 5 | | 38 | 3 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 100 | | matches | | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 196 | | matches | | 0 | "was running" | | 1 | "was, chasing" | | 2 | "was holding" | | 3 | "wasn’t walking" | | 4 | "was heading" | | 5 | "was burning was waiting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 113 | | ratio | 0.106 | | matches | | 0 | "She didn’t need to see his face to know he was running scared—his breath came in ragged bursts, audible even over the distant wail of a siren." | | 1 | "And now, here she was, chasing a man who’d just stolen a file from her desk—one that matched the pattern of those old cases." | | 2 | "The alley dead-ended at a rusted fire escape, but the man didn’t climb—he ducked behind a stack of crates instead, his movements jerky, desperate." | | 3 | "Then—nothing." | | 4 | "The Met’s rules, the protocols, the *safety briefings*—none of them applied down here." | | 5 | "A flicker of movement caught her eye—a bone token, half-buried in the dirt." | | 6 | "The figure emerged from the shadows—a man, his face half-hidden beneath a hood, his eyes gleaming with something that wasn’t quite human." | | 7 | "She’d spent her career chasing ghosts, but this—this was different." | | 8 | "The market was alive now, the stalls materializing around them like mirages—sellers hawking jars of black liquid, bundles of herbs that smoked in the air, and trinkets that seemed to writhe in their own hands." | | 9 | "She was too busy noticing the symbols carved into the stone—symbols that matched the ones from the file." | | 10 | "The shadowed figure stepped forward, and the torchlight flickered, revealing a face that wasn’t a face at all—just a shifting mass of darkness, like a void given form." | | 11 | "She’d spent her life chasing monsters, but this—this was something else entirely." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1099 | | adjectiveStacks | 1 | | stackExamples | | 0 | "thicker, heavier, pressing against her" |
| | adverbCount | 38 | | adverbRatio | 0.034576888080072796 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.004549590536851683 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 113 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 113 | | mean | 10.8 | | std | 7.38 | | cv | 0.684 | | sampleLengths | | 0 | 36 | | 1 | 13 | | 2 | 27 | | 3 | 10 | | 4 | 26 | | 5 | 24 | | 6 | 1 | | 7 | 5 | | 8 | 22 | | 9 | 8 | | 10 | 24 | | 11 | 9 | | 12 | 4 | | 13 | 3 | | 14 | 1 | | 15 | 3 | | 16 | 16 | | 17 | 3 | | 18 | 2 | | 19 | 22 | | 20 | 3 | | 21 | 2 | | 22 | 8 | | 23 | 13 | | 24 | 10 | | 25 | 13 | | 26 | 9 | | 27 | 16 | | 28 | 13 | | 29 | 10 | | 30 | 12 | | 31 | 24 | | 32 | 6 | | 33 | 4 | | 34 | 8 | | 35 | 22 | | 36 | 12 | | 37 | 3 | | 38 | 5 | | 39 | 10 | | 40 | 4 | | 41 | 8 | | 42 | 18 | | 43 | 16 | | 44 | 3 | | 45 | 10 | | 46 | 12 | | 47 | 10 | | 48 | 5 | | 49 | 13 |
| |
| 38.50% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.26548672566371684 | | totalSentences | 113 | | uniqueOpeners | 30 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 92 | | matches | | 0 | "*Too easy.* She stepped forward," | | 1 | "Too busy hearing the distant" | | 2 | "Too busy realizing she was" |
| | ratio | 0.033 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 92 | | matches | | 0 | "She didn’t need to see" | | 1 | "She didn’t believe in coincidences." | | 2 | "She pressed her back against" | | 3 | "She lunged, but the man" | | 4 | "Her instincts screamed at her" | | 5 | "She plucked it out, turning" | | 6 | "She’d seen it before, in" | | 7 | "he said, his voice like" | | 8 | "She didn’t lower her gun." | | 9 | "She’d spent her career chasing" | | 10 | "She’d spent too many nights" | | 11 | "She took a step forward." | | 12 | "She didn’t answer." | | 13 | "She was too busy noticing" | | 14 | "She didn’t have time to" | | 15 | "she demanded, scanning the crowd" | | 16 | "She shoved past him, her" | | 17 | "He was heading toward a" | | 18 | "She was already moving, her" | | 19 | "She could still turn back." |
| | ratio | 0.283 | |
| 25.22% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 80 | | totalSentences | 92 | | matches | | 0 | "The neon glow of a" | | 1 | "The suspect’s silhouette darted between" | | 2 | "She didn’t need to see" | | 3 | "Quinn’s fingers tightened around the" | | 4 | "She didn’t believe in coincidences." | | 5 | "The suspect veered left, cutting" | | 6 | "Quinn followed, her pulse hammering" | | 7 | "The alley dead-ended at a" | | 8 | "She pressed her back against" | | 9 | "A whisper of fabric." | | 10 | "A muttered curse." | | 11 | "Quinn exhaled sharply." | | 12 | "The crates shifted." | | 13 | "She lunged, but the man" | | 14 | "A hidden door." | | 15 | "Her instincts screamed at her" | | 16 | "The Met’s rules, the protocols," | | 17 | "*Morris’s file.* The one that" | | 18 | "Quinn crouched, pressing her palm" | | 19 | "The passage yawned before her," |
| | ratio | 0.87 | |
| 54.35% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 92 | | matches | | | ratio | 0.011 | |
| 8.93% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 9 | | matches | | 0 | "The neon glow of a flickering streetlamp splashed across the pavement in jagged streaks as Detective Harlow Quinn skidded around the corner, her boots splashing…" | | 1 | "She’d seen it before, in the margins of an old case file, scrawled in the handwriting of a detective who’d gone missing years ago." | | 2 | "The figure emerged from the shadows—a man, his face half-hidden beneath a hood, his eyes gleaming with something that wasn’t quite human." | | 3 | "Behind him, the passage stretched deeper into the earth, lit by flickering torches that cast long, dancing shadows." | | 4 | "She’d spent too many nights staring at missing persons photos, too many years chasing leads that led nowhere." | | 5 | "The market was alive now, the stalls materializing around them like mirages—sellers hawking jars of black liquid, bundles of herbs that smoked in the air, and t…" | | 6 | "He was heading toward a curtain of thick, black fabric that shimmered like oil on water." | | 7 | "She was already moving, her boots splashing through puddles that weren’t water." | | 8 | "The shadowed figure stepped forward, and the torchlight flickered, revealing a face that wasn’t a face at all—just a shifting mass of darkness, like a void give…" |
| |
| 69.44% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 1 | | matches | | 0 | "figure said, its voice a chorus of whispers" |
| |
| 13.64% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 3 | | fancyTags | | 0 | "he hissed (hiss)" | | 1 | "she demanded (demand)" | | 2 | "she demanded (demand)" |
| | dialogueSentences | 22 | | tagDensity | 0.318 | | leniency | 0.636 | | rawRatio | 0.429 | | effectiveRatio | 0.273 | |