| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 1 | | adverbTags | | 0 | "Rory said dryly [dryly]" |
| | dialogueSentences | 54 | | tagDensity | 0.352 | | leniency | 0.704 | | rawRatio | 0.053 | | effectiveRatio | 0.037 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1259 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 60.29% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1259 | | totalAiIsms | 10 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | word | "the last thing" | | count | 1 |
| | 6 | | | 7 | |
| | highlights | | 0 | "flicked" | | 1 | "stomach" | | 2 | "could feel" | | 3 | "weight" | | 4 | "pulse" | | 5 | "the last thing" | | 6 | "flickered" | | 7 | "traced" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 89 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 89 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 124 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 11 | | markdownWords | 13 | | totalWords | 1250 | | ratio | 0.01 | | matches | | 0 | "The Black Stag" | | 1 | "chérie" | | 2 | "did" | | 3 | "got" | | 4 | "favor" | | 5 | "him" | | 6 | "know" | | 7 | "us" | | 8 | "should" | | 9 | "everything" | | 10 | "chérie" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 50 | | wordCount | 963 | | uniqueNames | 12 | | maxNameDensity | 1.97 | | worstName | "Lucien" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 16 | | Lucien | 19 | | Moreau | 1 | | Black | 1 | | French | 1 | | Marseille | 1 | | Cardiff | 1 | | University | 1 | | Didn | 1 | | Ptolemy | 4 | | Golden | 2 | | Empress | 2 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Black" | | 4 | "Ptolemy" |
| | places | | 0 | "Marseille" | | 1 | "Cardiff" | | 2 | "Golden" |
| | globalScore | 0.513 | | windowScore | 0.5 | |
| 53.85% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 2 | | matches | | 0 | "something like smoke, curled into the flat b" | | 1 | "not quite human" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.8 | | wordCount | 1250 | | matches | | 0 | "not hard, but firm enough" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 124 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 23.58 | | std | 19.64 | | cv | 0.833 | | sampleLengths | | 0 | 62 | | 1 | 48 | | 2 | 79 | | 3 | 65 | | 4 | 29 | | 5 | 31 | | 6 | 19 | | 7 | 8 | | 8 | 49 | | 9 | 8 | | 10 | 16 | | 11 | 49 | | 12 | 44 | | 13 | 8 | | 14 | 3 | | 15 | 12 | | 16 | 39 | | 17 | 39 | | 18 | 17 | | 19 | 9 | | 20 | 1 | | 21 | 2 | | 22 | 2 | | 23 | 6 | | 24 | 2 | | 25 | 27 | | 26 | 19 | | 27 | 12 | | 28 | 3 | | 29 | 30 | | 30 | 8 | | 31 | 1 | | 32 | 5 | | 33 | 3 | | 34 | 19 | | 35 | 18 | | 36 | 37 | | 37 | 45 | | 38 | 23 | | 39 | 4 | | 40 | 38 | | 41 | 9 | | 42 | 42 | | 43 | 8 | | 44 | 34 | | 45 | 20 | | 46 | 5 | | 47 | 68 | | 48 | 17 | | 49 | 24 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 89 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 179 | | matches | | 0 | "was fighting" | | 1 | "were nearly touching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 124 | | ratio | 0.073 | | matches | | 0 | "The door swung open before Rory could turn the last deadbolt, and there he stood—Lucien Moreau, leaning against the frame like he owned the place, one hand tucked into the pocket of his charcoal suit, the other resting on the ivory handle of his cane." | | 1 | "His heterochromatic eyes—one amber, one black—raked over her, slow and deliberate, from the messy black hair tumbling over her shoulders to the oversized Cardiff University sweatshirt she’d stolen from her ex’s closet years ago and never returned." | | 2 | "The flat was a mess—scrolls unrolled across the coffee table, Ptolemy the tabby glaring at Lucien from his perch on the back of the sofa, his tail twitching like a metronome counting down to violence." | | 3 | "He smelled the same—expensive cologne, leather, and that underlying scent of something other, something not quite human." | | 4 | "More than enough to cover rent, to get her out of this cramped flat, to—" | | 5 | "Just for a second, but she saw it—the way his eyes flickered, the way his mouth pressed into a thin line." | | 6 | "Then Lucien’s hand shot out, gripping her wrist—not hard, but firm enough that she couldn’t pull away." | | 7 | "Instead, he stepped even closer, until their chests were nearly touching, until she could feel the steady beat of his heart—or whatever passed for a heart in a half-demon." | | 8 | "Rory gasped against his lips, her hands flying to his shoulders—whether to push him away or pull him closer, she wasn’t sure." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 977 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.032753326509723645 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0040941658137154556 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 124 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 124 | | mean | 10.08 | | std | 8.3 | | cv | 0.823 | | sampleLengths | | 0 | 45 | | 1 | 17 | | 2 | 3 | | 3 | 7 | | 4 | 30 | | 5 | 8 | | 6 | 21 | | 7 | 37 | | 8 | 18 | | 9 | 3 | | 10 | 9 | | 11 | 17 | | 12 | 4 | | 13 | 35 | | 14 | 3 | | 15 | 18 | | 16 | 8 | | 17 | 16 | | 18 | 15 | | 19 | 3 | | 20 | 16 | | 21 | 3 | | 22 | 5 | | 23 | 9 | | 24 | 18 | | 25 | 17 | | 26 | 5 | | 27 | 8 | | 28 | 6 | | 29 | 10 | | 30 | 18 | | 31 | 22 | | 32 | 4 | | 33 | 5 | | 34 | 20 | | 35 | 14 | | 36 | 10 | | 37 | 8 | | 38 | 3 | | 39 | 4 | | 40 | 8 | | 41 | 3 | | 42 | 17 | | 43 | 12 | | 44 | 7 | | 45 | 12 | | 46 | 27 | | 47 | 12 | | 48 | 5 | | 49 | 2 |
| |
| 61.02% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3951612903225806 | | totalSentences | 124 | | uniqueOpeners | 49 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 78 | | matches | | 0 | "Then Lucien pushed off the" | | 1 | "More than enough to cover" | | 2 | "Just for a second, but" | | 3 | "Then it was gone, replaced" | | 4 | "Then Lucien’s hand shot out," | | 5 | "Instead, he stepped even closer," |
| | ratio | 0.077 | |
| 76.41% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 78 | | matches | | 0 | "She hadn’t seen him in" | | 1 | "he said, his voice smooth" | | 2 | "His heterochromatic eyes—one amber, one" | | 3 | "His gaze lingered on the" | | 4 | "She didn’t step aside" | | 5 | "He lifted a bottle of" | | 6 | "She’d been living on instant" | | 7 | "He smelled the same—expensive cologne," | | 8 | "It made her skin prickle." | | 9 | "She crossed her arms." | | 10 | "He set the wine bottle" | | 11 | "Her voice was steadier than" | | 12 | "She could see the pulse" | | 13 | "She stared at him." | | 14 | "She wasn’t that desperate." | | 15 | "He said her name like" | | 16 | "His gaze dropped to her" | | 17 | "His thumb brushed over the" | | 18 | "she said, but her voice" | | 19 | "His free hand came up," |
| | ratio | 0.359 | |
| 68.97% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 78 | | matches | | 0 | "The door swung open before" | | 1 | "The scent of bergamot and" | | 2 | "Rory’s breath hitched." | | 3 | "She hadn’t seen him in" | | 4 | "The bruise had faded, but" | | 5 | "he said, his voice smooth" | | 6 | "His heterochromatic eyes—one amber, one" | | 7 | "His gaze lingered on the" | | 8 | "Rory’s fingers tightened around the" | | 9 | "She didn’t step aside" | | 10 | "The flat was a mess—scrolls" | | 11 | "Lucien smirked, unfazed." | | 12 | "He lifted a bottle of" | | 13 | "Rory said, but her traitorous" | | 14 | "She’d been living on instant" | | 15 | "Lucien’s smirk deepened." | | 16 | "Lucien moved past her, his" | | 17 | "He smelled the same—expensive cologne," | | 18 | "It made her skin prickle." | | 19 | "Ptolemy hissed as Lucien approached," |
| | ratio | 0.782 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 78 | | matches | (empty) | | ratio | 0 | |
| 96.77% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 2 | | matches | | 0 | "The flat was a mess—scrolls unrolled across the coffee table, Ptolemy the tabby glaring at Lucien from his perch on the back of the sofa, his tail twitching lik…" | | 1 | "Lucien groaned, his grip on her wrist tightening as he backed her up against the wall, his body pressing into hers." |
| |
| 19.74% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 4 | | matches | | 0 | "He lifted, the label written in looping script" | | 1 | "she said, but her voice lacked conviction" | | 2 | "she said, but her voice was breathless" | | 3 | "His thumb traced, his heterochromatic eyes burning into hers" |
| |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 3 | | fancyTags | | 0 | "Lucien murmured (murmur)" | | 1 | "she snapped (snap)" | | 2 | "he murmured (murmur)" |
| | dialogueSentences | 54 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0.333 | | effectiveRatio | 0.111 | |