| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said finally [finally]" |
| | dialogueSentences | 192 | | tagDensity | 0.104 | | leniency | 0.208 | | rawRatio | 0.05 | | effectiveRatio | 0.01 | |
| 69.88% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2656 | | totalAiIsmAdverbs | 16 | | found | | | highlights | | 0 | "slightly" | | 1 | "sharply" | | 2 | "slowly" |
| |
| 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) | |
| 20.93% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2656 | | totalAiIsms | 42 | | found | | | highlights | | 0 | "flickered" | | 1 | "pulse" | | 2 | "silk" | | 3 | "unreadable" | | 4 | "eyebrow" | | 5 | "gleaming" | | 6 | "jaw clenched" | | 7 | "velvet" | | 8 | "stomach" | | 9 | "weight" | | 10 | "unravel" | | 11 | "could feel" | | 12 | "echo" | | 13 | "footsteps" | | 14 | "flicked" | | 15 | "whisper" | | 16 | "trembled" |
| |
| 0.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 10 | | maxInWindow | 5 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 8 |
| | 1 | | label | "stomach dropped/sank" | | count | 1 |
| | 2 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | 0 | "eyes narrowed" | | 1 | "eyes widened" | | 2 | "stomach dropped" | | 3 | "jaw clenched" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 233 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 233 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 386 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 31 | | markdownWords | 32 | | totalWords | 2648 | | ratio | 0.012 | | matches | | 0 | "thud" | | 1 | "when" | | 2 | "petit démon" | | 3 | "real" | | 4 | "you" | | 5 | "click" | | 6 | "thud" | | 7 | "him" | | 8 | "collecting" | | 9 | "shouldn’t" | | 10 | "he" | | 11 | "suspected" | | 12 | "shouldn’t" | | 13 | "showing" | | 14 | "real" | | 15 | "he" | | 16 | "suspected" | | 17 | "shouldn’t" | | 18 | "showing" | | 19 | "real" | | 20 | "he" | | 21 | "suspected" | | 22 | "shouldn’t" | | 23 | "showing" | | 24 | "real" | | 25 | "he" | | 26 | "thump" | | 27 | "shouldn’t" | | 28 | "showing" | | 29 | "he" | | 30 | "thud" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 52 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 174 | | wordCount | 1691 | | uniqueNames | 10 | | maxNameDensity | 4.85 | | worstName | "Rory" | | maxWindowNameDensity | 11 | | worstWindowName | "Rory" | | discoveredNames | | Moreau | 3 | | Rory | 82 | | Lucien | 8 | | Cardiff | 1 | | Evan | 1 | | London | 1 | | Eva | 69 | | Brick | 1 | | Lane | 1 | | Knew | 7 |
| | persons | | 0 | "Moreau" | | 1 | "Rory" | | 2 | "Lucien" | | 3 | "Evan" | | 4 | "Eva" |
| | places | | 0 | "Cardiff" | | 1 | "London" | | 2 | "Brick" | | 3 | "Lane" |
| | globalScore | 0 | | windowScore | 0 | |
| 74.24% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 99 | | glossingSentenceCount | 3 | | matches | | 0 | "quite amusement" | | 1 | "quite a smile" | | 2 | "smelled like old books and something faint" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 2648 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 386 | | matches | | 0 | "knew that scent" | | 1 | "admit that she’d" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 188 | | mean | 14.09 | | std | 12.81 | | cv | 0.91 | | sampleLengths | | 0 | 1 | | 1 | 10 | | 2 | 77 | | 3 | 2 | | 4 | 47 | | 5 | 2 | | 6 | 71 | | 7 | 29 | | 8 | 15 | | 9 | 11 | | 10 | 5 | | 11 | 49 | | 12 | 16 | | 13 | 10 | | 14 | 6 | | 15 | 31 | | 16 | 33 | | 17 | 22 | | 18 | 14 | | 19 | 12 | | 20 | 1 | | 21 | 28 | | 22 | 27 | | 23 | 18 | | 24 | 9 | | 25 | 49 | | 26 | 49 | | 27 | 6 | | 28 | 9 | | 29 | 40 | | 30 | 13 | | 31 | 16 | | 32 | 37 | | 33 | 35 | | 34 | 1 | | 35 | 6 | | 36 | 6 | | 37 | 42 | | 38 | 24 | | 39 | 16 | | 40 | 7 | | 41 | 16 | | 42 | 53 | | 43 | 9 | | 44 | 6 | | 45 | 13 | | 46 | 1 | | 47 | 48 | | 48 | 8 | | 49 | 51 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 233 | | matches | | |
| 62.34% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 339 | | matches | | 0 | "was sitting" | | 1 | "were shaking" | | 2 | "was talking" | | 3 | "was talking" | | 4 | "was talking" | | 5 | "was talking" | | 6 | "was talking" |
| |
| 98.45% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 386 | | ratio | 0.016 | | matches | | 0 | "A gust of cold air rushed in, carrying the scent of rain-slicked pavement and the faint metallic tang of something older—something that clung to the edges of memory like cobwebs." | | 1 | "The voice was smooth, layered with something sharper beneath—like a blade wrapped in silk." | | 2 | "“Neither did you tell me you’d start working for Cheung’s delivery service.” His gaze slid past her, taking in the flat—her bike helmet leaning against the wall, the takeout boxes stacked on the counter, the single candle burning in the corner like a stubborn defiance." | | 3 | "But the memory was there, sharp and vivid—his hands on her skin, his voice rough against her ear, the way he’d whispered her name like it was a prayer." | | 4 | "The one person who knew the real her—the one who’d left Cardiff, who’d run from Evan, who’d built a life in London that was just barely holding together." | | 5 | "The flat on Brick Lane smelled like old books and something faintly metallic—like the back of a library after a storm." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1699 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped scar." |
| | adverbCount | 59 | | adverbRatio | 0.034726309593878756 | | lyAdverbCount | 21 | | lyAdverbRatio | 0.012360211889346674 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 386 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 386 | | mean | 6.85 | | std | 6.25 | | cv | 0.912 | | sampleLengths | | 0 | 10 | | 1 | 30 | | 2 | 13 | | 3 | 12 | | 4 | 4 | | 5 | 18 | | 6 | 2 | | 7 | 14 | | 8 | 3 | | 9 | 6 | | 10 | 5 | | 11 | 19 | | 12 | 2 | | 13 | 29 | | 14 | 22 | | 15 | 10 | | 16 | 10 | | 17 | 16 | | 18 | 13 | | 19 | 8 | | 20 | 7 | | 21 | 5 | | 22 | 6 | | 23 | 5 | | 24 | 45 | | 25 | 4 | | 26 | 6 | | 27 | 10 | | 28 | 3 | | 29 | 7 | | 30 | 2 | | 31 | 4 | | 32 | 10 | | 33 | 21 | | 34 | 3 | | 35 | 8 | | 36 | 17 | | 37 | 5 | | 38 | 16 | | 39 | 6 | | 40 | 9 | | 41 | 5 | | 42 | 6 | | 43 | 6 | | 44 | 1 | | 45 | 12 | | 46 | 7 | | 47 | 8 | | 48 | 1 | | 49 | 3 |
| |
| 42.75% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 28 | | diversityRatio | 0.12176165803108809 | | totalSentences | 386 | | uniqueOpeners | 47 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 219 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 219 | | matches | | 0 | "She knew that scent." | | 1 | "She hadn’t heard it in" | | 2 | "His platinum blond hair was" | | 3 | "he said, stepping inside without" | | 4 | "His gaze slid past her," | | 5 | "His eyebrow lifted." | | 6 | "He tilted his head, the" | | 7 | "She should’ve known better than" | | 8 | "He sauntered deeper into the" | | 9 | "She stepped forward, blocking his" | | 10 | "His smile didn’t reach his" | | 11 | "He reached into his jacket," | | 12 | "He tossed it onto the" | | 13 | "She knew what was inside." | | 14 | "His fingers brushed the pouch," | | 15 | "Her voice was sharper than" | | 16 | "His gaze dropped to her" | | 17 | "She hadn’t thought about that" | | 18 | "She swallowed hard." | | 19 | "His voice was low, dangerous" |
| | ratio | 0.215 | |
| 10.23% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 197 | | totalSentences | 219 | | matches | | 0 | "The door creaked open before" | | 1 | "A gust of cold air" | | 2 | "The flat’s dim bulb flickered," | | 3 | "Rory’s fingers tightened around the" | | 4 | "She knew that scent." | | 5 | "The voice was smooth, layered" | | 6 | "Rory’s breath hitched." | | 7 | "She hadn’t heard it in" | | 8 | "Years, if she was honest." | | 9 | "Lucien Moreau stood in the" | | 10 | "His platinum blond hair was" | | 11 | "The amber one flickered with" | | 12 | "he said, stepping inside without" | | 13 | "The door swung shut behind" | | 14 | "Rory’s fingers curled into fists" | | 15 | "Lucien’s lips quirked, just slightly." | | 16 | "His gaze slid past her," | | 17 | "Rory exhaled sharply through her" | | 18 | "His eyebrow lifted." | | 19 | "He tilted his head, the" |
| | ratio | 0.9 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 219 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 2 | | matches | | 0 | "A gust of cold air rushed in, carrying the scent of rain-slicked pavement and the faint metallic tang of something older—something that clung to the edges of me…" | | 1 | "His platinum blond hair was slightly dishevelled, as if he’d run his fingers through it too many times in the last hour." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 12 | | matches | | 0 | "He tilted, the amber eye gleaming" | | 1 | "He sauntered, his cane tapping against the floor with deliberate precision" | | 2 | "she said, her voice steadier than she felt" | | 3 | "she said, her voice trembling just slightly" | | 4 | "Eva stepped, her voice dropping to a whisper" | | 5 | "Rory said, her voice low" | | 6 | "Rory said, her voice low" | | 7 | "Rory said, her voice low" | | 8 | "Rory said, her voice low" | | 9 | "Rory said, her voice low" | | 10 | "Rory said, her voice low" | | 11 | "Rory said, her voice low" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 192 | | tagDensity | 0.057 | | leniency | 0.115 | | rawRatio | 0 | | effectiveRatio | 0 | |