| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 33 | | adverbTagCount | 7 | | adverbTags | | 0 | "Margot said finally [finally]" | | 1 | "She turned back [back]" | | 2 | "Her voice broke slightly [slightly]" | | 3 | "she said quietly [quietly]" | | 4 | "Margot's grip tightened briefly [briefly]" | | 5 | "she said finally [finally]" | | 6 | "Rory said carefully [carefully]" |
| | dialogueSentences | 67 | | tagDensity | 0.493 | | leniency | 0.985 | | rawRatio | 0.212 | | effectiveRatio | 0.209 | |
| 79.55% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1956 | | totalAiIsmAdverbs | 8 | | found | | | highlights | | 0 | "slightly" | | 1 | "very" | | 2 | "carefully" | | 3 | "gently" |
| |
| 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) | |
| 51.43% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1956 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "familiar" | | 1 | "warmth" | | 2 | "weight" | | 3 | "scanning" | | 4 | "intensity" | | 5 | "traced" | | 6 | "silence" | | 7 | "flicked" | | 8 | "stomach" | | 9 | "flicker" | | 10 | "tension" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "hung in the air" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "hung in the air" | | 1 | "sent a jolt through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 90 | | matches | (empty) | |
| 95.24% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 90 | | filterMatches | (empty) | | hedgeMatches | | 0 | "started to" | | 1 | "try to" | | 2 | "began to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 123 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1944 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 1 | | matches | | 0 | "When he brought it, she asked him to pour one for Margot too, ignoring her protest about not drinking anymore." |
| |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 78 | | wordCount | 1346 | | uniqueNames | 11 | | maxNameDensity | 2.45 | | worstName | "Rory" | | maxWindowNameDensity | 5 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Silas | 8 | | Thursday | 1 | | Jameson | 1 | | Rory | 33 | | Sinclair | 1 | | Margot | 29 | | Nina | 1 | | Simone | 1 | | London | 1 |
| | persons | | 0 | "Raven" | | 1 | "Silas" | | 2 | "Jameson" | | 3 | "Rory" | | 4 | "Sinclair" | | 5 | "Margot" | | 6 | "Nina" | | 7 | "Simone" |
| | places | | | globalScore | 0.274 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.514 | | wordCount | 1944 | | matches | | 0 | "Not just apologize, but actually talk" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 123 | | matches | | 0 | "curls that Rory" | | 1 | "feeling that her" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 34.11 | | std | 23.66 | | cv | 0.694 | | sampleLengths | | 0 | 51 | | 1 | 106 | | 2 | 67 | | 3 | 18 | | 4 | 21 | | 5 | 38 | | 6 | 2 | | 7 | 15 | | 8 | 20 | | 9 | 49 | | 10 | 4 | | 11 | 25 | | 12 | 76 | | 13 | 47 | | 14 | 29 | | 15 | 33 | | 16 | 14 | | 17 | 65 | | 18 | 10 | | 19 | 2 | | 20 | 49 | | 21 | 24 | | 22 | 32 | | 23 | 2 | | 24 | 14 | | 25 | 32 | | 26 | 26 | | 27 | 37 | | 28 | 37 | | 29 | 14 | | 30 | 69 | | 31 | 45 | | 32 | 79 | | 33 | 8 | | 34 | 45 | | 35 | 39 | | 36 | 9 | | 37 | 42 | | 38 | 32 | | 39 | 76 | | 40 | 31 | | 41 | 2 | | 42 | 30 | | 43 | 82 | | 44 | 38 | | 45 | 32 | | 46 | 44 | | 47 | 2 | | 48 | 31 | | 49 | 77 |
| |
| 93.57% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 90 | | matches | | 0 | "being asked" | | 1 | "was gone" | | 2 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 241 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 123 | | ratio | 0.065 | | matches | | 0 | "Something in the way the woman moved—the particular tilt of her shoulders, the way she tucked her chin while scanning the room—sent a jolt through Rory's chest." | | 1 | "She'd lost weight—too much weight, Rory thought—and there was something in her posture that spoke of exhaustion held at bay through sheer will." | | 2 | "She watched Margot approach, cataloging the changes—the new lines at the corners of her eyes, the way she held her left arm slightly closer to her body than her right, the absence of the silver pendant she used to wear at her throat." | | 3 | "That their plans—the flat they'd talked about sharing, the life they'd sketched out in late-night conversations—had been meaningless to Margot in a way Rory had never suspected." | | 4 | "\"Things I can't talk about.\" Margot smiled, and this time there was a ghost of warmth in it—a flicker of the woman Rory remembered." | | 5 | "She remembered everything about that trip—the sound of Margot's laughter, the way the ocean looked at dawn, the feeling that her whole life was opening up in front of her like a road with no end." | | 6 | "\"I have a flat in Brixton. I have a therapist who's very patient with me. I have about a thousand hours of missed sleep to catch up on.\" She turned to look at Rory, and for just a moment, something of the old Margot surfaced—vulnerable, hopeful, afraid." | | 7 | "Something loosened in Margot's face—a tension Rory hadn't realized was there until it was gone." |
| |
| 93.72% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1364 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped scar" |
| | adverbCount | 55 | | adverbRatio | 0.04032258064516129 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.010997067448680353 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 123 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 123 | | mean | 15.8 | | std | 10.99 | | cv | 0.695 | | sampleLengths | | 0 | 23 | | 1 | 28 | | 2 | 7 | | 3 | 35 | | 4 | 33 | | 5 | 31 | | 6 | 26 | | 7 | 30 | | 8 | 11 | | 9 | 18 | | 10 | 18 | | 11 | 3 | | 12 | 34 | | 13 | 4 | | 14 | 2 | | 15 | 12 | | 16 | 3 | | 17 | 15 | | 18 | 5 | | 19 | 2 | | 20 | 20 | | 21 | 27 | | 22 | 1 | | 23 | 3 | | 24 | 25 | | 25 | 10 | | 26 | 17 | | 27 | 26 | | 28 | 23 | | 29 | 8 | | 30 | 11 | | 31 | 15 | | 32 | 13 | | 33 | 8 | | 34 | 21 | | 35 | 25 | | 36 | 8 | | 37 | 13 | | 38 | 1 | | 39 | 22 | | 40 | 43 | | 41 | 10 | | 42 | 2 | | 43 | 20 | | 44 | 29 | | 45 | 13 | | 46 | 11 | | 47 | 10 | | 48 | 17 | | 49 | 5 |
| |
| 56.91% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3902439024390244 | | totalSentences | 123 | | uniqueOpeners | 48 | |
| 39.68% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 84 | | matches | | 0 | "Then Margot's mouth curved into" |
| | ratio | 0.012 | |
| 72.38% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 84 | | matches | | 0 | "She hadn't planned on coming" | | 1 | "He nodded at her approach," | | 2 | "he said, reaching for the" | | 3 | "She slid onto a stool," | | 4 | "He set the glass in" | | 5 | "He tapped his temple" | | 6 | "Her bright blue eyes had" | | 7 | "It couldn't be." | | 8 | "She'd lost weight—too much weight," | | 9 | "They were the eyes of" | | 10 | "Her voice was rougher than" | | 11 | "She watched Margot approach, cataloging" | | 12 | "He set a glass of" | | 13 | "They hung in the air" | | 14 | "She tilted her head, studying" | | 15 | "She covered it by picking" | | 16 | "She stopped, struggling to keep" | | 17 | "She broke off, unable to" | | 18 | "Her voice was soft now," | | 19 | "She reached out, her fingers" |
| | ratio | 0.369 | |
| 1.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 77 | | totalSentences | 84 | | matches | | 0 | "The green neon glow of" | | 1 | "Rory ducked under the awning," | | 2 | "She hadn't planned on coming" | | 3 | "The delivery shift had ended" | | 4 | "The bar was half-full, the" | | 5 | "Rory made her way toward" | | 6 | "He nodded at her approach," | | 7 | "he said, reaching for the" | | 8 | "She slid onto a stool," | | 9 | "He set the glass in" | | 10 | "He tapped his temple" | | 11 | "Rory lifted the whiskey but" | | 12 | "Her bright blue eyes had" | | 13 | "Something in the way the" | | 14 | "It couldn't be." | | 15 | "Margot Sinclair looked nothing like" | | 16 | "The wild copper curls that" | | 17 | "The softness was gone from" | | 18 | "She'd lost weight—too much weight," | | 19 | "Margot's eyes had always been" |
| | ratio | 0.917 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 84 | | matches | (empty) | | ratio | 0 | |
| 35.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 6 | | matches | | 0 | "She'd lost weight—too much weight, Rory thought—and there was something in her posture that spoke of exhaustion held at bay through sheer will." | | 1 | "They were the eyes of someone who had seen things they couldn't unsee." | | 2 | "Silas materialized with the quiet efficiency of a man who had spent decades reading rooms and knowing when to disappear." | | 3 | "He set a glass of water in front of Margot without comment and withdrew to the far end of the bar, busying himself with customers who didn't need attending." | | 4 | "Margot was quiet for a long moment, her eyes fixed on the old map of London that hung above the bar, yellowed and water-stained, marking a city that no longer e…" | | 5 | "They sat together in the rain-drummed quiet, two women who had been girls together, separated by half a decade of silence and secrets, and began the slow work o…" |
| |
| 64.39% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 33 | | uselessAdditionCount | 4 | | matches | | 0 | "it used, as if she'd spent the intervening years speaking too little or screaming too much" | | 1 | "Rory turned on, her jaw tight" | | 2 | "She stopped, struggling to keep her voice level" | | 3 | "The word came out, definitive" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 67 | | tagDensity | 0.119 | | leniency | 0.239 | | rawRatio | 0 | | effectiveRatio | 0 | |