| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.245 | | leniency | 0.491 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.07% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1015 | | 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) | |
| 50.74% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1015 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "eyebrow" | | 1 | "flickered" | | 2 | "flicked" | | 3 | "pulse" | | 4 | "silence" | | 5 | "intensity" | | 6 | "wavered" | | 7 | "gleaming" | | 8 | "roaring" |
| |
| 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 | 60 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 60 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 99 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 38 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 5 | | totalWords | 1010 | | ratio | 0.005 | | matches | | 0 | "chérie" | | 1 | "ma belle" | | 2 | "were" | | 3 | "chérie" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 63.92% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 697 | | uniqueNames | 8 | | maxNameDensity | 1.72 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 12 | | Lucien | 7 | | Moreau | 1 | | Eva | 3 | | Oxfords | 1 | | Golden | 1 | | Empress | 1 | | Evan | 1 |
| | persons | | 0 | "Rory" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Evan" |
| | places | | | globalScore | 0.639 | | windowScore | 0.833 | |
| 94.44% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | glossingSentenceCount | 1 | | matches | | 0 | "something like smoke and old parchment, curl" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1010 | | matches | (empty) | |
| 65.66% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 99 | | matches | | 0 | "scrolls that cluttered" | | 1 | "on, that she care, that she’d" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 20.61 | | std | 14.69 | | cv | 0.712 | | sampleLengths | | 0 | 70 | | 1 | 15 | | 2 | 32 | | 3 | 8 | | 4 | 29 | | 5 | 6 | | 6 | 13 | | 7 | 27 | | 8 | 49 | | 9 | 15 | | 10 | 18 | | 11 | 5 | | 12 | 5 | | 13 | 3 | | 14 | 14 | | 15 | 3 | | 16 | 40 | | 17 | 2 | | 18 | 20 | | 19 | 19 | | 20 | 28 | | 21 | 6 | | 22 | 32 | | 23 | 31 | | 24 | 13 | | 25 | 14 | | 26 | 57 | | 27 | 28 | | 28 | 24 | | 29 | 21 | | 30 | 6 | | 31 | 6 | | 32 | 37 | | 33 | 2 | | 34 | 24 | | 35 | 26 | | 36 | 22 | | 37 | 27 | | 38 | 4 | | 39 | 25 | | 40 | 17 | | 41 | 28 | | 42 | 42 | | 43 | 15 | | 44 | 10 | | 45 | 29 | | 46 | 1 | | 47 | 12 | | 48 | 30 |
| |
| 99.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 60 | | matches | | |
| 43.75% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 128 | | matches | | 0 | "was watching" | | 1 | "was looking" | | 2 | "was already moving" |
| |
| 27.42% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 99 | | ratio | 0.04 | | 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 platinum eyebrow arched in that infuriating way of his." | | 1 | "Lucien’s heterochromatic eyes—one amber, one black—flickered over her, slow and deliberate, from the messy bun holding her black hair in place to the flour dusting her jeans." | | 2 | "“Then why?” His hand lifted, fingers brushing the crescent-shaped scar on her wrist—the one from the night Evan had grabbed her too hard, the night Lucien had found her bleeding in that alley behind Silas’ bar." | | 3 | "But the way he was looking at her—like she was the only thing in the room that mattered—made her heart stutter." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 536 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 13 | | adverbRatio | 0.024253731343283583 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.005597014925373134 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 99 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 99 | | mean | 10.2 | | std | 7.46 | | cv | 0.731 | | sampleLengths | | 0 | 35 | | 1 | 20 | | 2 | 15 | | 3 | 9 | | 4 | 6 | | 5 | 27 | | 6 | 5 | | 7 | 3 | | 8 | 5 | | 9 | 16 | | 10 | 13 | | 11 | 6 | | 12 | 6 | | 13 | 7 | | 14 | 11 | | 15 | 8 | | 16 | 8 | | 17 | 9 | | 18 | 20 | | 19 | 20 | | 20 | 12 | | 21 | 3 | | 22 | 13 | | 23 | 5 | | 24 | 4 | | 25 | 1 | | 26 | 5 | | 27 | 3 | | 28 | 14 | | 29 | 3 | | 30 | 24 | | 31 | 12 | | 32 | 4 | | 33 | 2 | | 34 | 12 | | 35 | 8 | | 36 | 12 | | 37 | 7 | | 38 | 13 | | 39 | 15 | | 40 | 3 | | 41 | 3 | | 42 | 25 | | 43 | 7 | | 44 | 6 | | 45 | 3 | | 46 | 15 | | 47 | 7 | | 48 | 6 | | 49 | 7 |
| |
| 55.22% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.37373737373737376 | | totalSentences | 99 | | uniqueOpeners | 37 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 59 | | matches | | 0 | "Finally, he exhaled, long and" | | 1 | "Instead, she turned away, busying" |
| | ratio | 0.034 | |
| 23.39% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 59 | | matches | | 0 | "She didn’t move." | | 1 | "He straightened, tapping his ivory-handled" | | 2 | "He stepped inside, his tailored" | | 3 | "She shut the door, engaging" | | 4 | "He turned, his cane resting" | | 5 | "His gaze flicked to the" | | 6 | "He picked up a scroll" | | 7 | "His fingers stilled when he" | | 8 | "He set the scroll down" | | 9 | "His voice dropped, low and" | | 10 | "Her breath hitched." | | 11 | "He stepped closer, close enough" | | 12 | "She could lie." | | 13 | "She could tell him she’d" | | 14 | "His hand lifted, fingers brushing" | | 15 | "His touch was gentle, but" | | 16 | "She laughed, sharp and bitter." | | 17 | "His expression shuttered." | | 18 | "His voice was quiet now," | | 19 | "She wanted to scream." |
| | ratio | 0.492 | |
| 10.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 59 | | matches | | 0 | "The door swung open before" | | 1 | "The scent of bergamot and" | | 2 | "Ptolemy, Eva’s tabby, darted between" | | 3 | "Rory’s fingers tightened around the" | | 4 | "Lucien’s heterochromatic eyes—one amber, one" | | 5 | "She didn’t move." | | 6 | "He straightened, tapping his ivory-handled" | | 7 | "The blade inside whispered against" | | 8 | "A muscle in his jaw" | | 9 | "The question hung between them," | | 10 | "Rory stepped back, letting the" | | 11 | "Lucien smirked, but there was" | | 12 | "He stepped inside, his tailored" | | 13 | "The flat smelled of chai" | | 14 | "She shut the door, engaging" | | 15 | "He turned, his cane resting" | | 16 | "Rory crossed her arms." | | 17 | "His gaze flicked to the" | | 18 | "He picked up a scroll" | | 19 | "His fingers stilled when he" |
| | ratio | 0.898 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 59 | | matches | (empty) | | ratio | 0 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 20 | | technicalSentenceCount | 2 | | matches | | 0 | "Rory opened her mouth to protest, but he was already moving toward the door, his cane tapping against the floorboards." | | 1 | "And then he was gone, leaving Rory standing in the middle of Eva’s cluttered flat, her pulse roaring in her ears and the taste of bergamot lingering on her tong…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "He turned, his cane resting against the back of the sofa" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 53 | | tagDensity | 0.019 | | leniency | 0.038 | | rawRatio | 0 | | effectiveRatio | 0 | |