| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said instead [instead]" |
| | dialogueSentences | 68 | | tagDensity | 0.265 | | leniency | 0.529 | | rawRatio | 0.056 | | effectiveRatio | 0.029 | |
| 85.31% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1702 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slightly" | | 1 | "really" | | 2 | "slowly" | | 3 | "carefully" |
| |
| 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) | |
| 53.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1702 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "flickered" | | 1 | "familiar" | | 2 | "weight" | | 3 | "efficient" | | 4 | "stomach" | | 5 | "silence" | | 6 | "trembled" |
| |
| 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 | 82 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 82 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 132 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1693 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 935 | | uniqueNames | 11 | | maxNameDensity | 1.71 | | worstName | "Eva" | | maxWindowNameDensity | 4 | | worstWindowName | "Eva" | | discoveredNames | | Aurora | 1 | | Silas | 5 | | Soho | 1 | | Thursday | 1 | | Castellan | 1 | | Eva | 16 | | Rory | 13 | | London | 2 | | Golden | 1 | | Empress | 1 | | Cardiff | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Silas" | | 2 | "Castellan" | | 3 | "Eva" | | 4 | "Rory" |
| | places | | 0 | "Soho" | | 1 | "London" | | 2 | "Golden" | | 3 | "Cardiff" |
| | globalScore | 0.644 | | windowScore | 0.333 | |
| 60.71% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 56 | | glossingSentenceCount | 2 | | matches | | 0 | "quite read" | | 1 | "quite hide" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.591 | | wordCount | 1693 | | matches | | 0 | "Not exactly your usual crowd, but she looks like she could use a drink" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 132 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 75 | | mean | 22.57 | | std | 20.49 | | cv | 0.908 | | sampleLengths | | 0 | 55 | | 1 | 5 | | 2 | 42 | | 3 | 13 | | 4 | 50 | | 5 | 12 | | 6 | 44 | | 7 | 5 | | 8 | 3 | | 9 | 60 | | 10 | 47 | | 11 | 10 | | 12 | 5 | | 13 | 22 | | 14 | 12 | | 15 | 58 | | 16 | 17 | | 17 | 18 | | 18 | 2 | | 19 | 4 | | 20 | 3 | | 21 | 40 | | 22 | 28 | | 23 | 4 | | 24 | 13 | | 25 | 14 | | 26 | 16 | | 27 | 4 | | 28 | 27 | | 29 | 11 | | 30 | 73 | | 31 | 2 | | 32 | 45 | | 33 | 18 | | 34 | 1 | | 35 | 41 | | 36 | 5 | | 37 | 53 | | 38 | 100 | | 39 | 24 | | 40 | 3 | | 41 | 62 | | 42 | 42 | | 43 | 8 | | 44 | 11 | | 45 | 19 | | 46 | 10 | | 47 | 16 | | 48 | 19 | | 49 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 82 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 160 | | matches | | |
| 99.57% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 2 | | totalSentences | 132 | | ratio | 0.015 | | matches | | 0 | "Her lipstick was the wrong shade—too dark, almost burgundy—and her eyes, those familiar warm brown eyes, had dark circles underneath that makeup couldn't quite hide." | | 1 | "But she looked at Eva—at the exhaustion written into every line of her face, at the way she clutched her glass like it was the only solid thing in the room—and she couldn't do it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 940 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 37 | | adverbRatio | 0.039361702127659576 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.010638297872340425 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 132 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 132 | | mean | 12.83 | | std | 10.95 | | cv | 0.854 | | sampleLengths | | 0 | 29 | | 1 | 26 | | 2 | 5 | | 3 | 3 | | 4 | 25 | | 5 | 2 | | 6 | 5 | | 7 | 7 | | 8 | 6 | | 9 | 7 | | 10 | 34 | | 11 | 16 | | 12 | 12 | | 13 | 6 | | 14 | 14 | | 15 | 24 | | 16 | 5 | | 17 | 3 | | 18 | 5 | | 19 | 15 | | 20 | 8 | | 21 | 32 | | 22 | 3 | | 23 | 31 | | 24 | 7 | | 25 | 6 | | 26 | 10 | | 27 | 3 | | 28 | 2 | | 29 | 22 | | 30 | 12 | | 31 | 4 | | 32 | 29 | | 33 | 25 | | 34 | 17 | | 35 | 7 | | 36 | 11 | | 37 | 2 | | 38 | 4 | | 39 | 3 | | 40 | 4 | | 41 | 18 | | 42 | 18 | | 43 | 4 | | 44 | 24 | | 45 | 4 | | 46 | 13 | | 47 | 6 | | 48 | 8 | | 49 | 16 |
| |
| 49.49% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3560606060606061 | | totalSentences | 132 | | uniqueOpeners | 47 | |
| 93.90% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 71 | | matches | | 0 | "Instead he nodded toward the" | | 1 | "Then she picked up the" |
| | ratio | 0.028 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 71 | | matches | | 0 | "She set down a tray" | | 1 | "He set the napkins on" | | 2 | "She hadn't meant to say" | | 3 | "He didn't ask which anniversary." | | 4 | "He had enough tact for" | | 5 | "She was thinner now." | | 6 | "Her lipstick was the wrong" | | 7 | "They sat in silence." | | 8 | "Her hand trembled slightly, just" | | 9 | "She set her glass down" | | 10 | "she said instead" | | 11 | "She pulled her hand back," | | 12 | "She finished her whiskey, set" | | 13 | "She watched Eva walk to" | | 14 | "He studied her for a" | | 15 | "She grabbed the tray of" | | 16 | "She carried the glasses to" | | 17 | "She was still figuring it" |
| | ratio | 0.254 | |
| 30.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 71 | | matches | | 0 | "The green neon sign above" | | 1 | "She set down a tray" | | 2 | "Rory glanced up." | | 3 | "Silas stood in the doorway" | | 4 | "Something closer to amusement, maybe." | | 5 | "He set the napkins on" | | 6 | "She hadn't meant to say" | | 7 | "The words slipped out before" | | 8 | "He didn't ask which anniversary." | | 9 | "He had enough tact for" | | 10 | "Rory glanced over." | | 11 | "The woman had her back" | | 12 | "Something about the angle of" | | 13 | "The way she held her" | | 14 | "Rory felt her stomach drop" | | 15 | "The woman turned on her" | | 16 | "Eva Castellan looked exactly the" | | 17 | "She was thinner now." | | 18 | "The angles of her face" | | 19 | "Her lipstick was the wrong" |
| | ratio | 0.859 | |
| 70.42% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 71 | | matches | | | ratio | 0.014 | |
| 99.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 2 | | matches | | 0 | "The woman had her back to the room, shoulders hunched over a whiskey neat, dark hair pulled back in a style that seemed too formal for Soho on a Thursday night." | | 1 | "The jazz track ended, cycling into something with more piano, something that felt too cheerful for the moment." |
| |
| 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 | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 68 | | tagDensity | 0.103 | | leniency | 0.206 | | rawRatio | 0 | | effectiveRatio | 0 | |