| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "Lucien’s hand rose hesitated then [then]" | | 2 | "she said softly [softly]" | | 3 | "she said quietly [quietly]" |
| | dialogueSentences | 37 | | tagDensity | 0.432 | | leniency | 0.865 | | rawRatio | 0.25 | | effectiveRatio | 0.216 | |
| 82.68% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2309 | | totalAiIsmAdverbs | 8 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | adverb | "deliberately" | | count | 1 |
|
| | highlights | | 0 | "sharply" | | 1 | "lightly" | | 2 | "very" | | 3 | "softly" | | 4 | "deliberately" |
| |
| 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.03% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2309 | | totalAiIsms | 24 | | found | | | highlights | | 0 | "grave" | | 1 | "electric" | | 2 | "pulse" | | 3 | "tracing" | | 4 | "roaring" | | 5 | "flicked" | | 6 | "familiar" | | 7 | "eyebrow" | | 8 | "traced" | | 9 | "stomach" | | 10 | "treacherous" | | 11 | "fluttered" | | 12 | "aligned" | | 13 | "perfect" | | 14 | "weight" | | 15 | "sanctuary" |
| |
| 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 | 1 | | narrationSentences | 131 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 131 | | filterMatches | (empty) | | hedgeMatches | | 0 | "tended to" | | 1 | "began to" | | 2 | "tried to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 152 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 85 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 12 | | totalWords | 2292 | | ratio | 0.005 | | matches | | 0 | "This is why we end here, ma belle. Before I ruin you." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 46 | | wordCount | 1657 | | uniqueNames | 17 | | maxNameDensity | 0.72 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 11 | | Moreau | 2 | | Eva | 5 | | Halloween | 1 | | Lucien | 12 | | Marseille | 1 | | Aurora | 1 | | Carter | 2 | | Malphora | 1 | | London | 1 | | Whitechapel | 1 | | Camden | 1 | | Closer | 1 | | French | 1 | | Brick | 1 | | Lane | 1 | | Ptolemy | 3 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Lucien" | | 4 | "Carter" | | 5 | "Ptolemy" |
| | places | | 0 | "Marseille" | | 1 | "London" | | 2 | "Whitechapel" | | 3 | "French" | | 4 | "Brick" | | 5 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 17.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 94 | | glossingSentenceCount | 5 | | matches | | 0 | "sounded like a countdown" | | 1 | "felt like the only real thing in a city" | | 2 | "felt like stepping off a cliff" | | 3 | "Lucien’s calf, apparently deciding the intrud" | | 4 | "felt like an open door, three deadbolts" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 2292 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 152 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 47.75 | | std | 31.53 | | cv | 0.66 | | sampleLengths | | 0 | 117 | | 1 | 81 | | 2 | 53 | | 3 | 9 | | 4 | 32 | | 5 | 112 | | 6 | 23 | | 7 | 47 | | 8 | 56 | | 9 | 23 | | 10 | 4 | | 11 | 118 | | 12 | 29 | | 13 | 16 | | 14 | 64 | | 15 | 14 | | 16 | 51 | | 17 | 74 | | 18 | 70 | | 19 | 10 | | 20 | 23 | | 21 | 63 | | 22 | 82 | | 23 | 35 | | 24 | 6 | | 25 | 97 | | 26 | 12 | | 27 | 58 | | 28 | 70 | | 29 | 56 | | 30 | 7 | | 31 | 95 | | 32 | 67 | | 33 | 16 | | 34 | 7 | | 35 | 22 | | 36 | 48 | | 37 | 30 | | 38 | 92 | | 39 | 45 | | 40 | 29 | | 41 | 84 | | 42 | 61 | | 43 | 35 | | 44 | 37 | | 45 | 52 | | 46 | 57 | | 47 | 3 |
| |
| 91.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 131 | | matches | | 0 | "was surprised" | | 1 | "were swept" | | 2 | "were made" | | 3 | "were tangled" | | 4 | "been dragged" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 285 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 7 | | flaggedSentences | 16 | | totalSentences | 152 | | ratio | 0.105 | | matches | | 0 | "The curry-house steam from the stairwell curled in first—cumin, coriander, the faint singe of chili oil—before the man attached to the scent filled the frame." | | 1 | "Her bright blue eyes locked onto his mismatched ones—one amber as molten resin, the other black as an open grave—and the old current crackled between them, unwelcome and alive." | | 2 | "Books and scrolls covered every horizontal surface; Eva’s research on ley-line fractures spilled across the sofa like scholarly confetti." | | 3 | "The faint scent of vetiver and something electric—ozone after a lightning strike—trailed behind him." | | 4 | "The crescent scar on her left wrist pulled tight; she tucked it against her ribs on instinct." | | 5 | "The amber eye caught the lamplight and flared; the black one absorbed it, depthless." | | 6 | "But Rory had spent three weeks once learning every tic of that face—three weeks of adrenaline and impossible choices and nights when his mouth on hers had felt like the only real thing in a city full of monsters." | | 7 | "She’d walked away with her pulse roaring in her ears and his blood on her coat—none of it his own." | | 8 | "The kettle was already half-full; she flicked it on just to have something to do with her hands." | | 9 | "Not the black one; both of them, somehow." | | 10 | "Lucien made a low sound in his throat—half growl, half groan—and backed her against the counter." | | 11 | "He kissed like a man who had memorized her and then dreamed of her every night since—deep, devouring, perfect." | | 12 | "Scrolls and books were swept aside without ceremony; they landed in a landslide of paper." | | 13 | "Later—when the lamplight had guttered low and their limbs were tangled in a nest of displaced research—Rory traced idle circles on his bare chest." | | 14 | "The demon half of him had retreated; both eyes were human again, heavy-lidded with satisfaction." | | 15 | "She studied him—the platinum hair now thoroughly rumpled by her hands, the faint red mark on his collarbone where she’d been less than gentle, the steady heartbeat beneath her palm." |
| |
| 86.37% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1683 | | adjectiveStacks | 1 | | stackExamples | | 0 | "against rain-slick brick" |
| | adverbCount | 82 | | adverbRatio | 0.0487225193107546 | | lyAdverbCount | 31 | | lyAdverbRatio | 0.0184194890077243 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 152 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 152 | | mean | 15.08 | | std | 12.42 | | cv | 0.824 | | sampleLengths | | 0 | 22 | | 1 | 25 | | 2 | 28 | | 3 | 15 | | 4 | 16 | | 5 | 11 | | 6 | 7 | | 7 | 29 | | 8 | 23 | | 9 | 4 | | 10 | 5 | | 11 | 13 | | 12 | 15 | | 13 | 2 | | 14 | 2 | | 15 | 12 | | 16 | 22 | | 17 | 2 | | 18 | 7 | | 19 | 18 | | 20 | 14 | | 21 | 25 | | 22 | 4 | | 23 | 9 | | 24 | 19 | | 25 | 13 | | 26 | 20 | | 27 | 14 | | 28 | 8 | | 29 | 14 | | 30 | 9 | | 31 | 3 | | 32 | 15 | | 33 | 26 | | 34 | 3 | | 35 | 6 | | 36 | 17 | | 37 | 33 | | 38 | 3 | | 39 | 14 | | 40 | 6 | | 41 | 4 | | 42 | 8 | | 43 | 10 | | 44 | 39 | | 45 | 11 | | 46 | 24 | | 47 | 22 | | 48 | 4 | | 49 | 9 |
| |
| 48.90% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.32894736842105265 | | totalSentences | 152 | | uniqueOpeners | 50 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 124 | | matches | | 0 | "Just Rory, the way he’d" | | 1 | "Instead she stepped back." | | 2 | "Instead he examined a stack" | | 3 | "Then came the night in" | | 4 | "Instead she curled her fingers" |
| | ratio | 0.04 | |
| 65.16% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 48 | | totalSentences | 124 | | matches | | 0 | "She knew every elegant line" | | 1 | "Her bright blue eyes locked" | | 2 | "She couldn’t blame him." | | 3 | "he said, voice low, that" | | 4 | "Her pulse answered before her" | | 5 | "She closed the door, slid" | | 6 | "He never did unless he" | | 7 | "He turned then." | | 8 | "She hadn’t waited for him" | | 9 | "She’d walked away with her" | | 10 | "She crossed to the tiny" | | 11 | "She hadn’t heard him move." | | 12 | "She spun, temper flaring hot" | | 13 | "His eyes darkened." | | 14 | "He set the cane against" | | 15 | "he said, voice roughening" | | 16 | "She could see the faint" | | 17 | "She could see the way" | | 18 | "he said quietly" | | 19 | "Her heart hammered against her" |
| | ratio | 0.387 | |
| 40.65% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 104 | | totalSentences | 124 | | matches | | 0 | "The latch scraped back on" | | 1 | "The curry-house steam from the" | | 2 | "Lucien Moreau stood on the" | | 3 | "Platinum hair slicked back with" | | 4 | "The ivory-handled cane rested lightly" | | 5 | "She knew every elegant line" | | 6 | "Her bright blue eyes locked" | | 7 | "Ptolemy, Eva’s tabby, chose that" | | 8 | "She couldn’t blame him." | | 9 | "he said, voice low, that" | | 10 | "A half-smile ghosted across his" | | 11 | "Every instinct screamed to slam" | | 12 | "The flat was too small" | | 13 | "Books and scrolls covered every" | | 14 | "The single lamp cast a" | | 15 | "Lucien moved past her with" | | 16 | "The faint scent of vetiver" | | 17 | "Her pulse answered before her" | | 18 | "She closed the door, slid" | | 19 | "The click of each lock" |
| | ratio | 0.839 | |
| 40.32% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 124 | | matches | | | ratio | 0.008 | |
| 87.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 65 | | technicalSentenceCount | 5 | | matches | | 0 | "Lucien Moreau stood on the threshold of Eva’s flat as if the six months since their last, brutal parting had been nothing more than an idle cigarette break." | | 1 | "He kissed like a man who had memorized her and then dreamed of her every night since—deep, devouring, perfect." | | 2 | "When his tongue traced the seam of her lips she opened for him, tasting coffee and the faint iron tang that was purely Lucien." | | 3 | "Outside, Brick Lane hummed with evening traffic and the call of late-night vendors, but inside Eva’s cluttered sanctuary the world narrowed to the slide of skin…" | | 4 | "Inside, Rory Carter kissed the half-demon fixer who had once tried to save her by leaving her, and for the first time in a long while the future didn’t feel lik…" |
| |
| 31.25% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 3 | | matches | | 0 | "he said, voice roughening" | | 1 | "His voice dropped, raw" | | 2 | "he answered, voice wrecked" |
| |
| 41.89% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 4 | | fancyTags | | 0 | "he murmured (murmur)" | | 1 | "she whispered (whisper)" | | 2 | "she panted (pant)" | | 3 | "he murmured (murmur)" |
| | dialogueSentences | 37 | | tagDensity | 0.324 | | leniency | 0.649 | | rawRatio | 0.333 | | effectiveRatio | 0.216 | |