| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 1 | | adverbTags | | 0 | "Her voice sounded too [too]" |
| | dialogueSentences | 9 | | tagDensity | 0.444 | | leniency | 0.889 | | rawRatio | 0.25 | | effectiveRatio | 0.222 | |
| 92.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1315 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 54.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1315 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "pulsed" | | 1 | "glistening" | | 2 | "pulse" | | 3 | "whisper" | | 4 | "silence" | | 5 | "stomach" | | 6 | "shattered" | | 7 | "looming" | | 8 | "etched" |
| |
| 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 | 136 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 136 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 141 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 24 | | markdownWords | 57 | | totalWords | 1302 | | ratio | 0.044 | | matches | | 0 | "wrong" | | 1 | "You came here for a reason." | | 2 | "Stop second-guessing and get it done." | | 3 | "might" | | 4 | "you’ll always be mine" | | 5 | "Okay. Fine." | | 6 | "recoiled" | | 7 | "You’re imagining it." | | 8 | "bent" | | 9 | "breath" | | 10 | "Never announce yourself to the dark." | | 11 | "Laila" | | 12 | "Laila, come out and play." | | 13 | "\"Maaaaal-pho-raaa.\"" | | 14 | "claws" | | 15 | "inside her skull" | | 16 | "touched" | | 17 | "you made me do this" | | 18 | "popped" | | 19 | "this" | | 20 | "burned" | | 21 | "shattered" | | 22 | "twisted" | | 23 | "Next time, Malphora." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.70% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1267 | | uniqueNames | 11 | | maxNameDensity | 1.03 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 13 | | October | 1 | | Eva | 1 | | Right | 1 | | Silas | 4 | | Evan | 8 | | Stupid | 1 | | Silence | 2 | | Richmond | 1 | | Park | 1 | | London | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Silas" | | 3 | "Evan" |
| | places | | 0 | "October" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "London" |
| | globalScore | 0.987 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 72 | | 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 | 1302 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 141 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 60 | | mean | 21.7 | | std | 22.42 | | cv | 1.033 | | sampleLengths | | 0 | 12 | | 1 | 59 | | 2 | 34 | | 3 | 55 | | 4 | 10 | | 5 | 6 | | 6 | 67 | | 7 | 6 | | 8 | 3 | | 9 | 4 | | 10 | 28 | | 11 | 41 | | 12 | 8 | | 13 | 37 | | 14 | 9 | | 15 | 2 | | 16 | 44 | | 17 | 3 | | 18 | 4 | | 19 | 24 | | 20 | 1 | | 21 | 22 | | 22 | 13 | | 23 | 2 | | 24 | 2 | | 25 | 45 | | 26 | 8 | | 27 | 9 | | 28 | 16 | | 29 | 2 | | 30 | 63 | | 31 | 1 | | 32 | 5 | | 33 | 60 | | 34 | 2 | | 35 | 66 | | 36 | 11 | | 37 | 18 | | 38 | 1 | | 39 | 71 | | 40 | 31 | | 41 | 16 | | 42 | 11 | | 43 | 47 | | 44 | 41 | | 45 | 25 | | 46 | 3 | | 47 | 75 | | 48 | 2 | | 49 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 136 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 208 | | matches | | 0 | "was playing" | | 1 | "was shrinking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 141 | | ratio | 0.106 | | matches | | 0 | "Not rotten, not sour—just *wrong*, like the scent of rain on hot pavement when the sky was bone-dry." | | 1 | "The thing Silas had muttered about over whiskey and clinking glasses, the thing that might—*might*—explain the nightmares, the way her reflection sometimes moved when she wasn’t." | | 2 | "Not a sound, not a rustle—just the sudden, suffocating awareness that the path back was gone." | | 3 | "The standing stones were still there, pale as old bones in the moonlight, but the gap between them—the one she’d just walked through—was sealed shut by a wall of brambles, their thorns black and glistening." | | 4 | "She reached out—" | | 5 | "—and the thorns *recoiled*." | | 6 | "She whipped around—" | | 7 | "Then—" | | 8 | "The giggle came again, closer this time, and then—" | | 9 | "The thing’s fingers tightened, its nails—no, *claws*—digging into the fabric." | | 10 | "And beyond them—" | | 11 | "Rory fell to her knees as the world inverted—sky where earth should be, roots writhing like snakes in the air, the standing stones now looming above her, their shadows stretching into the abyss." | | 12 | "And then—" | | 13 | "Slowly, she reached into her bag and pulled out the knife she’d brought—the one Silas had given her, its blade etched with runes that burned against her fingertips." | | 14 | "But as she stepped free of the grove, as the night air hit her lungs like a blessing, she heard it—" |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1280 | | adjectiveStacks | 1 | | stackExamples | | 0 | "same smooth, lipless horror" |
| | adverbCount | 42 | | adverbRatio | 0.0328125 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.00390625 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 141 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 141 | | mean | 9.23 | | std | 8.46 | | cv | 0.916 | | sampleLengths | | 0 | 12 | | 1 | 18 | | 2 | 25 | | 3 | 14 | | 4 | 1 | | 5 | 1 | | 6 | 14 | | 7 | 14 | | 8 | 6 | | 9 | 1 | | 10 | 2 | | 11 | 26 | | 12 | 26 | | 13 | 10 | | 14 | 6 | | 15 | 16 | | 16 | 8 | | 17 | 35 | | 18 | 8 | | 19 | 1 | | 20 | 5 | | 21 | 3 | | 22 | 4 | | 23 | 4 | | 24 | 3 | | 25 | 18 | | 26 | 3 | | 27 | 8 | | 28 | 17 | | 29 | 5 | | 30 | 3 | | 31 | 6 | | 32 | 1 | | 33 | 1 | | 34 | 8 | | 35 | 10 | | 36 | 16 | | 37 | 7 | | 38 | 4 | | 39 | 9 | | 40 | 2 | | 41 | 23 | | 42 | 10 | | 43 | 11 | | 44 | 3 | | 45 | 4 | | 46 | 2 | | 47 | 2 | | 48 | 17 | | 49 | 3 |
| |
| 48.46% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.3546099290780142 | | totalSentences | 141 | | uniqueOpeners | 50 | |
| 91.74% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 109 | | matches | | 0 | "Then the whisper came." | | 1 | "Instead, she bared her teeth." | | 2 | "Slowly, she reached into her" |
| | ratio | 0.028 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 109 | | matches | | 0 | "She paused, her boot hovering" | | 1 | "She exhaled through her nose," | | 2 | "*You came here for a" | | 3 | "She turned slowly, heart kicking" | | 4 | "She reached out—" | | 5 | "She scrubbed a hand over" | | 6 | "She squared her shoulders and" | | 7 | "She told herself it was" | | 8 | "It wasn’t the wind." | | 9 | "She turned a slow circle," | | 10 | "*You’re imagining it.*" | | 11 | "She whipped around—" | | 12 | "Her voice sounded too loud" | | 13 | "She knew that laugh." | | 14 | "She backed up a step." | | 15 | "Its limbs were too long," | | 16 | "It cocked its head, still" | | 17 | "Her blood turned to ice." | | 18 | "He stood with his hands" | | 19 | "he said, and his voice" |
| | ratio | 0.294 | |
| 60.92% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 109 | | matches | | 0 | "The air smelled wrong the" | | 1 | "She paused, her boot hovering" | | 2 | "The pendant around her neck," | | 3 | "She exhaled through her nose," | | 4 | "*You came here for a" | | 5 | "*Stop second-guessing and get it" | | 6 | "The thing Silas had muttered" | | 7 | "The way Evan’s voice still" | | 8 | "Rory adjusted the strap of" | | 9 | "The trees closed in behind" | | 10 | "She turned slowly, heart kicking" | | 11 | "The standing stones were still" | | 12 | "A bead of sweat trickled" | | 13 | "She reached out—" | | 14 | "The crimson gem flared once," | | 15 | "The gap reopened." | | 16 | "Rory’s laugh came out too" | | 17 | "She scrubbed a hand over" | | 18 | "The grove was playing tricks." | | 19 | "That was all." |
| | ratio | 0.798 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 109 | | matches | | 0 | "—and the thorns *recoiled*." | | 1 | "As if something had *breath*." | | 2 | "As if he’d never hurt" |
| | ratio | 0.028 | |
| 83.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 4 | | matches | | 0 | "She paused, her boot hovering over a patch of wildflowers that shouldn’t have been blooming in October, their petals too vivid, their edges too sharp." | | 1 | "The grove was shrinking, the trees pressing in, their bark splitting open to reveal glistening black mouths, their roots writhing like serpents in the dirt." | | 2 | "He stood with his hands in his pockets, his dark hair neatly combed, his suit immaculate, as if he’d just stepped out of the courtroom where they’d first met." | | 3 | "She kept her eyes fixed on the dark shape of Richmond Park beyond, on the distant glow of London’s lights, on the promise of Silas’s bar and the whiskey that wo…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 2 | | matches | | 0 | "he said, and his voice was warm, fond, the way it had been before the first slap, the first *you made me do this*" | | 1 | "He reached out, his fingers brushing her cheek" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.111 | | leniency | 0.222 | | rawRatio | 0 | | effectiveRatio | 0 | |