| 98.31% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 3 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "he said immediately [immediately]" | | 2 | "he said finally [finally]" |
| | dialogueSentences | 59 | | tagDensity | 0.356 | | leniency | 0.712 | | rawRatio | 0.143 | | effectiveRatio | 0.102 | |
| 69.22% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2112 | | totalAiIsmAdverbs | 13 | | found | | | highlights | | 0 | "softly" | | 1 | "suddenly" | | 2 | "very" | | 3 | "slightly" | | 4 | "carefully" | | 5 | "really" | | 6 | "slowly" | | 7 | "truly" |
| |
| 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) | |
| 57.39% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2112 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "silence" | | 1 | "silk" | | 2 | "chaotic" | | 3 | "pulse" | | 4 | "familiar" | | 5 | "trembled" | | 6 | "eyebrow" | | 7 | "charged" | | 8 | "intensity" | | 9 | "tension" | | 10 | "could feel" | | 11 | "tracing" | | 12 | "unravel" | | 13 | "perfect" | | 14 | "weight" |
| |
| 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 | 117 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 117 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 154 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 56 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2103 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 30 | | unquotedAttributions | 0 | | matches | (empty) | |
| 87.04% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 58 | | wordCount | 1509 | | uniqueNames | 13 | | maxNameDensity | 1.26 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 15 | | Carter | 3 | | Moreau | 2 | | Marseilles | 1 | | Eva | 4 | | Rory | 1 | | Ptolemy | 5 | | Lucien | 19 | | Silas | 1 | | London | 2 | | Brick | 1 | | Lane | 1 | | Six | 3 |
| | persons | | 0 | "Aurora" | | 1 | "Carter" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Rory" | | 5 | "Ptolemy" | | 6 | "Lucien" | | 7 | "Silas" |
| | places | | 0 | "London" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Six" |
| | globalScore | 0.87 | | windowScore | 1 | |
| 67.58% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 91 | | glossingSentenceCount | 3 | | matches | | 0 | "not quite inviting, but not barring the way either" | | 1 | "sound that seemed to unravel what remained of his control" | | 2 | "felt like she could breathe without the" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.476 | | wordCount | 2103 | | matches | | 0 | "not quite inviting, but not barring the way either" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 154 | | matches | | 0 | "believing that the" | | 1 | "scrolls that covered" | | 2 | "chose that moment" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 66 | | mean | 31.86 | | std | 21.81 | | cv | 0.685 | | sampleLengths | | 0 | 48 | | 1 | 59 | | 2 | 29 | | 3 | 46 | | 4 | 45 | | 5 | 34 | | 6 | 4 | | 7 | 1 | | 8 | 1 | | 9 | 71 | | 10 | 44 | | 11 | 33 | | 12 | 78 | | 13 | 14 | | 14 | 11 | | 15 | 30 | | 16 | 6 | | 17 | 16 | | 18 | 30 | | 19 | 15 | | 20 | 33 | | 21 | 12 | | 22 | 43 | | 23 | 12 | | 24 | 83 | | 25 | 44 | | 26 | 3 | | 27 | 4 | | 28 | 79 | | 29 | 21 | | 30 | 19 | | 31 | 12 | | 32 | 56 | | 33 | 4 | | 34 | 7 | | 35 | 51 | | 36 | 13 | | 37 | 48 | | 38 | 42 | | 39 | 7 | | 40 | 23 | | 41 | 5 | | 42 | 38 | | 43 | 66 | | 44 | 59 | | 45 | 4 | | 46 | 35 | | 47 | 63 | | 48 | 71 | | 49 | 32 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 117 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 254 | | matches | | 0 | "was relearning" | | 1 | "was purring" |
| |
| 31.54% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 1 | | flaggedSentences | 6 | | totalSentences | 154 | | ratio | 0.039 | | matches | | 0 | "Lucien’s mismatched eyes—one amber, one black—softened almost imperceptibly." | | 1 | "The flat seemed to shrink around him; the books and scrolls that covered every surface looked suddenly chaotic next to his tailored precision." | | 2 | "The sight of him—so familiar, so dangerously beautiful—in this small, cluttered space made her chest ache with six months of carefully buried longing." | | 3 | "Aurora smiled against his shirt, breathing in the scent of him—smoke and cinnamon and something darker underneath." | | 4 | "Outside, the sounds of Brick Lane continued—late-night laughter drifting up from the street, the distant wail of a siren, the constant thrum of a city that never truly slept." | | 5 | "She tightened her arms around him in answer, letting the steady beat of his heart—half demon, wholly hers—lull her toward something that felt dangerously like peace." |
| |
| 77.01% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1522 | | adjectiveStacks | 1 | | stackExamples | | 0 | "desperate, rain-soaked clash" |
| | adverbCount | 88 | | adverbRatio | 0.05781865965834428 | | lyAdverbCount | 33 | | lyAdverbRatio | 0.021681997371879105 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 154 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 154 | | mean | 13.66 | | std | 9.32 | | cv | 0.683 | | sampleLengths | | 0 | 15 | | 1 | 33 | | 2 | 29 | | 3 | 30 | | 4 | 20 | | 5 | 9 | | 6 | 3 | | 7 | 17 | | 8 | 26 | | 9 | 8 | | 10 | 29 | | 11 | 8 | | 12 | 3 | | 13 | 6 | | 14 | 20 | | 15 | 5 | | 16 | 4 | | 17 | 1 | | 18 | 1 | | 19 | 13 | | 20 | 6 | | 21 | 12 | | 22 | 17 | | 23 | 23 | | 24 | 30 | | 25 | 14 | | 26 | 11 | | 27 | 22 | | 28 | 15 | | 29 | 2 | | 30 | 25 | | 31 | 2 | | 32 | 6 | | 33 | 28 | | 34 | 9 | | 35 | 5 | | 36 | 6 | | 37 | 5 | | 38 | 30 | | 39 | 6 | | 40 | 16 | | 41 | 11 | | 42 | 13 | | 43 | 6 | | 44 | 11 | | 45 | 4 | | 46 | 19 | | 47 | 14 | | 48 | 12 | | 49 | 11 |
| |
| 51.73% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.35714285714285715 | | totalSentences | 154 | | uniqueOpeners | 55 | |
| 92.59% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 108 | | matches | | 0 | "Of course Eva had arranged" | | 1 | "Then Ptolemy meowed loudly for" | | 2 | "Then he sighed, the sound" |
| | ratio | 0.028 | |
| 71.85% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 108 | | matches | | 0 | "he said, voice low and" | | 1 | "She didn’t move." | | 2 | "Her left hand stayed on" | | 3 | "He lifted a brow" | | 4 | "Her oldest friend had never" | | 5 | "It cracked something inside her" | | 6 | "She stepped back, not quite" | | 7 | "He stopped in the middle" | | 8 | "he said quietly" | | 9 | "He flinched at that, the" | | 10 | "His fingers tightened around the" | | 11 | "Her voice cracked" | | 12 | "She moved into the tiny" | | 13 | "he said immediately" | | 14 | "She didn’t answer, but she" | | 15 | "Her fingers trembled only slightly." | | 16 | "He watched her pour the" | | 17 | "They stood like that for" | | 18 | "she asked, using the old" | | 19 | "It tasted too intimate on" |
| | ratio | 0.37 | |
| 61.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 108 | | matches | | 0 | "The deadbolts scraped back one" | | 1 | "Lucien Moreau leaned one shoulder" | | 2 | "The mingled scents of turmeric" | | 3 | "he said, voice low and" | | 4 | "She didn’t move." | | 5 | "Her left hand stayed on" | | 6 | "Lucien’s mismatched eyes—one amber, one" | | 7 | "He lifted a brow" | | 8 | "Aurora’s jaw tightened." | | 9 | "Her oldest friend had never" | | 10 | "The single word, softly spoken," | | 11 | "It cracked something inside her" | | 12 | "She stepped back, not quite" | | 13 | "Lucien moved past her with" | | 14 | "The flat seemed to shrink" | | 15 | "He stopped in the middle" | | 16 | "he said quietly" | | 17 | "Aurora folded her arms, trying" | | 18 | "Nothing but silence from the" | | 19 | "Lucien’s smile was small and" |
| | ratio | 0.796 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 108 | | matches | (empty) | | ratio | 0 | |
| 87.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 65 | | technicalSentenceCount | 5 | | matches | | 0 | "The black shirt beneath clung to his shoulders in a way that should have been illegal." | | 1 | "His lips moved against hers like he was relearning her, tongue tracing the seam of her mouth until she opened for him with a soft sound that seemed to unravel w…" | | 2 | "Inside Eva’s cramped flat, with its books and scrolls and one very smug tabby cat, two people who had once walked away from each other found their way back to t…" | | 3 | "She tightened her arms around him in answer, letting the steady beat of his heart—half demon, wholly hers—lull her toward something that felt dangerously like p…" | | 4 | "And for a few precious hours, the complicated, beautiful mess that was Aurora Carter and Lucien Moreau was exactly where it was meant to be." |
| |
| 77.38% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 21 | | uselessAdditionCount | 2 | | matches | | 0 | "he cut in, voice rough" | | 1 | "he said finally, the words scraped raw" |
| |
| 65.25% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 5 | | fancyTags | | 0 | "Aurora warned (warn)" | | 1 | "he murmured (murmur)" | | 2 | "he whispered (whisper)" | | 3 | "he agreed (agree)" | | 4 | "she whispered (whisper)" |
| | dialogueSentences | 59 | | tagDensity | 0.237 | | leniency | 0.475 | | rawRatio | 0.357 | | effectiveRatio | 0.169 | |