| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 1 | | adverbTags | | 0 | "Lucien corrected softly [softly]" |
| | dialogueSentences | 25 | | tagDensity | 0.52 | | leniency | 1 | | rawRatio | 0.077 | | effectiveRatio | 0.077 | |
| 93.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1535 | | 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) | |
| 12.05% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1535 | | totalAiIsms | 27 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | | | 20 | | | 21 | | | 22 | | | 23 | |
| | highlights | | 0 | "vibrated" | | 1 | "glint" | | 2 | "flicked" | | 3 | "tension" | | 4 | "lilt" | | 5 | "weight" | | 6 | "raced" | | 7 | "variables" | | 8 | "restrained" | | 9 | "throbbed" | | 10 | "echo" | | 11 | "charged" | | 12 | "could feel" | | 13 | "warmth" | | 14 | "chill" | | 15 | "perfect" | | 16 | "whisper" | | 17 | "intensity" | | 18 | "electric" | | 19 | "searing" | | 20 | "silence" | | 21 | "pulsed" | | 22 | "facade" | | 23 | "fleeting" |
| |
| 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 | 83 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 83 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 95 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 60 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 5 | | totalWords | 1532 | | ratio | 0.003 | | matches | | 0 | "Go. Don't look back." | | 1 | "mrrp" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 85.29% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1159 | | uniqueNames | 14 | | maxNameDensity | 1.29 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Eva | 1 | | Brick | 1 | | Lane | 1 | | Moreau | 1 | | Monaco | 1 | | East | 1 | | London | 2 | | Marseille | 2 | | Cardiff | 1 | | Silas | 1 | | Lucien | 12 | | Shoreditch | 1 | | Rory | 15 | | Tube | 1 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Silas" | | 3 | "Lucien" | | 4 | "Rory" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Monaco" | | 3 | "East" | | 4 | "London" | | 5 | "Marseille" | | 6 | "Cardiff" | | 7 | "Shoreditch" |
| | globalScore | 0.853 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 1 | | matches | | 0 | "quite hide, and the easy arrogance that usually draped his shoulders was gone" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1532 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 95 | | matches | (empty) | |
| 92.02% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 56.74 | | std | 26.79 | | cv | 0.472 | | sampleLengths | | 0 | 48 | | 1 | 45 | | 2 | 98 | | 3 | 84 | | 4 | 33 | | 5 | 82 | | 6 | 42 | | 7 | 72 | | 8 | 39 | | 9 | 88 | | 10 | 78 | | 11 | 45 | | 12 | 95 | | 13 | 25 | | 14 | 64 | | 15 | 11 | | 16 | 74 | | 17 | 100 | | 18 | 22 | | 19 | 84 | | 20 | 76 | | 21 | 39 | | 22 | 57 | | 23 | 16 | | 24 | 47 | | 25 | 12 | | 26 | 56 |
| |
| 96.81% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 83 | | matches | | 0 | "was slicked" | | 1 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 187 | | matches | | |
| 52.63% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 95 | | ratio | 0.032 | | matches | | 0 | "It carried notes of sandalwood, ozone, and something sharper—iron and ash." | | 1 | "The impeccable armor of the fixer was buckling, revealing the man beneath—the half-breed bastard of Marseille who carried the world on shoulders that looked too slender to bear it." | | 2 | "The history between them unspooled in the silence—the attraction that had sparked in back alleys and safe houses, the hurt of his abandonment, the things left unsaid in the moments before he'd shoved her onto the Tube." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1167 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.028277634961439587 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.007712082262210797 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 95 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 95 | | mean | 16.13 | | std | 11.36 | | cv | 0.705 | | sampleLengths | | 0 | 18 | | 1 | 3 | | 2 | 27 | | 3 | 34 | | 4 | 11 | | 5 | 26 | | 6 | 26 | | 7 | 13 | | 8 | 22 | | 9 | 11 | | 10 | 6 | | 11 | 12 | | 12 | 25 | | 13 | 13 | | 14 | 28 | | 15 | 3 | | 16 | 30 | | 17 | 7 | | 18 | 5 | | 19 | 4 | | 20 | 25 | | 21 | 11 | | 22 | 30 | | 23 | 5 | | 24 | 29 | | 25 | 5 | | 26 | 3 | | 27 | 24 | | 28 | 2 | | 29 | 2 | | 30 | 23 | | 31 | 18 | | 32 | 3 | | 33 | 20 | | 34 | 10 | | 35 | 9 | | 36 | 4 | | 37 | 24 | | 38 | 20 | | 39 | 40 | | 40 | 8 | | 41 | 34 | | 42 | 36 | | 43 | 22 | | 44 | 6 | | 45 | 17 | | 46 | 12 | | 47 | 23 | | 48 | 17 | | 49 | 43 |
| |
| 40.35% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.30526315789473685 | | totalSentences | 95 | | uniqueOpeners | 29 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 79 | | matches | (empty) | | ratio | 0 | |
| 52.91% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 79 | | matches | | 0 | "She killed the momentum of" | | 1 | "It carried notes of sandalwood," | | 2 | "He wore a charcoal suit" | | 3 | "His platinum hair was slicked" | | 4 | "He looked exactly the same" | | 5 | "Her name in his voice" | | 6 | "Her voice was steady, cool." | | 7 | "She'd practiced this voice." | | 8 | "It was the one that" | | 9 | "She kept her hand tight" | | 10 | "He shifted his weight, and" | | 11 | "He was the man who" | | 12 | "He was the man who" | | 13 | "She rubbed the crescent-shaped scar" | | 14 | "She spat the words out," | | 15 | "It was there in the" | | 16 | "He raised a hand, the" | | 17 | "He hovered his hand near" | | 18 | "He looked exhausted." | | 19 | "He hadn't come to gloat." |
| | ratio | 0.418 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 79 | | matches | | 0 | "The third deadbolt slid back" | | 1 | "Rory didn't hesitate." | | 2 | "She killed the momentum of" | | 3 | "The hallway smelled of stale" | | 4 | "It carried notes of sandalwood," | | 5 | "Lucien Moreau stood in the" | | 6 | "He wore a charcoal suit" | | 7 | "His platinum hair was slicked" | | 8 | "Rory's eyes flicked to the" | | 9 | "Lucien's heterochromatic gaze locked onto" | | 10 | "The other was a void" | | 11 | "He looked exactly the same" | | 12 | "The sharp angles of his" | | 13 | "Her name in his voice" | | 14 | "Her voice was steady, cool." | | 15 | "She'd practiced this voice." | | 16 | "It was the one that" | | 17 | "She kept her hand tight" | | 18 | "Lucien's head tilted a fraction." | | 19 | "He shifted his weight, and" |
| | ratio | 0.924 | |
| 63.29% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 79 | | matches | | 0 | "To the night Lucien had" |
| | ratio | 0.013 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 10 | | matches | | 0 | "The other was a void of black, pupil and iris merging into a depthless shadow that betrayed the demon blood running cold in his veins." | | 1 | "Her name in his voice was a texture, low and rough at the edges, the vowels softened by that Marseille lilt that had haunted her sleep since she left Cardiff." | | 2 | "He was the man who had told her, with blood slicking his fingers and his breath ragged, *Go." | | 3 | "To the night Lucien had dragged her out of a warehouse in Shoreditch, his hand gripping her wrist tight enough to bruise, his black eye burning with a fury that…" | | 4 | "Lucien's gaze dropped to her wrist, tracking the motion of her thumb over the scar, before dragging back up to her face." | | 5 | "Rory's mind scrabbled for logic, for a counter-argument, but the cool calculation that was her shield cracked under the raw intensity of his stare." | | 6 | "The impeccable armor of the fixer was buckling, revealing the man beneath—the half-breed bastard of Marseille who carried the world on shoulders that looked too…" | | 7 | "She saw the man who had chosen her safety over his own heart, again and again, until there was nothing left but this inevitable collision." | | 8 | "The history between them unspooled in the silence—the attraction that had sparked in back alleys and safe houses, the hurt of his abandonment, the things left u…" | | 9 | "He was the kind of trouble that could burn her entire world to ash." |
| |
| 9.62% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 3 | | matches | | 0 | "Rory said, her blue eyes hardening" | | 1 | "Rory said, her voice dropping" | | 2 | "Rory whispered, the threat feeling flimsy even as she spoke it" |
| |
| 30.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 3 | | fancyTags | | 0 | "She spat (spit)" | | 1 | "Lucien corrected softly (correct)" | | 2 | "Rory whispered (whisper)" |
| | dialogueSentences | 25 | | tagDensity | 0.36 | | leniency | 0.72 | | rawRatio | 0.333 | | effectiveRatio | 0.24 | |