| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 41 | | tagDensity | 0.049 | | leniency | 0.098 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 82.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1142 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "really" | | 1 | "slightly" | | 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) | |
| 56.22% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1142 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "silence" | | 1 | "velvet" | | 2 | "weight" | | 3 | "could feel" | | 4 | "flicked" | | 5 | "charged" | | 6 | "simmering" | | 7 | "flickered" | | 8 | "electric" |
| |
| 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 | 104 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 104 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 141 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 10 | | markdownWords | 10 | | totalWords | 1129 | | ratio | 0.009 | | matches | | 0 | "demonic" | | 1 | "always" | | 2 | "watched" | | 3 | "worked" | | 4 | "thrill" | | 5 | "hers" | | 6 | "had" | | 7 | "god" | | 8 | "him" | | 9 | "hers" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 97.03% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 944 | | uniqueNames | 8 | | maxNameDensity | 1.06 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 4 | | Lucien | 10 | | London | 1 | | Eva | 1 | | Evan | 1 | | Brick | 1 | | Lane | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Eva" | | 3 | "Evan" | | 4 | "Ptolemy" |
| | places | | | globalScore | 0.97 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | 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 | 1129 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 141 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 21.71 | | std | 16.9 | | cv | 0.778 | | sampleLengths | | 0 | 58 | | 1 | 37 | | 2 | 81 | | 3 | 59 | | 4 | 19 | | 5 | 11 | | 6 | 32 | | 7 | 23 | | 8 | 9 | | 9 | 55 | | 10 | 18 | | 11 | 18 | | 12 | 4 | | 13 | 11 | | 14 | 25 | | 15 | 4 | | 16 | 54 | | 17 | 10 | | 18 | 14 | | 19 | 11 | | 20 | 28 | | 21 | 19 | | 22 | 10 | | 23 | 13 | | 24 | 35 | | 25 | 30 | | 26 | 6 | | 27 | 37 | | 28 | 26 | | 29 | 31 | | 30 | 39 | | 31 | 6 | | 32 | 7 | | 33 | 18 | | 34 | 33 | | 35 | 1 | | 36 | 8 | | 37 | 9 | | 38 | 32 | | 39 | 15 | | 40 | 7 | | 41 | 9 | | 42 | 28 | | 43 | 9 | | 44 | 8 | | 45 | 8 | | 46 | 35 | | 47 | 5 | | 48 | 18 | | 49 | 6 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 104 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 184 | | matches | | 0 | "was talking" | | 1 | "was laughing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 141 | | ratio | 0.057 | | matches | | 0 | "\"Rory,\" he said, his voice smooth, almost amused, though his heterochromatic gaze—one amber, one black—burned with something sharper." | | 1 | "The flat was exactly as he remembered—cluttered, alive." | | 2 | "Now, with him filling the space—his presence like a physical weight—she could feel the walls pressing in." | | 3 | "His gaze flicked to the scar on her wrist—the one she’d gotten when she was sixteen, falling off the roof of her childhood home, trying to prove she wasn’t afraid of heights." | | 4 | "She’d been his equal, his partner in the few months they’d spent tangled together—before he’d walked away, before she’d run." | | 5 | "His suit was immaculate, but his eyes—*god*, his eyes—were tired." | | 6 | "But the scars—physical and otherwise—ran too deep." | | 7 | "She looked at the reflection of his face in the glass—sharp, beautiful, *hers*—and let herself remember." |
| |
| 93.81% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 956 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.04707112970711297 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.011506276150627616 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 141 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 141 | | mean | 8.01 | | std | 6.5 | | cv | 0.812 | | sampleLengths | | 0 | 20 | | 1 | 31 | | 2 | 7 | | 3 | 13 | | 4 | 18 | | 5 | 6 | | 6 | 5 | | 7 | 3 | | 8 | 18 | | 9 | 18 | | 10 | 5 | | 11 | 19 | | 12 | 13 | | 13 | 8 | | 14 | 34 | | 15 | 12 | | 16 | 5 | | 17 | 12 | | 18 | 7 | | 19 | 8 | | 20 | 3 | | 21 | 3 | | 22 | 10 | | 23 | 12 | | 24 | 3 | | 25 | 4 | | 26 | 17 | | 27 | 6 | | 28 | 7 | | 29 | 2 | | 30 | 14 | | 31 | 17 | | 32 | 21 | | 33 | 3 | | 34 | 15 | | 35 | 3 | | 36 | 8 | | 37 | 10 | | 38 | 3 | | 39 | 1 | | 40 | 6 | | 41 | 5 | | 42 | 7 | | 43 | 2 | | 44 | 12 | | 45 | 4 | | 46 | 2 | | 47 | 2 | | 48 | 32 | | 49 | 3 |
| |
| 45.74% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.2907801418439716 | | totalSentences | 141 | | uniqueOpeners | 41 | |
| 70.92% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 94 | | matches | | 0 | "Then Lucien stepped forward, his" | | 1 | "Then, with a sharp exhale," |
| | ratio | 0.021 | |
| 32.77% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 44 | | totalSentences | 94 | | matches | | 0 | "She stood there in the" | | 1 | "he said, his voice smooth," | | 2 | "She didn’t invite him in." | | 3 | "He’d already crossed the threshold," | | 4 | "She should’ve slammed the door." | | 5 | "He didn’t even glance up." | | 6 | "She should’ve lied." | | 7 | "She *always* knew." | | 8 | "His voice was a velvet" | | 9 | "She moved to the kitchenette," | | 10 | "She shot him a glance" | | 11 | "His lips quirked." | | 12 | "She turned fully then, arms" | | 13 | "He pushed off the frame," | | 14 | "His gaze flicked to the" | | 15 | "He’d been there." | | 16 | "She yanked her hand back," | | 17 | "She scoffed, turning away" | | 18 | "She whirled back around." | | 19 | "His voice was low, almost" |
| | ratio | 0.468 | |
| 77.02% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 72 | | totalSentences | 94 | | matches | | 0 | "The door swung open before" | | 1 | "She stood there in the" | | 2 | "he said, his voice smooth," | | 3 | "She didn’t invite him in." | | 4 | "He’d already crossed the threshold," | | 5 | "The scent of bergamot and" | | 6 | "She should’ve slammed the door." | | 7 | "The flat was exactly as" | | 8 | "Books stacked precariously on every" | | 9 | "Ptolemy, the tabby, wound between" | | 10 | "He didn’t even glance up." | | 11 | "Rory exhaled through her nose," | | 12 | "Lucien smirked, adjusting the grip" | | 13 | "She should’ve lied." | | 14 | "She *always* knew." | | 15 | "That was the problem." | | 16 | "The silence stretched, thick and" | | 17 | "His voice was a velvet" | | 18 | "The flat was small, but" | | 19 | "She moved to the kitchenette," |
| | ratio | 0.766 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 94 | | matches | | 0 | "Now, with him filling the" | | 1 | "Before the night she’d looked" | | 2 | "Because it was true." |
| | ratio | 0.032 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 2 | | matches | | 0 | "The door swung open before the second knock even landed, as if Rory had been hovering just behind it, waiting." | | 1 | "Something that had always been there, simmering just beneath the surface." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 41 | | tagDensity | 0.024 | | leniency | 0.049 | | rawRatio | 0 | | effectiveRatio | 0 | |