| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 24 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 76.33% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 845 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "barely above a whisper" | | count | 1 |
| | 2 | | | 3 | |
| | highlights | | 0 | "slowly" | | 1 | "barely above a whisper" | | 2 | "slightly" | | 3 | "carefully" |
| |
| 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) | |
| 52.66% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 845 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "weight" | | 1 | "unreadable" | | 2 | "silence" | | 3 | "whisper" | | 4 | "reminder" | | 5 | "echoed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "clenched jaw/fists" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 84 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 32 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 2 | | totalWords | 837 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 722 | | uniqueNames | 9 | | maxNameDensity | 0.83 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 4 | | Ptolemy | 1 | | Carter | 1 | | Rory | 1 | | Moreau | 1 | | Aurora | 2 | | Lucien | 6 | | Thames | 1 | | Didn | 5 |
| | persons | | 0 | "Eva" | | 1 | "Ptolemy" | | 2 | "Carter" | | 3 | "Rory" | | 4 | "Moreau" | | 5 | "Aurora" | | 6 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 80.53% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 1.195 | | wordCount | 837 | | matches | | 0 | "Not just the news, but the way he said it" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 84 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 23.25 | | std | 18.32 | | cv | 0.788 | | sampleLengths | | 0 | 67 | | 1 | 44 | | 2 | 42 | | 3 | 9 | | 4 | 45 | | 5 | 13 | | 6 | 19 | | 7 | 62 | | 8 | 13 | | 9 | 7 | | 10 | 9 | | 11 | 18 | | 12 | 14 | | 13 | 11 | | 14 | 41 | | 15 | 5 | | 16 | 34 | | 17 | 52 | | 18 | 5 | | 19 | 7 | | 20 | 14 | | 21 | 1 | | 22 | 24 | | 23 | 14 | | 24 | 33 | | 25 | 9 | | 26 | 10 | | 27 | 53 | | 28 | 11 | | 29 | 46 | | 30 | 17 | | 31 | 10 | | 32 | 18 | | 33 | 5 | | 34 | 47 | | 35 | 8 |
| |
| 95.09% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 69 | | matches | | 0 | "been locked" | | 1 | "was scrawled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 143 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 84 | | ratio | 0.083 | | matches | | 0 | "The deadbolts had been locked tight, but the air inside was thick with the scent of old books and something sharper—burnt coffee, maybe, or the faint metallic tang of old wounds." | | 1 | "Aurora Carter—Rory, to those who knew her—was already moving, her fingers brushing the doorknob before she even registered the sound of the lock disengaging." | | 2 | "His suit was immaculate, the charcoal grey tailored to a man who moved with quiet confidence, but his eyes—one amber, one black—held something unreadable." | | 3 | "Instead, he moved past her, his gaze flicking over the cluttered flat—scrolls, half-empty ink bottles, the way the light slanted through the curtains, casting long shadows across the walls." | | 4 | "Not just the news, but the way he said it—like it was something he’d been holding back, like he’d been waiting for the right moment to drop it." | | 5 | "She remembered Eva’s flat—the way the air smelled when she’d been here last, the way the cat had watched her with those golden eyes." | | 6 | "A name was scrawled in the corner—*Eva*." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 730 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 25 | | adverbRatio | 0.03424657534246575 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.00684931506849315 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 84 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 84 | | mean | 9.96 | | std | 7.6 | | cv | 0.763 | | sampleLengths | | 0 | 18 | | 1 | 31 | | 2 | 18 | | 3 | 24 | | 4 | 4 | | 5 | 2 | | 6 | 14 | | 7 | 13 | | 8 | 24 | | 9 | 3 | | 10 | 2 | | 11 | 9 | | 12 | 3 | | 13 | 29 | | 14 | 11 | | 15 | 2 | | 16 | 13 | | 17 | 19 | | 18 | 7 | | 19 | 16 | | 20 | 24 | | 21 | 15 | | 22 | 5 | | 23 | 3 | | 24 | 5 | | 25 | 7 | | 26 | 7 | | 27 | 2 | | 28 | 12 | | 29 | 6 | | 30 | 12 | | 31 | 2 | | 32 | 9 | | 33 | 2 | | 34 | 7 | | 35 | 28 | | 36 | 6 | | 37 | 3 | | 38 | 2 | | 39 | 11 | | 40 | 23 | | 41 | 3 | | 42 | 24 | | 43 | 25 | | 44 | 5 | | 45 | 2 | | 46 | 5 | | 47 | 9 | | 48 | 5 | | 49 | 1 |
| |
| 42.86% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.27380952380952384 | | totalSentences | 84 | | uniqueOpeners | 23 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 61 | | matches | | 0 | "Instead, he moved past her," | | 1 | "Instead, he reached into his" |
| | ratio | 0.033 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 61 | | matches | | 0 | "She didn’t turn around." | | 1 | "His suit was immaculate, the" | | 2 | "He didn’t smile." | | 3 | "she said, voice low, sharp" | | 4 | "He didn’t answer." | | 5 | "His fingers twitched toward the" | | 6 | "she said, her voice cutting" | | 7 | "His voice was smooth, but" | | 8 | "She didn’t wait for him" | | 9 | "She turned, her back to" | | 10 | "He didn’t look at her." | | 11 | "she said, her voice a" | | 12 | "He exhaled through his nose," | | 13 | "She turned slowly, her fingers" | | 14 | "He leaned forward, his elbows" | | 15 | "She didn’t move." | | 16 | "he continued, his voice steady" | | 17 | "She remembered Eva’s flat—the way" | | 18 | "She remembered the way Eva" | | 19 | "She stood abruptly, her chair" |
| | ratio | 0.574 | |
| 25.57% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 61 | | matches | | 0 | "The front door of Eva’s" | | 1 | "The deadbolts had been locked" | | 2 | "The tabby cat, Ptolemy, hissed" | | 3 | "Aurora Carter—Rory, to those who" | | 4 | "She didn’t turn around." | | 5 | "The door swung open with" | | 6 | "Lucien Moreau stepped inside, his" | | 7 | "His suit was immaculate, the" | | 8 | "He didn’t smile." | | 9 | "she said, voice low, sharp" | | 10 | "He didn’t answer." | | 11 | "His fingers twitched toward the" | | 12 | "she said, her voice cutting" | | 13 | "His voice was smooth, but" | | 14 | "She didn’t wait for him" | | 15 | "She turned, her back to" | | 16 | "The one with the cracked" | | 17 | "Someone who had once sat" | | 18 | "Lucien sat down without invitation." | | 19 | "The chair creaked." |
| | ratio | 0.869 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 61 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 27 | | technicalSentenceCount | 3 | | matches | | 0 | "Aurora Carter—Rory, to those who knew her—was already moving, her fingers brushing the doorknob before she even registered the sound of the lock disengaging." | | 1 | "His suit was immaculate, the charcoal grey tailored to a man who moved with quiet confidence, but his eyes—one amber, one black—held something unreadable." | | 2 | "Instead, he moved past her, his gaze flicking over the cluttered flat—scrolls, half-empty ink bottles, the way the light slanted through the curtains, casting l…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 5 | | matches | | 0 | "she said, voice low, sharp" | | 1 | "she said, her voice cutting through the silence like a blade" | | 2 | "she said, her voice a whisper" | | 3 | "he continued, his voice steady" | | 4 | "she asked, her voice barely above a whisper" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | 0 | "he continued (continue)" |
| | dialogueSentences | 24 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.125 | | effectiveRatio | 0.083 | |