| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 56 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.39% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1781 | | totalAiIsmAdverbs | 2 | | 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) | |
| 63.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1781 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "intensity" | | 1 | "measured" | | 2 | "charm" | | 3 | "encounter" | | 4 | "weight" | | 5 | "facade" | | 6 | "traced" | | 7 | "flickered" | | 8 | "tracing" |
| |
| 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 | 102 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 102 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 138 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1770 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1313 | | uniqueNames | 16 | | maxNameDensity | 0.76 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 4 | | Eva | 5 | | Moreau | 3 | | Whitechapel | 1 | | Ptolemy | 6 | | Brendan | 1 | | Carter | 1 | | Sunday | 1 | | London | 1 | | Jennifer | 1 | | Western | 1 | | Mail | 1 | | Lucien | 10 | | Evan | 2 | | Marseille | 1 | | Aurora | 3 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Ptolemy" | | 4 | "Brendan" | | 5 | "Carter" | | 6 | "Jennifer" | | 7 | "Lucien" | | 8 | "Evan" |
| | places | | 0 | "Whitechapel" | | 1 | "London" | | 2 | "Western" | | 3 | "Marseille" |
| | globalScore | 1 | | windowScore | 1 | |
| 41.30% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 69 | | glossingSentenceCount | 3 | | matches | | 0 | "something close to acknowledgment" | | 1 | "quite human" | | 2 | "quite bring herself to close it yet, in case he'd forgotten something, in case he turned back, in case" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1770 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 138 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 61 | | mean | 29.02 | | std | 21.95 | | cv | 0.756 | | sampleLengths | | 0 | 48 | | 1 | 51 | | 2 | 5 | | 3 | 75 | | 4 | 25 | | 5 | 2 | | 6 | 22 | | 7 | 20 | | 8 | 5 | | 9 | 10 | | 10 | 69 | | 11 | 26 | | 12 | 30 | | 13 | 42 | | 14 | 5 | | 15 | 1 | | 16 | 48 | | 17 | 6 | | 18 | 53 | | 19 | 45 | | 20 | 41 | | 21 | 31 | | 22 | 4 | | 23 | 45 | | 24 | 3 | | 25 | 46 | | 26 | 88 | | 27 | 37 | | 28 | 3 | | 29 | 12 | | 30 | 34 | | 31 | 61 | | 32 | 15 | | 33 | 29 | | 34 | 22 | | 35 | 4 | | 36 | 6 | | 37 | 45 | | 38 | 27 | | 39 | 36 | | 40 | 62 | | 41 | 5 | | 42 | 38 | | 43 | 64 | | 44 | 5 | | 45 | 38 | | 46 | 10 | | 47 | 57 | | 48 | 31 | | 49 | 5 |
| |
| 98.38% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 102 | | matches | | |
| 76.54% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 216 | | matches | | 0 | "was discovering" | | 1 | "wasn't counting" | | 2 | "was like seeing" | | 3 | "was asking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 138 | | ratio | 0.051 | | matches | | 0 | "He'd helped himself to Eva's good whisky—the bottle sat on the side table, two fingers already missing from its contents." | | 1 | "Lucien's hands were never still—they traced patterns on tabletops, adjusted cufflinks, moved through gestures like water through a stream." | | 2 | "Thinking meant protecting herself, and protecting herself meant keeping him at arm's length, and keeping him at arm's length meant—meant—" | | 3 | "She closed her eyes, but that was worse—darkness brought other images, his hands on a lockpick, his breath on her neck, the two of them in this very flat with the rain hammering the windows and his mouth tracing the crescent scar on her wrist like it was something precious." | | 4 | "Not touching—never touching, not unless she moved first—but close enough that she could see the amber of one eye bleeding into gold where the last of the daylight caught it." | | 5 | "Not satisfaction—she didn't think he was capable of that, not now—but something close to acknowledgment." | | 6 | "Then he was gone, and she was alone in the flat with Ptolemy and the books and the fading scent of sandalwood, and the door was still open and the night was rushing in and she couldn't quite bring herself to close it yet, in case he'd forgotten something, in case he turned back, in case—" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1323 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.030234315948601664 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.0045351473922902496 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 138 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 138 | | mean | 12.83 | | std | 10.82 | | cv | 0.844 | | sampleLengths | | 0 | 19 | | 1 | 11 | | 2 | 18 | | 3 | 3 | | 4 | 25 | | 5 | 23 | | 6 | 5 | | 7 | 22 | | 8 | 20 | | 9 | 17 | | 10 | 16 | | 11 | 14 | | 12 | 11 | | 13 | 2 | | 14 | 12 | | 15 | 10 | | 16 | 12 | | 17 | 4 | | 18 | 4 | | 19 | 5 | | 20 | 10 | | 21 | 15 | | 22 | 30 | | 23 | 6 | | 24 | 6 | | 25 | 12 | | 26 | 5 | | 27 | 17 | | 28 | 4 | | 29 | 21 | | 30 | 9 | | 31 | 10 | | 32 | 2 | | 33 | 2 | | 34 | 28 | | 35 | 5 | | 36 | 1 | | 37 | 9 | | 38 | 25 | | 39 | 14 | | 40 | 6 | | 41 | 6 | | 42 | 1 | | 43 | 28 | | 44 | 7 | | 45 | 11 | | 46 | 7 | | 47 | 4 | | 48 | 34 | | 49 | 10 |
| |
| 57.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.39855072463768115 | | totalSentences | 138 | | uniqueOpeners | 55 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 89 | | matches | | 0 | "Just two words, stripped of" | | 1 | "Just fact, delivered like a" | | 2 | "Then he was gone, and" |
| | ratio | 0.034 | |
| 58.20% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 89 | | matches | | 0 | "She pushed the door open," | | 1 | "He'd helped himself to Eva's" | | 2 | "He swirled the whisky in" | | 3 | "He took a measured sip" | | 4 | "She dropped her keys on" | | 5 | "Her hands were steady." | | 6 | "Her voice was not." | | 7 | "She cut him off, because" | | 8 | "She'd told herself it meant" | | 9 | "She'd been spectacularly wrong about" | | 10 | "He tilted his head" | | 11 | "She moved to the kitchenette," | | 12 | "She pulled a glass from" | | 13 | "He was the one people" | | 14 | "She studied him properly for" | | 15 | "His fingers, wrapped around the" | | 16 | "She set down the glass" | | 17 | "He rose from the chair," | | 18 | "She thought of Brendan Carter," | | 19 | "She thought of Jennifer, who" |
| | ratio | 0.404 | |
| 27.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 77 | | totalSentences | 89 | | matches | | 0 | "The third deadbolt stuck, as" | | 1 | "Ptolemy wound between her ankles," | | 2 | "The cat had been fed" | | 3 | "The lock gave." | | 4 | "She pushed the door open," | | 5 | "Ptolemy shot through the gap" | | 6 | "Rory stepped inside and froze." | | 7 | "Lucien Moreau sat in the" | | 8 | "He'd helped himself to Eva's" | | 9 | "The amber liquid caught the" | | 10 | "He swirled the whisky in" | | 11 | "He took a measured sip" | | 12 | "She dropped her keys on" | | 13 | "Her hands were steady." | | 14 | "Her voice was not." | | 15 | "She cut him off, because" | | 16 | "A rainy night in Whitechapel," | | 17 | "She'd told herself it meant" | | 18 | "She'd been spectacularly wrong about" | | 19 | "Lucien set down his glass." |
| | ratio | 0.865 | |
| 56.18% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 89 | | matches | | | ratio | 0.011 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 5 | | matches | | 0 | "A rainy night in Whitechapel, her hands guiding his through the mechanics of picking a lock, his breath warm against the back of her neck when he leaned too clo…" | | 1 | "Lucien Moreau was the fixer, the broker, the man who knew everyone's secrets and traded them like currency." | | 2 | "She closed her eyes, but that was worse—darkness brought other images, his hands on a lockpick, his breath on her neck, the two of them in this very flat with t…" | | 3 | "Lucien was a half-demon fixer with a cane that concealed a blade and a dead mother in Marseille and grief carved into his face, and he was asking for help becau…" | | 4 | "For a moment, they occupied the same narrow space by the door, and she could smell sandalwood and smoke and something else beneath it, something that wasn't qui…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "Rory muttered (mutter)" |
| | dialogueSentences | 56 | | tagDensity | 0.036 | | leniency | 0.071 | | rawRatio | 0.5 | | effectiveRatio | 0.036 | |