| 14.81% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 5 | | adverbTags | | 0 | "she said finally [finally]" | | 1 | "she asked gently [gently]" | | 2 | "The words felt like [like]" | | 3 | "Marcus said quietly [quietly]" | | 4 | "he said finally [finally]" |
| | dialogueSentences | 54 | | tagDensity | 0.463 | | leniency | 0.926 | | rawRatio | 0.2 | | effectiveRatio | 0.185 | |
| 72.62% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1461 | | totalAiIsmAdverbs | 8 | | found | | 0 | | | 1 | | | 2 | | | 3 | | adverb | "passionately" | | count | 1 |
| | 4 | | | 5 | | | 6 | | | 7 | |
| | highlights | | 0 | "slowly" | | 1 | "cautiously" | | 2 | "sharply" | | 3 | "passionately" | | 4 | "suddenly" | | 5 | "gently" | | 6 | "quickly" | | 7 | "carefully" |
| |
| 80.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 34.98% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1461 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "traced" | | 1 | "familiar" | | 2 | "comfortable" | | 3 | "silence" | | 4 | "stomach" | | 5 | "intensity" | | 6 | "footsteps" | | 7 | "methodical" | | 8 | "chilled" | | 9 | "weight" | | 10 | "echoed" | | 11 | "dancing" |
| |
| 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 | 82 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 82 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 110 | | 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 | 0 | | markdownWords | 0 | | totalWords | 1457 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 52 | | wordCount | 1101 | | uniqueNames | 19 | | maxNameDensity | 1 | | worstName | "Marcus" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Marcus" | | discoveredNames | | Aurora | 10 | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Golden | 1 | | Empress | 1 | | Cardiff | 4 | | Evan | 3 | | Webb | 1 | | Silas | 10 | | Marcus | 11 | | Nietzsche | 1 | | Kant | 1 | | Thursday | 1 | | Victorian | 1 | | Literature | 1 | | Political | 1 | | Philosophy | 1 | | London | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Raven" | | 2 | "Nest" | | 3 | "Empress" | | 4 | "Evan" | | 5 | "Webb" | | 6 | "Silas" | | 7 | "Marcus" |
| | places | | 0 | "Golden" | | 1 | "Cardiff" | | 2 | "London" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like stones in her mouth" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.686 | | wordCount | 1457 | | matches | | 0 | "not from Evan, but older, a childhood accident" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 110 | | matches | | 0 | "knew that voice" | | 1 | "discovering that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 28.57 | | std | 20.62 | | cv | 0.722 | | sampleLengths | | 0 | 88 | | 1 | 68 | | 2 | 1 | | 3 | 26 | | 4 | 82 | | 5 | 14 | | 6 | 14 | | 7 | 23 | | 8 | 17 | | 9 | 25 | | 10 | 18 | | 11 | 67 | | 12 | 8 | | 13 | 29 | | 14 | 15 | | 15 | 16 | | 16 | 37 | | 17 | 19 | | 18 | 68 | | 19 | 8 | | 20 | 26 | | 21 | 32 | | 22 | 4 | | 23 | 29 | | 24 | 38 | | 25 | 1 | | 26 | 36 | | 27 | 52 | | 28 | 2 | | 29 | 44 | | 30 | 51 | | 31 | 9 | | 32 | 32 | | 33 | 28 | | 34 | 25 | | 35 | 15 | | 36 | 47 | | 37 | 41 | | 38 | 26 | | 39 | 13 | | 40 | 7 | | 41 | 47 | | 42 | 10 | | 43 | 17 | | 44 | 31 | | 45 | 39 | | 46 | 4 | | 47 | 43 | | 48 | 7 | | 49 | 16 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 82 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 195 | | matches | (empty) | |
| 12.99% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 110 | | ratio | 0.045 | | matches | | 0 | "Too much time to remember Cardiff, her father's disappointed sighs, Evan's hands around her wrist—" | | 1 | "But it was his eyes that made her stomach clench—the same warm brown, but hollowed out somehow, like rooms with all the furniture removed." | | 2 | "The Marcus she'd known had been passionate about everything—about Nietzsche and Kant, about the pub quiz team they'd dominated every Thursday, about the girl from his Victorian Literature seminar who'd broken his heart sophomore year." | | 3 | "\"Don't be. I got out.\" She touched her left wrist unconsciously, feeling the small crescent scar through her sleeve—not from Evan, but older, a childhood accident that somehow felt connected to every hurt that had followed." | | 4 | "Aurora looked around the bar—at the old photographs on the walls, at Silas quietly tending his domain, at the green light filtering through the windows." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1107 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 39 | | adverbRatio | 0.03523035230352303 | | lyAdverbCount | 22 | | lyAdverbRatio | 0.01987353206865402 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 110 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 110 | | mean | 13.25 | | std | 8.62 | | cv | 0.651 | | sampleLengths | | 0 | 27 | | 1 | 11 | | 2 | 27 | | 3 | 23 | | 4 | 31 | | 5 | 22 | | 6 | 15 | | 7 | 1 | | 8 | 5 | | 9 | 15 | | 10 | 6 | | 11 | 24 | | 12 | 18 | | 13 | 16 | | 14 | 24 | | 15 | 8 | | 16 | 6 | | 17 | 12 | | 18 | 2 | | 19 | 20 | | 20 | 3 | | 21 | 9 | | 22 | 8 | | 23 | 20 | | 24 | 5 | | 25 | 15 | | 26 | 3 | | 27 | 18 | | 28 | 23 | | 29 | 26 | | 30 | 4 | | 31 | 4 | | 32 | 5 | | 33 | 11 | | 34 | 13 | | 35 | 10 | | 36 | 5 | | 37 | 11 | | 38 | 5 | | 39 | 32 | | 40 | 5 | | 41 | 8 | | 42 | 11 | | 43 | 13 | | 44 | 35 | | 45 | 20 | | 46 | 8 | | 47 | 12 | | 48 | 14 | | 49 | 14 |
| |
| 74.85% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4818181818181818 | | totalSentences | 110 | | uniqueOpeners | 53 | |
| 86.58% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 77 | | matches | | 0 | "Too much time to remember" | | 1 | "Slowly, she turned on her" |
| | ratio | 0.026 | |
| 69.35% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 77 | | matches | | 0 | "She'd come down from her" | | 1 | "She knew that voice, though" | | 2 | "His dark hair, once perpetually" | | 3 | "His name felt strange on" | | 4 | "He approached the bar cautiously," | | 5 | "She studied Marcus's profile, noting" | | 6 | "she said finally" | | 7 | "His laugh held no humor." | | 8 | "He drained half the whiskey" | | 9 | "She picked at the label" | | 10 | "He stared into his whiskey" | | 11 | "Her landlord had developed an" | | 12 | "he interrupted, his voice suddenly" | | 13 | "They'd been drunk on cheap" | | 14 | "She'd told him about her" | | 15 | "He'd talked about exposing corruption," | | 16 | "He finished his second whiskey" | | 17 | "She recognized the hollow resignation" | | 18 | "she asked gently" | | 19 | "He turned to face her" |
| | ratio | 0.377 | |
| 44.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 77 | | matches | | 0 | "The amber light from the" | | 1 | "The Raven's Nest felt particularly" | | 2 | "Silas moved behind the bar" | | 3 | "The green neon sign outside" | | 4 | "She'd come down from her" | | 5 | "The delivery job at Golden" | | 6 | "The voice froze her blood." | | 7 | "She knew that voice, though" | | 8 | "Marcus Webb stood in the" | | 9 | "The lanky boy she'd known" | | 10 | "His dark hair, once perpetually" | | 11 | "His name felt strange on" | | 12 | "He approached the bar cautiously," | | 13 | "Silas appeared at her shoulder," | | 14 | "Aurora said, her voice steadier" | | 15 | "Marcus extended his hand, and" | | 16 | "Marcus slid onto the stool" | | 17 | "The silence stretched as Silas" | | 18 | "She studied Marcus's profile, noting" | | 19 | "she said finally" |
| | ratio | 0.831 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 77 | | matches | (empty) | | ratio | 0 | |
| 31.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 7 | | matches | | 0 | "When he'd been at Cardiff, studying philosophy with the fervor of someone who believed ideas could change the world, his hands had been steady as stone." | | 1 | "There was something in his tone that made her look at him sharply." | | 2 | "The Marcus she'd known had been passionate about everything—about Nietzsche and Kant, about the pub quiz team they'd dominated every Thursday, about the girl fr…" | | 3 | "This version of him spoke with the flat affect of someone who'd learned not to care too much about anything." | | 4 | "This wasn't the boy who'd argued passionately about the ethics of civil disobedience in their Political Philosophy seminars." | | 5 | "She'd told him about her dreams of human rights law, of fighting for people who couldn't fight for themselves." | | 6 | "They finished their work in comfortable silence, and Aurora climbed the stairs to her small flat, carrying the strange lightness that comes from discovering tha…" |
| |
| 45.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 4 | | matches | | 0 | "He approached, as if she might bolt" | | 1 | "Aurora said, her voice steadier than she felt" | | 2 | "Marcus slid, careful to leave space between them" | | 3 | "he interrupted, his voice suddenly urgent" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 1 | | fancyTags | | 0 | "he interrupted (interrupt)" |
| | dialogueSentences | 54 | | tagDensity | 0.185 | | leniency | 0.37 | | rawRatio | 0.1 | | effectiveRatio | 0.037 | |