| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 1 | | adverbTags | | | dialogueSentences | 50 | | tagDensity | 0.24 | | leniency | 0.48 | | rawRatio | 0.083 | | effectiveRatio | 0.04 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1010 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 50.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1010 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "chill" | | 1 | "flickered" | | 2 | "weight" | | 3 | "flicked" | | 4 | "silence" | | 5 | "unreadable" |
| |
| 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 | 73 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 73 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 111 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 3 | | totalWords | 1002 | | ratio | 0.003 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 753 | | uniqueNames | 7 | | maxNameDensity | 1.2 | | worstName | "Evan" | | maxWindowNameDensity | 3 | | worstWindowName | "Evan" | | discoveredNames | | Raven | 2 | | Nest | 2 | | London | 1 | | Yu-Fei | 1 | | Evan | 9 | | Rory | 8 | | Silas | 5 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Evan" | | 3 | "Rory" | | 4 | "Silas" |
| | places | | | globalScore | 0.902 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like he’d been sanded down, the an" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1002 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 111 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 19.65 | | std | 17.96 | | cv | 0.914 | | sampleLengths | | 0 | 87 | | 1 | 31 | | 2 | 3 | | 3 | 15 | | 4 | 86 | | 5 | 3 | | 6 | 24 | | 7 | 12 | | 8 | 30 | | 9 | 5 | | 10 | 15 | | 11 | 27 | | 12 | 12 | | 13 | 24 | | 14 | 24 | | 15 | 4 | | 16 | 6 | | 17 | 5 | | 18 | 37 | | 19 | 11 | | 20 | 32 | | 21 | 50 | | 22 | 16 | | 23 | 1 | | 24 | 1 | | 25 | 10 | | 26 | 28 | | 27 | 17 | | 28 | 9 | | 29 | 20 | | 30 | 16 | | 31 | 3 | | 32 | 28 | | 33 | 11 | | 34 | 47 | | 35 | 7 | | 36 | 14 | | 37 | 39 | | 38 | 10 | | 39 | 8 | | 40 | 13 | | 41 | 8 | | 42 | 26 | | 43 | 19 | | 44 | 13 | | 45 | 8 | | 46 | 23 | | 47 | 6 | | 48 | 18 | | 49 | 37 |
| |
| 90.84% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 73 | | matches | | 0 | "been sanded" | | 1 | "been burned" | | 2 | "was gone" |
| |
| 17.35% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 146 | | matches | | 0 | "were scuffing" | | 1 | "were picking" | | 2 | "weren’t saying" | | 3 | "was trying" |
| |
| 65.64% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 111 | | ratio | 0.027 | | matches | | 0 | "She hadn’t meant to come in—just another delivery for Yu-Fei, another envelope slipped under the bar’s back door—but the neon sign had flickered in the corner of her eye, green and insistent, and before she knew it, her boots were scuffing against the worn floorboards." | | 1 | "Now, he looked like he’d been sanded down, the angles of his face softer, but his eyes—those hadn’t changed." | | 2 | "“Sure it is.” He leaned in, just enough that she caught the scent of him—whiskey and something sharper, like gun oil." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 761 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.03416557161629435 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.001314060446780552 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 111 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 111 | | mean | 9.03 | | std | 6.96 | | cv | 0.771 | | sampleLengths | | 0 | 23 | | 1 | 19 | | 2 | 45 | | 3 | 6 | | 4 | 21 | | 5 | 4 | | 6 | 3 | | 7 | 13 | | 8 | 2 | | 9 | 14 | | 10 | 23 | | 11 | 14 | | 12 | 19 | | 13 | 16 | | 14 | 2 | | 15 | 1 | | 16 | 15 | | 17 | 9 | | 18 | 10 | | 19 | 2 | | 20 | 20 | | 21 | 10 | | 22 | 2 | | 23 | 3 | | 24 | 12 | | 25 | 3 | | 26 | 11 | | 27 | 10 | | 28 | 6 | | 29 | 10 | | 30 | 2 | | 31 | 5 | | 32 | 11 | | 33 | 2 | | 34 | 3 | | 35 | 3 | | 36 | 17 | | 37 | 7 | | 38 | 4 | | 39 | 6 | | 40 | 2 | | 41 | 3 | | 42 | 21 | | 43 | 16 | | 44 | 6 | | 45 | 5 | | 46 | 7 | | 47 | 25 | | 48 | 23 | | 49 | 7 |
| |
| 55.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.36036036036036034 | | totalSentences | 111 | | uniqueOpeners | 40 | |
| 98.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 68 | | matches | | 0 | "Then the stool creaked." | | 1 | "Then he sighed, rubbing a" |
| | ratio | 0.029 | |
| 31.76% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 68 | | matches | | 0 | "She hadn’t meant to come" | | 1 | "She didn’t see him at" | | 2 | "His hair was shorter now," | | 3 | "He grinned, slow and easy," | | 4 | "She shrugged, shifting the weight" | | 5 | "His gaze flicked over her," | | 6 | "He tilted his head, swirling" | | 7 | "He nodded toward the door" | | 8 | "She didn’t believe him" | | 9 | "He dug in." | | 10 | "He left marks." | | 11 | "He must’ve seen the doubt" | | 12 | "He leaned in, just enough" | | 13 | "He sat back, spreading his" | | 14 | "She wanted to snap at" | | 15 | "She glared at him." | | 16 | "He leaned forward again, his" | | 17 | "His jaw tightened" | | 18 | "She opened her mouth to" | | 19 | "He reached out, his fingers" |
| | ratio | 0.471 | |
| 18.82% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 68 | | matches | | 0 | "The Raven’s Nest smelled of" | | 1 | "Rory wiped her hands on" | | 2 | "She hadn’t meant to come" | | 3 | "She didn’t see him at" | | 4 | "The bar was half-empty, the" | | 5 | "The voice was rougher than" | | 6 | "Evan leaned against the bar," | | 7 | "His hair was shorter now," | | 8 | "The last time she’d seen" | | 9 | "He grinned, slow and easy," | | 10 | "She shrugged, shifting the weight" | | 11 | "His gaze flicked over her," | | 12 | "He tilted his head, swirling" | | 13 | "The air between them thickened," | | 14 | "Rory exhaled through her nose," | | 15 | "He nodded toward the door" | | 16 | "She didn’t believe him" | | 17 | "Evan had never been the" | | 18 | "He dug in." | | 19 | "He left marks." |
| | ratio | 0.882 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 68 | | matches | | 0 | "Now, he looked like he’d" | | 1 | "Because he wasn’t wrong." |
| | ratio | 0.029 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 1 | | matches | | 0 | "Evan studied her for a long moment, his eyes searching hers like he was trying to memorize her face." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 3 | | matches | | 0 | "He leaned, his voice dropping" | | 1 | "He reached out, his fingers brushing the back of her hand" | | 2 | "Silas said, his voice low and even" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 50 | | tagDensity | 0.02 | | leniency | 0.04 | | rawRatio | 0 | | effectiveRatio | 0 | |