| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said honestly [honestly]" | | 1 | "he said suddenly [suddenly]" |
| | dialogueSentences | 59 | | tagDensity | 0.305 | | leniency | 0.61 | | rawRatio | 0.111 | | effectiveRatio | 0.068 | |
| 89.41% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1416 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "really" | | 1 | "carefully" | | 2 | "suddenly" |
| |
| 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) | |
| 68.22% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1416 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "scanned" | | 1 | "etched" | | 2 | "familiar" | | 3 | "pulse" | | 4 | "weight" | | 5 | "coded" | | 6 | "fleeting" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "weight of words/silence" | | count | 1 |
|
| | highlights | | 0 | "the weight of the words" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 115 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 115 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 156 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1410 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 1144 | | uniqueNames | 6 | | maxNameDensity | 1.4 | | worstName | "Silas" | | maxWindowNameDensity | 3 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 4 | | Silas | 16 | | Rory | 9 | | Eva | 1 | | Evan | 1 |
| | persons | | 0 | "Raven" | | 1 | "Silas" | | 2 | "Rory" | | 3 | "Eva" | | 4 | "Evan" |
| | places | (empty) | | globalScore | 0.801 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1410 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 156 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 72 | | mean | 19.58 | | std | 21.95 | | cv | 1.121 | | sampleLengths | | 0 | 125 | | 1 | 5 | | 2 | 86 | | 3 | 40 | | 4 | 9 | | 5 | 22 | | 6 | 7 | | 7 | 3 | | 8 | 7 | | 9 | 5 | | 10 | 28 | | 11 | 79 | | 12 | 5 | | 13 | 22 | | 14 | 77 | | 15 | 12 | | 16 | 14 | | 17 | 14 | | 18 | 14 | | 19 | 9 | | 20 | 1 | | 21 | 26 | | 22 | 6 | | 23 | 2 | | 24 | 18 | | 25 | 2 | | 26 | 10 | | 27 | 9 | | 28 | 15 | | 29 | 6 | | 30 | 34 | | 31 | 19 | | 32 | 4 | | 33 | 3 | | 34 | 3 | | 35 | 36 | | 36 | 22 | | 37 | 8 | | 38 | 4 | | 39 | 66 | | 40 | 7 | | 41 | 12 | | 42 | 44 | | 43 | 32 | | 44 | 20 | | 45 | 9 | | 46 | 7 | | 47 | 34 | | 48 | 16 | | 49 | 6 |
| |
| 96.11% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 115 | | matches | | 0 | "were rooted" | | 1 | "been nineteen" | | 2 | "was meant" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 217 | | matches | | 0 | "was testing" | | 1 | "was tasting" | | 2 | "was letting" |
| |
| 69.60% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 156 | | ratio | 0.026 | | matches | | 0 | "Rory wiped her hands on her jeans—still damp from the rain outside—and scanned the room." | | 1 | "Now her hair was its natural black, her clothes practical—jeans, a faded hoodie, boots scuffed from miles of pavement." | | 2 | "The bar was exactly as she remembered—maps tacked to the walls, the faint scent of cigar smoke lingering in the corners, the way the floorboards creaked underfoot like an old man’s joints." | | 3 | "But another part—the part that had missed this, missed him—nodded." |
| |
| 98.64% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1155 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 48 | | adverbRatio | 0.04155844155844156 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.007792207792207792 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 156 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 156 | | mean | 9.04 | | std | 7.7 | | cv | 0.852 | | sampleLengths | | 0 | 23 | | 1 | 15 | | 2 | 28 | | 3 | 8 | | 4 | 25 | | 5 | 26 | | 6 | 5 | | 7 | 23 | | 8 | 20 | | 9 | 43 | | 10 | 5 | | 11 | 5 | | 12 | 16 | | 13 | 14 | | 14 | 9 | | 15 | 7 | | 16 | 6 | | 17 | 9 | | 18 | 7 | | 19 | 2 | | 20 | 1 | | 21 | 5 | | 22 | 2 | | 23 | 5 | | 24 | 2 | | 25 | 8 | | 26 | 18 | | 27 | 3 | | 28 | 1 | | 29 | 7 | | 30 | 33 | | 31 | 19 | | 32 | 2 | | 33 | 2 | | 34 | 12 | | 35 | 5 | | 36 | 19 | | 37 | 3 | | 38 | 11 | | 39 | 32 | | 40 | 4 | | 41 | 14 | | 42 | 16 | | 43 | 12 | | 44 | 4 | | 45 | 10 | | 46 | 4 | | 47 | 10 | | 48 | 4 | | 49 | 10 |
| |
| 44.23% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.28846153846153844 | | totalSentences | 156 | | uniqueOpeners | 45 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 98 | | matches | | 0 | "Then his gaze lifted, hazel" | | 1 | "Then, carefully, like he was" | | 2 | "Just the crescent-shaped scar on" | | 3 | "Just nodded, once, like he’d" | | 4 | "Just squeezed her hand, once," | | 5 | "Then the door to the" |
| | ratio | 0.061 | |
| 73.06% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 98 | | matches | | 0 | "She hadn’t meant to come" | | 1 | "She’d ducked under the awning" | | 2 | "His left leg still carried" | | 3 | "He hadn’t noticed her yet." | | 4 | "She should have turned around." | | 5 | "he said, voice rough as" | | 6 | "He set the glass down." | | 7 | "She almost laughed." | | 8 | "She stepped closer, her boots" | | 9 | "It was something in his" | | 10 | "he said, like he’d read" | | 11 | "She shook her head." | | 12 | "His eyebrows lifted" | | 13 | "He poured two fingers into" | | 14 | "She wrapped her hands around" | | 15 | "He said it like he" | | 16 | "he said at last" | | 17 | "She set the glass down." | | 18 | "She cut herself off, shaking" | | 19 | "He didn’t argue." |
| | ratio | 0.367 | |
| 82.45% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 74 | | totalSentences | 98 | | matches | | 0 | "The Raven’s Nest smelled of" | | 1 | "Rory wiped her hands on" | | 2 | "The bar was half-empty this" | | 3 | "She hadn’t meant to come" | | 4 | "The delivery had taken longer" | | 5 | "She’d ducked under the awning" | | 6 | "That’s when she saw him." | | 7 | "Silas was behind the bar," | | 8 | "The years had etched deeper" | | 9 | "His left leg still carried" | | 10 | "He hadn’t noticed her yet." | | 11 | "She should have turned around." | | 12 | "The glass in his hand" | | 13 | "The murmur of the bar" | | 14 | "he said, voice rough as" | | 15 | "He set the glass down." | | 16 | "The kind that stretched too" | | 17 | "She almost laughed." | | 18 | "That was one way to" | | 19 | "The last time he’d seen" |
| | ratio | 0.755 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 98 | | matches | | 0 | "Now her hair was its" | | 1 | "If she’d let Silas teach" | | 2 | "If she’d let herself become" |
| | ratio | 0.031 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 41.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 3 | | matches | | 0 | "he said, voice rough as gravel" | | 1 | "He leaned, his signet ring tapping against the bar" | | 2 | "Silas said, voice low" |
| |
| 82.20% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 4 | | fancyTags | | 0 | "he spoke (speak)" | | 1 | "She laughed (laugh)" | | 2 | "she admitted (admit)" | | 3 | "she whispered (whisper)" |
| | dialogueSentences | 59 | | tagDensity | 0.254 | | leniency | 0.508 | | rawRatio | 0.267 | | effectiveRatio | 0.136 | |