| 90.41% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said finally [finally]" | | 1 | "she said finally [finally]" | | 2 | "she said finally [finally]" | | 3 | "she asked finally [finally]" |
| | dialogueSentences | 73 | | tagDensity | 0.301 | | leniency | 0.603 | | rawRatio | 0.182 | | effectiveRatio | 0.11 | |
| 92.20% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1923 | | totalAiIsmAdverbs | 3 | | found | | 0 | | | 1 | | adverb | "barely above a whisper" | | count | 1 |
| | 2 | |
| | highlights | | 0 | "sharply" | | 1 | "barely above a whisper" | | 2 | "slightly" |
| |
| 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) | |
| 58.40% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1923 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "flickered" | | 1 | "scanned" | | 2 | "familiar" | | 3 | "stomach" | | 4 | "weight" | | 5 | "flicked" | | 6 | "silence" | | 7 | "traced" | | 8 | "whisper" | | 9 | "unreadable" | | 10 | "pounding" |
| |
| 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 | 1 | | narrationSentences | 127 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 127 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 170 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 47 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 11 | | markdownWords | 26 | | totalWords | 1909 | | ratio | 0.014 | | matches | | 0 | "The Raven’s Nest" | | 1 | "Old friend needs a drink. Meet me at the Nest. No excuses." | | 2 | "Old friend." | | 3 | "old friend" | | 4 | "them" | | 5 | "clink" | | 6 | "us" | | 7 | "us" | | 8 | "always" | | 9 | "dangerous" | | 10 | "did" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 79.97% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 49 | | wordCount | 1428 | | uniqueNames | 10 | | maxNameDensity | 1.4 | | worstName | "Silas" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Rory | 15 | | Carter | 2 | | Silas | 20 | | Nest | 2 | | Like | 1 | | London | 2 | | Blackwood | 1 | | Cardiff | 2 | | Evan | 3 |
| | persons | | 0 | "Raven" | | 1 | "Rory" | | 2 | "Carter" | | 3 | "Silas" | | 4 | "Blackwood" | | 5 | "Evan" |
| | places | | | globalScore | 0.8 | | windowScore | 0.833 | |
| 57.41% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 81 | | glossingSentenceCount | 3 | | matches | | 0 | "felt like a cage" | | 1 | "something like accusation" | | 2 | "appeared beside them, sliding a fresh glass toward Silas without a word" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1909 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 170 | | matches | | 0 | "earlier that day—*Old" | | 1 | "on, that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 74 | | mean | 25.8 | | std | 22.28 | | cv | 0.864 | | sampleLengths | | 0 | 89 | | 1 | 63 | | 2 | 113 | | 3 | 35 | | 4 | 65 | | 5 | 14 | | 6 | 25 | | 7 | 47 | | 8 | 5 | | 9 | 14 | | 10 | 7 | | 11 | 90 | | 12 | 9 | | 13 | 12 | | 14 | 15 | | 15 | 22 | | 16 | 40 | | 17 | 11 | | 18 | 9 | | 19 | 66 | | 20 | 14 | | 21 | 17 | | 22 | 33 | | 23 | 7 | | 24 | 37 | | 25 | 4 | | 26 | 50 | | 27 | 48 | | 28 | 13 | | 29 | 8 | | 30 | 45 | | 31 | 11 | | 32 | 8 | | 33 | 56 | | 34 | 15 | | 35 | 12 | | 36 | 10 | | 37 | 10 | | 38 | 15 | | 39 | 34 | | 40 | 46 | | 41 | 9 | | 42 | 21 | | 43 | 40 | | 44 | 21 | | 45 | 5 | | 46 | 11 | | 47 | 43 | | 48 | 11 | | 49 | 13 |
| |
| 94.21% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 127 | | matches | | 0 | "get whispered" | | 1 | "got buried" | | 2 | "get tangled" | | 3 | "been shaped" | | 4 | "was exhausted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 282 | | matches | | 0 | "were standing" | | 1 | "was trying" |
| |
| 8.40% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 170 | | ratio | 0.047 | | matches | | 0 | "The neon green sign of *The Raven’s Nest* flickered like a dying ember as Rory Carter pushed through the heavy door, the scent of aged whiskey and something faintly metallic—like old coins—hitting her before she even stepped inside." | | 1 | "She’d come here because Silas had texted her earlier that day—*Old friend needs a drink." | | 2 | "No excuses.*—and though she’d hesitated (old habits died hard), something in the way he’d phrased it had pulled her in." | | 3 | "His grey-streaked auburn hair was longer than she remembered, his neatly trimmed beard now streaked with silver, but it was the limp—the slight hitch in his left leg as he shifted—that made her stomach tighten." | | 4 | "“And you look like you’ve been running from something.” His hazel eyes—sharp, assessing—flicked over her, taking in the dark circles under her eyes, the way her black hair fell straight past her shoulders, the way she sat like she was already halfway out the door." | | 5 | "Instead, she flagged down the bartender—a wiry man with a shaved head and a permanent scowl—and ordered a gin and tonic, neat." | | 6 | "Silas had been her lifeline then—someone who saw the sharp edges of her and didn’t flinch." | | 7 | "She looked away, her gaze landing on the old maps and photographs that lined the walls of the bar—faded images of places she’d never been, people she’d never known." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1441 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 56 | | adverbRatio | 0.0388619014573213 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.007633587786259542 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 170 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 170 | | mean | 11.23 | | std | 8.77 | | cv | 0.781 | | sampleLengths | | 0 | 38 | | 1 | 27 | | 2 | 24 | | 3 | 15 | | 4 | 5 | | 5 | 20 | | 6 | 23 | | 7 | 13 | | 8 | 20 | | 9 | 24 | | 10 | 35 | | 11 | 21 | | 12 | 13 | | 13 | 22 | | 14 | 14 | | 15 | 45 | | 16 | 6 | | 17 | 12 | | 18 | 2 | | 19 | 19 | | 20 | 6 | | 21 | 3 | | 22 | 22 | | 23 | 22 | | 24 | 3 | | 25 | 2 | | 26 | 14 | | 27 | 5 | | 28 | 2 | | 29 | 9 | | 30 | 21 | | 31 | 18 | | 32 | 16 | | 33 | 26 | | 34 | 7 | | 35 | 2 | | 36 | 6 | | 37 | 6 | | 38 | 13 | | 39 | 2 | | 40 | 3 | | 41 | 19 | | 42 | 23 | | 43 | 17 | | 44 | 6 | | 45 | 5 | | 46 | 5 | | 47 | 4 | | 48 | 3 | | 49 | 12 |
| |
| 40.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 17 | | diversityRatio | 0.21176470588235294 | | totalSentences | 170 | | uniqueOpeners | 36 | |
| 56.50% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 118 | | matches | | 0 | "Instead, she flagged down the" | | 1 | "Instead, she stood up, her" |
| | ratio | 0.017 | |
| 16.61% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 60 | | totalSentences | 118 | | matches | | 0 | "She adjusted the strap of" | | 1 | "She’d come here because Silas" | | 2 | "He sat in a corner" | | 3 | "His grey-streaked auburn hair was" | | 4 | "He’d always carried himself like" | | 5 | "She slid into the booth" | | 6 | "she said, because that was" | | 7 | "His hazel eyes—sharp, assessing—flicked over" | | 8 | "He reached for his glass," | | 9 | "She didn’t answer." | | 10 | "she said, though she knew" | | 11 | "He swirled his drink" | | 12 | "She’d been twenty-two, fresh out" | | 13 | "He’d been the one to" | | 14 | "he said finally" | | 15 | "She almost laughed." | | 16 | "His voice was gentle, but" | | 17 | "He arched a brow" | | 18 | "She didn’t answer." | | 19 | "She’d run from Evan, sure," |
| | ratio | 0.508 | |
| 19.32% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 104 | | totalSentences | 118 | | matches | | 0 | "The neon green sign of" | | 1 | "The bar was half-full, the" | | 2 | "She adjusted the strap of" | | 3 | "She’d come here because Silas" | | 4 | "The bar was dim, the" | | 5 | "Rory scanned the room, her" | | 6 | "He sat in a corner" | | 7 | "His grey-streaked auburn hair was" | | 8 | "He’d always carried himself like" | | 9 | "She slid into the booth" | | 10 | "she said, because that was" | | 11 | "Silas exhaled through his nose," | | 12 | "His hazel eyes—sharp, assessing—flicked over" | | 13 | "Rory glanced down at the" | | 14 | "He reached for his glass," | | 15 | "She didn’t answer." | | 16 | "The bartender slid it toward" | | 17 | "Silas watched her." | | 18 | "she said, though she knew" | | 19 | "He swirled his drink" |
| | ratio | 0.881 | |
| 42.37% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 118 | | matches | | 0 | "Because this wasn’t the same." |
| | ratio | 0.008 | |
| 99.13% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 49 | | technicalSentenceCount | 3 | | matches | | 0 | "*Old friend.* Like she was still the same person who’d left London three years ago, like time hadn’t carved them both into strangers." | | 1 | "She looked away, her gaze landing on the old maps and photographs that lined the walls of the bar—faded images of places she’d never been, people she’d never kn…" | | 2 | "The man who’d left bruises on her skin and scars on her soul." |
| |
| 11.36% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 5 | | matches | | 0 | "He cut, his voice low" | | 1 | "she said finally, her voice barely above a whisper" | | 2 | "He nodded, his expression unreadable" | | 3 | "He leaned, his hazel eyes burning into hers" | | 4 | "she asked, her voice barely a whisper" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 73 | | tagDensity | 0.164 | | leniency | 0.329 | | rawRatio | 0 | | effectiveRatio | 0 | |