| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 2 | | adverbTags | | 0 | "His gaze dropped just [just]" | | 1 | "She gestured sharply [sharply]" |
| | dialogueSentences | 54 | | tagDensity | 0.389 | | leniency | 0.778 | | rawRatio | 0.095 | | effectiveRatio | 0.074 | |
| 67.09% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1671 | | totalAiIsmAdverbs | 11 | | found | | | highlights | | 0 | "lightly" | | 1 | "carefully" | | 2 | "suddenly" | | 3 | "quickly" | | 4 | "slowly" | | 5 | "very" | | 6 | "sharply" | | 7 | "completely" |
| |
| 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) | |
| 85.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1671 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "vibrated" | | 1 | "flicker" | | 2 | "perfect" | | 3 | "weight" | | 4 | "stomach" |
| |
| 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 | 114 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 114 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 147 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1681 | | 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 | 58 | | wordCount | 1264 | | uniqueNames | 28 | | maxNameDensity | 0.79 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 10 | | Moreau | 2 | | Berlin | 1 | | Prague | 1 | | Brick | 1 | | Lane | 1 | | East | 1 | | London | 1 | | November | 1 | | French | 2 | | Marseille | 1 | | English | 2 | | Lucien | 9 | | Golden | 1 | | Empress | 1 | | Yu-Fei | 2 | | Eva | 4 | | Cardiff | 2 | | Ptolemy | 4 | | Crooked | 1 | | Crown | 1 | | Avaros | 2 | | Luc | 1 | | Evan | 1 | | Jennifer | 1 | | Brendan | 1 | | Pre-Law | 1 | | Practical | 2 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Yu-Fei" | | 4 | "Eva" | | 5 | "Ptolemy" | | 6 | "Luc" | | 7 | "Evan" | | 8 | "Jennifer" | | 9 | "Brendan" | | 10 | "Practical" |
| | places | | 0 | "Berlin" | | 1 | "Prague" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "East" | | 5 | "London" | | 6 | "November" | | 7 | "French" | | 8 | "Marseille" | | 9 | "Golden" | | 10 | "Cardiff" | | 11 | "Crooked" | | 12 | "Avaros" |
| | globalScore | 1 | | windowScore | 1 | |
| 57.41% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 81 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like old paper and cumin from the" | | 1 | "as if seconding the absurdity" | | 2 | "smelled like rain and something smoky and" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.595 | | wordCount | 1681 | | matches | | 0 | "not in slumped shoulders but in a thinning around the edges, like a suit" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 147 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 69 | | mean | 24.36 | | std | 24.04 | | cv | 0.987 | | sampleLengths | | 0 | 18 | | 1 | 65 | | 2 | 12 | | 3 | 20 | | 4 | 6 | | 5 | 81 | | 6 | 8 | | 7 | 23 | | 8 | 1 | | 9 | 17 | | 10 | 25 | | 11 | 84 | | 12 | 9 | | 13 | 4 | | 14 | 19 | | 15 | 10 | | 16 | 14 | | 17 | 86 | | 18 | 25 | | 19 | 3 | | 20 | 2 | | 21 | 14 | | 22 | 44 | | 23 | 22 | | 24 | 60 | | 25 | 6 | | 26 | 20 | | 27 | 63 | | 28 | 1 | | 29 | 1 | | 30 | 6 | | 31 | 46 | | 32 | 9 | | 33 | 14 | | 34 | 10 | | 35 | 58 | | 36 | 15 | | 37 | 4 | | 38 | 37 | | 39 | 35 | | 40 | 53 | | 41 | 12 | | 42 | 3 | | 43 | 2 | | 44 | 29 | | 45 | 3 | | 46 | 1 | | 47 | 1 | | 48 | 109 | | 49 | 13 |
| |
| 92.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 114 | | matches | | 0 | "was loafed" | | 1 | "was supposed" | | 2 | "was cramped" | | 3 | "been pressed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 213 | | matches | | 0 | "was running" | | 1 | "was waiting" | | 2 | "was still flinching" |
| |
| 26.24% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 147 | | ratio | 0.041 | | matches | | 0 | "A childhood thing, the edge of her father's desk in Cardiff, but Lucien looked at it like he always did — like it was a piece of information." | | 1 | "He had to angle his cane to avoid knocking over a stack of bound research notes — Eva's handwriting, frantic and looping, covering every margin." | | 2 | "Thirty-two and he carried it differently than she did at twenty-five — not in slumped shoulders but in a thinning around the edges, like a suit that had been pressed too many times." | | 3 | "Her cool head, the one she relied on for quick thinking when a delivery went sideways or when Yu-Fei sent her to a block that didn't like strangers — it short-circuited." | | 4 | "Then his hand came up — the one not holding the ghost of her wrist — and settled, warm and solid, on the back of her neck, his thumb stroking once, just once, along the line of her spine." | | 5 | "Lucien's mismatched gaze dropped to her mouth, then back up, and the restraint there — the careful, deliberate restraint — made her stomach flip the way it had the very first night." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 664 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 20 | | adverbRatio | 0.030120481927710843 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.007530120481927711 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 147 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 147 | | mean | 11.44 | | std | 9.93 | | cv | 0.868 | | sampleLengths | | 0 | 18 | | 1 | 32 | | 2 | 33 | | 3 | 5 | | 4 | 7 | | 5 | 20 | | 6 | 6 | | 7 | 10 | | 8 | 7 | | 9 | 2 | | 10 | 18 | | 11 | 6 | | 12 | 10 | | 13 | 17 | | 14 | 11 | | 15 | 8 | | 16 | 4 | | 17 | 19 | | 18 | 1 | | 19 | 8 | | 20 | 6 | | 21 | 3 | | 22 | 4 | | 23 | 6 | | 24 | 7 | | 25 | 8 | | 26 | 9 | | 27 | 42 | | 28 | 11 | | 29 | 3 | | 30 | 15 | | 31 | 4 | | 32 | 9 | | 33 | 4 | | 34 | 19 | | 35 | 7 | | 36 | 3 | | 37 | 5 | | 38 | 9 | | 39 | 26 | | 40 | 10 | | 41 | 28 | | 42 | 22 | | 43 | 10 | | 44 | 15 | | 45 | 3 | | 46 | 2 | | 47 | 8 | | 48 | 2 | | 49 | 4 |
| |
| 55.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.3945578231292517 | | totalSentences | 147 | | uniqueOpeners | 58 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 100 | | matches | | 0 | "Anywhere but the dim, peeling" | | 1 | "Of course it wasn't a" | | 2 | "Then his hand came up" |
| | ratio | 0.03 | |
| 44.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 44 | | totalSentences | 100 | | matches | | 0 | "She got the deadbolt to" | | 1 | "He was supposed to be" | | 2 | "He was too clean for" | | 3 | "His eyes found hers." | | 4 | "His accent caught the R," | | 5 | "It wasn't a question." | | 6 | "She should have known better" | | 7 | "He hadn't called." | | 8 | "He hadn't shown up at" | | 9 | "He had simply vanished." | | 10 | "she asked, and she hated" | | 11 | "He glanced past her, into" | | 12 | "His gaze dropped, just for" | | 13 | "He didn't move." | | 14 | "He was still out in" | | 15 | "He had to angle his" | | 16 | "He moved carefully, always carefully," | | 17 | "She touched it without thinking." | | 18 | "He set the cane against" | | 19 | "He never actually needed it" |
| | ratio | 0.44 | |
| 75.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 77 | | totalSentences | 100 | | matches | | 0 | "The third deadbolt stuck the" | | 1 | "Eva's flat smelled like old" | | 2 | "Ptolemy was loafed on top" | | 3 | "She got the deadbolt to" | | 4 | "Lucien Moreau stood in the" | | 5 | "He was supposed to be" | | 6 | "He was too clean for" | | 7 | "Charcoal suit, tailored to a" | | 8 | "Platinum blond hair slicked back" | | 9 | "That cane that wasn't a" | | 10 | "His eyes found hers." | | 11 | "His accent caught the R," | | 12 | "French, Marseille underneath the polished" | | 13 | "It wasn't a question." | | 14 | "Lucien always knew exactly where" | | 15 | "That's what made him good" | | 16 | "She should have known better" | | 17 | "He hadn't called." | | 18 | "He hadn't shown up at" | | 19 | "He had simply vanished." |
| | ratio | 0.77 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 100 | | matches | | 0 | "Now he was here." | | 1 | "To the small crescent-shaped scar" |
| | ratio | 0.02 | |
| 11.28% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 7 | | matches | | 0 | "Eva's flat smelled like old paper and cumin from the curry house below, a thick, warm blanket of a smell that had soaked into every book and scroll stacked on e…" | | 1 | "Ptolemy made a small, indignant mrrp from his book tower, as if seconding the absurdity." | | 2 | "Thirty-two and he carried it differently than she did at twenty-five — not in slumped shoulders but in a thinning around the edges, like a suit that had been pr…" | | 3 | "Her cool head, the one she relied on for quick thinking when a delivery went sideways or when Yu-Fei sent her to a block that didn't like strangers — it short-c…" | | 4 | "She put her forehead against his chest, against the fine wool of his suit that smelled like rain and something smoky and foreign that had to be Avaros, and she …" | | 5 | "Her shoulders, which had been up around her ears since the fire escape, dropped." | | 6 | "Then his hand came up — the one not holding the ghost of her wrist — and settled, warm and solid, on the back of her neck, his thumb stroking once, just once, a…" |
| |
| 77.38% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 2 | | matches | | 0 | "he asked, and his voice was lower now, not the broker, not the half-demon from Avaros who knew four languages and could get anything for a price" | | 1 | "She gestured sharply, her hand passing through a shaft of light" |
| |
| 57.41% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 5 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "Rory repeated (repeat)" | | 2 | "she whispered (whisper)" | | 3 | "he murmured (murmur)" | | 4 | "he agreed (agree)" |
| | dialogueSentences | 54 | | tagDensity | 0.259 | | leniency | 0.519 | | rawRatio | 0.357 | | effectiveRatio | 0.185 | |