| 51.85% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "he said slowly [slowly]" | | 2 | "she said softly [softly]" | | 3 | "he said quietly [quietly]" |
| | dialogueSentences | 54 | | tagDensity | 0.407 | | leniency | 0.815 | | rawRatio | 0.182 | | effectiveRatio | 0.148 | |
| 86.68% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1877 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "lightly" | | 1 | "slowly" | | 2 | "softly" | | 3 | "slightly" |
| |
| 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) | |
| 38.73% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1877 | | totalAiIsms | 23 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | | | 19 | |
| | highlights | | 0 | "measured" | | 1 | "silk" | | 2 | "throb" | | 3 | "pulse" | | 4 | "stomach" | | 5 | "treacherous" | | 6 | "traced" | | 7 | "tension" | | 8 | "weight" | | 9 | "whisper" | | 10 | "amidst" | | 11 | "unreadable" | | 12 | "silence" | | 13 | "navigate" | | 14 | "perfect" | | 15 | "porcelain" | | 16 | "sanctuary" | | 17 | "tinged" | | 18 | "velvet" | | 19 | "marble" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 113 | | matches | (empty) | |
| 92.29% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 113 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 143 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1866 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 36 | | wordCount | 1287 | | uniqueNames | 19 | | maxNameDensity | 0.54 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 7 | | Golden | 3 | | Empress | 3 | | Moreau | 2 | | October | 1 | | Cool-headed | 1 | | Evan | 2 | | Cardiff | 3 | | Hackney | 1 | | Lucien | 4 | | Avaros | 1 | | Wapping | 1 | | Marseilles-inflected | 1 | | English | 1 | | London | 1 | | Eva | 1 | | Carter | 1 | | Marseille | 1 | | Saturday | 1 |
| | persons | | 0 | "Rory" | | 1 | "Empress" | | 2 | "Moreau" | | 3 | "Evan" | | 4 | "Lucien" | | 5 | "Eva" | | 6 | "Carter" |
| | places | | 0 | "Golden" | | 1 | "Cool-headed" | | 2 | "Cardiff" | | 3 | "Wapping" | | 4 | "London" | | 5 | "Marseille" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like a funeral procession wrapped" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.536 | | wordCount | 1866 | | matches | | 0 | "not fixed,” she warned, pulling back but not letting go of his hand" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 143 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 56 | | mean | 33.32 | | std | 28.78 | | cv | 0.864 | | sampleLengths | | 0 | 97 | | 1 | 65 | | 2 | 3 | | 3 | 77 | | 4 | 11 | | 5 | 13 | | 6 | 44 | | 7 | 34 | | 8 | 8 | | 9 | 7 | | 10 | 71 | | 11 | 4 | | 12 | 78 | | 13 | 39 | | 14 | 30 | | 15 | 2 | | 16 | 2 | | 17 | 65 | | 18 | 7 | | 19 | 17 | | 20 | 1 | | 21 | 59 | | 22 | 9 | | 23 | 47 | | 24 | 36 | | 25 | 7 | | 26 | 66 | | 27 | 11 | | 28 | 39 | | 29 | 22 | | 30 | 34 | | 31 | 17 | | 32 | 54 | | 33 | 72 | | 34 | 72 | | 35 | 50 | | 36 | 22 | | 37 | 25 | | 38 | 3 | | 39 | 9 | | 40 | 62 | | 41 | 26 | | 42 | 2 | | 43 | 12 | | 44 | 105 | | 45 | 24 | | 46 | 4 | | 47 | 59 | | 48 | 21 | | 49 | 13 |
| |
| 99.05% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 113 | | matches | | 0 | "was slicked" | | 1 | "been cramped" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 231 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 1 | | flaggedSentences | 10 | | totalSentences | 143 | | ratio | 0.07 | | matches | | 0 | "It was too precise, too patient—three measured raps that cut through the bass thrum of Silas’ bar below like a blade through silk." | | 1 | "One eye caught the light—amber, warm, treacherous." | | 2 | "She was good at cool-headed; she’d built her life on it since fleeing Evan, since escaping Cardiff, since learning that emotion was a liability men exploited." | | 3 | "She wanted to believe it was another one of his games, a manipulation to pry open her life because that’s what fixers did—they collected vulnerabilities like currency." | | 4 | "Her studio above the bar had always been cramped—a sagging sofa, a hot plate that smelled of old oil, a fire escape view of Hackney—but Lucien carried the gravity of another realm." | | 5 | "“You look tired,” he said, his gaze sweeping the room in a heartbeat—the Golden Empress jacket slung over a chair, the law books stacked beneath a mug of cold tea, the drying rack hung with her black work trousers." | | 6 | "The alias she’d stitched together from necessity and spite, the ghost she’d become to navigate the supernatural underworld without dragging Rory—the delivery girl, the runaway, the prey—along with her." | | 7 | "His bare fingers—when had he peeled the glove off?—brushed the crescent scar on her left wrist." | | 8 | "“I ran,” he whispered, “because you are not a transaction. Because you are the only person who has ever looked at these eyes” —he gestured to his face, to the heterochromatic division that marked him exile and prince in equal measure— “and seen a man instead of a monster. And that terrifies me more than Avaros. More than death. The idea that I could fail you, that my world could swallow you—”" | | 9 | "She looked at their joined hands—her scarred wrist, his elegant fingers—and felt the first, uncertain thaw of something she’d thought frozen solid." |
| |
| 94.90% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 480 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.04583333333333333 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.004166666666666667 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 143 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 143 | | mean | 13.05 | | std | 11.79 | | cv | 0.903 | | sampleLengths | | 0 | 4 | | 1 | 23 | | 2 | 28 | | 3 | 22 | | 4 | 8 | | 5 | 6 | | 6 | 3 | | 7 | 3 | | 8 | 5 | | 9 | 40 | | 10 | 2 | | 11 | 2 | | 12 | 16 | | 13 | 3 | | 14 | 20 | | 15 | 13 | | 16 | 7 | | 17 | 11 | | 18 | 17 | | 19 | 9 | | 20 | 9 | | 21 | 2 | | 22 | 4 | | 23 | 6 | | 24 | 3 | | 25 | 6 | | 26 | 1 | | 27 | 26 | | 28 | 11 | | 29 | 4 | | 30 | 10 | | 31 | 20 | | 32 | 6 | | 33 | 2 | | 34 | 7 | | 35 | 6 | | 36 | 27 | | 37 | 19 | | 38 | 15 | | 39 | 4 | | 40 | 4 | | 41 | 11 | | 42 | 32 | | 43 | 21 | | 44 | 10 | | 45 | 4 | | 46 | 39 | | 47 | 7 | | 48 | 16 | | 49 | 7 |
| |
| 41.72% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.3006993006993007 | | totalSentences | 143 | | uniqueOpeners | 43 | |
| 98.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 102 | | matches | | 0 | "Then he’d kissed her until" | | 1 | "Even the bar below seemed" | | 2 | "Of course he knew." |
| | ratio | 0.029 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 60 | | totalSentences | 102 | | matches | | 0 | "It was too precise, too" | | 1 | "She’d been picking at dinner" | | 2 | "She set the chopsticks down." | | 3 | "Her straight shoulder-length black hair" | | 4 | "She padded to the door" | | 5 | "Her stomach dropped." | | 6 | "His platinum hair was slicked" | | 7 | "He held his ivory-handled cane" | | 8 | "He looked like a funeral" | | 9 | "Her full name" | | 10 | "She kept her voice flat" | | 11 | "She was good at cool-headed;" | | 12 | "He tilted his head." | | 13 | "Her fingers tightened on the" | | 14 | "She wanted to slam the" | | 15 | "She wanted to believe it" | | 16 | "He stepped inside, and the" | | 17 | "Her studio above the bar" | | 18 | "He shut the door behind" | | 19 | "he said, his gaze sweeping" |
| | ratio | 0.588 | |
| 23.73% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 89 | | totalSentences | 102 | | matches | | 0 | "The knock didn’t belong." | | 1 | "It was too precise, too" | | 2 | "Rory froze with a chopstick" | | 3 | "She’d been picking at dinner" | | 4 | "The drunks stumbled against the" | | 5 | "Delivery drivers texted." | | 6 | "The landlord shouted." | | 7 | "She set the chopsticks down." | | 8 | "Her straight shoulder-length black hair" | | 9 | "She padded to the door" | | 10 | "Her stomach dropped." | | 11 | "Lucien Moreau stood in the" | | 12 | "His platinum hair was slicked" | | 13 | "The other was black, an" | | 14 | "He held his ivory-handled cane" | | 15 | "He looked like a funeral" | | 16 | "Rory opened the door but" | | 17 | "Her full name" | | 18 | "A stone dropped in still" | | 19 | "She kept her voice flat" |
| | ratio | 0.873 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 102 | | matches | (empty) | | ratio | 0 | |
| 30.08% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 6 | | matches | | 0 | "Her studio above the bar had always been cramped—a sagging sofa, a hot plate that smelled of old oil, a fire escape view of Hackney—but Lucien carried the gravi…" | | 1 | "The cane tapped once against the floorboard, a sound that made her think of the thin blade hidden inside it, the steel he’d drawn once in a warehouse in Wapping…" | | 2 | "The black one remained depthless, but his jaw tightened, muscle jumping beneath skin that was too pale, too perfect, like porcelain stretched over something anc…" | | 3 | "A lifetime before London, before Eva’s phone call, before demons and aliases and a man who looked at her like she was both sanctuary and storm." | | 4 | "The man who spoke four languages, who brokered secrets between vampire houses and fae courts, who carried a blade in his cane and a kingdom’s worth of sin in hi…" | | 5 | "She looked at the damp wool of his suit, the cane with its lethal secret, the boy from Marseille who’d built himself into a fortress." |
| |
| 79.55% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 2 | | matches | | 0 | "he said, each word measured," | | 1 | "she said, her voice steadier than she felt" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 2 | | fancyTags | | 0 | "he whispered (whisper)" | | 1 | "she warned (warn)" |
| | dialogueSentences | 54 | | tagDensity | 0.241 | | leniency | 0.481 | | rawRatio | 0.154 | | effectiveRatio | 0.074 | |