| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 25 | | tagDensity | 0.32 | | leniency | 0.64 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.98% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 830 | | 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) | |
| 33.73% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 830 | | totalAiIsms | 11 | | found | | 0 | | | 1 | | | 2 | | | 3 | | word | "down her spine" | | count | 2 |
| | 4 | | | 5 | | | 6 | | | 7 | | | 8 | |
| | highlights | | 0 | "pulse" | | 1 | "weight" | | 2 | "chill" | | 3 | "down her spine" | | 4 | "electric" | | 5 | "stomach" | | 6 | "flicked" | | 7 | "gleaming" | | 8 | "race" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "sent a shiver through" | | count | 2 |
|
| | highlights | | 0 | "sent a chill down" | | 1 | "sent a shiver down" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 57 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 57 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 74 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 7 | | totalWords | 824 | | ratio | 0.008 | | matches | | 0 | "Lucien." | | 1 | "thunk" | | 2 | "Find her. She owes me." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.45% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 679 | | uniqueNames | 5 | | maxNameDensity | 1.03 | | worstName | "Aurora" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aurora" | | discoveredNames | | Eva | 3 | | Aurora | 7 | | Evan | 3 | | London | 1 | | Lucien | 6 |
| | persons | | 0 | "Eva" | | 1 | "Aurora" | | 2 | "Evan" | | 3 | "Lucien" |
| | places | | | globalScore | 0.985 | | windowScore | 1 | |
| 93.18% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | glossingSentenceCount | 1 | | matches | | 0 | "smelled like Eva’s books and the faintest" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 824 | | matches | (empty) | |
| 76.58% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 74 | | matches | | 0 | "knew that voice" | | 1 | "like that, she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 27.47 | | std | 19.47 | | cv | 0.709 | | sampleLengths | | 0 | 61 | | 1 | 30 | | 2 | 86 | | 3 | 26 | | 4 | 32 | | 5 | 15 | | 6 | 16 | | 7 | 22 | | 8 | 37 | | 9 | 12 | | 10 | 17 | | 11 | 10 | | 12 | 44 | | 13 | 50 | | 14 | 57 | | 15 | 12 | | 16 | 36 | | 17 | 16 | | 18 | 16 | | 19 | 8 | | 20 | 11 | | 21 | 48 | | 22 | 17 | | 23 | 21 | | 24 | 34 | | 25 | 15 | | 26 | 55 | | 27 | 3 | | 28 | 9 | | 29 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 57 | | matches | (empty) | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 127 | | matches | | 0 | "were placing" | | 1 | "wasn’t letting" | | 2 | "was asking was getting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 74 | | ratio | 0.068 | | matches | | 0 | "The scent of cardamom and spiced lamb hit her first—Eva’s cooking, always lingering even when the kitchen was empty." | | 1 | "Her pulse hammered in her throat as she stepped inside, the door swinging wide enough for her to see him—tall, impossibly so, his platinum blond hair slicked back like he’d just stepped out of a tailor’s parlor." | | 2 | "She hadn’t thought about Evan in months—not since she’d burned his letters, since she’d left London behind." | | 3 | "She unfolded it carefully, her stomach twisting as she read the scrawled words—*Find her." | | 4 | "And just like that, she was back in the middle of it—of him, of the way his voice could make her pulse race, of the way his presence filled the room until there was no space left for anything else." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 685 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.03941605839416058 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.0072992700729927005 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 74 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 74 | | mean | 11.14 | | std | 7.82 | | cv | 0.703 | | sampleLengths | | 0 | 23 | | 1 | 19 | | 2 | 19 | | 3 | 10 | | 4 | 4 | | 5 | 15 | | 6 | 1 | | 7 | 37 | | 8 | 20 | | 9 | 29 | | 10 | 13 | | 11 | 9 | | 12 | 4 | | 13 | 14 | | 14 | 18 | | 15 | 13 | | 16 | 2 | | 17 | 11 | | 18 | 5 | | 19 | 18 | | 20 | 4 | | 21 | 10 | | 22 | 20 | | 23 | 7 | | 24 | 7 | | 25 | 5 | | 26 | 10 | | 27 | 6 | | 28 | 1 | | 29 | 10 | | 30 | 3 | | 31 | 17 | | 32 | 20 | | 33 | 4 | | 34 | 24 | | 35 | 8 | | 36 | 18 | | 37 | 10 | | 38 | 5 | | 39 | 14 | | 40 | 19 | | 41 | 6 | | 42 | 3 | | 43 | 12 | | 44 | 19 | | 45 | 14 | | 46 | 3 | | 47 | 3 | | 48 | 13 | | 49 | 11 |
| |
| 63.51% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.40540540540540543 | | totalSentences | 74 | | uniqueOpeners | 30 | |
| 60.61% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 55 | | matches | | 0 | "Then came the sound of" |
| | ratio | 0.018 | |
| 45.45% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 55 | | matches | | 0 | "She knew that voice." | | 1 | "Her pulse hammered in her" | | 2 | "He was leaning against the" | | 3 | "he said, as if she" | | 4 | "She exhaled through her nose," | | 5 | "His lips quirked, just for" | | 6 | "She crossed her arms, the" | | 7 | "She wasn’t letting him in" | | 8 | "He tilted his head, studying" | | 9 | "Her fingers twitched at her" | | 10 | "he said, stepping forward" | | 11 | "She hadn’t thought about Evan" | | 12 | "He reached into his jacket," | | 13 | "It landed with a soft" | | 14 | "She unfolded it carefully, her" | | 15 | "She owes me.* Evan’s handwriting" | | 16 | "she said, her voice quieter" | | 17 | "She pulled her arm back" | | 18 | "His expression darkened, just for" | | 19 | "She wanted to argue." |
| | ratio | 0.436 | |
| 69.09% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 43 | | totalSentences | 55 | | matches | | 0 | "The door to Eva’s flat" | | 1 | "The scent of cardamom and" | | 2 | "Aurora froze, her fingers still" | | 3 | "She knew that voice." | | 4 | "Her pulse hammered in her" | | 5 | "He was leaning against the" | | 6 | "The amber light from the" | | 7 | "he said, as if she" | | 8 | "The name rolled off his" | | 9 | "She exhaled through her nose," | | 10 | "His lips quirked, just for" | | 11 | "Aurora shut the door behind" | | 12 | "Lucien set his glass down" | | 13 | "She crossed her arms, the" | | 14 | "The flat was hers now," | | 15 | "She wasn’t letting him in" | | 16 | "He tilted his head, studying" | | 17 | "The name hit her like" | | 18 | "Her fingers twitched at her" | | 19 | "he said, stepping forward" |
| | ratio | 0.782 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 55 | | matches | | 0 | "When he’s dangerous." | | 1 | "Because some favors weren’t just" |
| | ratio | 0.036 | |
| 93.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 2 | | matches | | 0 | "She pulled her arm back instinctively, as if she could hide it from him." | | 1 | "And if he was asking questions, that meant he was getting closer." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 2 | | matches | | 0 | "he said, as if she were a ghost he’d half-expected to see" | | 1 | "she said, her voice quieter than she intended" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 25 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0.2 | | effectiveRatio | 0.08 | |