| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said bluntly [bluntly]" | | 1 | "His voice dropped just [just]" |
| | dialogueSentences | 62 | | tagDensity | 0.274 | | leniency | 0.548 | | rawRatio | 0.118 | | effectiveRatio | 0.065 | |
| 77.86% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1581 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "lazily" | | 1 | "lightly" | | 2 | "sharply" | | 3 | "slightly" | | 4 | "completely" |
| |
| 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) | |
| 65.21% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1581 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "gleaming" | | 1 | "intensity" | | 2 | "pulse" | | 3 | "stomach" | | 4 | "lilt" | | 5 | "tension" | | 6 | "could feel" | | 7 | "churning" | | 8 | "weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "blood ran cold" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 118 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 118 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 163 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1571 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 16.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 61 | | wordCount | 1154 | | uniqueNames | 8 | | maxNameDensity | 2.34 | | worstName | "Lucien" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Aurora" | | discoveredNames | | Eva | 1 | | Aurora | 24 | | Ptolemy | 2 | | Moreau | 4 | | French | 1 | | Lucien | 27 | | South | 1 | | Bank | 1 |
| | persons | | 0 | "Eva" | | 1 | "Aurora" | | 2 | "Ptolemy" | | 3 | "Moreau" | | 4 | "Lucien" |
| | places | (empty) | | globalScore | 0.33 | | windowScore | 0.167 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1571 | | matches | (empty) | |
| 23.52% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 7 | | totalSentences | 163 | | matches | | 0 | "knew that tone" | | 1 | "remembered that night" | | 2 | "believe that this" | | 3 | "know that Lucien" | | 4 | "chose that moment" | | 5 | "knew that she" | | 6 | "knew that she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 76 | | mean | 20.67 | | std | 17.11 | | cv | 0.828 | | sampleLengths | | 0 | 80 | | 1 | 5 | | 2 | 69 | | 3 | 39 | | 4 | 24 | | 5 | 26 | | 6 | 87 | | 7 | 11 | | 8 | 57 | | 9 | 7 | | 10 | 11 | | 11 | 13 | | 12 | 9 | | 13 | 13 | | 14 | 36 | | 15 | 12 | | 16 | 17 | | 17 | 7 | | 18 | 7 | | 19 | 25 | | 20 | 6 | | 21 | 22 | | 22 | 8 | | 23 | 29 | | 24 | 57 | | 25 | 5 | | 26 | 12 | | 27 | 7 | | 28 | 8 | | 29 | 22 | | 30 | 29 | | 31 | 18 | | 32 | 20 | | 33 | 8 | | 34 | 25 | | 35 | 15 | | 36 | 14 | | 37 | 4 | | 38 | 5 | | 39 | 44 | | 40 | 21 | | 41 | 10 | | 42 | 13 | | 43 | 17 | | 44 | 25 | | 45 | 11 | | 46 | 7 | | 47 | 21 | | 48 | 14 | | 49 | 39 |
| |
| 93.37% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 118 | | matches | | 0 | "was slicked" | | 1 | "was tired" | | 2 | "was cramped" | | 3 | "were organized" | | 4 | "were hidden" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 226 | | matches | | 0 | "was offering was daring" | | 1 | "was seeing" |
| |
| 2.63% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 163 | | ratio | 0.049 | | matches | | 0 | "But it was his eyes that held her—one amber, one black, gleaming with an intensity that made her breath catch." | | 1 | "“I didn’t expect you to be here either,” he admitted, his gaze flicking over the cluttered space—stacks of yellowed papers, half-empty mugs of tea gone cold, the faint scent of incense lingering in the air." | | 2 | "Instead, he let his eyes roam over her—her black hair falling just past her shoulders, the way it always did when she was tired, the faint scar on her wrist peeking out from beneath her sleeve." | | 3 | "Knew the way he said things—like he was offering her a lifeline, but also like he was daring her to refuse." | | 4 | "She remembered that night—years ago, in a dimly lit bar on the South Bank, when he’d let his guard down just enough to show her the real him." | | 5 | "Or something worse—something she refused to name." | | 6 | "She knew about Lucien’s father—the demon who had abandoned him, who had left him to fend for himself in the human world." | | 7 | "She knew the archives—knew the way they were organized, the way the records were hidden behind layers of bureaucracy and old, yellowed paper." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1164 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 46 | | adverbRatio | 0.03951890034364261 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.012027491408934709 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 163 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 163 | | mean | 9.64 | | std | 7.21 | | cv | 0.748 | | sampleLengths | | 0 | 24 | | 1 | 22 | | 2 | 34 | | 3 | 5 | | 4 | 15 | | 5 | 10 | | 6 | 22 | | 7 | 20 | | 8 | 2 | | 9 | 6 | | 10 | 4 | | 11 | 5 | | 12 | 24 | | 13 | 15 | | 14 | 9 | | 15 | 11 | | 16 | 15 | | 17 | 18 | | 18 | 24 | | 19 | 35 | | 20 | 10 | | 21 | 6 | | 22 | 5 | | 23 | 5 | | 24 | 36 | | 25 | 16 | | 26 | 7 | | 27 | 2 | | 28 | 9 | | 29 | 9 | | 30 | 4 | | 31 | 4 | | 32 | 5 | | 33 | 6 | | 34 | 7 | | 35 | 8 | | 36 | 3 | | 37 | 4 | | 38 | 21 | | 39 | 12 | | 40 | 3 | | 41 | 14 | | 42 | 4 | | 43 | 3 | | 44 | 7 | | 45 | 19 | | 46 | 6 | | 47 | 6 | | 48 | 5 | | 49 | 2 |
| |
| 46.32% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.24539877300613497 | | totalSentences | 163 | | uniqueOpeners | 40 | |
| 96.15% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 104 | | matches | | 0 | "Then the light spilled out." | | 1 | "Instead, he let his eyes" | | 2 | "Then he nodded." |
| | ratio | 0.029 | |
| 89.23% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 104 | | matches | | 0 | "She froze, her fingers hovering" | | 1 | "His platinum blond hair was" | | 2 | "She should have known." | | 3 | "he said, his voice smooth," | | 4 | "She swallowed hard, her fingers" | | 5 | "he admitted, his gaze flicking" | | 6 | "He didn’t answer right away." | | 7 | "His gaze lingered there, just" | | 8 | "he said bluntly" | | 9 | "She crossed her arms." | | 10 | "His voice dropped, just slightly" | | 11 | "She knew that tone." | | 12 | "she asked, her voice steadier" | | 13 | "She studied him, trying to" | | 14 | "she asked, her voice quieter" | | 15 | "She remembered that night—years ago," | | 16 | "It had been reckless." | | 17 | "She wanted to believe him." | | 18 | "she said, her voice firm" | | 19 | "She stepped forward, closing the" |
| | ratio | 0.327 | |
| 56.15% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 84 | | totalSentences | 104 | | matches | | 0 | "The door to Eva’s flat" | | 1 | "She froze, her fingers hovering" | | 2 | "The air inside was thick" | | 3 | "A man stepped inside, his" | | 4 | "His platinum blond hair was" | | 5 | "Aurora’s pulse hammered in her" | | 6 | "She should have known." | | 7 | "he said, his voice smooth," | | 8 | "She swallowed hard, her fingers" | | 9 | "Lucien pushed off the doorframe," | | 10 | "The blade inside the ivory" | | 11 | "he admitted, his gaze flicking" | | 12 | "Aurora exhaled sharply, her shoulders" | | 13 | "He didn’t answer right away." | | 14 | "His gaze lingered there, just" | | 15 | "he said bluntly" | | 16 | "Lucien smirked, but there was" | | 17 | "She crossed her arms." | | 18 | "His voice dropped, just slightly" | | 19 | "The words hung between them," |
| | ratio | 0.808 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 104 | | matches | (empty) | | ratio | 0 | |
| 45.45% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 6 | | matches | | 0 | "But it was his eyes that held her—one amber, one black, gleaming with an intensity that made her breath catch." | | 1 | "But the way he stood there, leaning against the doorframe with that infuriating confidence, as if he owned the place, made her stomach twist." | | 2 | "Instead, he let his eyes roam over her—her black hair falling just past her shoulders, the way it always did when she was tired, the faint scar on her wrist pee…" | | 3 | "The cat rubbed against his leg, purring, as if he recognized him instantly." | | 4 | "Lucien crouched, running a hand over the cat’s fur, his expression softening further." | | 5 | "Aurora rolled her eyes, but she couldn’t help the small smile that tugged at her lips." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 9 | | matches | | 0 | "she asked, her voice steadier than she felt" | | 1 | "she asked, her voice quieter now" | | 2 | "Lucien said, his voice low" | | 3 | "she said, her voice firm" | | 4 | "Lucien observed, his voice amused" | | 5 | "Aurora said, her voice sharp" | | 6 | "she asked, her voice careful" | | 7 | "she asked, her voice skeptical" | | 8 | "she said, her voice firm" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 2 | | fancyTags | | 0 | "he admitted (admit)" | | 1 | "Lucien observed (observe)" |
| | dialogueSentences | 62 | | tagDensity | 0.242 | | leniency | 0.484 | | rawRatio | 0.133 | | effectiveRatio | 0.065 | |