| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 97.19% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1779 | | totalAiIsmAdverbs | 1 | | 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) | |
| 66.27% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1779 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "weight" | | 1 | "etched" | | 2 | "shattered" | | 3 | "pulse" | | 4 | "silence" | | 5 | "calculating" | | 6 | "grave" | | 7 | "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 | 61 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 61 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 100 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 62 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1772 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 85.57% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 48 | | wordCount | 1164 | | uniqueNames | 17 | | maxNameDensity | 1.29 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 13 | | Moreau | 1 | | East | 1 | | End | 1 | | London | 1 | | Eva | 4 | | Aramaic | 1 | | Lucien | 15 | | Italian | 1 | | Ptolemy | 3 | | Thames | 1 | | Chesterfield | 1 | | Silas | 1 | | Marseilles | 1 | | Latin | 1 | | Brick | 1 | | Lane | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Aramaic" | | 4 | "Lucien" | | 5 | "Ptolemy" | | 6 | "Silas" |
| | places | | 0 | "East" | | 1 | "End" | | 2 | "London" | | 3 | "Thames" | | 4 | "Brick" | | 5 | "Lane" |
| | globalScore | 0.856 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1772 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 100 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 72 | | mean | 24.61 | | std | 17.54 | | cv | 0.712 | | sampleLengths | | 0 | 17 | | 1 | 48 | | 2 | 15 | | 3 | 23 | | 4 | 9 | | 5 | 22 | | 6 | 18 | | 7 | 32 | | 8 | 31 | | 9 | 42 | | 10 | 6 | | 11 | 8 | | 12 | 11 | | 13 | 17 | | 14 | 37 | | 15 | 20 | | 16 | 50 | | 17 | 41 | | 18 | 19 | | 19 | 1 | | 20 | 68 | | 21 | 6 | | 22 | 2 | | 23 | 6 | | 24 | 16 | | 25 | 41 | | 26 | 7 | | 27 | 49 | | 28 | 16 | | 29 | 95 | | 30 | 17 | | 31 | 11 | | 32 | 14 | | 33 | 23 | | 34 | 26 | | 35 | 42 | | 36 | 33 | | 37 | 9 | | 38 | 28 | | 39 | 9 | | 40 | 14 | | 41 | 12 | | 42 | 6 | | 43 | 31 | | 44 | 62 | | 45 | 30 | | 46 | 11 | | 47 | 14 | | 48 | 26 | | 49 | 16 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 61 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 181 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 2 | | flaggedSentences | 7 | | totalSentences | 100 | | ratio | 0.07 | | matches | | 0 | "Every horizontal inch—the saggy sofa, the windowsill rattling with autumn wind, the crooked dining table—disappeared beneath mountains of yellowed parchment, uncapped inkwells, and Eva's frantic research notes." | | 1 | "Rotherhithe meant fog off the Thames, shattered glass, and the cramped back room of Lucien's safe house afterward—where shaking hands had turned into his mouth against her throat, his fingers tangled in her hair, her pulse hammering against his palm until dawn crept over the river." | | 2 | "\"I fled Cardiff to get away from a man who decided what I was allowed to think, feel, and handle on my own. Evan used his fists and his temper; you used a disappearing act and an envelope of bank notes. Do not stand on my friend's rug acting like my saviour when you treated me like an inconvenience you paid off.\"" | | 3 | "Demon heritage knitted shallow cuts fast; if he was bleeding through tailored cotton twenty minutes after taking the hit, the blade or claw had carried cold iron or grave-salt." | | 4 | "Lucien studied her face—the set of her mouth, the pulse ticking at the hollow of her collarbone—before backing two steps and perching on the leather sofa arm, nudging a stack of Latin lexicons aside with his thigh." | | 5 | "Her fingertips brushed warm skin beneath the wet linen, and Lucien sucked in a sharp breath through his teeth—nowhere near the cut." | | 6 | "His right hand rose, clean fingers wrapping around her left wrist—not forcing her away, thumb settling straight over the pale crescent of her childhood scar, his skin burning hot against her pulse." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1190 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.023529411764705882 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0008403361344537816 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 100 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 100 | | mean | 17.72 | | std | 10.79 | | cv | 0.609 | | sampleLengths | | 0 | 17 | | 1 | 9 | | 2 | 14 | | 3 | 25 | | 4 | 15 | | 5 | 23 | | 6 | 9 | | 7 | 22 | | 8 | 18 | | 9 | 32 | | 10 | 31 | | 11 | 29 | | 12 | 13 | | 13 | 6 | | 14 | 8 | | 15 | 11 | | 16 | 17 | | 17 | 37 | | 18 | 20 | | 19 | 12 | | 20 | 18 | | 21 | 20 | | 22 | 19 | | 23 | 22 | | 24 | 19 | | 25 | 1 | | 26 | 11 | | 27 | 20 | | 28 | 10 | | 29 | 27 | | 30 | 6 | | 31 | 2 | | 32 | 6 | | 33 | 16 | | 34 | 14 | | 35 | 27 | | 36 | 7 | | 37 | 5 | | 38 | 22 | | 39 | 22 | | 40 | 16 | | 41 | 7 | | 42 | 46 | | 43 | 33 | | 44 | 2 | | 45 | 3 | | 46 | 4 | | 47 | 12 | | 48 | 5 | | 49 | 11 |
| |
| 89.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.55 | | totalSentences | 100 | | uniqueOpeners | 55 | |
| 55.56% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 60 | | matches | | 0 | "Slowly, she lifted her eyes" |
| | ratio | 0.017 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 11 | | totalSentences | 60 | | matches | | 0 | "She stared at him for" | | 1 | "He pivoted, leaned his cane" | | 2 | "He slid it off his" | | 3 | "It meant waking up on" | | 4 | "Her knuckles popped against the" | | 5 | "He stepped around a precarious" | | 6 | "She pushed off the counter," | | 7 | "His voice dropped, stripping away" | | 8 | "She stepped between Lucien's knees" | | 9 | "Her fingertips brushed warm skin" | | 10 | "His right hand rose, clean" |
| | ratio | 0.183 | |
| 76.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 46 | | totalSentences | 60 | | matches | | 0 | "The third brass deadbolt slid" | | 1 | "Lucien Moreau stood beneath the" | | 2 | "Rain darkened the shoulders of" | | 3 | "Aurora planted her palm flat" | | 4 | "The tip of his ivory-handled" | | 5 | "Aurora leaned her weight into" | | 6 | "Lucien shifted his stance, closing" | | 7 | "Aurora froze, her bright blue" | | 8 | "Lucien's fingers tightened over the" | | 9 | "She stared at him for" | | 10 | "Lucien crossed into the cramped" | | 11 | "He pivoted, leaned his cane" | | 12 | "Ptolemy dropped from the top" | | 13 | "The striped tabby trotted straight" | | 14 | "Aurora folded her arms over" | | 15 | "Lucien crouched, scratching behind Ptolemy's" | | 16 | "The movement pulled his slit" | | 17 | "Every horizontal inch—the saggy sofa," | | 18 | "Aurora backed toward the narrow" | | 19 | "Lucien unbuttoned his ruined coat." |
| | ratio | 0.767 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 60 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 51 | | technicalSentenceCount | 3 | | matches | | 0 | "One amber eye and one pitch-black eye fixed on her face, unblinking beneath slicked-back platinum hair that held its shape despite the East End downpour." | | 1 | "Rotherhithe meant fog off the Thames, shattered glass, and the cramped back room of Lucien's safe house afterward—where shaking hands had turned into his mouth …" | | 2 | "His right hand rose, clean fingers wrapping around her left wrist—not forcing her away, thumb settling straight over the pale crescent of her childhood scar, hi…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |