| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said instead [instead]" |
| | dialogueSentences | 71 | | tagDensity | 0.239 | | leniency | 0.479 | | rawRatio | 0.059 | | effectiveRatio | 0.028 | |
| 97.12% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1737 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 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) | |
| 82.73% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1737 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "traced" | | 1 | "weight" | | 2 | "flicked" | | 3 | "tension" | | 4 | "warmth" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "room fell silent" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 99 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 99 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 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 | 65 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1750 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 34 | | unquotedAttributions | 0 | | matches | (empty) | |
| 81.97% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 50 | | wordCount | 1176 | | uniqueNames | 10 | | maxNameDensity | 1.36 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 5 | | Ptolemy | 6 | | Rory | 16 | | London | 2 | | East | 1 | | Lucien | 16 | | French | 1 | | Avaros | 1 | | Grimaldi | 1 | | Soho | 1 |
| | persons | | 0 | "Eva" | | 1 | "Ptolemy" | | 2 | "Rory" | | 3 | "Lucien" | | 4 | "French" |
| | places | | 0 | "London" | | 1 | "East" | | 2 | "Avaros" | | 3 | "Soho" |
| | globalScore | 0.82 | | windowScore | 0.833 | |
| 65.25% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | glossingSentenceCount | 2 | | matches | | 0 | "not quite a smile, not quite relief, but a loosening of the tension that had been sitting in his shoulders since he walked through the door" | | 1 | "not quite relief, but a loosening of the tension that had been sitting in his shoulders since he walked through the door" | | 2 | "something close to warmth" |
| |
| 85.71% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.143 | | wordCount | 1750 | | matches | | 0 | "not quite a smile, not quite relief, but a loosening of the tension" | | 1 | "not quite relief, but a loosening of the tension" |
| |
| 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 | 91 | | mean | 19.23 | | std | 18.15 | | cv | 0.944 | | sampleLengths | | 0 | 16 | | 1 | 61 | | 2 | 24 | | 3 | 6 | | 4 | 2 | | 5 | 76 | | 6 | 19 | | 7 | 14 | | 8 | 6 | | 9 | 5 | | 10 | 24 | | 11 | 3 | | 12 | 2 | | 13 | 5 | | 14 | 65 | | 15 | 12 | | 16 | 13 | | 17 | 6 | | 18 | 51 | | 19 | 15 | | 20 | 50 | | 21 | 14 | | 22 | 27 | | 23 | 12 | | 24 | 10 | | 25 | 2 | | 26 | 46 | | 27 | 7 | | 28 | 7 | | 29 | 5 | | 30 | 9 | | 31 | 37 | | 32 | 8 | | 33 | 21 | | 34 | 3 | | 35 | 13 | | 36 | 16 | | 37 | 56 | | 38 | 41 | | 39 | 73 | | 40 | 7 | | 41 | 10 | | 42 | 4 | | 43 | 6 | | 44 | 44 | | 45 | 11 | | 46 | 10 | | 47 | 6 | | 48 | 22 | | 49 | 10 |
| |
| 94.63% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 99 | | matches | | 0 | "been impressed" | | 1 | "was cramped" | | 2 | "was circled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 212 | | matches | | 0 | "was looking " | | 1 | "was watching" | | 2 | "was lying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 152 | | ratio | 0.079 | | matches | | 0 | "One eye caught the hallway light — amber, warm as a struck match." | | 1 | "Books and scroll-wrapped parcels covered every surface — the kitchen counter, the arm of the sofa, the windowsill where the tabby usually slept." | | 2 | "She'd seen him do it before — vanish into traffic, into fog, into the grey machinery of London as though the city owed him a favor and he'd decided not to collect." | | 3 | "He looked tired under the composure, the way he always did when he thought no one was looking — a tightness at the corners of his mouth, a thinning of the skin beneath his eyes." | | 4 | "\"And then I came home and started reading.\" She nodded toward the pile of papers spread across the counter — the same ones she'd been picking at since the curry house downstairs closed for the evening, the smell of frying onions seeping up through the floorboards." | | 5 | "She'd known it the moment Eva mentioned it — Lucien's father, the demon from Avaros, the whole tangled mess that kept pulling Lucien into rooms she couldn't follow." | | 6 | "Lucien pulled a folded piece of paper from his inside jacket pocket — dry, of course, tucked away from the rain like he'd planned the presentation." | | 7 | "The street below was nearly empty — a taxi sliding past the curry house, a couple sharing an umbrella, the orange glow of a streetlamp catching the wet pavement." | | 8 | "He was watching her with that particular expression — patient, unblinking, both eyes fixed on her even though one of them was nothing more than a black disc that swallowed the light." | | 9 | "He leaned back in the chair, and something shifted in his face — not quite a smile, not quite relief, but a loosening of the tension that had been sitting in his shoulders since he walked through the door." | | 10 | "They looked at each other across the table, and Rory felt it — that thing she'd been refusing to name since the wine bar in Soho, since the fourteen calls she'd let go to voicemail, since the night in Eva's kitchen when she'd told her oldest friend that she was fine and Eva had known she was lying and let her get away with it anyway." | | 11 | "Lucien folded his hands over the ledger — carefully, so Ptolemy wouldn't be disturbed — and fixed her with the amber eye." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1167 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.028277634961439587 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.002570694087403599 | |
| 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 | 11.51 | | std | 10.16 | | cv | 0.883 | | sampleLengths | | 0 | 16 | | 1 | 22 | | 2 | 14 | | 3 | 13 | | 4 | 12 | | 5 | 6 | | 6 | 18 | | 7 | 6 | | 8 | 2 | | 9 | 23 | | 10 | 23 | | 11 | 15 | | 12 | 15 | | 13 | 9 | | 14 | 5 | | 15 | 5 | | 16 | 7 | | 17 | 7 | | 18 | 6 | | 19 | 5 | | 20 | 9 | | 21 | 15 | | 22 | 3 | | 23 | 2 | | 24 | 5 | | 25 | 4 | | 26 | 12 | | 27 | 17 | | 28 | 32 | | 29 | 8 | | 30 | 4 | | 31 | 13 | | 32 | 6 | | 33 | 3 | | 34 | 35 | | 35 | 13 | | 36 | 15 | | 37 | 2 | | 38 | 16 | | 39 | 32 | | 40 | 12 | | 41 | 2 | | 42 | 16 | | 43 | 7 | | 44 | 4 | | 45 | 12 | | 46 | 10 | | 47 | 2 | | 48 | 46 | | 49 | 3 |
| |
| 46.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.3157894736842105 | | totalSentences | 152 | | uniqueOpeners | 48 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 45.88% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 85 | | matches | | 0 | "He'd been standing there a" | | 1 | "She could tell by the" | | 2 | "She'd been at something for" | | 3 | "He did that without thinking." | | 4 | "He shifted his weight." | | 5 | "She'd seen him do it" | | 6 | "he said instead" | | 7 | "He looked tired under the" | | 8 | "She stepped back and turned" | | 9 | "She heard the cane against" | | 10 | "He didn't bother apologizing." | | 11 | "She nodded toward the pile" | | 12 | "He opened his mouth, closed" | | 13 | "She kept her back to" | | 14 | "She turned around and set" | | 15 | "She pressed her lips together" | | 16 | "She'd known that, of course." | | 17 | "She'd known it the moment" | | 18 | "He held up a finger." | | 19 | "She set one in front" |
| | ratio | 0.435 | |
| 1.18% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 78 | | totalSentences | 85 | | matches | | 0 | "The three deadbolts turned with" | | 1 | "Lucien stood in the stairwell" | | 2 | "Water dripped from his slicked-back" | | 3 | "The other stayed black, an" | | 4 | "He'd been standing there a" | | 5 | "She could tell by the" | | 6 | "The flat behind her smelled" | | 7 | "Books and scroll-wrapped parcels covered" | | 8 | "Rory had her reading glasses" | | 9 | "She'd been at something for" | | 10 | "Lucien's gaze moved past her" | | 11 | "He did that without thinking." | | 12 | "Rory leaned against the doorframe" | | 13 | "The crescent scar on her" | | 14 | "He shifted his weight." | | 15 | "The cane tapped once against" | | 16 | "She'd seen him do it" | | 17 | "he said instead" | | 18 | "Rory studied him." | | 19 | "He looked tired under the" |
| | ratio | 0.918 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 85 | | matches | (empty) | | ratio | 0 | |
| 83.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 4 | | matches | | 0 | "Ptolemy lifted his striped head from the windowsill, considered Lucien with the deep indifference of a cat who had never once been impressed by a well-cut suit,…" | | 1 | "She'd known it the moment Eva mentioned it — Lucien's father, the demon from Avaros, the whole tangled mess that kept pulling Lucien into rooms she couldn't fol…" | | 2 | "He was watching her with that particular expression — patient, unblinking, both eyes fixed on her even though one of them was nothing more than a black disc tha…" | | 3 | "He leaned back in the chair, and something shifted in his face — not quite a smile, not quite relief, but a loosening of the tension that had been sitting in hi…" |
| |
| 95.59% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 1 | | matches | | 0 | "She nodded, the smell of frying onions seeping up through the floorboards" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 71 | | tagDensity | 0.183 | | leniency | 0.366 | | rawRatio | 0.077 | | effectiveRatio | 0.028 | |