| 90.91% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 26 | | adverbTagCount | 3 | | adverbTags | | 0 | "Lucien said quickly [quickly]" | | 1 | "Aurora asked finally [finally]" | | 2 | "Lucien explained softly [softly]" |
| | dialogueSentences | 55 | | tagDensity | 0.473 | | leniency | 0.945 | | rawRatio | 0.115 | | effectiveRatio | 0.109 | |
| 65.52% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1160 | | totalAiIsmAdverbs | 8 | | found | | 0 | | | 1 | | | 2 | | adverb | "barely above a whisper" | | count | 1 |
| | 3 | | | 4 | | | 5 | | | 6 | |
| | highlights | | 0 | "perfectly" | | 1 | "quickly" | | 2 | "barely above a whisper" | | 3 | "really" | | 4 | "truly" | | 5 | "softly" | | 6 | "carefully" |
| |
| 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) | |
| 31.03% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1160 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "familiar" | | 1 | "calculated" | | 2 | "intensity" | | 3 | "weight" | | 4 | "gleaming" | | 5 | "measured" | | 6 | "predictable" | | 7 | "encounter" | | 8 | "chill" | | 9 | "whisper" | | 10 | "silence" | | 11 | "velvet" | | 12 | "reminder" | | 13 | "constructed" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "hung in the air" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "hung in the air" | | 1 | "sent a chill through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 63 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 63 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 92 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1155 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 28 | | unquotedAttributions | 0 | | matches | (empty) | |
| 16.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 729 | | uniqueNames | 8 | | maxNameDensity | 2.33 | | worstName | "Aurora" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 2 | | Aurora | 17 | | Brick | 1 | | Lane | 1 | | Lucien | 16 | | Moreau | 1 | | Marseille | 1 | | Ptolemy | 2 |
| | persons | | 0 | "Eva" | | 1 | "Aurora" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Ptolemy" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Marseille" |
| | globalScore | 0.334 | | windowScore | 0.167 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 51 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1155 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 92 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 25.67 | | std | 12.96 | | cv | 0.505 | | sampleLengths | | 0 | 51 | | 1 | 44 | | 2 | 20 | | 3 | 11 | | 4 | 57 | | 5 | 9 | | 6 | 29 | | 7 | 12 | | 8 | 30 | | 9 | 20 | | 10 | 23 | | 11 | 29 | | 12 | 23 | | 13 | 15 | | 14 | 27 | | 15 | 26 | | 16 | 20 | | 17 | 19 | | 18 | 11 | | 19 | 24 | | 20 | 8 | | 21 | 18 | | 22 | 21 | | 23 | 27 | | 24 | 27 | | 25 | 3 | | 26 | 46 | | 27 | 15 | | 28 | 18 | | 29 | 30 | | 30 | 30 | | 31 | 20 | | 32 | 13 | | 33 | 33 | | 34 | 33 | | 35 | 13 | | 36 | 21 | | 37 | 28 | | 38 | 26 | | 39 | 32 | | 40 | 14 | | 41 | 47 | | 42 | 55 | | 43 | 22 | | 44 | 55 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 63 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 140 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 1 | | flaggedSentences | 6 | | totalSentences | 92 | | ratio | 0.065 | | matches | | 0 | "As the water boiled, Aurora replayed their last encounter in Marseille—the shouting, the accusations, the way Lucien had pulled her close before pushing her away when things became too complicated." | | 1 | "Inside lay a delicate silver pendant shaped like a crescent moon—similar to the scar on her left wrist from her childhood accident." | | 2 | "The sincerity in his eyes, the vulnerability he rarely allowed to show—it all unraveled Aurora's carefully constructed defenses." | | 3 | "His lips met hers in a kiss that was both apology and promise—tentative at first, then growing in confidence as she responded." | | 4 | "The world outside Eva's flat ceased to exist; there was only the heat of his touch, the taste of coffee on his lips, and the years of unresolved passion finally finding its release." | | 5 | "The books and scrolls that had once consumed her space now seemed to fade into the background, replaced by the man standing before her—the man who had broken her heart but was now offering to piece it back together, one careful stitch at a time." |
| |
| 97.39% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 735 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.03945578231292517 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.02312925170068027 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 92 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 92 | | mean | 12.55 | | std | 7.36 | | cv | 0.587 | | sampleLengths | | 0 | 22 | | 1 | 17 | | 2 | 12 | | 3 | 19 | | 4 | 13 | | 5 | 12 | | 6 | 9 | | 7 | 11 | | 8 | 6 | | 9 | 5 | | 10 | 23 | | 11 | 34 | | 12 | 9 | | 13 | 12 | | 14 | 17 | | 15 | 12 | | 16 | 10 | | 17 | 9 | | 18 | 11 | | 19 | 8 | | 20 | 12 | | 21 | 13 | | 22 | 10 | | 23 | 22 | | 24 | 7 | | 25 | 9 | | 26 | 14 | | 27 | 11 | | 28 | 4 | | 29 | 12 | | 30 | 15 | | 31 | 15 | | 32 | 11 | | 33 | 2 | | 34 | 18 | | 35 | 4 | | 36 | 15 | | 37 | 10 | | 38 | 1 | | 39 | 3 | | 40 | 8 | | 41 | 13 | | 42 | 3 | | 43 | 5 | | 44 | 4 | | 45 | 14 | | 46 | 12 | | 47 | 9 | | 48 | 19 | | 49 | 8 |
| |
| 63.77% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.40217391304347827 | | totalSentences | 92 | | uniqueOpeners | 37 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 57 | | matches | (empty) | | ratio | 0 | |
| 79.65% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 57 | | matches | | 0 | "She didn't expect to see" | | 1 | "He stood framed in the" | | 2 | "His charcoal suit looked impossibly" | | 3 | "he said, his voice smooth" | | 4 | "He shifted his weight, the" | | 5 | "His gaze swept past her" | | 6 | "he confirmed, turning to face" | | 7 | "He removed his coat with" | | 8 | "She moved to the small" | | 9 | "she asked, her back turned" | | 10 | "His half-demon nature had created" | | 11 | "she asked, pouring hot water" | | 12 | "His fingers brushed hers, sending" | | 13 | "They sat in uncomfortable silence," | | 14 | "he said, setting his mug" | | 15 | "He reached into his jacket" | | 16 | "She slipped the necklace over" | | 17 | "she admitted, the words slipping" | | 18 | "He cupped her face in" | | 19 | "His lips met hers in" |
| | ratio | 0.351 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 57 | | matches | | 0 | "The three deadbolts on the" | | 1 | "The hinges groaned in protest" | | 2 | "She didn't expect to see" | | 3 | "He stood framed in the" | | 4 | "His charcoal suit looked impossibly" | | 5 | "he said, his voice smooth" | | 6 | "Aurora's hand tightened on the" | | 7 | "He shifted his weight, the" | | 8 | "His gaze swept past her" | | 9 | "Aurora muttered, stepping aside" | | 10 | "Lucien entered with measured steps," | | 11 | "Ptolemy the tabby cat arched" | | 12 | "Lucien remarked, nodding toward the" | | 13 | "Aurora said, closing the door" | | 14 | "The deadbolts slid back into" | | 15 | "he confirmed, turning to face" | | 16 | "Aurora crossed her arms, a" | | 17 | "He removed his coat with" | | 18 | "The sincerity in his voice" | | 19 | "Lucien asked, his heterochromatic eyes" |
| | ratio | 0.93 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 57 | | matches | (empty) | | ratio | 0 | |
| 91.84% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 2 | | matches | | 0 | "His lips met hers in a kiss that was both apology and promise—tentative at first, then growing in confidence as she responded." | | 1 | "The books and scrolls that had once consumed her space now seemed to fade into the background, replaced by the man standing before her—the man who had broken he…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 26 | | uselessAdditionCount | 8 | | matches | | 0 | "he said, his voice smooth as aged whiskey" | | 1 | "he confirmed, turning to face her" | | 2 | "Lucien asked, his heterochromatic eyes searching hers" | | 3 | "Aurora asked, her voice barely above a whisper" | | 4 | "Lucien said, his gaze intense" | | 5 | "Lucien said, his voice thick with emotion" | | 6 | "she admitted, the words slipping out before she could stop them" | | 7 | "He cupped, his thumbs stroking her cheeks" |
| |
| 22.73% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 21 | | fancyCount | 7 | | fancyTags | | 0 | "Aurora muttered (mutter)" | | 1 | "he confirmed (confirm)" | | 2 | "he acknowledged (acknowledge)" | | 3 | "Lucien admitted (admit)" | | 4 | "Lucien explained softly (explain)" | | 5 | "she admitted (admit)" | | 6 | "he whispered (whisper)" |
| | dialogueSentences | 55 | | tagDensity | 0.382 | | leniency | 0.764 | | rawRatio | 0.333 | | effectiveRatio | 0.255 | |