| 88.89% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 26 | | adverbTagCount | 4 | | adverbTags | | 0 | "Lucien glanced back [back]" | | 1 | "She turned away [away]" | | 2 | "the easy rapport they'd once [once]" | | 3 | "She pulled back [back]" |
| | dialogueSentences | 72 | | tagDensity | 0.361 | | leniency | 0.722 | | rawRatio | 0.154 | | effectiveRatio | 0.111 | |
| 87.89% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1652 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slightly" | | 1 | "very" | | 2 | "really" | | 3 | "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) | |
| 48.55% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1652 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "pounding" | | 1 | "eyebrow" | | 2 | "sanctuary" | | 3 | "flickered" | | 4 | "facade" | | 5 | "weight" | | 6 | "warmth" | | 7 | "perfect" | | 8 | "silence" | | 9 | "pulse" | | 10 | "reminder" | | 11 | "electric" | | 12 | "traced" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 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 | 2 | | narrationSentences | 104 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 147 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1633 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 1268 | | uniqueNames | 18 | | maxNameDensity | 0.79 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 5 | | Thai | 1 | | Commercial | 1 | | Road | 2 | | Eva | 4 | | Moreau | 2 | | Raw | 1 | | Ptolemy | 4 | | Volkov | 1 | | Greater | 1 | | London | 2 | | Lucien | 10 | | Tottenham | 1 | | Court | 1 | | Brick | 1 | | Lane | 1 | | Amber | 1 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Ptolemy" | | 4 | "Volkov" | | 5 | "Lucien" | | 6 | "Amber" | | 7 | "Evan" |
| | places | | 0 | "Commercial" | | 1 | "Road" | | 2 | "Greater" | | 3 | "London" | | 4 | "Tottenham" | | 5 | "Court" | | 6 | "Brick" | | 7 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 9.15% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 4 | | matches | | 0 | "quite disguise" | | 1 | "something like his usual sardonic smile, but" | | 2 | "looked like a war zone" | | 3 | "not quite but something close" |
| |
| 77.53% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.225 | | wordCount | 1633 | | matches | | 0 | "not a smile, not quite, but something close" | | 1 | "not quite, but something close" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 147 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 82 | | mean | 19.91 | | std | 20.28 | | cv | 1.019 | | sampleLengths | | 0 | 78 | | 1 | 3 | | 2 | 25 | | 3 | 70 | | 4 | 21 | | 5 | 16 | | 6 | 17 | | 7 | 4 | | 8 | 48 | | 9 | 3 | | 10 | 48 | | 11 | 9 | | 12 | 2 | | 13 | 51 | | 14 | 19 | | 15 | 32 | | 16 | 23 | | 17 | 14 | | 18 | 3 | | 19 | 4 | | 20 | 29 | | 21 | 1 | | 22 | 46 | | 23 | 2 | | 24 | 16 | | 25 | 8 | | 26 | 8 | | 27 | 7 | | 28 | 29 | | 29 | 4 | | 30 | 3 | | 31 | 80 | | 32 | 36 | | 33 | 4 | | 34 | 11 | | 35 | 6 | | 36 | 4 | | 37 | 13 | | 38 | 71 | | 39 | 9 | | 40 | 2 | | 41 | 15 | | 42 | 4 | | 43 | 23 | | 44 | 93 | | 45 | 9 | | 46 | 6 | | 47 | 4 | | 48 | 12 | | 49 | 45 |
| |
| 95.14% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 104 | | matches | | 0 | "was disheveled" | | 1 | "been involved" | | 2 | "been unmarked" |
| |
| 83.55% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 229 | | matches | | 0 | "was asking" | | 1 | "was sniffing" | | 2 | "was looking" | | 3 | "was watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 147 | | ratio | 0.082 | | matches | | 0 | "She'd finally caved and ordered Thai from the place on Commercial Road—Eva's fridge held nothing but expired yogurt and something in a container that had grown sentient—when the knocking started." | | 1 | "His platinum hair, usually slicked back with geometric precision, was disheveled—dark at the temples, damp with rain or sweat." | | 2 | "His heterochromatic eyes found hers—one amber, one black, both sharp enough to cut—and for a long moment, neither of them spoke." | | 3 | "\"You have about thirty seconds to explain why you're standing in Eva's flat at—\" she checked the clock on the microwave \"—eleven forty-seven at night, looking like you've been through a shredder.\"" | | 4 | "Something flickered across his face—surprise, maybe, or pain." | | 5 | "\"—after six weeks of nothing and expect me to just—what? Let you in? Pretend everything's fine?\"" | | 6 | "Anton Volkov ran half the supernatural trade in Greater London from behind the respectable facade of an import-export business, and he'd been trying to recruit Lucien—or kill him, depending on the day—for the better part of two years." | | 7 | "When she returned with Eva's first aid kit—a proper one, because Eva was nothing if not prepared for supernatural emergencies—Lucien had lowered himself onto the edge of the worn sofa, cane propped against the armrest." | | 8 | "\"Of course.\" But there was something in his voice—a ghost of warmth, of the easy rapport they'd once shared—that made her chest ache." | | 9 | "She'd seen him without a shirt before—that night in his flat, the one night she'd let herself forget every reason this was a terrible idea—and his skin had been unmarked." | | 10 | "She should remember every reason she'd left—Evan, the way love could curdle into something monstrous, the way she'd promised herself she'd never let another dangerous man consume her life." | | 11 | "His mouth curved—not a smile, not quite, but something close." |
| |
| 87.53% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 633 | | adjectiveStacks | 1 | | stackExamples | | 0 | "required specific temporal you're" |
| | adverbCount | 30 | | adverbRatio | 0.04739336492890995 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.014218009478672985 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 147 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 147 | | mean | 11.11 | | std | 9.1 | | cv | 0.819 | | sampleLengths | | 0 | 19 | | 1 | 29 | | 2 | 30 | | 3 | 2 | | 4 | 1 | | 5 | 25 | | 6 | 19 | | 7 | 19 | | 8 | 6 | | 9 | 26 | | 10 | 21 | | 11 | 8 | | 12 | 8 | | 13 | 17 | | 14 | 4 | | 15 | 7 | | 16 | 25 | | 17 | 7 | | 18 | 9 | | 19 | 3 | | 20 | 26 | | 21 | 22 | | 22 | 8 | | 23 | 1 | | 24 | 2 | | 25 | 28 | | 26 | 2 | | 27 | 10 | | 28 | 11 | | 29 | 4 | | 30 | 4 | | 31 | 11 | | 32 | 32 | | 33 | 19 | | 34 | 4 | | 35 | 10 | | 36 | 4 | | 37 | 3 | | 38 | 4 | | 39 | 8 | | 40 | 15 | | 41 | 6 | | 42 | 1 | | 43 | 31 | | 44 | 15 | | 45 | 2 | | 46 | 16 | | 47 | 6 | | 48 | 2 | | 49 | 8 |
| |
| 53.29% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.38095238095238093 | | totalSentences | 147 | | uniqueOpeners | 56 | |
| 36.63% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 91 | | matches | | 0 | "Then he straightened again, and" |
| | ratio | 0.011 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 53 | | totalSentences | 91 | | matches | | 0 | "She'd finally caved and ordered" | | 1 | "She threw the door open," | | 2 | "His platinum hair, usually slicked" | | 3 | "His charcoal suit jacket was" | | 4 | "His waistcoat hung open, three" | | 5 | "His heterochromatic eyes found hers—one" | | 6 | "His voice was rougher than" | | 7 | "She hated how her voice" | | 8 | "It was the politeness that" | | 9 | "She stepped back." | | 10 | "He limped inside, and she" | | 11 | "He stopped in the center" | | 12 | "she checked the clock on" | | 13 | "He attempted something like his" | | 14 | "She laughed, but there was" | | 15 | "His amber eye caught the" | | 16 | "She stepped closer, close enough" | | 17 | "His voice was quiet" | | 18 | "She turned away, pressing the" | | 19 | "She went still." |
| | ratio | 0.582 | |
| 42.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 76 | | totalSentences | 91 | | matches | | 0 | "The third deadbolt stuck, as" | | 1 | "Ptolemy wound between her ankles," | | 2 | "She'd finally caved and ordered" | | 3 | "She threw the door open," | | 4 | "Lucien Moreau stood in the" | | 5 | "His platinum hair, usually slicked" | | 6 | "His charcoal suit jacket was" | | 7 | "His waistcoat hung open, three" | | 8 | "His heterochromatic eyes found hers—one" | | 9 | "His voice was rougher than" | | 10 | "She hated how her voice" | | 11 | "It was the politeness that" | | 12 | "Lucien Moreau, fixer and information" | | 13 | "She stepped back." | | 14 | "He limped inside, and she" | | 15 | "Ptolemy hissed at him and" | | 16 | "Lucien glanced back at the" | | 17 | "He stopped in the center" | | 18 | "A loosening of the shoulders," | | 19 | "Rory closed the door." |
| | ratio | 0.835 | |
| 54.95% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 91 | | matches | | | ratio | 0.011 | |
| 30.08% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 6 | | matches | | 0 | "Ptolemy wound between her ankles, meowing his displeasure at the late hour and the cold draft that had been seeping through the old door frame for the past hour…" | | 1 | "She'd finally caved and ordered Thai from the place on Commercial Road—Eva's fridge held nothing but expired yogurt and something in a container that had grown …" | | 2 | "Lucien Moreau, fixer and information broker, half-demon who spoke four languages and could make grown men weep with a single raised eyebrow, was asking permissi…" | | 3 | "Out of his office in that anonymous building off Tottenham Court Road, past the receptionist who hadn't looked up, into the London rain, and she hadn't looked b…" | | 4 | "His torso was a map of old and new damage: bruises blooming purple and green across his ribs, a fresh cut oozing sluggishly above his hip, and something that lo…" | | 5 | "But Lucien was looking at her like she was the only solid thing in a world that had gone liquid, and his hand was warm against her face, and she was so tired of…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 26 | | uselessAdditionCount | 2 | | matches | | 0 | "He shifted, and the movement made him wince" | | 1 | "She laughed, broken" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 3 | | fancyTags | | 0 | "She laughed (laugh)" | | 1 | "She laughed (laugh)" | | 2 | "he agreed (agree)" |
| | dialogueSentences | 72 | | tagDensity | 0.083 | | leniency | 0.167 | | rawRatio | 0.5 | | effectiveRatio | 0.083 | |