| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 52 | | tagDensity | 0.385 | | leniency | 0.769 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 72.03% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1430 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "very" | | 1 | "perfectly" | | 2 | "precisely" |
| |
| 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) | |
| 89.51% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1430 | | totalAiIsms | 3 | | found | | | highlights | | |
| 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 | 69 | | matches | (empty) | |
| 60.04% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 66 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 6 | | markdownWords | 23 | | totalWords | 1439 | | ratio | 0.016 | | matches | | 0 | "Tu me manques aussi." | | 1 | "Don't look for me." | | 2 | "coward's" | | 3 | "true" | | 4 | "He is alive because you are merciful, not because he is lucky" | | 5 | "nothing" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 26 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1004 | | uniqueNames | 13 | | maxNameDensity | 0.7 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Eva" | | discoveredNames | | Eva | 3 | | London | 1 | | Moreau | 2 | | Whitechapel | 1 | | Lucien | 6 | | French | 2 | | Rory | 7 | | Ptolemy | 3 | | Evan | 1 | | Cardiff | 1 | | Brick | 1 | | Lane | 1 | | Bengali | 1 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Rory" | | 4 | "Ptolemy" | | 5 | "Evan" |
| | places | | 0 | "London" | | 1 | "Whitechapel" | | 2 | "French" | | 3 | "Cardiff" | | 4 | "Brick" | | 5 | "Lane" | | 6 | "Bengali" |
| | globalScore | 1 | | windowScore | 1 | |
| 89.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 1 | | matches | | |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 2.085 | | wordCount | 1439 | | matches | | 0 | "not the suit, not the cane, not the fact that he was here at all, but" | | 1 | "not the cane, not the fact that he was here at all, but" | | 2 | "not the fact that he was here at all, but" |
| |
| 64.63% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 98 | | matches | | 0 | "understood that sentence hated that he" | | 1 | "chose that moment" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 24.81 | | std | 25.25 | | cv | 1.018 | | sampleLengths | | 0 | 5 | | 1 | 60 | | 2 | 12 | | 3 | 83 | | 4 | 3 | | 5 | 41 | | 6 | 7 | | 7 | 14 | | 8 | 7 | | 9 | 38 | | 10 | 10 | | 11 | 7 | | 12 | 31 | | 13 | 4 | | 14 | 1 | | 15 | 72 | | 16 | 4 | | 17 | 2 | | 18 | 78 | | 19 | 18 | | 20 | 76 | | 21 | 4 | | 22 | 1 | | 23 | 40 | | 24 | 4 | | 25 | 60 | | 26 | 43 | | 27 | 5 | | 28 | 18 | | 29 | 9 | | 30 | 5 | | 31 | 52 | | 32 | 19 | | 33 | 95 | | 34 | 8 | | 35 | 6 | | 36 | 33 | | 37 | 10 | | 38 | 41 | | 39 | 5 | | 40 | 53 | | 41 | 66 | | 42 | 3 | | 43 | 43 | | 44 | 3 | | 45 | 68 | | 46 | 9 | | 47 | 3 | | 48 | 29 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 69 | | matches | (empty) | |
| 90.71% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 183 | | matches | | 0 | "was gripping" | | 1 | "was thinking" | | 2 | "was walking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 1 | | flaggedSentences | 7 | | totalSentences | 98 | | ratio | 0.071 | | matches | | 0 | "That was the first thing she noticed, absurdly — not the suit, not the cane, not the fact that he was here at all, but that the rain had ruined the slicked-back platinum and left a few strands hanging loose over his forehead." | | 1 | "The stairwell smelled of the curry house below — cumin and hot oil and the sweet ghost of onion bhaji — and Lucien stood in it like a man standing in a cathedral, entirely at ease and entirely out of place." | | 2 | "\"You are generous.\" He came in past her, and she caught the smell of him under the rain — cedar and something faintly scorched, the way the air smelled after lightning." | | 3 | "He glanced back at her, and there it was — the eyes." | | 4 | "She watched it land, watched his jaw tighten, and knew he was thinking about Evan — about the night she'd told him, three drinks in, why she'd left Cardiff, why she checked all three deadbolts twice, why she never let anyone stand between her and a door." | | 5 | "He never did anything fast; it was one of the ways he made you feel like the only urgent thing in the world was whatever he was walking towards." | | 6 | "Then she reached up — and her sleeve slid back, and the small crescent scar on her left wrist caught the lamplight, the one he'd once traced with his thumb and asked about and then never mentioned again — and she took hold of his damp lapel and did not pull him closer, only held him there, the way you hold a door that could go either way." |
| |
| 91.76% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 951 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 47 | | adverbRatio | 0.04942166140904311 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.017875920084121977 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 14.68 | | std | 14.49 | | cv | 0.987 | | sampleLengths | | 0 | 5 | | 1 | 25 | | 2 | 35 | | 3 | 12 | | 4 | 43 | | 5 | 5 | | 6 | 35 | | 7 | 3 | | 8 | 41 | | 9 | 7 | | 10 | 14 | | 11 | 7 | | 12 | 10 | | 13 | 10 | | 14 | 18 | | 15 | 2 | | 16 | 8 | | 17 | 7 | | 18 | 31 | | 19 | 4 | | 20 | 1 | | 21 | 24 | | 22 | 1 | | 23 | 47 | | 24 | 4 | | 25 | 2 | | 26 | 31 | | 27 | 43 | | 28 | 4 | | 29 | 10 | | 30 | 8 | | 31 | 12 | | 32 | 3 | | 33 | 21 | | 34 | 7 | | 35 | 8 | | 36 | 7 | | 37 | 18 | | 38 | 4 | | 39 | 1 | | 40 | 22 | | 41 | 18 | | 42 | 4 | | 43 | 13 | | 44 | 47 | | 45 | 7 | | 46 | 36 | | 47 | 5 | | 48 | 7 | | 49 | 11 |
| |
| 50.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.3673469387755102 | | totalSentences | 98 | | uniqueOpeners | 36 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 56 | | matches | | 0 | "Then the bolt gave, the" | | 1 | "Then, quietly, in French:" | | 2 | "Then she reached up —" |
| | ratio | 0.054 | |
| 20.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 56 | | matches | | 0 | "It made him look younger." | | 1 | "It made him look like" | | 2 | "she said, and closed the" | | 3 | "She got two of the" | | 4 | "She slid the third bolt" | | 5 | "It went easily this time," | | 6 | "She had two years of" | | 7 | "She opened the door." | | 8 | "He came in past her," | | 9 | "He stopped in the middle" | | 10 | "He glanced back at her," | | 11 | "She'd stopped flinching from it" | | 12 | "She'd started, at some point," | | 13 | "He got in under your" | | 14 | "He set the ivory handle" | | 15 | "she said, to the wall" | | 16 | "She turned round" | | 17 | "She was gripping the counter" | | 18 | "She watched it land, watched" | | 19 | "He'd listened to that with" |
| | ratio | 0.5 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 56 | | matches | | 0 | "The third deadbolt always stuck." | | 1 | "Rory worked it with her" | | 2 | "Lucien Moreau stood in the" | | 3 | "That was the first thing" | | 4 | "It made him look younger." | | 5 | "It made him look like" | | 6 | "The stairwell smelled of the" | | 7 | "she said, and closed the" | | 8 | "She got two of the" | | 9 | "She slid the third bolt" | | 10 | "It went easily this time," | | 11 | "Rory pressed her forehead against" | | 12 | "She had two years of" | | 13 | "Ptolemy chose that moment to" | | 14 | "Lucien had fed him prawn" | | 15 | "She opened the door." | | 16 | "He came in past her," | | 17 | "He stopped in the middle" | | 18 | "Rory folded her arms" | | 19 | "He glanced back at her," |
| | ratio | 0.929 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 56 | | matches | (empty) | | ratio | 0 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 3 | | matches | | 0 | "It made him look like the version of him she'd seen at four in the morning in a Whitechapel alley eight weeks ago, bleeding through his shirt cuff and laughing …" | | 1 | "He stopped in the middle of the room, taking in the chaos: the towers of books, the scrolls unspooled across the sofa arm, the wall of Eva's research notes pinn…" | | 2 | "Then she reached up — and her sleeve slid back, and the small crescent scar on her left wrist caught the lamplight, the one he'd once traced with his thumb and …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 52 | | tagDensity | 0.212 | | leniency | 0.423 | | rawRatio | 0.091 | | effectiveRatio | 0.038 | |