| 77.55% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 3 | | adverbTags | | 0 | "She swallowed thickly. [thickly]" | | 1 | "He turned back [back]" | | 2 | "Her pulse thundered too [too]" |
| | dialogueSentences | 49 | | tagDensity | 0.449 | | leniency | 0.898 | | rawRatio | 0.136 | | effectiveRatio | 0.122 | |
| 96.53% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1442 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 0.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1442 | | totalAiIsms | 30 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | |
| | highlights | | 0 | "lurched" | | 1 | "pristine" | | 2 | "glinting" | | 3 | "pulse" | | 4 | "thundered" | | 5 | "measured" | | 6 | "silence" | | 7 | "jaw clenched" | | 8 | "flicker" | | 9 | "whisper" | | 10 | "flicked" | | 11 | "footfall" | | 12 | "footsteps" | | 13 | "fluttered" | | 14 | "pounding" | | 15 | "unreadable" | | 16 | "warmth" | | 17 | "throbbed" | | 18 | "trembled" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 111 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 111 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 136 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1432 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 1234 | | uniqueNames | 12 | | maxNameDensity | 0.24 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Aurora | 1 | | Moreau | 1 | | Golden | 1 | | Empress | 1 | | Pushkin | 1 | | Russian | 1 | | Eva | 1 | | Flat | 1 | | Silas | 2 | | Lucien | 3 | | London | 1 | | Footsteps | 3 |
| | persons | | 0 | "Aurora" | | 1 | "Moreau" | | 2 | "Empress" | | 3 | "Eva" | | 4 | "Silas" | | 5 | "Lucien" | | 6 | "Footsteps" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 80 | | glossingSentenceCount | 1 | | matches | | 0 | "as though testing for traps" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.698 | | wordCount | 1432 | | matches | | 0 | "Not for her forgiveness but to warn her they weren’t alone" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 136 | | matches | | 0 | "met that flare" | | 1 | "let that happen" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 83 | | mean | 17.25 | | std | 9.27 | | cv | 0.537 | | sampleLengths | | 0 | 37 | | 1 | 25 | | 2 | 10 | | 3 | 32 | | 4 | 10 | | 5 | 51 | | 6 | 8 | | 7 | 7 | | 8 | 14 | | 9 | 39 | | 10 | 13 | | 11 | 22 | | 12 | 12 | | 13 | 18 | | 14 | 11 | | 15 | 14 | | 16 | 15 | | 17 | 13 | | 18 | 21 | | 19 | 9 | | 20 | 8 | | 21 | 19 | | 22 | 24 | | 23 | 28 | | 24 | 22 | | 25 | 11 | | 26 | 17 | | 27 | 15 | | 28 | 17 | | 29 | 18 | | 30 | 16 | | 31 | 12 | | 32 | 6 | | 33 | 5 | | 34 | 22 | | 35 | 23 | | 36 | 12 | | 37 | 19 | | 38 | 12 | | 39 | 9 | | 40 | 16 | | 41 | 29 | | 42 | 14 | | 43 | 13 | | 44 | 19 | | 45 | 7 | | 46 | 8 | | 47 | 19 | | 48 | 22 | | 49 | 13 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 111 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 246 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 136 | | ratio | 0.059 | | matches | | 0 | "She’d imagined this moment a thousand ways—angry refusals, slammed doors, his silhouette fading into fog—but never this calm, measured tone." | | 1 | "He gave a half–smile that didn’t touch his eyes." | | 2 | "She’d fled him once for secrets and half–truths." | | 3 | "He strode to her side. One gloved hand hovered over her head. With a flick, he disarmed both deadbolts—no, one bolt, then kicked the door shut. The latch snapped." | | 4 | "His warmth flowed through her glove. He hauled her up and half–drifted, half–carried her behind the sofa." | | 5 | "He slid silently along the wall. She followed, breath flat. They reached the archway into the kitchenette. She saw the peeling wallpaper stained by steam and the dented fridge. The place looked ordinary—cozy even. And now, impossible to defend." | | 6 | "Her scar throbbed. She curled her fists. If he died here—he wouldn’t. She wouldn’t let that happen." | | 7 | "He advanced in a single fluid step, cane–knife slicing the air. The intruder backed away, hands up." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 454 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 17 | | adverbRatio | 0.037444933920704845 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.00881057268722467 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 136 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 136 | | mean | 10.53 | | std | 7.94 | | cv | 0.754 | | sampleLengths | | 0 | 9 | | 1 | 22 | | 2 | 6 | | 3 | 21 | | 4 | 4 | | 5 | 5 | | 6 | 5 | | 7 | 12 | | 8 | 20 | | 9 | 3 | | 10 | 6 | | 11 | 1 | | 12 | 11 | | 13 | 11 | | 14 | 11 | | 15 | 18 | | 16 | 6 | | 17 | 2 | | 18 | 4 | | 19 | 3 | | 20 | 9 | | 21 | 5 | | 22 | 13 | | 23 | 13 | | 24 | 8 | | 25 | 5 | | 26 | 8 | | 27 | 5 | | 28 | 3 | | 29 | 12 | | 30 | 7 | | 31 | 6 | | 32 | 6 | | 33 | 9 | | 34 | 3 | | 35 | 6 | | 36 | 9 | | 37 | 2 | | 38 | 4 | | 39 | 10 | | 40 | 12 | | 41 | 3 | | 42 | 3 | | 43 | 7 | | 44 | 3 | | 45 | 14 | | 46 | 7 | | 47 | 4 | | 48 | 5 | | 49 | 4 |
| |
| 46.32% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.27941176470588236 | | totalSentences | 136 | | uniqueOpeners | 38 | |
| 63.49% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 105 | | matches | | 0 | "Too close, she reminded herself," | | 1 | "Then she lifted her chin," |
| | ratio | 0.019 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 78 | | totalSentences | 105 | | matches | | 0 | "Her pulse thundered against her" | | 1 | "He leaned on the cane," | | 2 | "He dipped a polite nod." | | 3 | "She gripped her keys so" | | 4 | "She’d imagined this moment a" | | 5 | "Her throat worked." | | 6 | "She let the word stumble" | | 7 | "He crossed the threshold, stepping" | | 8 | "She’d been reading it last" | | 9 | "He shut the door behind" | | 10 | "She lifted her chin." | | 11 | "He gave a half–smile that" | | 12 | "She closed the gap between" | | 13 | "She’d fled him once for" | | 14 | "She wouldn’t repeat her mistake." | | 15 | "He inhaled slowly, scent of" | | 16 | "Her jaw clenched." | | 17 | "She lifted a crumpled sheet" | | 18 | "He reached for it, stopped" | | 19 | "She searched his eyes for" |
| | ratio | 0.743 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 97 | | totalSentences | 105 | | matches | | 0 | "The door lurched open before" | | 1 | "Lucien Moreau filled the frame," | | 2 | "Her pulse thundered against her" | | 3 | "He leaned on the cane," | | 4 | "A breath escaped her." | | 5 | "He dipped a polite nod." | | 6 | "She gripped her keys so" | | 7 | "She’d imagined this moment a" | | 8 | "Her throat worked." | | 9 | "She let the word stumble" | | 10 | "He crossed the threshold, stepping" | | 11 | "Cardboard boxes from the Golden" | | 12 | "A faded copy of Pushkin" | | 13 | "She’d been reading it last" | | 14 | "He shut the door behind" | | 15 | "She lifted her chin." | | 16 | "He gave a half–smile that" | | 17 | "She closed the gap between" | | 18 | "She’d fled him once for" | | 19 | "She wouldn’t repeat her mistake." |
| | ratio | 0.924 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 105 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 88.78% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 3 | | fancyTags | | 0 | "His amber eye flicked (flick)" | | 1 | "He pressed (press)" | | 2 | "He pressed (press)" |
| | dialogueSentences | 49 | | tagDensity | 0.061 | | leniency | 0.122 | | rawRatio | 1 | | effectiveRatio | 0.122 | |