| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 1 | | adverbTags | | 0 | "She exhaled sharply [sharply]" |
| | dialogueSentences | 60 | | tagDensity | 0.317 | | leniency | 0.633 | | rawRatio | 0.053 | | effectiveRatio | 0.033 | |
| 79.84% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1240 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slightly" | | 1 | "sharply" | | 2 | "softly" | | 3 | "really" |
| |
| 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) | |
| 63.71% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1240 | | totalAiIsms | 9 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "the last thing" | | count | 1 |
| | 4 | | | 5 | | | 6 | | | 7 | | | 8 | |
| | highlights | | 0 | "unreadable" | | 1 | "flicked" | | 2 | "sentinel" | | 3 | "the last thing" | | 4 | "silence" | | 5 | "traced" | | 6 | "pulse" | | 7 | "stomach" | | 8 | "racing" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 98 | | matches | | 0 | "was bitter" | | 1 | "was desperate" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 98 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 135 | | 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 | 11 | | markdownWords | 21 | | totalWords | 1221 | | ratio | 0.017 | | matches | | 0 | "What the hell is he doing here?" | | 1 | "Laila" | | 2 | "organized" | | 3 | "resting" | | 4 | "pop" | | 5 | "thing" | | 6 | "You’re going to be fine." | | 7 | "them" | | 8 | "me" | | 9 | "Avaros." | | 10 | "my" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 78.02% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 903 | | uniqueNames | 5 | | maxNameDensity | 1.44 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 13 | | Moreau | 1 | | Lucien | 12 | | Eva | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Eva" | | 4 | "Ptolemy" |
| | places | (empty) | | globalScore | 0.78 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | 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 | 1221 | | matches | (empty) | |
| 67.90% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 4 | | totalSentences | 135 | | matches | | 0 | "chose that moment" | | 1 | "knew that feeling" | | 2 | "chose that moment" | | 3 | "like that, the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 66 | | mean | 18.5 | | std | 13.32 | | cv | 0.72 | | sampleLengths | | 0 | 62 | | 1 | 4 | | 2 | 69 | | 3 | 10 | | 4 | 14 | | 5 | 24 | | 6 | 18 | | 7 | 17 | | 8 | 40 | | 9 | 7 | | 10 | 36 | | 11 | 9 | | 12 | 18 | | 13 | 11 | | 14 | 12 | | 15 | 37 | | 16 | 12 | | 17 | 25 | | 18 | 23 | | 19 | 7 | | 20 | 19 | | 21 | 17 | | 22 | 19 | | 23 | 7 | | 24 | 9 | | 25 | 47 | | 26 | 12 | | 27 | 23 | | 28 | 6 | | 29 | 23 | | 30 | 35 | | 31 | 6 | | 32 | 9 | | 33 | 19 | | 34 | 9 | | 35 | 8 | | 36 | 38 | | 37 | 36 | | 38 | 3 | | 39 | 17 | | 40 | 18 | | 41 | 6 | | 42 | 25 | | 43 | 8 | | 44 | 28 | | 45 | 1 | | 46 | 6 | | 47 | 20 | | 48 | 11 | | 49 | 16 |
| |
| 94.52% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 98 | | matches | | 0 | "was annoyed" | | 1 | "was gone" | | 2 | "were filled" |
| |
| 90.11% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 182 | | matches | | 0 | "was lying" | | 1 | "was memorizing" | | 2 | "was falling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 135 | | ratio | 0.081 | | matches | | 0 | "But there was no one there—just the dim glow of the hallway lamp spilling over the threshold, and the sharp, unexpected scent of bergamot and something darker, like ozone after a storm." | | 1 | "The nickname—soft, almost intimate—sent a jolt through her." | | 2 | "“Oh, but I did.” His gaze flicked past her, taking in the chaos of Eva’s flat—the stacks of books, the half-empty teacups, the tabby cat Ptolemy curled on the armchair like a furry sentinel." | | 3 | "“Aren’t they all?” She exhaled sharply, rubbing her thumb over the crescent scar on her wrist—a habit when she was annoyed." | | 4 | "She could smell the bergamot now, sharp and citrusy, mixed with something darker—like smoke and old leather." | | 5 | "But she also knew the look in his eyes—the way his black pupil swallowed the amber one when he was lying." | | 6 | "“I remember.” The memory flashed—rain lashing against the window, her wrist split open on broken glass, Lucien’s hands steadying hers, his voice low and urgent." | | 7 | "The pages were filled with symbols—twisting, ink-black runes that seemed to writhe when she looked too long." | | 8 | "But then she looked up at him—really looked—and saw the fear in his heterochromatic eyes, the way his fingers clenched around the cane like it was the only thing keeping him upright." | | 9 | "And just like that, the past and the present collided—two people who knew each other’s secrets, who had loved and hurt and lost, now standing in the middle of a storm they couldn’t outrun." | | 10 | "And for the first time in a long time, she let herself believe that maybe—just maybe—this wasn’t over." |
| |
| 84.30% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 920 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, leather-bound journal." |
| | adverbCount | 47 | | adverbRatio | 0.051086956521739134 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.007608695652173913 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 135 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 135 | | mean | 9.04 | | std | 7.65 | | cv | 0.846 | | sampleLengths | | 0 | 30 | | 1 | 32 | | 2 | 4 | | 3 | 25 | | 4 | 16 | | 5 | 28 | | 6 | 3 | | 7 | 7 | | 8 | 10 | | 9 | 4 | | 10 | 3 | | 11 | 14 | | 12 | 7 | | 13 | 8 | | 14 | 6 | | 15 | 4 | | 16 | 13 | | 17 | 4 | | 18 | 34 | | 19 | 6 | | 20 | 2 | | 21 | 5 | | 22 | 8 | | 23 | 19 | | 24 | 9 | | 25 | 4 | | 26 | 5 | | 27 | 14 | | 28 | 4 | | 29 | 7 | | 30 | 2 | | 31 | 2 | | 32 | 10 | | 33 | 2 | | 34 | 21 | | 35 | 16 | | 36 | 10 | | 37 | 2 | | 38 | 20 | | 39 | 5 | | 40 | 6 | | 41 | 17 | | 42 | 3 | | 43 | 4 | | 44 | 6 | | 45 | 13 | | 46 | 13 | | 47 | 4 | | 48 | 3 | | 49 | 10 |
| |
| 55.80% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.34814814814814815 | | totalSentences | 135 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 82 | | matches | | 0 | "Then she saw him." | | 1 | "Just tilted his head, that" | | 2 | "Just studied her, like he" | | 3 | "Almost a smile." |
| | ratio | 0.049 | |
| 63.90% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 82 | | matches | | 0 | "He held a single black" | | 1 | "she said, her voice steadier" | | 2 | "She stepped back, letting the" | | 3 | "His gaze flicked past her," | | 4 | "He stepped inside before she" | | 5 | "She crossed her arms." | | 6 | "He turned, leaning against the" | | 7 | "His fingers twitched toward the" | | 8 | "She exhaled sharply, rubbing her" | | 9 | "His voice was low, almost" | | 10 | "She laughed, sharp and humorless" | | 11 | "His voice cut through hers," | | 12 | "She turned away, staring at" | | 13 | "She turned back, eyes wide." | | 14 | "She could smell the bergamot" | | 15 | "She knew that feeling." | | 16 | "His hand lifted, fingers brushing" | | 17 | "*You’re going to be fine.*" | | 18 | "She jerked her hand away" | | 19 | "His expression darkened." |
| | ratio | 0.39 | |
| 88.05% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 82 | | matches | | 0 | "The door swung open before" | | 1 | "Lucien Moreau filled the doorway," | | 2 | "The amber eye caught the" | | 3 | "He held a single black" | | 4 | "Rory’s breath hitched." | | 5 | "she said, her voice steadier" | | 6 | "Lucien didn’t move." | | 7 | "The nickname—soft, almost intimate—sent a" | | 8 | "She stepped back, letting the" | | 9 | "His gaze flicked past her," | | 10 | "A ghost of a smile" | | 11 | "He stepped inside before she" | | 12 | "She crossed her arms." | | 13 | "He turned, leaning against the" | | 14 | "That was the last thing" | | 15 | "His fingers twitched toward the" | | 16 | "She exhaled sharply, rubbing her" | | 17 | "His voice was low, almost" | | 18 | "Ptolemy chose that moment to" | | 19 | "Lucien’s jaw tightened." |
| | ratio | 0.744 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 82 | | matches | (empty) | | ratio | 0 | |
| 68.97% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 3 | | matches | | 0 | "The door swung open before the second knock even landed, as if Rory had been standing just behind it, fingers hovering over the deadbolts like a cat poised to p…" | | 1 | "Two years of unsaid words, of longing and anger and something deeper, something that hadn’t gone away." | | 2 | "Rory melted into him, her hands gripping his coat, her fingers tangling in his hair." |
| |
| 19.74% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 4 | | matches | | 0 | "she said, her voice steadier than she felt" | | 1 | "He stepped, the cane tapping against the hardwood floor" | | 2 | "His hand lifted, fingers brushing the scar on her wrist" | | 3 | "she said, voice trembling," |
| |
| 66.67% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 5 | | fancyTags | | 0 | "Rory snapped (snap)" | | 1 | "She laughed (laugh)" | | 2 | "he murmured (murmur)" | | 3 | "she whispered (whisper)" | | 4 | "she demanded (demand)" |
| | dialogueSentences | 60 | | tagDensity | 0.15 | | leniency | 0.3 | | rawRatio | 0.556 | | effectiveRatio | 0.167 | |