| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "he said again [again]" |
| | dialogueSentences | 50 | | tagDensity | 0.46 | | leniency | 0.92 | | rawRatio | 0.087 | | effectiveRatio | 0.08 | |
| 76.37% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1904 | | totalAiIsmAdverbs | 9 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | adverb | "deliberately" | | count | 1 |
| | 7 | |
| | highlights | | 0 | "perfectly" | | 1 | "very" | | 2 | "slightly" | | 3 | "really" | | 4 | "carefully" | | 5 | "hungrily" | | 6 | "deliberately" | | 7 | "completely" |
| |
| 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) | |
| 76.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1904 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "measured" | | 1 | "silence" | | 2 | "traced" | | 3 | "could feel" | | 4 | "pulse" | | 5 | "grave" | | 6 | "weight" | | 7 | "charged" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 108 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 108 | | filterMatches | | | hedgeMatches | | 0 | "started to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 135 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 95 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1928 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 27 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 1577 | | uniqueNames | 13 | | maxNameDensity | 0.51 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Deliveroo | 1 | | Eva | 5 | | British | 1 | | Library | 1 | | Lucien | 8 | | Moreau | 6 | | Brick | 3 | | Lane | 3 | | Sumerian | 1 | | Aurora | 1 | | Soho | 1 | | Rory | 4 | | Ptolemy | 5 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Rory" | | 4 | "Ptolemy" |
| | places | | 0 | "British" | | 1 | "Library" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "Soho" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.75% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 4 | | matches | | 0 | "something like slow motion — the fingers rel" | | 1 | "t ever, except apparently now, apparently whe" | | 2 | "not quite a smile, but the ghost of one, the kind that lived in the space between grief and hope, the kind she'd fallen for the first time she'd seen it across the back room of a Soho bar that didn't technically exist" | | 3 | "not quite a statement either" | | 4 | "rified, except apparently he did both now, ap" | | 5 | "did both now, apparently she'd broken him op" |
| |
| 44.40% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.556 | | wordCount | 1928 | | matches | | 0 | "not quite a smile, but the ghost of one, the kind" | | 1 | "not a question but it was not quite a statement either" | | 2 | "not forgiveness but might one day become it" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 135 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 73 | | mean | 26.41 | | std | 26.85 | | cv | 1.017 | | sampleLengths | | 0 | 17 | | 1 | 93 | | 2 | 47 | | 3 | 25 | | 4 | 22 | | 5 | 3 | | 6 | 6 | | 7 | 50 | | 8 | 4 | | 9 | 28 | | 10 | 42 | | 11 | 6 | | 12 | 17 | | 13 | 47 | | 14 | 74 | | 15 | 18 | | 16 | 95 | | 17 | 5 | | 18 | 6 | | 19 | 56 | | 20 | 4 | | 21 | 40 | | 22 | 11 | | 23 | 22 | | 24 | 1 | | 25 | 4 | | 26 | 31 | | 27 | 14 | | 28 | 15 | | 29 | 4 | | 30 | 3 | | 31 | 90 | | 32 | 2 | | 33 | 3 | | 34 | 62 | | 35 | 7 | | 36 | 4 | | 37 | 7 | | 38 | 58 | | 39 | 56 | | 40 | 3 | | 41 | 66 | | 42 | 5 | | 43 | 7 | | 44 | 80 | | 45 | 6 | | 46 | 1 | | 47 | 4 | | 48 | 1 | | 49 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 108 | | matches | | |
| 46.15% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 260 | | matches | | 0 | "was wearing" | | 1 | "was pulling" | | 2 | "was touching" | | 3 | "was trying" | | 4 | "was still holding" | | 5 | "was still touching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 135 | | ratio | 0.096 | | matches | | 0 | "Rory pulled the door open expecting the Deliveroo driver Eva had mentioned before leaving for the British Library — some apologetic kid with a bag of pad thai and an excuse about the rain." | | 1 | "His mismatched eyes — amber and black, a detail she'd tried very hard to forget and failed at spectacularly — found hers, and something brief moved across his face." | | 2 | "The amber eye flinched — just a fraction, just enough — and his jaw tightened beneath the sharp, clean line of his stubble." | | 3 | "Rory looked at him — really looked — and saw what she'd been trying not to see." | | 4 | "He entered the flat like he always entered rooms — cane first, then the measured stride that made you think of old money and older secrets." | | 5 | "In the flat's cramped kitchen-slash-hallway-slash-living room, there was maybe three feet between them — an impossible distance and no distance at all." | | 6 | "She watched his grip shift on the cane — a tell, one she'd catalogued months ago in a different context, when his hands had been occupied with other things, when she'd learned his body the way she learned everything: methodically, hungrily, with the kind of focused attention that ruined you for anything that came after." | | 7 | "Not deliberately — the flat didn't allow for deliberate movement, not with the books and the scrolls and the cat and the whole compressed geometry of Eva's life taking up every available inch." | | 8 | "She watched it happen in something like slow motion — the fingers releasing the ivory handle, the arm moving, the hesitation when his hand reached the space between them — and then his palm was against her jaw, warm and careful and shaking slightly, which was the thing that undid her, the tremor in his fingers, because Lucien Moreau's hands did not shake, not when he was pulling a blade from that cane, not when he was cutting deals with things that had too many teeth, not ever, except apparently now, apparently when he was touching her." | | 9 | "The corner of his mouth twitched — not quite a smile, but the ghost of one, the kind that lived in the space between grief and hope, the kind she'd fallen for the first time she'd seen it across the back room of a Soho bar that didn't technically exist." | | 10 | "She tightened her grip on his wrist, felt his pulse jump, and pulled his hand away from her face — but didn't let go." | | 11 | "She looked at him — at the mismatched eyes, the bruise, the careful mask with all its cracks showing — and felt the full, absurd, terrifying weight of wanting someone who came packaged with a demonic inheritance and a price on her head." | | 12 | "Not relief, exactly — Lucien didn't do relief any more than he did terrified, except apparently he did both now, apparently she'd broken him open in all the ways he'd tried so hard to prevent." |
| |
| 87.17% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1569 | | adjectiveStacks | 1 | | stackExamples | | 0 | "full, absurd, terrifying weight" |
| | adverbCount | 75 | | adverbRatio | 0.04780114722753346 | | lyAdverbCount | 27 | | lyAdverbRatio | 0.017208413001912046 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 135 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 135 | | mean | 14.28 | | std | 14.82 | | cv | 1.038 | | sampleLengths | | 0 | 11 | | 1 | 3 | | 2 | 3 | | 3 | 34 | | 4 | 59 | | 5 | 29 | | 6 | 2 | | 7 | 16 | | 8 | 4 | | 9 | 21 | | 10 | 7 | | 11 | 15 | | 12 | 3 | | 13 | 6 | | 14 | 27 | | 15 | 23 | | 16 | 4 | | 17 | 28 | | 18 | 2 | | 19 | 4 | | 20 | 23 | | 21 | 1 | | 22 | 5 | | 23 | 7 | | 24 | 6 | | 25 | 5 | | 26 | 12 | | 27 | 16 | | 28 | 31 | | 29 | 17 | | 30 | 15 | | 31 | 3 | | 32 | 20 | | 33 | 19 | | 34 | 18 | | 35 | 3 | | 36 | 26 | | 37 | 20 | | 38 | 46 | | 39 | 5 | | 40 | 6 | | 41 | 5 | | 42 | 22 | | 43 | 29 | | 44 | 4 | | 45 | 29 | | 46 | 11 | | 47 | 7 | | 48 | 4 | | 49 | 7 |
| |
| 42.47% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.32592592592592595 | | totalSentences | 135 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 87 | | matches | | 0 | "Then the second." | | 1 | "Then the third." | | 2 | "Somewhere below, the curry house" |
| | ratio | 0.034 | |
| 22.30% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 43 | | totalSentences | 87 | | matches | | 0 | "His mismatched eyes — amber" | | 1 | "His accent did what it" | | 2 | "She gripped the edge of" | | 3 | "She started to push the" | | 4 | "His cane moved, just slightly," | | 5 | "She watched it land." | | 6 | "She wanted it to sting." | | 7 | "She'd spent three months wanting" | | 8 | "he said quietly" | | 9 | "He was thinner." | | 10 | "she said, and hated herself" | | 11 | "She stepped aside." | | 12 | "He entered the flat like" | | 13 | "He turned to face her." | | 14 | "She could smell his cologne," | | 15 | "She folded her arms." | | 16 | "He rested both hands on" | | 17 | "she asked, because the practical" | | 18 | "She searched his face for" | | 19 | "She watched his grip shift" |
| | ratio | 0.494 | |
| 57.70% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 87 | | matches | | 0 | "The first deadbolt turned with" | | 1 | "Rory pulled the door open" | | 2 | "His mismatched eyes — amber" | | 3 | "His accent did what it" | | 4 | "She gripped the edge of" | | 5 | "Ptolemy threaded between her ankles," | | 6 | "She started to push the" | | 7 | "His cane moved, just slightly," | | 8 | "She watched it land." | | 9 | "The amber eye flinched —" | | 10 | "She wanted it to sting." | | 11 | "She'd spent three months wanting" | | 12 | "he said quietly" | | 13 | "The rain picked up outside" | | 14 | "Rory looked at him —" | | 15 | "The suit was immaculate, yes," | | 16 | "He was thinner." | | 17 | "A faint bruise sat high" | | 18 | "she said, and hated herself" | | 19 | "She stepped aside." |
| | ratio | 0.805 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 87 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 12 | | matches | | 0 | "What she got instead was Lucien Moreau, standing on the narrow landing above the curry house with his platinum hair slicked back so perfectly it looked painted …" | | 1 | "Or something worse, like recognition, the kind that went deeper than just seeing someone you knew." | | 2 | "He entered the flat like he always entered rooms — cane first, then the measured stride that made you think of old money and older secrets." | | 3 | "She could smell his cologne, that same bergamot-and-smoke scent that used to cling to her clothes after late nights in the back room of places she shouldn't hav…" | | 4 | "She searched his face for the lie, or the angle, or the transactional calculation she'd learned to expect from a man who made his living trading information the…" | | 5 | "She watched his grip shift on the cane — a tell, one she'd catalogued months ago in a different context, when his hands had been occupied with other things, whe…" | | 6 | "She turned away from him, pressing both hands flat against the cluttered kitchen counter because she needed something solid, something that wasn't him." | | 7 | "She watched it happen in something like slow motion — the fingers releasing the ivory handle, the arm moving, the hesitation when his hand reached the space bet…" | | 8 | "She could feel his pulse hammering against her fingertips, quick and hard and completely at odds with the composed portrait he was trying to paint." | | 9 | "Ptolemy had gone quiet on his stack of books, watching them with the grave attention of a creature who understood that some silences were not meant to be broken…" | | 10 | "She looked at him — at the mismatched eyes, the bruise, the careful mask with all its cracks showing — and felt the full, absurd, terrifying weight of wanting s…" | | 11 | "And they stood there in Eva's cluttered flat above the curry house on Brick Lane, the rain hammering the windows, a tabby cat judging them from the collected wo…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, and the words came out stripped of anger, which was worse, because underneath the anger there was only the hurt, wide and deep and honest" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 20 | | fancyCount | 2 | | fancyTags | | 0 | "he observed (observe)" | | 1 | "he admitted (admit)" |
| | dialogueSentences | 50 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0.1 | | effectiveRatio | 0.08 | |