| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 3 | | adverbTags | | 0 | "Imogen finished quietly [quietly]" | | 1 | "She gestured broadly [broadly]" | | 2 | "Imogen hesitated then [then]" |
| | dialogueSentences | 74 | | tagDensity | 0.243 | | leniency | 0.486 | | rawRatio | 0.167 | | effectiveRatio | 0.081 | |
| 84.89% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1655 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "suddenly" | | 1 | "slowly" | | 2 | "perfectly" | | 3 | "carefully" | | 4 | "really" |
| |
| 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) | |
| 78.85% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1655 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "otherworldly" | | 1 | "silence" | | 2 | "measured" | | 3 | "flicker" | | 4 | "constructed" | | 5 | "traced" |
| |
| 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 | 84 | | matches | (empty) | |
| 57.82% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 2 | | narrationSentences | 84 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 140 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1637 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 41.41% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 64 | | wordCount | 1059 | | uniqueNames | 17 | | maxNameDensity | 2.17 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Imogen" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Tuesday | 1 | | Miles | 2 | | Davis | 2 | | October | 1 | | Thames | 1 | | Cardiff | 1 | | Imogen | 21 | | Talisker | 1 | | Rory | 23 | | Evan | 1 | | Frank | 1 | | Guinness | 1 | | London | 2 | | Far | 1 | | Since | 3 |
| | persons | | 0 | "Davis" | | 1 | "Imogen" | | 2 | "Rory" | | 3 | "Evan" | | 4 | "Frank" | | 5 | "Since" |
| | places | | 0 | "Raven" | | 1 | "Thames" | | 2 | "Cardiff" | | 3 | "London" | | 4 | "Far" |
| | globalScore | 0.414 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 66 | | 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 | 1637 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 140 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 82 | | mean | 19.96 | | std | 18.23 | | cv | 0.913 | | sampleLengths | | 0 | 44 | | 1 | 54 | | 2 | 31 | | 3 | 33 | | 4 | 1 | | 5 | 49 | | 6 | 27 | | 7 | 6 | | 8 | 28 | | 9 | 26 | | 10 | 68 | | 11 | 16 | | 12 | 3 | | 13 | 8 | | 14 | 49 | | 15 | 12 | | 16 | 4 | | 17 | 2 | | 18 | 16 | | 19 | 29 | | 20 | 25 | | 21 | 3 | | 22 | 3 | | 23 | 9 | | 24 | 13 | | 25 | 32 | | 26 | 6 | | 27 | 20 | | 28 | 3 | | 29 | 28 | | 30 | 6 | | 31 | 8 | | 32 | 32 | | 33 | 14 | | 34 | 7 | | 35 | 21 | | 36 | 33 | | 37 | 24 | | 38 | 5 | | 39 | 5 | | 40 | 72 | | 41 | 9 | | 42 | 1 | | 43 | 54 | | 44 | 27 | | 45 | 2 | | 46 | 14 | | 47 | 13 | | 48 | 55 | | 49 | 9 |
| |
| 96.91% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 84 | | matches | | 0 | "been promised" | | 1 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 188 | | matches | | 0 | "were discussing" | | 1 | "weren't saying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 140 | | ratio | 0.064 | | matches | | 0 | "It didn't break—some small mercy—but it clattered against the wood with a sound that seemed too loud, seemed to announce something she couldn't name." | | 1 | "A diamond caught the light on her left hand—engagement ring, wedding band, the full architecture of success." | | 2 | "Her eyes—still that startling green, still framed by the same delicate brows—assessed Rory over the rim." | | 3 | "Her scar caught the light—the small crescent on her left wrist, normally hidden by her watch strap, now exposed as she'd rolled up her sleeves earlier that evening." | | 4 | "Imogen rarely swore—they'd used to joke about it, how she'd say \"sugar\" when she stubbed her toe, \"fiddlesticks\" when a case note went missing." | | 5 | "Imogen's composure cracked, just for a moment—her lips pressed together, her jaw tightened, and in that flash of rawness, Rory saw the girl she'd known." | | 6 | "Imogen studied her face, searching for something—an admission, an accusation, some sign of the person she'd known." | | 7 | "Imogen had everything—the career, the husband, the life they'd all been promised if they worked hard enough and followed the rules." | | 8 | "Imogen glanced around the bar, really looking at it for the first time—the old maps on the walls, the photographs of places and people from decades past, the warm shadows that made the space feel timeless and separate from the London streets outside." |
| |
| 99.38% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 909 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.0407040704070407 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.014301430143014302 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 140 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 140 | | mean | 11.69 | | std | 8.84 | | cv | 0.756 | | sampleLengths | | 0 | 25 | | 1 | 19 | | 2 | 11 | | 3 | 18 | | 4 | 25 | | 5 | 18 | | 6 | 13 | | 7 | 9 | | 8 | 24 | | 9 | 1 | | 10 | 19 | | 11 | 9 | | 12 | 21 | | 13 | 7 | | 14 | 16 | | 15 | 4 | | 16 | 6 | | 17 | 14 | | 18 | 14 | | 19 | 3 | | 20 | 4 | | 21 | 19 | | 22 | 25 | | 23 | 9 | | 24 | 34 | | 25 | 8 | | 26 | 8 | | 27 | 3 | | 28 | 8 | | 29 | 17 | | 30 | 15 | | 31 | 17 | | 32 | 12 | | 33 | 4 | | 34 | 2 | | 35 | 10 | | 36 | 6 | | 37 | 22 | | 38 | 7 | | 39 | 9 | | 40 | 16 | | 41 | 3 | | 42 | 3 | | 43 | 9 | | 44 | 5 | | 45 | 8 | | 46 | 5 | | 47 | 12 | | 48 | 15 | | 49 | 6 |
| |
| 55.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.36428571428571427 | | totalSentences | 140 | | uniqueOpeners | 51 | |
| 83.33% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 80 | | matches | | 0 | "Suddenly, she was twenty-one again," | | 1 | "Then she was gone, swallowed" |
| | ratio | 0.025 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 80 | | matches | | 0 | "It didn't break—some small mercy—but" | | 1 | "Her coat was camel-coloured wool," | | 2 | "She took a step forward," | | 3 | "She didn't finish." | | 4 | "She didn't need to." | | 5 | "She hadn't thought about how" | | 6 | "She removed her gloves finger" | | 7 | "Her eyes—still that startling green," | | 8 | "She reached for a clean" | | 9 | "Her scar caught the light—the" | | 10 | "Her expression changed, just barely," | | 11 | "She gestured broadly, encompassing the" | | 12 | "Her voice came out steady," | | 13 | "She poured it slowly, letting" | | 14 | "Her perfectly manicured fingers traced" | | 15 | "She had nothing to hide" | | 16 | "She blinked, and for a" | | 17 | "Her fingers were warm, steady." | | 18 | "She paused at the door," |
| | ratio | 0.238 | |
| 35.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 80 | | matches | | 0 | "The green neon sign bled" | | 1 | "Rory wiped down the mahogany" | | 2 | "Silas had retreated to his" | | 3 | "The door swung open, bringing" | | 4 | "Rory glanced up, ready with" | | 5 | "The glass she'd been polishing" | | 6 | "It didn't break—some small mercy—but" | | 7 | "The woman stood in the" | | 8 | "Her coat was camel-coloured wool," | | 9 | "Imogen's voice cracked on the" | | 10 | "She took a step forward," | | 11 | "Imogen's laugh came out brittle," | | 12 | "She didn't finish." | | 13 | "She didn't need to." | | 14 | "The silence filled in the" | | 15 | "Rory was acutely aware of" | | 16 | "She hadn't thought about how" | | 17 | "Rory gestured to the nearest" | | 18 | "Imogen settled onto the stool" | | 19 | "She removed her gloves finger" |
| | ratio | 0.85 | |
| 62.50% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 80 | | matches | | | ratio | 0.013 | |
| 90.59% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 3 | | matches | | 0 | "Inside The Raven's Nest, the rain tapped its fingers against the windows like a guest who'd forgotten the password." | | 1 | "It didn't break—some small mercy—but it clattered against the wood with a sound that seemed too loud, seemed to announce something she couldn't name." | | 2 | "Imogen glanced around the bar, really looking at it for the first time—the old maps on the walls, the photographs of places and people from decades past, the wa…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 74 | | tagDensity | 0.027 | | leniency | 0.054 | | rawRatio | 0.5 | | effectiveRatio | 0.027 | |