| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 3 | | adverbTags | | 0 | "Eva gestured vaguely [vaguely]" | | 1 | "Aurora stepped back [back]" | | 2 | "she asked quietly [quietly]" |
| | dialogueSentences | 85 | | tagDensity | 0.247 | | leniency | 0.494 | | rawRatio | 0.143 | | effectiveRatio | 0.071 | |
| 89.71% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1458 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "suddenly" | | 1 | "wickedly" | | 2 | "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) | |
| 72.57% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1458 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "silence" | | 1 | "eyebrow" | | 2 | "pulse" | | 3 | "whisper" | | 4 | "traced" | | 5 | "electric" | | 6 | "tracing" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "clenched jaw/fists" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 125 | | matches | | 0 | "was afraid" | | 1 | "was bitter" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 125 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 182 | | 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 | 33 | | markdownWords | 44 | | totalWords | 1447 | | ratio | 0.03 | | matches | | 0 | "something" | | 1 | "know" | | 2 | "told" | | 3 | "chose" | | 4 | "Demonology and the Infernal Courts" | | 5 | "is" | | 6 | "hope" | | 7 | "changed" | | 8 | "wreck" | | 9 | "fuck" | | 10 | "left" | | 11 | "Because I couldn’t breathe here!" | | 12 | "what" | | 13 | "years" | | 14 | "he’s" | | 15 | "him" | | 16 | "me" | | 17 | "missed" | | 18 | "shut up" | | 19 | "melted" | | 20 | "have" | | 21 | "Yes" | | 22 | "should" | | 23 | "stay" | | 24 | "Because!" | | 25 | "you" | | 26 | "knew" | | 27 | "didn’t say anything" | | 28 | "You" | | 29 | "him" | | 30 | "wanted" | | 31 | "can’t" | | 32 | "wait" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 87 | | wordCount | 1042 | | uniqueNames | 4 | | maxNameDensity | 4.32 | | worstName | "Eva" | | maxWindowNameDensity | 6.5 | | worstWindowName | "Eva" | | discoveredNames | | Eva | 45 | | Aurora | 40 | | Infernal | 1 | | Brighton | 1 |
| | persons | | | places | | | globalScore | 0 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1447 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 182 | | matches | | 0 | "admit that she’d" | | 1 | "like that, she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 88 | | mean | 16.44 | | std | 14.32 | | cv | 0.871 | | sampleLengths | | 0 | 45 | | 1 | 77 | | 2 | 19 | | 3 | 25 | | 4 | 52 | | 5 | 6 | | 6 | 6 | | 7 | 20 | | 8 | 17 | | 9 | 13 | | 10 | 1 | | 11 | 8 | | 12 | 44 | | 13 | 15 | | 14 | 7 | | 15 | 34 | | 16 | 9 | | 17 | 16 | | 18 | 42 | | 19 | 6 | | 20 | 7 | | 21 | 2 | | 22 | 41 | | 23 | 21 | | 24 | 2 | | 25 | 4 | | 26 | 15 | | 27 | 4 | | 28 | 3 | | 29 | 30 | | 30 | 15 | | 31 | 7 | | 32 | 4 | | 33 | 27 | | 34 | 10 | | 35 | 27 | | 36 | 7 | | 37 | 22 | | 38 | 12 | | 39 | 1 | | 40 | 31 | | 41 | 11 | | 42 | 8 | | 43 | 21 | | 44 | 24 | | 45 | 29 | | 46 | 3 | | 47 | 16 | | 48 | 4 | | 49 | 12 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 125 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 201 | | matches | | 0 | "was saying" | | 1 | "was asking" | | 2 | "was tracing" |
| |
| 17.27% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 182 | | ratio | 0.044 | | matches | | 0 | "The flat was exactly as she remembered—stacks of books teetering like drunkards, yellowed scrolls pinned to the walls with knife-hilt tacks, the air thick with the smell of old paper and Eva’s jasmine incense." | | 1 | "Aurora watched Eva’s back—the way her shoulders moved, the dip of her spine beneath the thin cotton." | | 2 | "Aurora looked away, her gaze snagging on the spine of a book—*Demonology and the Infernal Courts*—half-buried under a stack of takeaway menus." | | 3 | "She pulled out a knife—short, wickedly curved—and pressed it into Aurora’s hand." | | 4 | "She remembered how it felt to kiss her—like drowning and flying at the same time." | | 5 | "But Eva’s thumb was tracing her cheekbone now, and her skin was on fire, and—" | | 6 | "Three years of missing this, of dreaming about it, and here it was—Eva’s hands in her hair, Eva’s body pressed against hers, Eva’s teeth nipping her lower lip just the way she liked." | | 7 | "Aurora gasped, and Eva deepened the kiss, her tongue sweeping in, tasting of sleep and something sweet—chocolate, maybe, from the half-eaten bar on the nightstand." |
| |
| 90.92% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1052 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 53 | | adverbRatio | 0.05038022813688213 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.011406844106463879 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 182 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 182 | | mean | 7.95 | | std | 6.6 | | cv | 0.83 | | sampleLengths | | 0 | 4 | | 1 | 3 | | 2 | 28 | | 3 | 10 | | 4 | 6 | | 5 | 20 | | 6 | 34 | | 7 | 17 | | 8 | 14 | | 9 | 5 | | 10 | 4 | | 11 | 17 | | 12 | 4 | | 13 | 1 | | 14 | 12 | | 15 | 16 | | 16 | 23 | | 17 | 6 | | 18 | 5 | | 19 | 1 | | 20 | 9 | | 21 | 11 | | 22 | 13 | | 23 | 4 | | 24 | 12 | | 25 | 1 | | 26 | 1 | | 27 | 8 | | 28 | 5 | | 29 | 17 | | 30 | 22 | | 31 | 15 | | 32 | 4 | | 33 | 3 | | 34 | 6 | | 35 | 4 | | 36 | 24 | | 37 | 3 | | 38 | 6 | | 39 | 9 | | 40 | 7 | | 41 | 7 | | 42 | 22 | | 43 | 6 | | 44 | 7 | | 45 | 6 | | 46 | 4 | | 47 | 3 | | 48 | 2 | | 49 | 30 |
| |
| 49.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.3076923076923077 | | totalSentences | 182 | | uniqueOpeners | 56 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 115 | | matches | | 0 | "Then the door swung open" | | 1 | "Then Eva was moving, shoving" | | 2 | "Then, slow, like she was" | | 3 | "Just above the scar." | | 4 | "Just where she used to." | | 5 | "Then she pulled back." |
| | ratio | 0.052 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 115 | | matches | | 0 | "She blinked, took in the" | | 1 | "She shouldered past, the scent" | | 2 | "She tossed her keys onto" | | 3 | "She’d recognise that slanted, precise" | | 4 | "She could hear her own" | | 5 | "She pulled out a knife—short," | | 6 | "She stopped, pressed her lips" | | 7 | "She set it down on" | | 8 | "She broke off, shook her" | | 9 | "She remembered how it felt" | | 10 | "She should step back." | | 11 | "Her skin felt too tight." | | 12 | "she asked quietly" | | 13 | "She stopped, swallowed" | | 14 | "She wanted to." | | 15 | "She stepped back." | | 16 | "She turned, grabbed her keys," |
| | ratio | 0.148 | |
| 20.87% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 101 | | totalSentences | 115 | | matches | | 0 | "The third deadbolt clicked." | | 1 | "A chain rattled." | | 2 | "She blinked, took in the" | | 3 | "Aurora didn’t wait for an" | | 4 | "She shouldered past, the scent" | | 5 | "The flat was exactly as" | | 6 | "Ptolemy, the tabby, uncurled from" | | 7 | "Eva exhaled through her nose," | | 8 | "Aurora didn’t turn around." | | 9 | "She tossed her keys onto" | | 10 | "The kind that hummed, heavy" | | 11 | "Eva finally shut the door" | | 12 | "The fabric was thin, nearly" | | 13 | "Aurora shot her a look." | | 14 | "Eva gestured vaguely at her" | | 15 | "Aurora touched her wrist, fingers" | | 16 | "Eva pushed off the door" | | 17 | "The kettle hissed to life." | | 18 | "Aurora watched Eva’s back—the way" | | 19 | "Eva’s voice was too casual," |
| | ratio | 0.878 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 115 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 35 | | technicalSentenceCount | 2 | | matches | | 0 | "Three years of missing this, of dreaming about it, and here it was—Eva’s hands in her hair, Eva’s body pressed against hers, Eva’s teeth nipping her lower lip j…" | | 1 | "Aurora looked away, her gaze landing on the knife still sitting on the counter." |
| |
| 77.38% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 2 | | matches | | 0 | "Eva said, voice rough" | | 1 | "Eva repeated, voice firmer" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 2 | | fancyTags | | 0 | "Eva repeated (repeat)" | | 1 | "Aurora whispered (whisper)" |
| | dialogueSentences | 85 | | tagDensity | 0.059 | | leniency | 0.118 | | rawRatio | 0.4 | | effectiveRatio | 0.047 | |