| 30.51% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 5 | | adverbTags | | 0 | "Evan said finally [finally]" | | 1 | "Evan said quietly [quietly]" | | 2 | "His voice cracked just [just]" | | 3 | "she said finally [finally]" | | 4 | "Evan said quietly [quietly]" |
| | dialogueSentences | 59 | | tagDensity | 0.203 | | leniency | 0.407 | | rawRatio | 0.417 | | effectiveRatio | 0.169 | |
| 89.68% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1453 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 38.06% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1453 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "flickered" | | 1 | "pulse" | | 2 | "weight" | | 3 | "unreadable" | | 4 | "silence" | | 5 | "could feel" | | 6 | "flicked" | | 7 | "eyebrow" | | 8 | "familiar" | | 9 | "pounding" | | 10 | "racing" | | 11 | "trembled" |
| |
| 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 | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "clenched into fists" | | 1 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 114 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 114 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 160 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 38 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 10 | | totalWords | 1437 | | ratio | 0.007 | | matches | | 0 | "The Raven’s Nest" | | 1 | "No." | | 2 | "Not here. Not now." | | 3 | "more" | | 4 | "us" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 49 | | wordCount | 1086 | | uniqueNames | 4 | | maxNameDensity | 2.21 | | worstName | "Evan" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Rory | 12 | | Silas | 12 | | Evan | 24 |
| | persons | | 0 | "Raven" | | 1 | "Rory" | | 2 | "Silas" | | 3 | "Evan" |
| | places | (empty) | | globalScore | 0.395 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | glossingSentenceCount | 1 | | matches | | 0 | "appeared beside her, his presence a quiet storm" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1437 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 160 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 71 | | mean | 20.24 | | std | 19.4 | | cv | 0.959 | | sampleLengths | | 0 | 83 | | 1 | 1 | | 2 | 95 | | 3 | 34 | | 4 | 44 | | 5 | 3 | | 6 | 57 | | 7 | 15 | | 8 | 18 | | 9 | 7 | | 10 | 57 | | 11 | 7 | | 12 | 14 | | 13 | 16 | | 14 | 16 | | 15 | 2 | | 16 | 52 | | 17 | 7 | | 18 | 7 | | 19 | 7 | | 20 | 21 | | 21 | 36 | | 22 | 44 | | 23 | 12 | | 24 | 48 | | 25 | 18 | | 26 | 44 | | 27 | 12 | | 28 | 13 | | 29 | 13 | | 30 | 9 | | 31 | 4 | | 32 | 16 | | 33 | 13 | | 34 | 4 | | 35 | 15 | | 36 | 22 | | 37 | 11 | | 38 | 5 | | 39 | 7 | | 40 | 5 | | 41 | 11 | | 42 | 4 | | 43 | 23 | | 44 | 9 | | 45 | 22 | | 46 | 16 | | 47 | 15 | | 48 | 18 | | 49 | 68 |
| |
| 96.03% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 114 | | matches | | 0 | "been carved" | | 1 | "was gone" | | 2 | "been broken" |
| |
| 67.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 201 | | matches | | 0 | "was bracing" | | 1 | "was testing" | | 2 | "was looking" | | 3 | "was happening" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 160 | | ratio | 0.056 | | matches | | 0 | "The air inside was thick with the scent of aged whiskey and something sharper—ozone, maybe, or the faint metallic tang of old secrets." | | 1 | "*No.* She blinked, rubbed at her eyes—maybe it was the glare of the overhead lights, maybe it was the exhaustion settling into her bones after another shift delivering takeaways through the rain-slicked streets." | | 2 | "Not now.* She turned toward the bar, but her foot caught on the uneven floorboard, and she stumbled—just enough to make her glance back." | | 3 | "The bartender—a wiry man with a salt-and-pepper beard—slid a glass of whiskey toward her without a word." | | 4 | "She stared at him, at the man he’d become—harder, colder, the edges of him sharpened by time and regret." | | 5 | "She wanted to tell him he was wrong, that she’d been the one who couldn’t see him—not because he was too much, but because she’d been too little." | | 6 | "The air was thick with the scent of old paper and something else—something darker, like the ghost of a secret." | | 7 | "The names were all of people she knew—people she’d thought she’d left behind." | | 8 | "She looked at him, really looked at him, and saw the man he’d become—the man who’d been broken and remade by time and regret." |
| |
| 99.24% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1101 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.04087193460490463 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.009990917347865577 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 160 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 160 | | mean | 8.98 | | std | 7.26 | | cv | 0.808 | | sampleLengths | | 0 | 30 | | 1 | 23 | | 2 | 6 | | 3 | 24 | | 4 | 1 | | 5 | 7 | | 6 | 33 | | 7 | 5 | | 8 | 13 | | 9 | 17 | | 10 | 20 | | 11 | 8 | | 12 | 2 | | 13 | 24 | | 14 | 4 | | 15 | 17 | | 16 | 1 | | 17 | 1 | | 18 | 21 | | 19 | 3 | | 20 | 9 | | 21 | 3 | | 22 | 23 | | 23 | 17 | | 24 | 5 | | 25 | 15 | | 26 | 12 | | 27 | 6 | | 28 | 6 | | 29 | 1 | | 30 | 7 | | 31 | 14 | | 32 | 22 | | 33 | 14 | | 34 | 7 | | 35 | 6 | | 36 | 8 | | 37 | 7 | | 38 | 9 | | 39 | 14 | | 40 | 2 | | 41 | 2 | | 42 | 4 | | 43 | 31 | | 44 | 14 | | 45 | 3 | | 46 | 7 | | 47 | 7 | | 48 | 4 | | 49 | 3 |
| |
| 41.88% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.275 | | totalSentences | 160 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 103 | | matches | | 0 | "Instead, her gaze snagged on" | | 1 | "Then, too fast, it was" | | 2 | "Instead, she slid onto the" | | 3 | "Instead, he poured himself a" | | 4 | "Instead, she reached for the" | | 5 | "Instead, he reached for the" |
| | ratio | 0.058 | |
| 80.19% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 103 | | matches | | 0 | "She didn’t look for Silas" | | 1 | "His fingers tapped restlessly against" | | 2 | "His eyes locked onto hers," | | 3 | "Her name on his lips" | | 4 | "She didn’t answer." | | 5 | "She didn’t remember ordering it." | | 6 | "She took a slow sip," | | 7 | "She remembered the way he" | | 8 | "She remembered the way he’d" | | 9 | "She let out a sharp," | | 10 | "His voice was rough, like" | | 11 | "She’d been twenty-one then, raw" | | 12 | "She’d been wrong." | | 13 | "His laugh was bitter." | | 14 | "His voice cracked, just slightly," | | 15 | "She stared at him, at" | | 16 | "she said finally" | | 17 | "She wanted to argue." | | 18 | "She wanted to tell him" | | 19 | "She ignored him, turning to" |
| | ratio | 0.35 | |
| 42.52% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 103 | | matches | | 0 | "The neon green sign of" | | 1 | "The air inside was thick" | | 2 | "She didn’t look for Silas" | | 3 | "The name hit her like" | | 4 | "His fingers tapped restlessly against" | | 5 | "Rory exhaled through her nose," | | 6 | "Evan’s head snapped up." | | 7 | "His eyes locked onto hers," | | 8 | "Her name on his lips" | | 9 | "She didn’t answer." | | 10 | "The bartender—a wiry man with" | | 11 | "She didn’t remember ordering it." | | 12 | "Evan said finally, the words" | | 13 | "She took a slow sip," | | 14 | "A muscle twitched in his" | | 15 | "Rory swirled the whiskey in" | | 16 | "She remembered the way he" | | 17 | "She remembered the way he’d" | | 18 | "Evan’s fingers tightened around his" | | 19 | "She let out a sharp," |
| | ratio | 0.835 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 103 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 2 | | matches | | 0 | "She paused in front of the bookshelf that hid the secret room, her fingers brushing the spines of the books." | | 1 | "She turned, her gaze falling on the ledger sitting on the desk." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "he snapped (snap)" | | 1 | "Silas murmured (murmur)" |
| | dialogueSentences | 59 | | tagDensity | 0.136 | | leniency | 0.271 | | rawRatio | 0.25 | | effectiveRatio | 0.068 | |