| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 6 | | adverbTagCount | 1 | | adverbTags | | | dialogueSentences | 53 | | tagDensity | 0.113 | | leniency | 0.226 | | rawRatio | 0.167 | | effectiveRatio | 0.038 | |
| 90.58% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1062 | | totalAiIsmAdverbs | 2 | | 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) | |
| 71.75% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1062 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "flickered" | | 1 | "traced" | | 2 | "flicked" | | 3 | "methodical" | | 4 | "pulse" | | 5 | "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 | 75 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 75 | | filterMatches | | | hedgeMatches | (empty) | |
| 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 | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 4 | | totalWords | 1051 | | ratio | 0.004 | | matches | | 0 | "The Raven’s Nest" | | 1 | "clink" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 92.46% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 23 | | wordCount | 782 | | uniqueNames | 7 | | maxNameDensity | 1.15 | | worstName | "Silas" | | maxWindowNameDensity | 2 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Rory | 8 | | Carter | 1 | | London | 2 | | Blackwood | 1 | | Prague | 1 | | Silas | 9 |
| | persons | | 0 | "Raven" | | 1 | "Rory" | | 2 | "Carter" | | 3 | "Blackwood" | | 4 | "Silas" |
| | places | | | globalScore | 0.925 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 43 | | 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 | 1051 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 122 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 67 | | mean | 15.69 | | std | 18.72 | | cv | 1.193 | | sampleLengths | | 0 | 82 | | 1 | 78 | | 2 | 4 | | 3 | 83 | | 4 | 12 | | 5 | 3 | | 6 | 71 | | 7 | 2 | | 8 | 18 | | 9 | 10 | | 10 | 6 | | 11 | 16 | | 12 | 6 | | 13 | 18 | | 14 | 3 | | 15 | 16 | | 16 | 18 | | 17 | 14 | | 18 | 1 | | 19 | 2 | | 20 | 29 | | 21 | 17 | | 22 | 54 | | 23 | 2 | | 24 | 27 | | 25 | 4 | | 26 | 19 | | 27 | 6 | | 28 | 20 | | 29 | 2 | | 30 | 3 | | 31 | 2 | | 32 | 12 | | 33 | 12 | | 34 | 5 | | 35 | 12 | | 36 | 17 | | 37 | 3 | | 38 | 3 | | 39 | 2 | | 40 | 18 | | 41 | 1 | | 42 | 30 | | 43 | 8 | | 44 | 23 | | 45 | 7 | | 46 | 3 | | 47 | 46 | | 48 | 11 | | 49 | 12 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 75 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 152 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 122 | | ratio | 0.066 | | matches | | 0 | "She’d only meant to grab a quick drink before heading back to the flat above the bar—Silas’ flat, technically, though he’d never kicked her out after that night three years ago when she’d shown up on his doorstep, bruised and shaking." | | 1 | "The usual hum of conversation, the clink of glasses, the low thrum of jazz from the corner speakers—all of it felt muted, like the world had turned down the volume." | | 2 | "His back was to her, but she’d know that posture anywhere—the way his shoulders carried themselves, broad and unyielding, like he was still expecting a bullet to come flying through the door at any second." | | 3 | "That ring had always been his tell—something he’d never take off, not even in the field." | | 4 | "The kind of voice that didn’t ask questions—it made statements." | | 5 | "“Still own it.” His gaze flicked to the scar on her wrist—the one she’d gotten when she was twelve, climbing the fence behind his house, skinning her knee on the rusted metal." | | 6 | "Rory looked away, her gaze landing on the old maps pinned to the wall behind the bar—London, Prague, places she’d never been but had heard whispered about in hushed tones when she was younger." | | 7 | "And for the first time in a long time, he let himself wonder if maybe—just maybe—he’d made the wrong choice." |
| |
| 65.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 203 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 18 | | adverbRatio | 0.08866995073891626 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.014778325123152709 | |
| 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 | 8.61 | | std | 8.29 | | cv | 0.962 | | sampleLengths | | 0 | 36 | | 1 | 41 | | 2 | 5 | | 3 | 7 | | 4 | 30 | | 5 | 20 | | 6 | 21 | | 7 | 4 | | 8 | 13 | | 9 | 35 | | 10 | 15 | | 11 | 20 | | 12 | 3 | | 13 | 9 | | 14 | 3 | | 15 | 27 | | 16 | 16 | | 17 | 28 | | 18 | 2 | | 19 | 7 | | 20 | 1 | | 21 | 10 | | 22 | 5 | | 23 | 5 | | 24 | 2 | | 25 | 4 | | 26 | 9 | | 27 | 7 | | 28 | 4 | | 29 | 2 | | 30 | 15 | | 31 | 3 | | 32 | 3 | | 33 | 4 | | 34 | 12 | | 35 | 10 | | 36 | 8 | | 37 | 8 | | 38 | 6 | | 39 | 1 | | 40 | 2 | | 41 | 2 | | 42 | 12 | | 43 | 15 | | 44 | 2 | | 45 | 10 | | 46 | 5 | | 47 | 32 | | 48 | 17 | | 49 | 5 |
| |
| 49.45% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.3360655737704918 | | totalSentences | 122 | | uniqueOpeners | 41 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 66 | | matches | | 0 | "Then she saw him." | | 1 | "Instead, she finished her drink" | | 2 | "Just watched as she slid" |
| | ratio | 0.045 | |
| 68.48% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 66 | | matches | | 0 | "She’d only meant to grab" | | 1 | "She ordered a gin and" | | 2 | "His back was to her," | | 3 | "His hair had more grey" | | 4 | "She should’ve left." | | 5 | "She remembered the first time" | | 6 | "His voice was rougher than" | | 7 | "They both knew it." | | 8 | "She exhaled, half-laugh, half-sigh." | | 9 | "He studied her for a" | | 10 | "His gaze flicked to the" | | 11 | "He’d patched her up in" | | 12 | "She almost laughed." | | 13 | "His voice was steady" | | 14 | "She shot him a look." | | 15 | "He reached for a rag," | | 16 | "She set her glass down." | | 17 | "He poured himself a whiskey," | | 18 | "He took a slow drink," | | 19 | "He trailed off, searching for" |
| | ratio | 0.379 | |
| 58.48% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 66 | | matches | | 0 | "The neon green sign of" | | 1 | "She’d only meant to grab" | | 2 | "The bar was quieter than" | | 3 | "The usual hum of conversation," | | 4 | "Rory slid onto a stool" | | 5 | "She ordered a gin and" | | 6 | "Silas Blackwood stood behind the" | | 7 | "His back was to her," | | 8 | "His hair had more grey" | | 9 | "The limp in his left" | | 10 | "She should’ve left." | | 11 | "Rory took a slow sip" | | 12 | "That ring had always been" | | 13 | "She remembered the first time" | | 14 | "His voice was rougher than" | | 15 | "The kind of voice that" | | 16 | "Rory turned, swirling her glass." | | 17 | "They both knew it." | | 18 | "Silas set the glass down" | | 19 | "She exhaled, half-laugh, half-sigh." |
| | ratio | 0.803 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 66 | | matches | | 0 | "Because I needed to see" | | 1 | "Because I needed to know" | | 2 | "Because I needed to know" |
| | ratio | 0.045 | |
| 95.24% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 2 | | matches | | 0 | "Rory took a slow sip of her drink, watching the way his fingers curled around the glass, the signet ring on his right hand catching the light." | | 1 | "He’d patched her up in his kitchen, his mother scolding him for letting her near the stove." |
| |
| 41.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 6 | | uselessAdditionCount | 1 | | matches | | 0 | "He stepped, his voice low" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |