| 75.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said finally [finally]" | | 1 | "she said finally [finally]" |
| | dialogueSentences | 24 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0.125 | | effectiveRatio | 0.125 | |
| 68.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1099 | | totalAiIsmAdverbs | 7 | | found | | 0 | | | 1 | | | 2 | | adverb | "barely above a whisper" | | count | 2 |
|
| | highlights | | 0 | "slowly" | | 1 | "very" | | 2 | "barely above a whisper" |
| |
| 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) | |
| 4.46% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1099 | | totalAiIsms | 21 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | word | "down her spine" | | count | 4 |
| | 5 | | | 6 | | | 7 | | word | "skipped a beat" | | count | 1 |
| | 8 | | | 9 | | | 10 | | | 11 | | | 12 | |
| | highlights | | 0 | "racing" | | 1 | "stomach" | | 2 | "simmering" | | 3 | "echoing" | | 4 | "down her spine" | | 5 | "scanned" | | 6 | "eyebrow" | | 7 | "skipped a beat" | | 8 | "pounding" | | 9 | "intensity" | | 10 | "tension" | | 11 | "whisper" | | 12 | "calculating" |
| |
| 33.33% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 4 | | maxInWindow | 3 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 2 |
| | 1 | | label | "air was thick with" | | count | 1 |
| | 2 | | label | "flicker of emotion" | | count | 1 |
|
| | highlights | | 0 | "eyes narrowed" | | 1 | "The air was thick with" | | 2 | "a spark of anger" |
| |
| 61.87% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 5 | | narrationSentences | 66 | | matches | | 0 | "felt a shiver" | | 1 | "a spark of anger" | | 2 | "felt a shiver" | | 3 | "felt a shiver" | | 4 | "felt a shiver" |
| |
| 0.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 6 | | narrationSentences | 66 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 75 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 31 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1099 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 57.21% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 916 | | uniqueNames | 5 | | maxNameDensity | 1.86 | | worstName | "Lucien" | | maxWindowNameDensity | 3 | | worstWindowName | "Lucien" | | discoveredNames | | Moreau | 1 | | Frenchman | 1 | | Lucien | 17 | | Rory | 10 | | Evan | 3 |
| | persons | | 0 | "Moreau" | | 1 | "Frenchman" | | 2 | "Lucien" | | 3 | "Rory" | | 4 | "Evan" |
| | places | (empty) | | globalScore | 0.572 | | windowScore | 0.667 | |
| 65.25% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | glossingSentenceCount | 2 | | matches | | 0 | "as if daring her to open it" | | 1 | "felt like he was searching her very sou" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1099 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 75 | | matches | (empty) | |
| 69.82% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 23 | | mean | 47.78 | | std | 18.84 | | cv | 0.394 | | sampleLengths | | 0 | 84 | | 1 | 73 | | 2 | 45 | | 3 | 30 | | 4 | 66 | | 5 | 45 | | 6 | 30 | | 7 | 62 | | 8 | 40 | | 9 | 46 | | 10 | 75 | | 11 | 49 | | 12 | 70 | | 13 | 32 | | 14 | 41 | | 15 | 58 | | 16 | 66 | | 17 | 21 | | 18 | 15 | | 19 | 35 | | 20 | 46 | | 21 | 54 | | 22 | 16 |
| |
| 89.31% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 66 | | matches | | 0 | "was gone" | | 1 | "was trapped" | | 2 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 180 | | matches | | 0 | "was stepping" | | 1 | "was searching" | | 2 | "was talking" | | 3 | "was racing" | | 4 | "was standing" | | 5 | "was taking was stepping" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 75 | | ratio | 0.013 | | matches | | 0 | "The ache in her chest, the hollow feeling in her stomach – it was all still there, simmering just below the surface." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 217 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 5 | | adverbRatio | 0.02304147465437788 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.009216589861751152 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 75 | | echoCount | 0 | | echoWords | (empty) | |
| 93.29% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 75 | | mean | 14.65 | | std | 5.62 | | cv | 0.383 | | sampleLengths | | 0 | 17 | | 1 | 16 | | 2 | 24 | | 3 | 27 | | 4 | 12 | | 5 | 14 | | 6 | 13 | | 7 | 12 | | 8 | 22 | | 9 | 20 | | 10 | 11 | | 11 | 14 | | 12 | 10 | | 13 | 16 | | 14 | 4 | | 15 | 18 | | 16 | 24 | | 17 | 24 | | 18 | 22 | | 19 | 14 | | 20 | 9 | | 21 | 20 | | 22 | 10 | | 23 | 22 | | 24 | 14 | | 25 | 9 | | 26 | 17 | | 27 | 9 | | 28 | 8 | | 29 | 14 | | 30 | 9 | | 31 | 18 | | 32 | 11 | | 33 | 17 | | 34 | 14 | | 35 | 8 | | 36 | 11 | | 37 | 7 | | 38 | 24 | | 39 | 11 | | 40 | 21 | | 41 | 16 | | 42 | 12 | | 43 | 10 | | 44 | 12 | | 45 | 10 | | 46 | 16 | | 47 | 22 | | 48 | 15 | | 49 | 17 |
| |
| 44.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.29333333333333333 | | totalSentences | 75 | | uniqueOpeners | 22 | |
| 50.51% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 66 | | matches | | | ratio | 0.015 | |
| 74.55% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 66 | | matches | | 0 | "His slicked-back platinum blond hair" | | 1 | "She hesitated, her mind racing" | | 2 | "She opened the door a" | | 3 | "she asked, her voice firm," | | 4 | "he said, his voice low" | | 5 | "She hesitated, her mind screaming" | | 6 | "he said, his voice dripping" | | 7 | "she repeated, her voice firm" | | 8 | "he said, his voice businesslike" | | 9 | "she asked, her voice cautious" | | 10 | "he said, his voice low" | | 11 | "She knew exactly who Lucien" | | 12 | "She felt a cold sweat" | | 13 | "he said, his voice low" | | 14 | "She knew she should tell" | | 15 | "she lied, her voice firm," | | 16 | "he said, his voice low" | | 17 | "She knew she was in" | | 18 | "she said finally, her voice" | | 19 | "he asked, his voice low" |
| | ratio | 0.364 | |
| 66.06% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 66 | | matches | | 0 | "Rory's eyes narrowed as she" | | 1 | "The figure on the other" | | 2 | "Lucien Moreau, the Frenchman, stood" | | 3 | "His slicked-back platinum blond hair" | | 4 | "She hesitated, her mind racing" | | 5 | "The way he'd walked out" | | 6 | "The way she'd tried to" | | 7 | "The ache in her chest," | | 8 | "Rory took a deep breath" | | 9 | "She opened the door a" | | 10 | "she asked, her voice firm," | | 11 | "Lucien pushed off the wall," | | 12 | "he said, his voice low" | | 13 | "She hesitated, her mind screaming" | | 14 | "The door creaked shut behind" | | 15 | "The flat was small, cluttered" | | 16 | "Lucien's eyes scanned the room," | | 17 | "he said, his voice dripping" | | 18 | "Rory felt a spark of" | | 19 | "she repeated, her voice firm" |
| | ratio | 0.788 | |
| 75.76% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 66 | | matches | | | ratio | 0.015 | |
| 45.45% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 6 | | matches | | 0 | "Lucien Moreau, the Frenchman, stood with his back against the wall, his eyes fixed on the door as if daring her to open it." | | 1 | "Lucien's gaze dropped to her lips, and for a moment, she thought she saw something there, something that looked almost like longing." | | 2 | "Rory's mind was racing, her heart pounding in her chest." | | 3 | "But something held her back, something that made her hesitate." | | 4 | "But she also knew she couldn't back down, not now, not when Lucien was standing in front of her, his eyes blazing with a fierce intensity." | | 5 | "But as she looked into his eyes, she saw something there, something that made her wonder if she was ready to face the truth, no matter how painful it might be." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 14 | | matches | | 0 | "she asked, her voice firm, but her heart racing" | | 1 | "he said, his voice low and smooth, like honey" | | 2 | "he said, his voice dripping with sarcasm" | | 3 | "she repeated, her voice firm" | | 4 | "she asked, her voice cautious" | | 5 | "he said, his voice low" | | 6 | "he said, his voice low and urgent" | | 7 | "she lied, her voice firm, but her eyes betraying her" | | 8 | "he said, his voice low and menacing" | | 9 | "she said finally, her voice barely above a whisper" | | 10 | "he asked, his voice low" | | 11 | "she said, her voice firm" | | 12 | "he said, his voice low" | | 13 | "she said finally, her voice barely above a whisper" |
| |
| 83.33% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 2 | | fancyTags | | 0 | "she repeated (repeat)" | | 1 | "she lied (lie)" |
| | dialogueSentences | 24 | | tagDensity | 0.625 | | leniency | 1 | | rawRatio | 0.133 | | effectiveRatio | 0.133 | |