| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 3 | | adverbTags | | 0 | "Lucien's jaw tightened almost [almost]" | | 1 | "Lucien's gaze moved briefly [briefly]" | | 2 | "she said quietly [quietly]" |
| | dialogueSentences | 62 | | tagDensity | 0.323 | | leniency | 0.645 | | rawRatio | 0.15 | | effectiveRatio | 0.097 | |
| 91.96% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1865 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "suddenly" | | 1 | "completely" | | 2 | "carefully" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 75.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1865 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "predator" | | 1 | "grave" | | 2 | "weight" | | 3 | "warmth" | | 4 | "silence" | | 5 | "could feel" | | 6 | "tension" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 118 | | matches | (empty) | |
| 94.43% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 118 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 157 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1859 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 54 | | wordCount | 1364 | | uniqueNames | 19 | | maxNameDensity | 1.1 | | worstName | "Lucien" | | maxWindowNameDensity | 3 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 9 | | Marseille | 1 | | English | 1 | | Moreau | 3 | | Whitechapel | 2 | | London | 1 | | Lucien | 15 | | Ptolemy | 7 | | Silas | 1 | | Frenchman | 1 | | Three | 2 | | Cardiff | 1 | | British | 1 | | Museum | 1 | | Bermondsey | 1 | | Marcus | 1 | | Vale | 1 | | Eva | 4 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Ptolemy" | | 4 | "Silas" | | 5 | "Frenchman" | | 6 | "Museum" | | 7 | "Marcus" | | 8 | "Vale" | | 9 | "Eva" | | 10 | "Evan" |
| | places | | 0 | "Marseille" | | 1 | "Whitechapel" | | 2 | "London" | | 3 | "Three" | | 4 | "Cardiff" | | 5 | "British" | | 6 | "Bermondsey" |
| | globalScore | 0.95 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 78 | | glossingSentenceCount | 1 | | matches | | 0 | "the radiator, apparently satisfied with his" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.538 | | wordCount | 1859 | | matches | | 0 | "Not dangerous in the traditional sense, but thorough" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 157 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 78 | | mean | 23.83 | | std | 23.37 | | cv | 0.981 | | sampleLengths | | 0 | 40 | | 1 | 10 | | 2 | 3 | | 3 | 26 | | 4 | 80 | | 5 | 71 | | 6 | 21 | | 7 | 16 | | 8 | 27 | | 9 | 32 | | 10 | 3 | | 11 | 4 | | 12 | 59 | | 13 | 8 | | 14 | 2 | | 15 | 1 | | 16 | 4 | | 17 | 47 | | 18 | 23 | | 19 | 12 | | 20 | 20 | | 21 | 2 | | 22 | 6 | | 23 | 80 | | 24 | 23 | | 25 | 11 | | 26 | 34 | | 27 | 8 | | 28 | 4 | | 29 | 1 | | 30 | 42 | | 31 | 6 | | 32 | 4 | | 33 | 85 | | 34 | 49 | | 35 | 4 | | 36 | 13 | | 37 | 43 | | 38 | 5 | | 39 | 6 | | 40 | 5 | | 41 | 14 | | 42 | 42 | | 43 | 60 | | 44 | 1 | | 45 | 37 | | 46 | 18 | | 47 | 3 | | 48 | 42 | | 49 | 33 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 118 | | matches | | |
| 88.89% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 240 | | matches | | 0 | "wasn't hiding" | | 1 | "was, standing" | | 2 | "was memorizing" | | 3 | "was filing" |
| |
| 51.87% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 157 | | ratio | 0.032 | | matches | | 0 | "She felt suddenly, acutely aware of how it must look to him—how she must look to him—with her black hair falling out of its ponytail and the sauce stain on her delivery jacket she hadn't bothered to change out of." | | 1 | "She watched him take it in—the security of three deadbolts on a door, the strategic placement of furniture, the worn couch that converted into a bed and the fire escape visible through the kitchen window." | | 2 | "He turned to face her, and she was struck again by the strange symmetry of his eyes—amber and black, fire and void." | | 3 | "A name she didn't recognize—Marcus Vale." | | 4 | "He was nearer than she'd expected—near enough that she could see the faint variation in his amber eye, the darker flecks like sunlight through whiskey." |
| |
| 94.18% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1372 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 64 | | adverbRatio | 0.04664723032069971 | | lyAdverbCount | 20 | | lyAdverbRatio | 0.014577259475218658 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 157 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 157 | | mean | 11.84 | | std | 9.7 | | cv | 0.82 | | sampleLengths | | 0 | 19 | | 1 | 14 | | 2 | 7 | | 3 | 10 | | 4 | 3 | | 5 | 2 | | 6 | 18 | | 7 | 6 | | 8 | 3 | | 9 | 19 | | 10 | 4 | | 11 | 9 | | 12 | 25 | | 13 | 20 | | 14 | 8 | | 15 | 44 | | 16 | 3 | | 17 | 16 | | 18 | 21 | | 19 | 5 | | 20 | 11 | | 21 | 18 | | 22 | 9 | | 23 | 19 | | 24 | 13 | | 25 | 3 | | 26 | 4 | | 27 | 5 | | 28 | 23 | | 29 | 7 | | 30 | 24 | | 31 | 8 | | 32 | 2 | | 33 | 1 | | 34 | 4 | | 35 | 2 | | 36 | 12 | | 37 | 19 | | 38 | 2 | | 39 | 5 | | 40 | 7 | | 41 | 6 | | 42 | 17 | | 43 | 8 | | 44 | 4 | | 45 | 12 | | 46 | 8 | | 47 | 2 | | 48 | 6 | | 49 | 40 |
| |
| 45.86% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.34394904458598724 | | totalSentences | 157 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 100 | | matches | | 0 | "Then, inexplicably, he butted his" | | 1 | "Then he met her eyes" | | 2 | "Near enough that she could" | | 3 | "Almost a smile." |
| | ratio | 0.04 | |
| 40.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 45 | | totalSentences | 100 | | matches | | 0 | "She didn't look up from" | | 1 | "Her fingers froze on the" | | 2 | "She had last seen him" | | 3 | "She had last spoken to" | | 4 | "He hadn't argued." | | 5 | "He'd simply nodded, finished his" | | 6 | "She should close the door." | | 7 | "She should slam it, actually," | | 8 | "He said them quietly, without" | | 9 | "She felt suddenly, acutely aware" | | 10 | "He'd shown up uninvited, and" | | 11 | "she told him" | | 12 | "Her name in his mouth" | | 13 | "It wasn't fair, the way" | | 14 | "She hated it." | | 15 | "She hated how much she'd" | | 16 | "She stepped back from the" | | 17 | "He entered with the economy" | | 18 | "She watched him take it" | | 19 | "She crossed her arms" |
| | ratio | 0.45 | |
| 25.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 100 | | matches | | 0 | "The third deadbolt stuck, as" | | 1 | "Ptolemy wound between her ankles," | | 2 | "She didn't look up from" | | 3 | "That particular voice with its" | | 4 | "Her fingers froze on the" | | 5 | "Rory looked up." | | 6 | "Lucien Moreau stood in her" | | 7 | "Platinum hair slicked back." | | 8 | "Charcoal suit tailored within an" | | 9 | "The ivory-handled cane tucked under" | | 10 | "She had last seen him" | | 11 | "She had last spoken to" | | 12 | "He hadn't argued." | | 13 | "He'd simply nodded, finished his" | | 14 | "Lucien's tone was light, but" | | 15 | "Ptolemy padded forward and sniffed" | | 16 | "The cat ignored her." | | 17 | "She should close the door." | | 18 | "She should slam it, actually," | | 19 | "That was what sensible Rory" |
| | ratio | 0.87 | |
| 50.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 100 | | matches | | 0 | "Now here he was, standing" |
| | ratio | 0.01 | |
| 74.18% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 5 | | matches | | 0 | "The ivory-handled cane tucked under one arm like an afterthought, like it wasn't hiding a blade that could open a man from throat to navel." | | 1 | "Three simple words that stripped the conversation of all its careful distance." | | 2 | "The flat behind her was a mess of books and research notes, the smell of cold curry drifting up from the restaurant below, and the faint mustiness of a place th…" | | 3 | "She watched him take it in—the security of three deadbolts on a door, the strategic placement of furniture, the worn couch that converted into a bed and the fir…" | | 4 | "She could feel the warmth of him, smell the faint cedar and something darker underneath, something that reminded her of the occult shops in Whitechapel and the …" |
| |
| 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 | 12 | | fancyCount | 3 | | fancyTags | | 0 | "Rory muttered (mutter)" | | 1 | "he observed (observe)" | | 2 | "she admitted (admit)" |
| | dialogueSentences | 62 | | tagDensity | 0.194 | | leniency | 0.387 | | rawRatio | 0.25 | | effectiveRatio | 0.097 | |