| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 40 | | tagDensity | 0.35 | | leniency | 0.7 | | rawRatio | 0.071 | | effectiveRatio | 0.05 | |
| 91.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1808 | | 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) | |
| 55.75% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1808 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "scanned" | | 1 | "warmth" | | 2 | "weight" | | 3 | "familiar" | | 4 | "flicker" | | 5 | "eyebrow" | | 6 | "pulse" | | 7 | "stomach" | | 8 | "velvet" | | 9 | "traced" | | 10 | "flickered" | | 11 | "coded" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "stomach dropped" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 128 | | matches | | 0 | "w with grief" | | 1 | "t with fear" |
| |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 128 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 154 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 7 | | totalWords | 1793 | | ratio | 0.004 | | matches | | 0 | "Rory" | | 1 | "Rory" | | 2 | "erased" | | 3 | "Le Corbeau" | | 4 | "Black Velvet" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 46 | | wordCount | 1450 | | uniqueNames | 17 | | maxNameDensity | 1.17 | | worstName | "Silas" | | maxWindowNameDensity | 3 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 2 | | Nest | 2 | | Carter | 3 | | Silas | 17 | | Oyster | 1 | | Aurora | 4 | | Rory | 3 | | Malphora | 1 | | Brexit | 1 | | London | 2 | | Hounslow | 1 | | Evan | 3 | | Queen | 1 | | Corbeau | 2 | | Soho | 1 | | Shoreditch | 1 | | Camden | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Carter" | | 3 | "Silas" | | 4 | "Aurora" | | 5 | "Rory" | | 6 | "Brexit" | | 7 | "Evan" |
| | places | | | globalScore | 0.914 | | windowScore | 0.667 | |
| 53.85% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 78 | | glossingSentenceCount | 3 | | matches | | 0 | "as if steadying himself not just from the weight of memory but from the years between them" | | 1 | "sounded like a metronome counting down" | | 2 | "something akin to hope—not for a future she cou" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 5 | | per1kWords | 2.789 | | wordCount | 1793 | | matches | | 0 | "not even when its usual crowd spilled in after midnight, but tonight it was quiet enough to hear the drip of condensation" | | 1 | "not just from the weight of memory but from the years between them" | | 2 | "not with fear, but with recognition" | | 3 | "not just an old story, but the weight of a life lived in half-truths, of a man who had" | | 4 | "not for a future she could plan, but for a past she could finally face" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 154 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 62 | | mean | 28.92 | | std | 21.84 | | cv | 0.755 | | sampleLengths | | 0 | 63 | | 1 | 84 | | 2 | 58 | | 3 | 4 | | 4 | 78 | | 5 | 53 | | 6 | 35 | | 7 | 63 | | 8 | 64 | | 9 | 10 | | 10 | 64 | | 11 | 28 | | 12 | 6 | | 13 | 21 | | 14 | 60 | | 15 | 23 | | 16 | 24 | | 17 | 52 | | 18 | 4 | | 19 | 9 | | 20 | 43 | | 21 | 6 | | 22 | 4 | | 23 | 6 | | 24 | 25 | | 25 | 47 | | 26 | 13 | | 27 | 15 | | 28 | 16 | | 29 | 59 | | 30 | 32 | | 31 | 10 | | 32 | 21 | | 33 | 46 | | 34 | 5 | | 35 | 38 | | 36 | 23 | | 37 | 25 | | 38 | 45 | | 39 | 6 | | 40 | 26 | | 41 | 21 | | 42 | 26 | | 43 | 80 | | 44 | 33 | | 45 | 9 | | 46 | 2 | | 47 | 4 | | 48 | 25 | | 49 | 47 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 128 | | matches | | |
| 35.39% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 243 | | matches | | 0 | "wasn’t bleeding" | | 1 | "wasn’t looking" | | 2 | "was holding" | | 3 | "was clawing" | | 4 | "wasn’t offering" | | 5 | "was offering" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 154 | | ratio | 0.091 | | matches | | 0 | "She hadn’t been inside this place in years—not since she was seventeen and Silas had still been wearing his hair the color of autumn and hadn’t yet earned the limp that now rode his stride like a ghost." | | 1 | "The signet ring on his right hand caught the light as he tilted the glass to the customer—likely some tourist who didn’t know it was the mark of a retired spymaster who now dispensed gin instead of secrets." | | 2 | "This woman standing in the doorframe wasn’t—she was a woman who had learned to taste pain like wine, sip by deliberate sip, until even the memory of sweetness burned." | | 3 | "His eyes—hazel, still sharp as flint—locked onto hers." | | 4 | "For one moment, she was *Rory*—the girl who had trusted him, who had let him teach her how to walk through shadows without flinching." | | 5 | "“I was in Prague. Again.” His fingers tapped the counter—three slow beats, like a metronome marking lost time." | | 6 | "A customer called from the far corner—an order for two whiskies, neat." | | 7 | "Aurora felt the old familiar hum in her chest—the pulse of a puzzle unfolding." | | 8 | "The name had circulated in whispers years ago—an arms dealer, a fixer, a man who traded in what governments couldn’t admit." | | 9 | "But the truth was clawing its way up her throat—she hadn’t chosen the law." | | 10 | "Maybe from the girl she’d been when Silas first saw her—the one who believed in truth like it was a coin you could weigh in your palm and know its worth." | | 11 | "He looked at her—the woman she’d become, not the girl she’d been—and finally spoke." | | 12 | "But the dates and locations of the next three meetups were—places in Soho, Shoreditch, Camden." | | 13 | "And for the first time in years, Aurora Carter felt something akin to hope—not for a future she could plan, but for a past she could finally face." |
| |
| 98.51% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1151 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 48 | | adverbRatio | 0.04170286707211121 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.013032145960034752 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 154 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 154 | | mean | 11.64 | | std | 9.22 | | cv | 0.792 | | sampleLengths | | 0 | 40 | | 1 | 23 | | 2 | 38 | | 3 | 14 | | 4 | 26 | | 5 | 6 | | 6 | 23 | | 7 | 30 | | 8 | 5 | | 9 | 4 | | 10 | 19 | | 11 | 21 | | 12 | 38 | | 13 | 6 | | 14 | 28 | | 15 | 19 | | 16 | 6 | | 17 | 29 | | 18 | 16 | | 19 | 8 | | 20 | 7 | | 21 | 3 | | 22 | 29 | | 23 | 14 | | 24 | 26 | | 25 | 24 | | 26 | 10 | | 27 | 39 | | 28 | 18 | | 29 | 7 | | 30 | 19 | | 31 | 9 | | 32 | 4 | | 33 | 2 | | 34 | 12 | | 35 | 9 | | 36 | 9 | | 37 | 4 | | 38 | 27 | | 39 | 10 | | 40 | 10 | | 41 | 7 | | 42 | 16 | | 43 | 2 | | 44 | 18 | | 45 | 4 | | 46 | 4 | | 47 | 3 | | 48 | 22 | | 49 | 8 |
| |
| 48.92% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.3246753246753247 | | totalSentences | 154 | | uniqueOpeners | 50 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 9 | | totalSentences | 110 | | matches | | 0 | "Then she saw him." | | 1 | "Just like that, she wasn’t" | | 2 | "Instead she stared at the" | | 3 | "Maybe never again." | | 4 | "Instead it had taught her" | | 5 | "Almost walked out into the" | | 6 | "Maybe from the girl she’d" | | 7 | "Somewhere, someone laughed too loud." | | 8 | "Somewhere behind her, the Raven’s" |
| | ratio | 0.082 | |
| 52.73% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 46 | | totalSentences | 110 | | matches | | 0 | "She hadn’t been inside this" | | 1 | "She touched the dark stubble" | | 2 | "She’d forgotten to take her" | | 3 | "She scanned the room, shoulders" | | 4 | "She wasn’t looking for trouble." | | 5 | "His auburn hair had gone" | | 6 | "She was seventeen again, sneaking" | | 7 | "She stepped forward, boots clicking" | | 8 | "His eyes—hazel, still sharp as" | | 9 | "He didn’t smile." | | 10 | "he said, and the name" | | 11 | "She took the stool across" | | 12 | "She met his gaze." | | 13 | "He let out a low" | | 14 | "She exhaled through her nose," | | 15 | "They weren’t smooth anymore." | | 16 | "She flexed it without thinking," | | 17 | "His fingers tapped the counter—three" | | 18 | "She wanted to laugh." | | 19 | "She hadn’t touched alcohol like" |
| | ratio | 0.418 | |
| 91.82% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 81 | | totalSentences | 110 | | matches | | 0 | "The Raven’s Nest was never" | | 1 | "Aurora Carter pushed through the" | | 2 | "She hadn’t been inside this" | | 3 | "She touched the dark stubble" | | 4 | "She’d forgotten to take her" | | 5 | "The bar smelled of aged" | | 6 | "She scanned the room, shoulders" | | 7 | "She wasn’t looking for trouble." | | 8 | "Silas stood barely four feet" | | 9 | "His auburn hair had gone" | | 10 | "The signet ring on his" | | 11 | "She was seventeen again, sneaking" | | 12 | "Silas had given her whiskey" | | 13 | "This woman standing in the" | | 14 | "She stepped forward, boots clicking" | | 15 | "His eyes—hazel, still sharp as" | | 16 | "Recognition flared, then settled into" | | 17 | "He didn’t smile." | | 18 | "The limp shifted as he" | | 19 | "he said, and the name" |
| | ratio | 0.736 | |
| 45.45% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 110 | | matches | | | ratio | 0.009 | |
| 64.94% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 55 | | technicalSentenceCount | 6 | | matches | | 0 | "Silas stood barely four feet away behind the counter, pulling a pint that glistened in the low amber light." | | 1 | "The signet ring on his right hand caught the light as he tilted the glass to the customer—likely some tourist who didn’t know it was the mark of a retired spyma…" | | 2 | "This woman standing in the doorframe wasn’t—she was a woman who had learned to taste pain like wine, sip by deliberate sip, until even the memory of sweetness b…" | | 3 | "The limp shifted as he straightened, putting a hand on the counter as if steadying himself not just from the weight of memory but from the years between them." | | 4 | "And in his voice, she heard not just an old story, but the weight of a life lived in half-truths, of a man who had loved his country more than he loved himself." | | 5 | "Silas nodded once, a silent salute between old soldiers who had stopped believing in victory." |
| |
| 89.29% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 1 | | matches | | 0 | "he said, and the name was a key turned in a rusted lock" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 40 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0.083 | | effectiveRatio | 0.05 | |