| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said again [again]" | | 1 | "she said carefully [carefully]" |
| | dialogueSentences | 53 | | tagDensity | 0.472 | | leniency | 0.943 | | rawRatio | 0.08 | | effectiveRatio | 0.075 | |
| 66.89% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1510 | | totalAiIsmAdverbs | 10 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 2 | "loosely" | | 3 | "carefully" |
| |
| 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) | |
| 90.07% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1510 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "familiar" | | 1 | "lilt" | | 2 | "pristine" |
| |
| 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 | 0 | | narrationSentences | 89 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 89 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 115 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 83 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1523 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 31 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1277 | | uniqueNames | 11 | | maxNameDensity | 0.63 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Eva" | | discoveredNames | | Yu-Fei | 1 | | Eva | 6 | | Marseille | 1 | | London | 1 | | Moreau | 3 | | Lucien | 7 | | Met | 1 | | Vauxhall | 1 | | Carter | 1 | | Rory | 8 | | Ptolemy | 4 |
| | persons | | 0 | "Yu-Fei" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Met" | | 5 | "Carter" | | 6 | "Rory" | | 7 | "Ptolemy" |
| | places | | 0 | "Marseille" | | 1 | "London" | | 2 | "Vauxhall" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 56 | | glossingSentenceCount | 4 | | matches | | 0 | "something between a question and a statement" | | 1 | "not quite the carefully assembled neutrality he usually wore" | | 2 | "felt like standing on a surface she was" | | 3 | "felt like conceding something" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 2.626 | | wordCount | 1523 | | matches | | 0 | "not the same as inviting him in, but he took it as such" | | 1 | "not new, she'd seen it before, once, but she'd told herself she'd imagined it" | | 2 | "not the clipped Carter he used when he was keeping his distance, but Rory, two syllables" | | 3 | "not fixed it, nothing as neat as that, but loosened it, made the air a little easier to breathe" |
| |
| 79.71% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 115 | | matches | | 0 | "knew that knock" | | 1 | "favoured that chair" | | 2 | "noticed that his" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 71 | | mean | 21.45 | | std | 23.32 | | cv | 1.087 | | sampleLengths | | 0 | 5 | | 1 | 76 | | 2 | 15 | | 3 | 18 | | 4 | 10 | | 5 | 15 | | 6 | 4 | | 7 | 47 | | 8 | 20 | | 9 | 29 | | 10 | 4 | | 11 | 85 | | 12 | 5 | | 13 | 12 | | 14 | 56 | | 15 | 22 | | 16 | 25 | | 17 | 6 | | 18 | 5 | | 19 | 32 | | 20 | 20 | | 21 | 14 | | 22 | 8 | | 23 | 27 | | 24 | 18 | | 25 | 29 | | 26 | 6 | | 27 | 1 | | 28 | 88 | | 29 | 21 | | 30 | 7 | | 31 | 6 | | 32 | 73 | | 33 | 7 | | 34 | 7 | | 35 | 2 | | 36 | 5 | | 37 | 1 | | 38 | 65 | | 39 | 23 | | 40 | 5 | | 41 | 4 | | 42 | 49 | | 43 | 1 | | 44 | 1 | | 45 | 83 | | 46 | 8 | | 47 | 15 | | 48 | 5 | | 49 | 47 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 89 | | matches | (empty) | |
| 80.42% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 223 | | matches | | 0 | "was seeing " | | 1 | "was watching" | | 2 | "was making" | | 3 | "was keeping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 115 | | ratio | 0.13 | | matches | | 0 | "She was still in her delivery jacket, her hair damp from the drizzle outside, a plastic bag of leftover spring rolls dangling from two fingers — Yu-Fei's parting gift at the end of the shift." | | 1 | "Just — certain." | | 2 | "The accent was Marseille softened by years in London — that particular lilt that turned vowels into something between a question and a statement." | | 3 | "His mismatched eyes — amber and black, always unnerving in the way that made your brain insist something was wrong with what it was seeing — moved over her face with an expression that was not quite the carefully assembled neutrality he usually wore." | | 4 | "She stepped back, which was not the same as inviting him in, but he took it as such — which was very Lucien — stepping across the threshold and glancing around Eva's cramped, scroll-covered flat with the air of a man reassessing something he'd seen before and filed away and was now revising his notes on." | | 5 | "That was new, or — not new, she'd seen it before, once, but she'd told herself she'd imagined it." | | 6 | "The flat was very quiet except for the muted noise of the curry house below — voices, the clatter of a pan, a brief burst of music." | | 7 | "She heard him move behind her, the faint tap of the cane on the floorboards, and then the creak of the chair at Eva's research table — the one with the wonky back leg." | | 8 | "It was, as he'd said, a situation — a border dispute between two entities neither of them wanted near their respective orbits, a crossing of influence that had already resulted in two missing persons cases the Met would never solve." | | 9 | "She turned around and put his tea on the edge of the table near his elbow — no milk, no sugar, she still knew that — and carried her own mug back to the kitchen doorframe." | | 10 | "It was the name, that was what did it — the way he said it, not the clipped Carter he used when he was keeping his distance, but Rory, two syllables that he didn't soften or stretch, just said plainly, and it meant something different in his mouth than it did in anyone else's, and she was very aware that she'd spent four months not thinking about that and was now thinking about it in Eva's cramped flat with rain against the windows." | | 11 | "She looked at him — at the rain still drying on his shoulders, the fallen strand of hair, the split knuckles around the mug." | | 12 | "It broke something in the room — not fixed it, nothing as neat as that, but loosened it, made the air a little easier to breathe." | | 13 | "\"He does that.\" She pushed off from the doorframe one more time and crossed the room and sat in the chair across from him — close enough that their knees were nearly level, the small table between them with their two mugs steaming." | | 14 | "He noticed it — she saw him notice it — and looked away." |
| |
| 91.42% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1265 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 63 | | adverbRatio | 0.04980237154150197 | | lyAdverbCount | 20 | | lyAdverbRatio | 0.015810276679841896 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 115 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 115 | | mean | 13.24 | | std | 13.54 | | cv | 1.023 | | sampleLengths | | 0 | 5 | | 1 | 20 | | 2 | 35 | | 3 | 21 | | 4 | 8 | | 5 | 7 | | 6 | 18 | | 7 | 3 | | 8 | 2 | | 9 | 2 | | 10 | 3 | | 11 | 15 | | 12 | 4 | | 13 | 19 | | 14 | 2 | | 15 | 17 | | 16 | 9 | | 17 | 12 | | 18 | 8 | | 19 | 24 | | 20 | 5 | | 21 | 4 | | 22 | 32 | | 23 | 9 | | 24 | 44 | | 25 | 5 | | 26 | 7 | | 27 | 5 | | 28 | 56 | | 29 | 22 | | 30 | 5 | | 31 | 9 | | 32 | 11 | | 33 | 6 | | 34 | 5 | | 35 | 6 | | 36 | 7 | | 37 | 19 | | 38 | 6 | | 39 | 14 | | 40 | 11 | | 41 | 3 | | 42 | 4 | | 43 | 4 | | 44 | 27 | | 45 | 18 | | 46 | 11 | | 47 | 18 | | 48 | 6 | | 49 | 1 |
| |
| 42.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.3130434782608696 | | totalSentences | 115 | | uniqueOpeners | 36 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 70 | | matches | | 0 | "Just — certain." | | 1 | "Then she stood there with" | | 2 | "Then he set down his" | | 3 | "Fractionally, barely visible, but she'd" |
| | ratio | 0.057 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 70 | | matches | | 0 | "She was still in her" | | 1 | "she muttered, toeing off her" | | 2 | "She was halfway to the" | | 3 | "She knew that knock." | | 4 | "She crossed back to the" | | 5 | "She'd thrown all three of" | | 6 | "She stared at the chain" | | 7 | "She opened the door." | | 8 | "He held his ivory-handled cane" | | 9 | "His mismatched eyes — amber" | | 10 | "She stepped back, which was" | | 11 | "She folded her arms, leaning" | | 12 | "He turned to look at" | | 13 | "She stopped herself" | | 14 | "He looked away, toward Eva's" | | 15 | "She pushed off from the" | | 16 | "She heard him move behind" | | 17 | "He'd always favoured that chair," | | 18 | "She got two mugs out." | | 19 | "She left them both on" |
| | ratio | 0.571 | |
| 31.43% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 70 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory jiggled the key with" | | 2 | "She was still in her" | | 3 | "Ptolemy appeared instantly from behind" | | 4 | "she muttered, toeing off her" | | 5 | "She was halfway to the" | | 6 | "Rory set the spring rolls" | | 7 | "She knew that knock." | | 8 | "She crossed back to the" | | 9 | "She'd thrown all three of" | | 10 | "She stared at the chain" | | 11 | "The accent was Marseille softened" | | 12 | "Rory closed her eyes briefly." | | 13 | "She opened the door." | | 14 | "Lucien Moreau stood in the" | | 15 | "He held his ivory-handled cane" | | 16 | "His mismatched eyes — amber" | | 17 | "She stepped back, which was" | | 18 | "Ptolemy approached him with great" | | 19 | "She folded her arms, leaning" |
| | ratio | 0.857 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 67.67% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 4 | | matches | | 0 | "His mismatched eyes — amber and black, always unnerving in the way that made your brain insist something was wrong with what it was seeing — moved over her face…" | | 1 | "It was, as he'd said, a situation — a border dispute between two entities neither of them wanted near their respective orbits, a crossing of influence that had …" | | 2 | "It was the name, that was what did it — the way he said it, not the clipped Carter he used when he was keeping his distance, but Rory, two syllables that he did…" | | 3 | "Thirty-two years old and half something that had no business sitting in a kitchen chair drinking tea and looking at her like that." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 20 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 53 | | tagDensity | 0.377 | | leniency | 0.755 | | rawRatio | 0.05 | | effectiveRatio | 0.038 | |