| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 41 | | tagDensity | 0.317 | | leniency | 0.634 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 82.88% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 876 | | totalAiIsmAdverbs | 3 | | found | | 0 | | | 1 | | | 2 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | 0 | "really" | | 1 | "slowly" | | 2 | "deliberately" |
| |
| 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) | |
| 48.63% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 876 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "gleaming" | | 1 | "flicked" | | 2 | "pulse" | | 3 | "charged" | | 4 | "eyebrow" | | 5 | "silence" | | 6 | "tension" |
| |
| 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 | 0 | | narrationSentences | 71 | | matches | (empty) | |
| 82.49% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 71 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 99 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 868 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 91.09% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 18 | | wordCount | 679 | | uniqueNames | 5 | | maxNameDensity | 1.18 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 5 | | Soho | 1 | | Lucien | 8 | | London | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Ptolemy" |
| | places | | | globalScore | 0.911 | | windowScore | 1 | |
| 94.44% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | glossingSentenceCount | 1 | | matches | | 0 | "as if sensing the tension in the air" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 868 | | matches | (empty) | |
| 31.99% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 4 | | totalSentences | 99 | | matches | | 0 | "make that mistake" | | 1 | "hated that he" | | 2 | "chose that moment" | | 3 | "chose that moment" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 19.73 | | std | 13.82 | | cv | 0.7 | | sampleLengths | | 0 | 37 | | 1 | 67 | | 2 | 15 | | 3 | 15 | | 4 | 50 | | 5 | 11 | | 6 | 17 | | 7 | 19 | | 8 | 6 | | 9 | 21 | | 10 | 9 | | 11 | 10 | | 12 | 51 | | 13 | 9 | | 14 | 7 | | 15 | 28 | | 16 | 6 | | 17 | 21 | | 18 | 25 | | 19 | 16 | | 20 | 16 | | 21 | 27 | | 22 | 34 | | 23 | 36 | | 24 | 11 | | 25 | 11 | | 26 | 7 | | 27 | 37 | | 28 | 15 | | 29 | 10 | | 30 | 21 | | 31 | 31 | | 32 | 4 | | 33 | 27 | | 34 | 26 | | 35 | 3 | | 36 | 6 | | 37 | 12 | | 38 | 7 | | 39 | 32 | | 40 | 13 | | 41 | 9 | | 42 | 24 | | 43 | 9 |
| |
| 95.38% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 71 | | matches | | 0 | "was unbuttoned" | | 1 | "were filled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 137 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 99 | | ratio | 0.061 | | matches | | 0 | "The scent of damp wool and something sharp—like ozone after a storm—spilled into the hallway first, then him." | | 1 | "Ptolemy slinked out from under the sofa, tail flicking, but didn’t meow—just watched them with those golden, unblinking eyes." | | 2 | "She remembered the last time they’d stood this close—outside the old bookshop in Soho, the rain slicking the pavement, his hands warm against her skin as he’d told her things she hadn’t wanted to hear." | | 3 | "She hated when he did this—to make her feel things she’d buried." | | 4 | "Instead, he reached into his coat—slowly, deliberately—and pulled out a small, leather-bound book." | | 5 | "Inside, the pages were filled with symbols—some she recognized, others twisted and unfamiliar." |
| |
| 93.34% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 687 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, leather-bound book." |
| | adverbCount | 28 | | adverbRatio | 0.040756914119359534 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.002911208151382824 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 99 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 99 | | mean | 8.77 | | std | 6.16 | | cv | 0.703 | | sampleLengths | | 0 | 19 | | 1 | 18 | | 2 | 18 | | 3 | 32 | | 4 | 17 | | 5 | 9 | | 6 | 6 | | 7 | 10 | | 8 | 5 | | 9 | 10 | | 10 | 21 | | 11 | 19 | | 12 | 7 | | 13 | 4 | | 14 | 11 | | 15 | 6 | | 16 | 10 | | 17 | 9 | | 18 | 2 | | 19 | 4 | | 20 | 15 | | 21 | 6 | | 22 | 5 | | 23 | 4 | | 24 | 3 | | 25 | 7 | | 26 | 6 | | 27 | 35 | | 28 | 4 | | 29 | 6 | | 30 | 9 | | 31 | 3 | | 32 | 4 | | 33 | 16 | | 34 | 12 | | 35 | 3 | | 36 | 3 | | 37 | 8 | | 38 | 13 | | 39 | 18 | | 40 | 7 | | 41 | 10 | | 42 | 3 | | 43 | 3 | | 44 | 7 | | 45 | 9 | | 46 | 3 | | 47 | 12 | | 48 | 12 | | 49 | 21 |
| |
| 57.91% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3838383838383838 | | totalSentences | 99 | | uniqueOpeners | 38 | |
| 50.51% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 66 | | matches | | 0 | "Instead, he reached into his" |
| | ratio | 0.015 | |
| 7.88% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 66 | | matches | | 0 | "His suit coat was unbuttoned" | | 1 | "His amber eye flicked to" | | 2 | "he countered, his voice smooth" | | 3 | "She stepped back, letting the" | | 4 | "she said, though her pulse" | | 5 | "He tilted his head, the" | | 6 | "He hummed, low and knowing," | | 7 | "His lips quirked." | | 8 | "She remembered the last time" | | 9 | "She’d walked away then." | | 10 | "She wouldn’t make that mistake" | | 11 | "she said, voice steadier than" | | 12 | "She crossed her arms, though" | | 13 | "His expression darkened." | | 14 | "She laughed, sharp and bitter" | | 15 | "He stepped forward then, close" | | 16 | "She swallowed hard." | | 17 | "His voice dropped, rougher now" | | 18 | "She hated when he did" | | 19 | "She hated that he could" |
| | ratio | 0.53 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 66 | | matches | | 0 | "The door creaked open before" | | 1 | "The scent of damp wool" | | 2 | "Lucien stood there, his cane" | | 3 | "His suit coat was unbuttoned" | | 4 | "His amber eye flicked to" | | 5 | "Rory froze, her fingers still" | | 6 | "he countered, his voice smooth" | | 7 | "She stepped back, letting the" | | 8 | "The flat smelled of takeaway" | | 9 | "Ptolemy slinked out from under" | | 10 | "Lucien didn’t move deeper into" | | 11 | "she said, though her pulse" | | 12 | "He tilted his head, the" | | 13 | "He hummed, low and knowing," | | 14 | "Rory exhaled through her nose." | | 15 | "His lips quirked." | | 16 | "The air between them thickened," | | 17 | "She remembered the last time" | | 18 | "She’d walked away then." | | 19 | "She wouldn’t make that mistake" |
| | ratio | 0.924 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 66 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 1 | | matches | | 0 | "He rubbed against her leg, purring, as if sensing the tension in the air." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 5 | | matches | | 0 | "he countered, his voice smooth as whiskey" | | 1 | "she said, though her pulse hammered in her throat" | | 2 | "she said, voice steadier than she felt" | | 3 | "She crossed, though her fingers twitched toward the scar on her wrist" | | 4 | "she said, voice rough" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 2 | | fancyTags | | 0 | "She laughed (laugh)" | | 1 | "she breathed (breathe)" |
| | dialogueSentences | 41 | | tagDensity | 0.22 | | leniency | 0.439 | | rawRatio | 0.222 | | effectiveRatio | 0.098 | |