| 80.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 3 | | adverbTags | | 0 | "he said finally [finally]" | | 1 | "she said softly [softly]" | | 2 | "she said flatly [flatly]" |
| | dialogueSentences | 50 | | tagDensity | 0.28 | | leniency | 0.56 | | rawRatio | 0.214 | | effectiveRatio | 0.12 | |
| 85.96% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1424 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "softly" | | 1 | "slightly" | | 2 | "suddenly" |
| |
| 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) | |
| 29.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1424 | | totalAiIsms | 20 | | found | | | highlights | | 0 | "flickered" | | 1 | "familiar" | | 2 | "tension" | | 3 | "weight" | | 4 | "could feel" | | 5 | "measured" | | 6 | "stomach" | | 7 | "flicker" | | 8 | "unreadable" | | 9 | "traced" | | 10 | "silence" | | 11 | "potential" |
| |
| 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 | 2 | | narrationSentences | 108 | | matches | | 0 | "was nervous" | | 1 | "was happy" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 108 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 144 | | 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 | 7 | | markdownWords | 11 | | totalWords | 1413 | | ratio | 0.008 | | matches | | 0 | "he" | | 1 | "her" | | 2 | "could" | | 3 | "Not yet." | | 4 | "picked over her" | | 5 | "wrong" | | 6 | "her wrist" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1133 | | uniqueNames | 11 | | maxNameDensity | 1.5 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 17 | | Nest | 2 | | London | 1 | | Japanese | 1 | | October | 1 | | Evan | 10 | | Silas | 7 | | Silence | 1 | | Gone | 1 | | Carter | 1 | | Wanted | 3 |
| | persons | | 0 | "Rory" | | 1 | "Evan" | | 2 | "Silas" | | 3 | "Silence" | | 4 | "Carter" |
| | places | | | globalScore | 0.75 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1413 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 144 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 63 | | mean | 22.43 | | std | 19.66 | | cv | 0.877 | | sampleLengths | | 0 | 84 | | 1 | 30 | | 2 | 35 | | 3 | 27 | | 4 | 35 | | 5 | 5 | | 6 | 46 | | 7 | 25 | | 8 | 52 | | 9 | 1 | | 10 | 39 | | 11 | 93 | | 12 | 8 | | 13 | 12 | | 14 | 59 | | 15 | 30 | | 16 | 10 | | 17 | 63 | | 18 | 6 | | 19 | 7 | | 20 | 9 | | 21 | 46 | | 22 | 9 | | 23 | 6 | | 24 | 56 | | 25 | 3 | | 26 | 19 | | 27 | 3 | | 28 | 11 | | 29 | 7 | | 30 | 33 | | 31 | 6 | | 32 | 32 | | 33 | 14 | | 34 | 27 | | 35 | 22 | | 36 | 6 | | 37 | 2 | | 38 | 5 | | 39 | 7 | | 40 | 37 | | 41 | 11 | | 42 | 7 | | 43 | 17 | | 44 | 7 | | 45 | 17 | | 46 | 34 | | 47 | 5 | | 48 | 29 | | 49 | 29 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 108 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 216 | | matches | | 0 | "was, stepping" | | 1 | "was waiting" | | 2 | "was drinking" |
| |
| 3.97% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 144 | | ratio | 0.049 | | matches | | 0 | "The bar was quiet tonight—just a handful of regulars hunched over their drinks, the low hum of conversation barely rising above the crackle of the vinyl spinning on the old turntable." | | 1 | "A gust of cold October air rushed in, carrying with it the scent of rain and something else—something expensive, like sandalwood and bergamot." | | 2 | "His voice was the same—deep, measured, the kind of voice that had once made her stomach flip." | | 3 | "He wore a tailored overcoat, the kind that cost more than her monthly rent, and his hands—those hands she’d once known so well—were tucked into his pockets like he wasn’t sure what to do with them." | | 4 | "A flicker of something crossed his face—guilt, maybe, or just the ghost of an old argument." | | 5 | "If the life he’d chosen—the one he’d *picked over her*—was everything he’d dreamed." | | 6 | "He reached for her wrist—*her wrist*, the one with the scar—and she jerked back like he’d burned her." |
| |
| 92.17% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1144 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 56 | | adverbRatio | 0.04895104895104895 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.012237762237762238 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 144 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 144 | | mean | 9.81 | | std | 7.76 | | cv | 0.791 | | sampleLengths | | 0 | 30 | | 1 | 31 | | 2 | 11 | | 3 | 12 | | 4 | 16 | | 5 | 8 | | 6 | 4 | | 7 | 2 | | 8 | 16 | | 9 | 19 | | 10 | 12 | | 11 | 11 | | 12 | 4 | | 13 | 13 | | 14 | 22 | | 15 | 5 | | 16 | 23 | | 17 | 3 | | 18 | 4 | | 19 | 4 | | 20 | 12 | | 21 | 11 | | 22 | 14 | | 23 | 12 | | 24 | 18 | | 25 | 2 | | 26 | 20 | | 27 | 1 | | 28 | 17 | | 29 | 18 | | 30 | 4 | | 31 | 7 | | 32 | 25 | | 33 | 25 | | 34 | 36 | | 35 | 8 | | 36 | 4 | | 37 | 8 | | 38 | 16 | | 39 | 10 | | 40 | 23 | | 41 | 8 | | 42 | 2 | | 43 | 15 | | 44 | 15 | | 45 | 6 | | 46 | 4 | | 47 | 21 | | 48 | 9 | | 49 | 33 |
| |
| 59.03% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.375 | | totalSentences | 144 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 95 | | matches | | 0 | "Then the door opened again." | | 1 | "Just a little." | | 2 | "Maybe he couldn’t." | | 3 | "Then she turned and walked" |
| | ratio | 0.042 | |
| 85.26% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 95 | | matches | | 0 | "She exhaled, the tension in" | | 1 | "He didn’t smile, but then," | | 2 | "She took the glass, the" | | 3 | "She didn’t need to." | | 4 | "She knew that cologne." | | 5 | "he murmured, low enough for" | | 6 | "She could feel Evan’s presence" | | 7 | "His voice was the same—deep," | | 8 | "She took another sip before" | | 9 | "He wasn’t supposed to look" | | 10 | "He wore a tailored overcoat," | | 11 | "He stepped forward, hesitating like" | | 12 | "She gave a tiny shake" | | 13 | "She could feel the weight" | | 14 | "he said finally" | | 15 | "She laughed, a short, sharp" | | 16 | "she said softly" | | 17 | "He’d always done that when" | | 18 | "His jaw tightened." | | 19 | "She wanted to ask if" |
| | ratio | 0.337 | |
| 65.26% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 95 | | matches | | 0 | "The green neon raven flickered" | | 1 | "The bar was quiet tonight—just" | | 2 | "She exhaled, the tension in" | | 3 | "This was the one place" | | 4 | "Silas looked up from behind" | | 5 | "He didn’t smile, but then," | | 6 | "A nod was enough." | | 7 | "Rory slid onto a stool," | | 8 | "Silas grunted, already reaching for" | | 9 | "The ice clinked as he" | | 10 | "She took the glass, the" | | 11 | "The first sip burned smooth" | | 12 | "A gust of cold October" | | 13 | "Rory didn’t turn." | | 14 | "She didn’t need to." | | 15 | "She knew that cologne." | | 16 | "Silas stiffened beside her, his" | | 17 | "he murmured, low enough for" | | 18 | "Rory swirled her whisky, watching" | | 19 | "She could feel Evan’s presence" |
| | ratio | 0.789 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 95 | | matches | | 0 | "If the life he’d chosen—the" | | 1 | "Because Rory Carter didn’t scream" |
| | ratio | 0.021 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 1 | | matches | | 0 | "Rory stared at him, at the man who’d once been her everything, who’d then become her nightmare, and now sat in front of her like a stranger wearing a familiar f…" |
| |
| 89.29% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 1 | | matches | | 0 | "She took, the weight of it familiar in her palm" |
| |
| 70.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 4 | | fancyTags | | 0 | "he murmured (murmur)" | | 1 | "he admitted (admit)" | | 2 | "she snapped (snap)" | | 3 | "she whispered (whisper)" |
| | dialogueSentences | 50 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0.4 | | effectiveRatio | 0.16 | |