| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 46 | | tagDensity | 0.283 | | leniency | 0.565 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 87.27% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1178 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 53.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1178 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "traced" | | 1 | "glinting" | | 2 | "weight" | | 3 | "flicked" | | 4 | "charged" | | 5 | "familiar" | | 6 | "measured" | | 7 | "pulse" | | 8 | "silence" | | 9 | "unreadable" | | 10 | "flickered" |
| |
| 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 | 89 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 89 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 122 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 8 | | markdownWords | 47 | | totalWords | 1167 | | ratio | 0.04 | | matches | | 0 | "You’ll always carry me with you, won’t you?" | | 1 | "The Raven’s Nest" | | 2 | "For emergencies. Or bad decisions. Whichever comes first." | | 3 | "For when you need to disappear" | | 4 | "Don’t let the bastards win." | | 5 | "I know you don’t want to see me. But I need to. Please." | | 6 | "Aurora" | | 7 | "The Raven’s Nest" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 861 | | uniqueNames | 13 | | maxNameDensity | 1.51 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Evan | 2 | | Rory | 13 | | Raven | 2 | | Blackwood | 1 | | Prague | 2 | | Paddington | 1 | | Station | 1 | | Cardiff | 1 | | Silas | 11 | | Paris | 1 | | Berlin | 1 | | London | 2 | | Laila | 4 |
| | persons | | 0 | "Evan" | | 1 | "Rory" | | 2 | "Raven" | | 3 | "Blackwood" | | 4 | "Silas" | | 5 | "Laila" |
| | places | | 0 | "Prague" | | 1 | "Paddington" | | 2 | "Cardiff" | | 3 | "Paris" | | 4 | "Berlin" | | 5 | "London" |
| | globalScore | 0.745 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | 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 | 1167 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 122 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 50 | | mean | 23.34 | | std | 21.1 | | cv | 0.904 | | sampleLengths | | 0 | 71 | | 1 | 87 | | 2 | 65 | | 3 | 4 | | 4 | 22 | | 5 | 11 | | 6 | 60 | | 7 | 10 | | 8 | 7 | | 9 | 26 | | 10 | 9 | | 11 | 17 | | 12 | 2 | | 13 | 15 | | 14 | 76 | | 15 | 5 | | 16 | 30 | | 17 | 44 | | 18 | 69 | | 19 | 13 | | 20 | 18 | | 21 | 9 | | 22 | 5 | | 23 | 3 | | 24 | 6 | | 25 | 43 | | 26 | 11 | | 27 | 16 | | 28 | 19 | | 29 | 44 | | 30 | 27 | | 31 | 5 | | 32 | 6 | | 33 | 2 | | 34 | 27 | | 35 | 10 | | 36 | 24 | | 37 | 39 | | 38 | 8 | | 39 | 25 | | 40 | 23 | | 41 | 14 | | 42 | 27 | | 43 | 9 | | 44 | 7 | | 45 | 13 | | 46 | 27 | | 47 | 37 | | 48 | 10 | | 49 | 10 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 89 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 150 | | matches | | 0 | "weren’t saying" | | 1 | "was going" |
| |
| 2.34% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 122 | | ratio | 0.049 | | matches | | 0 | "A sharp sting bit into her palm—blood welled in the crescent-shaped scar on her left wrist, the one she’d earned at eight years old when she’d tried to climb the garden wall after the neighbour’s cat." | | 1 | "She kept her eyes on the man across the bar, the one who hadn’t aged a day in the way that mattered—same auburn hair, same hazel eyes that missed nothing, same silver signet ring glinting under the dim lights of *The Raven’s Nest*." | | 2 | "The years had carved lines into his face, deepened the grey at his temples, but his posture was the same—shoulders squared, weight balanced on the balls of his feet, like he was always half a second away from action." | | 3 | "The bar hummed around them—low chatter, the clink of glasses, the occasional burst of laughter from a group of suits in the corner." | | 4 | "He’d pressed an envelope into her hand—*For when you need to disappear*—and told her, *Don’t let the bastards win.*" | | 5 | "The use of her name—her real name, not the one she’d been using like a shield—made her flinch." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 872 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 31 | | adverbRatio | 0.03555045871559633 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0022935779816513763 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 122 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 122 | | mean | 9.57 | | std | 8.46 | | cv | 0.885 | | sampleLengths | | 0 | 16 | | 1 | 36 | | 2 | 19 | | 3 | 4 | | 4 | 43 | | 5 | 2 | | 6 | 1 | | 7 | 31 | | 8 | 3 | | 9 | 3 | | 10 | 3 | | 11 | 23 | | 12 | 39 | | 13 | 4 | | 14 | 17 | | 15 | 5 | | 16 | 5 | | 17 | 6 | | 18 | 23 | | 19 | 8 | | 20 | 11 | | 21 | 18 | | 22 | 9 | | 23 | 1 | | 24 | 7 | | 25 | 24 | | 26 | 2 | | 27 | 7 | | 28 | 2 | | 29 | 8 | | 30 | 9 | | 31 | 2 | | 32 | 7 | | 33 | 8 | | 34 | 13 | | 35 | 32 | | 36 | 5 | | 37 | 7 | | 38 | 19 | | 39 | 5 | | 40 | 8 | | 41 | 22 | | 42 | 12 | | 43 | 11 | | 44 | 2 | | 45 | 15 | | 46 | 4 | | 47 | 9 | | 48 | 1 | | 49 | 24 |
| |
| 58.47% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.38524590163934425 | | totalSentences | 122 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 74 | | matches | | 0 | "Just stood there, one hand" | | 1 | "Instead, he pulled out a" | | 2 | "Instead, she turned toward the" |
| | ratio | 0.041 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 74 | | matches | | 0 | "She kept her eyes on" | | 1 | "He hadn’t moved." | | 2 | "She nodded at his left" | | 3 | "His gaze flicked to her" | | 4 | "She curled her fingers into" | | 5 | "He set his glass down" | | 6 | "He leaned forward, just slightly" | | 7 | "He’d been there, of course." | | 8 | "He’d pressed an envelope into" | | 9 | "She’d let him down anyway." | | 10 | "Her childhood friend, the one" | | 11 | "She reached for the paper," | | 12 | "He tilted his head, studying" | | 13 | "He leaned in, voice dropping" | | 14 | "His eyes darkened" | | 15 | "He straightened, adjusted his signet" | | 16 | "He didn’t have to." | | 17 | "His expression was unreadable, but" | | 18 | "She exhaled, long and slow." | | 19 | "He raised his glass in" |
| | ratio | 0.284 | |
| 34.32% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 74 | | matches | | 0 | "The glass slipped from her" | | 1 | "A sharp sting bit into" | | 2 | "The same scar Evan had" | | 3 | "Rory didn’t look down." | | 4 | "She kept her eyes on" | | 5 | "The man who’d taught her" | | 6 | "Whichever comes first.*" | | 7 | "He hadn’t moved." | | 8 | "The years had carved lines" | | 9 | "She nodded at his left" | | 10 | "A ghost of a smile." | | 11 | "The bar hummed around them—low" | | 12 | "None of it touched the" | | 13 | "Rory wiped her palm on" | | 14 | "Silas lifted his glass, took" | | 15 | "His gaze flicked to her" | | 16 | "She curled her fingers into" | | 17 | "He set his glass down" | | 18 | "He leaned forward, just slightly" | | 19 | "The air between them thickened," |
| | ratio | 0.851 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 74 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 1 | | matches | | 0 | "She kept her eyes on the man across the bar, the one who hadn’t aged a day in the way that mattered—same auburn hair, same hazel eyes that missed nothing, same …" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "He leaned in, voice dropping" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 46 | | tagDensity | 0.065 | | leniency | 0.13 | | rawRatio | 0 | | effectiveRatio | 0 | |