| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 44 | | tagDensity | 0.295 | | leniency | 0.591 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 84.58% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 973 | | totalAiIsmAdverbs | 3 | | 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) | |
| 69.17% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 973 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "stomach" | | 1 | "glinting" | | 2 | "silence" | | 3 | "unreadable" | | 4 | "weight" | | 5 | "traced" |
| |
| 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 | 81 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 81 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 114 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 965 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 68.92% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 740 | | uniqueNames | 7 | | maxNameDensity | 1.62 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Raven | 2 | | Nest | 2 | | Rory | 12 | | Silas | 11 | | Swallowed | 1 | | Paris | 1 | | Wanted | 4 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Rory" | | 3 | "Silas" |
| | places | | | globalScore | 0.689 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 46 | | 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 | 965 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 114 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 54 | | mean | 17.87 | | std | 16.86 | | cv | 0.943 | | sampleLengths | | 0 | 78 | | 1 | 6 | | 2 | 38 | | 3 | 20 | | 4 | 9 | | 5 | 52 | | 6 | 9 | | 7 | 11 | | 8 | 16 | | 9 | 43 | | 10 | 7 | | 11 | 11 | | 12 | 36 | | 13 | 5 | | 14 | 12 | | 15 | 10 | | 16 | 13 | | 17 | 10 | | 18 | 2 | | 19 | 8 | | 20 | 66 | | 21 | 5 | | 22 | 4 | | 23 | 7 | | 24 | 6 | | 25 | 34 | | 26 | 15 | | 27 | 7 | | 28 | 10 | | 29 | 6 | | 30 | 16 | | 31 | 30 | | 32 | 44 | | 33 | 13 | | 34 | 1 | | 35 | 5 | | 36 | 14 | | 37 | 6 | | 38 | 37 | | 39 | 21 | | 40 | 22 | | 41 | 6 | | 42 | 12 | | 43 | 11 | | 44 | 6 | | 45 | 36 | | 46 | 32 | | 47 | 49 | | 48 | 14 | | 49 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 81 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 132 | | matches | (empty) | |
| 67.67% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 114 | | ratio | 0.026 | | matches | | 0 | "He hadn’t changed—not really." | | 1 | "The old maps, the black-and-white photographs—she’d always assumed they were just decor." | | 2 | "But the question stuck in her throat, tangled in the memory of the last time she’d seen him—standing in the doorway of her parents’ house, his face unreadable, his voice steady as he told her he had to go." |
| |
| 98.46% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 455 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.041758241758241756 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.01098901098901099 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 114 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 114 | | mean | 8.46 | | std | 7.6 | | cv | 0.897 | | sampleLengths | | 0 | 32 | | 1 | 22 | | 2 | 24 | | 3 | 6 | | 4 | 38 | | 5 | 13 | | 6 | 7 | | 7 | 2 | | 8 | 6 | | 9 | 1 | | 10 | 4 | | 11 | 23 | | 12 | 25 | | 13 | 9 | | 14 | 5 | | 15 | 6 | | 16 | 8 | | 17 | 8 | | 18 | 14 | | 19 | 3 | | 20 | 2 | | 21 | 12 | | 22 | 12 | | 23 | 7 | | 24 | 2 | | 25 | 9 | | 26 | 15 | | 27 | 11 | | 28 | 4 | | 29 | 1 | | 30 | 5 | | 31 | 3 | | 32 | 2 | | 33 | 4 | | 34 | 8 | | 35 | 10 | | 36 | 10 | | 37 | 3 | | 38 | 5 | | 39 | 5 | | 40 | 2 | | 41 | 6 | | 42 | 2 | | 43 | 7 | | 44 | 20 | | 45 | 39 | | 46 | 5 | | 47 | 4 | | 48 | 7 | | 49 | 4 |
| |
| 59.65% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.3684210526315789 | | totalSentences | 114 | | uniqueOpeners | 42 | |
| 47.62% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 70 | | matches | | | ratio | 0.014 | |
| 94.29% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 70 | | matches | | 0 | "She didn’t see him at" | | 1 | "He hadn’t changed—not really." | | 2 | "He tapped his fingers against" | | 3 | "She glanced around, as if" | | 4 | "His jaw tightened." | | 5 | "he asked, nodding at her" | | 6 | "She tugged at the hem," | | 7 | "He exhaled, long and low" | | 8 | "She’d begged him to stay." | | 9 | "She wouldn’t beg now." | | 10 | "He took a sip, his" | | 11 | "She wanted to laugh." | | 12 | "She rolled her eyes." | | 13 | "His smirk faded." | | 14 | "He swirled the whiskey in" | | 15 | "She wanted to reach for" | | 16 | "She took a breath." | | 17 | "He looked at her then," | | 18 | "He slid it across the" | | 19 | "Her and Silas, younger, grinning" |
| | ratio | 0.314 | |
| 74.29% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 54 | | totalSentences | 70 | | matches | | 0 | "The Raven’s Nest hummed with" | | 1 | "Rory wiped her hands on" | | 2 | "The bar was busier than" | | 3 | "She didn’t see him at" | | 4 | "Silas said, his voice rough" | | 5 | "The glasses on the tray" | | 6 | "He hadn’t changed—not really." | | 7 | "The same auburn hair, streaked" | | 8 | "Rory exhaled, sharp and unsteady." | | 9 | "He tapped his fingers against" | | 10 | "She glanced around, as if" | | 11 | "The Raven’s Nest." | | 12 | "The old maps, the black-and-white" | | 13 | "The words hung between them," | | 14 | "Rory set the tray down" | | 15 | "His jaw tightened." | | 16 | "A beat of silence." | | 17 | "The kind that stretched too" | | 18 | "he asked, nodding at her" | | 19 | "She tugged at the hem," |
| | ratio | 0.771 | |
| 71.43% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 70 | | matches | | 0 | "Now she wondered how many" |
| | ratio | 0.014 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 1 | | matches | | 0 | "Not until she turned to slide the tray onto the counter and nearly collided with a man leaning against the bar, his hazel eyes fixed on her with the kind of qui…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "Silas said, his voice rough around the edges, like gravel underfoot" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 44 | | tagDensity | 0.136 | | leniency | 0.273 | | rawRatio | 0 | | effectiveRatio | 0 | |