| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 26 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said slowly [slowly]" | | 1 | "Kieran said finally [finally]" |
| | dialogueSentences | 72 | | tagDensity | 0.361 | | leniency | 0.722 | | rawRatio | 0.077 | | effectiveRatio | 0.056 | |
| 85.63% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1740 | | totalAiIsmAdverbs | 5 | | 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) | |
| 74.14% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1740 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "familiar" | | 1 | "eyebrow" | | 2 | "flickered" | | 3 | "silence" | | 4 | "weight" | | 5 | "measured" |
| |
| 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 | 96 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 96 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "managed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 142 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1736 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1265 | | uniqueNames | 11 | | maxNameDensity | 0.71 | | worstName | "Kieran" | | maxWindowNameDensity | 2 | | worstWindowName | "Kieran" | | discoveredNames | | London | 2 | | Carter | 1 | | Raven | 2 | | Nest | 2 | | Ice | 1 | | Kieran | 9 | | Silas | 7 | | Cardiff | 1 | | Rory | 4 | | Cole | 1 | | Solicitor | 1 |
| | persons | | 0 | "Carter" | | 1 | "Raven" | | 2 | "Nest" | | 3 | "Kieran" | | 4 | "Silas" | | 5 | "Rory" | | 6 | "Cole" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 74 | | glossingSentenceCount | 5 | | matches | | 0 | "drizzle that seemed to soak through everything despite the best efforts of umbrellas and overpriced raincoats" | | 1 | "felt like someone else's voice" | | 2 | "as if tasting the words" | | 3 | "felt like something she'd outgrown" | | 4 | "appeared beside her, his limp barely audible on the worn floorboards" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1736 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 142 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 71 | | mean | 24.45 | | std | 19.39 | | cv | 0.793 | | sampleLengths | | 0 | 57 | | 1 | 64 | | 2 | 23 | | 3 | 48 | | 4 | 4 | | 5 | 27 | | 6 | 81 | | 7 | 6 | | 8 | 2 | | 9 | 1 | | 10 | 34 | | 11 | 25 | | 12 | 44 | | 13 | 34 | | 14 | 37 | | 15 | 16 | | 16 | 3 | | 17 | 9 | | 18 | 58 | | 19 | 34 | | 20 | 43 | | 21 | 19 | | 22 | 41 | | 23 | 15 | | 24 | 19 | | 25 | 8 | | 26 | 21 | | 27 | 7 | | 28 | 33 | | 29 | 18 | | 30 | 1 | | 31 | 33 | | 32 | 48 | | 33 | 2 | | 34 | 57 | | 35 | 3 | | 36 | 48 | | 37 | 64 | | 38 | 30 | | 39 | 4 | | 40 | 16 | | 41 | 30 | | 42 | 15 | | 43 | 18 | | 44 | 7 | | 45 | 2 | | 46 | 36 | | 47 | 11 | | 48 | 33 | | 49 | 67 |
| |
| 94.30% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 96 | | matches | | 0 | "being asked" | | 1 | "being asked" | | 2 | "being told" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 225 | | matches | | |
| 42.25% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 142 | | ratio | 0.035 | | matches | | 0 | "She returned the gesture and slid onto the cracked leather, running a finger along the crescent-shaped scar on her wrist—a nervous habit she'd never managed to shake." | | 1 | "She'd imagined this moment a hundred times—confronting him, screaming at him, demanding to know why he'd abandoned her when she needed him most." | | 2 | "Kieran looked at her, and she saw him really seeing her—the delivery uniform, the tired eyes, the small scar on her wrist, the quiet strength she'd built from the rubble of her old life." | | 3 | "He stood there for a moment, looking at her, and she saw the boy again—the one who'd taught her to throw a proper punch, who'd held her hand at her grandmother's funeral, who'd promised her they'd always be friends." | | 4 | "He pulled something from his pocket—a business card, plain white, embossed with simple black lettering." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 853 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.03399765533411489 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.009378663540445486 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 142 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 142 | | mean | 12.23 | | std | 9.59 | | cv | 0.785 | | sampleLengths | | 0 | 24 | | 1 | 33 | | 2 | 24 | | 3 | 13 | | 4 | 27 | | 5 | 16 | | 6 | 7 | | 7 | 41 | | 8 | 7 | | 9 | 4 | | 10 | 27 | | 11 | 24 | | 12 | 26 | | 13 | 31 | | 14 | 6 | | 15 | 2 | | 16 | 1 | | 17 | 13 | | 18 | 4 | | 19 | 17 | | 20 | 13 | | 21 | 2 | | 22 | 10 | | 23 | 28 | | 24 | 16 | | 25 | 10 | | 26 | 19 | | 27 | 5 | | 28 | 8 | | 29 | 2 | | 30 | 3 | | 31 | 21 | | 32 | 3 | | 33 | 6 | | 34 | 10 | | 35 | 3 | | 36 | 7 | | 37 | 2 | | 38 | 26 | | 39 | 19 | | 40 | 9 | | 41 | 4 | | 42 | 11 | | 43 | 23 | | 44 | 4 | | 45 | 3 | | 46 | 1 | | 47 | 23 | | 48 | 12 | | 49 | 16 |
| |
| 50.70% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3591549295774648 | | totalSentences | 142 | | uniqueOpeners | 51 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 89 | | matches | | 0 | "Then his gaze landed on" | | 1 | "Instead, he pulled out the" | | 2 | "Somewhere in the back, a" |
| | ratio | 0.034 | |
| 8.76% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 89 | | matches | | 0 | "He raised an eyebrow and" | | 1 | "She returned the gesture and" | | 2 | "She was about to agree" | | 3 | "He was tall, broad-shouldered, wearing" | | 4 | "His hair was shorter than" | | 5 | "He stepped inside, blinking against" | | 6 | "She knew that voice." | | 7 | "She'd heard it shouting across" | | 8 | "She heard herself say it," | | 9 | "He crossed the room in" | | 10 | "he said, shaking his head" | | 11 | "He stopped, the sentence unfinished" | | 12 | "She'd always counted." | | 13 | "She stopped, the memory of" | | 14 | "He said it simply, without" | | 15 | "he said, his voice carrying" | | 16 | "His hazel eyes moved between" | | 17 | "They were different." | | 18 | "He wore a watch that" | | 19 | "she said, and meant it," |
| | ratio | 0.528 | |
| 21.80% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 78 | | totalSentences | 89 | | matches | | 0 | "The rain had settled into" | | 1 | "Aurora Carter ducked through the" | | 2 | "Silas looked up from polishing" | | 3 | "He raised an eyebrow and" | | 4 | "She returned the gesture and" | | 5 | "Silas asked, setting a glass" | | 6 | "Ice, lemon, the way she" | | 7 | "Rory took a long drink," | | 8 | "She was about to agree" | | 9 | "He was tall, broad-shouldered, wearing" | | 10 | "His hair was shorter than" | | 11 | "He stepped inside, blinking against" | | 12 | "The voice cracked the name" | | 13 | "She knew that voice." | | 14 | "She'd heard it shouting across" | | 15 | "She heard herself say it," | | 16 | "Someone who still believed in" | | 17 | "He crossed the room in" | | 18 | "he said, shaking his head" | | 19 | "He stopped, the sentence unfinished" |
| | ratio | 0.876 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 89 | | matches | (empty) | | ratio | 0 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 7 | | matches | | 0 | "The rain had settled into that particular London drizzle that seemed to soak through everything despite the best efforts of umbrellas and overpriced raincoats." | | 1 | "Aurora Carter ducked through the door of The Raven's Nest, shaking water from her shoulders, the familiar smell of old wood and whiskey hitting her before her e…" | | 2 | "She was about to agree when the door swung open again, bringing with it a gust of damp air and a figure that made her freeze mid-sip." | | 3 | "He was tall, broad-shouldered, wearing a charcoal overcoat that looked expensive in that understated way that meant it cost more than her monthly rent." | | 4 | "He stepped inside, blinking against the dimness, and she watched his eyes adjust, searching the room with the careful, practiced scan of someone who had learned…" | | 5 | "The knuckles that had once been perpetually bruised from climbing fences and throwing punches were smooth now, the nails trimmed and cared for." | | 6 | "She slipped the card into her pocket, next to her keys, next to the small part of her that had been waiting for this moment for eight years." |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 26 | | uselessAdditionCount | 2 | | matches | | 0 | "He stopped, the sentence unfinished" | | 1 | "He repeated, as if tasting the words" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 13 | | fancyCount | 2 | | fancyTags | | 0 | "She heard (hear)" | | 1 | "He repeated (repeat)" |
| | dialogueSentences | 72 | | tagDensity | 0.181 | | leniency | 0.361 | | rawRatio | 0.154 | | effectiveRatio | 0.056 | |