| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 2 | | adverbTags | | 0 | "She smiled again [again]" | | 1 | "Her voice cracked just [just]" |
| | dialogueSentences | 58 | | tagDensity | 0.259 | | leniency | 0.517 | | rawRatio | 0.133 | | effectiveRatio | 0.069 | |
| 88.11% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1262 | | 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) | |
| 92.08% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1262 | | totalAiIsms | 2 | | found | | | highlights | | |
| 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 | 78 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 78 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 120 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 77 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1253 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 14 | | wordCount | 749 | | uniqueNames | 10 | | maxNameDensity | 0.67 | | worstName | "Silas" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Silas" | | discoveredNames | | Blackwood | 1 | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Marsh | 1 | | Welsh | 1 | | Home | 1 | | Counties | 1 | | Underneath | 1 | | Silas | 5 |
| | persons | | 0 | "Blackwood" | | 1 | "Raven" | | 2 | "Nest" | | 3 | "Silas" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 50 | | 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 | 1253 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 120 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 69 | | mean | 18.16 | | std | 19.46 | | cv | 1.072 | | sampleLengths | | 0 | 65 | | 1 | 3 | | 2 | 31 | | 3 | 11 | | 4 | 6 | | 5 | 52 | | 6 | 1 | | 7 | 1 | | 8 | 30 | | 9 | 17 | | 10 | 60 | | 11 | 2 | | 12 | 5 | | 13 | 26 | | 14 | 4 | | 15 | 3 | | 16 | 39 | | 17 | 4 | | 18 | 1 | | 19 | 48 | | 20 | 5 | | 21 | 31 | | 22 | 8 | | 23 | 51 | | 24 | 5 | | 25 | 3 | | 26 | 18 | | 27 | 3 | | 28 | 45 | | 29 | 2 | | 30 | 6 | | 31 | 47 | | 32 | 4 | | 33 | 2 | | 34 | 1 | | 35 | 6 | | 36 | 16 | | 37 | 6 | | 38 | 5 | | 39 | 3 | | 40 | 36 | | 41 | 52 | | 42 | 5 | | 43 | 32 | | 44 | 4 | | 45 | 2 | | 46 | 10 | | 47 | 20 | | 48 | 10 | | 49 | 22 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 78 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 146 | | matches | | 0 | "were working" | | 1 | "was reporting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 1 | | flaggedSentences | 8 | | totalSentences | 120 | | ratio | 0.067 | | matches | | 0 | "The Raven's Nest had been quiet all night—a Tuesday, rain chasing even the regulars home early." | | 1 | "She'd lost the Welsh accent somewhere along the way—her vowels had gone flat, Home Counties polish." | | 2 | "His left knee ached—the one that had ended everything—and he came around the bar without limping, an old habit, a vanity he'd never quite killed." | | 3 | "Her eyes watered; she blinked it away." | | 4 | "She set the glass down and looked at him, and he saw it then—the thing that was different." | | 5 | "When she spoke again, her voice had dropped, flattened out, the way it used to when they were working—when she was reporting something factual, something that had already happened and couldn't be changed." | | 6 | "And there it was—the thing behind her eyes, unpacked, laid out on the bar between them." | | 7 | "She turned to face him one last time, and for a second—just a second—the crooked smile came back, pulled to the left, the one that used to mean trouble." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 760 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.038157894736842106 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.007894736842105263 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 120 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 120 | | mean | 10.44 | | std | 10.63 | | cv | 1.018 | | sampleLengths | | 0 | 17 | | 1 | 14 | | 2 | 16 | | 3 | 18 | | 4 | 3 | | 5 | 6 | | 6 | 16 | | 7 | 9 | | 8 | 11 | | 9 | 6 | | 10 | 7 | | 11 | 5 | | 12 | 5 | | 13 | 16 | | 14 | 19 | | 15 | 1 | | 16 | 1 | | 17 | 5 | | 18 | 25 | | 19 | 7 | | 20 | 10 | | 21 | 27 | | 22 | 8 | | 23 | 7 | | 24 | 18 | | 25 | 2 | | 26 | 5 | | 27 | 21 | | 28 | 5 | | 29 | 4 | | 30 | 3 | | 31 | 7 | | 32 | 6 | | 33 | 21 | | 34 | 5 | | 35 | 4 | | 36 | 1 | | 37 | 42 | | 38 | 6 | | 39 | 5 | | 40 | 19 | | 41 | 7 | | 42 | 5 | | 43 | 8 | | 44 | 5 | | 45 | 18 | | 46 | 9 | | 47 | 8 | | 48 | 11 | | 49 | 5 |
| |
| 66.94% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.44166666666666665 | | totalSentences | 120 | | uniqueOpeners | 53 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 71 | | matches | | 0 | "Just the creak of hinges," | | 1 | "Then a voice he hadn't" | | 2 | "Somewhere in the back, the" | | 3 | "Then it closed behind her." |
| | ratio | 0.056 | |
| 28.45% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 71 | | matches | | 0 | "He tugged at his beard," | | 1 | "He didn't look up right" | | 2 | "His hand stopped on the" | | 3 | "She'd lost the Welsh accent" | | 4 | "He set the glass down." | | 5 | "His left knee ached—the one" | | 6 | "He didn't actually know where" | | 7 | "She shrugged off the coat" | | 8 | "She took the stool at" | | 9 | "He poured two whiskies without" | | 10 | "She turned the glass in" | | 11 | "She smiled again, that same" | | 12 | "She took a sip" | | 13 | "Her eyes watered; she blinked" | | 14 | "She set the glass down" | | 15 | "She touched the rim of" | | 16 | "She looked down at her" | | 17 | "He turned to look at" | | 18 | "She stared into her glass" | | 19 | "She went quiet." |
| | ratio | 0.479 | |
| 51.55% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 58 | | totalSentences | 71 | | matches | | 0 | "The neon sign buzzed green" | | 1 | "Silas Blackwood leaned on his" | | 2 | "The Raven's Nest had been" | | 3 | "He tugged at his beard," | | 4 | "The door opened." | | 5 | "He didn't look up right" | | 6 | "His hand stopped on the" | | 7 | "Vivienne Marsh stood in the" | | 8 | "A long wool coat, expensive." | | 9 | "She'd lost the Welsh accent" | | 10 | "He set the glass down." | | 11 | "His left knee ached—the one" | | 12 | "He didn't actually know where" | | 13 | "She shrugged off the coat" | | 14 | "A wedding ring he hadn't" | | 15 | "She took the stool at" | | 16 | "Some habits didn't wash out." | | 17 | "He poured two whiskies without" | | 18 | "She turned the glass in" | | 19 | "The rain filled the silence." |
| | ratio | 0.817 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 71 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 24 | | technicalSentenceCount | 3 | | matches | | 0 | "Silas Blackwood leaned on his good leg, polishing a glass that didn't need polishing." | | 1 | "She looked down at her hand, as if she'd forgotten the ring was there." | | 2 | "When she spoke again, her voice had dropped, flattened out, the way it used to when they were working—when she was reporting something factual, something that h…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 58 | | tagDensity | 0.086 | | leniency | 0.172 | | rawRatio | 0 | | effectiveRatio | 0 | |