| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 58 | | tagDensity | 0.19 | | leniency | 0.379 | | rawRatio | 0.091 | | effectiveRatio | 0.034 | |
| 91.24% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1142 | | totalAiIsmAdverbs | 2 | | 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) | |
| 21.19% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1142 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "flickered" | | 1 | "familiar" | | 2 | "silence" | | 3 | "stomach" | | 4 | "weight" | | 5 | "charged" | | 6 | "could feel" | | 7 | "tracing" |
| |
| 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 | 90 | | matches | (empty) | |
| 95.24% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 90 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 135 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1134 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 6 | | wordCount | 889 | | uniqueNames | 5 | | maxNameDensity | 0.22 | | worstName | "Silas" | | maxWindowNameDensity | 0.5 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Nest | 1 | | London | 1 | | Evan | 1 | | Silas | 2 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Evan" | | 3 | "Silas" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 55 | | 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 | 1134 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 135 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 65 | | mean | 17.45 | | std | 19.65 | | cv | 1.126 | | sampleLengths | | 0 | 83 | | 1 | 101 | | 2 | 1 | | 3 | 11 | | 4 | 73 | | 5 | 3 | | 6 | 7 | | 7 | 7 | | 8 | 13 | | 9 | 9 | | 10 | 35 | | 11 | 15 | | 12 | 12 | | 13 | 4 | | 14 | 4 | | 15 | 11 | | 16 | 10 | | 17 | 12 | | 18 | 28 | | 19 | 8 | | 20 | 57 | | 21 | 6 | | 22 | 8 | | 23 | 3 | | 24 | 6 | | 25 | 26 | | 26 | 55 | | 27 | 16 | | 28 | 10 | | 29 | 1 | | 30 | 10 | | 31 | 15 | | 32 | 9 | | 33 | 7 | | 34 | 38 | | 35 | 16 | | 36 | 23 | | 37 | 5 | | 38 | 14 | | 39 | 2 | | 40 | 19 | | 41 | 47 | | 42 | 9 | | 43 | 14 | | 44 | 18 | | 45 | 4 | | 46 | 7 | | 47 | 16 | | 48 | 13 | | 49 | 3 |
| |
| 97.47% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 90 | | matches | | 0 | "been eighteen" | | 1 | "was streaked" |
| |
| 40.32% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 167 | | matches | | 0 | "was reading" | | 1 | "was watching was remembering" | | 2 | "was letting" |
| |
| 58.20% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 135 | | ratio | 0.03 | | matches | | 0 | "But she’d never stepped inside—not since the night she left London behind." | | 1 | "His auburn hair was streaked with grey now, his beard neatly trimmed, but it was his eyes—the hazel flecked with gold—that made her stomach twist." | | 2 | "Rory watched the screen, but her mind was elsewhere—on the last time she’d seen him, on the way he’d looked at her like she was something fragile, something he might break if he wasn’t careful." | | 3 | "But there was still something in his eyes—the same quiet kindness, the same stubbornness." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 896 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.03236607142857143 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.010044642857142858 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 135 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 135 | | mean | 8.4 | | std | 7.11 | | cv | 0.846 | | sampleLengths | | 0 | 23 | | 1 | 23 | | 2 | 13 | | 3 | 24 | | 4 | 4 | | 5 | 21 | | 6 | 12 | | 7 | 31 | | 8 | 33 | | 9 | 1 | | 10 | 9 | | 11 | 2 | | 12 | 18 | | 13 | 25 | | 14 | 4 | | 15 | 26 | | 16 | 2 | | 17 | 1 | | 18 | 2 | | 19 | 5 | | 20 | 7 | | 21 | 5 | | 22 | 8 | | 23 | 5 | | 24 | 4 | | 25 | 17 | | 26 | 13 | | 27 | 5 | | 28 | 14 | | 29 | 1 | | 30 | 10 | | 31 | 2 | | 32 | 4 | | 33 | 4 | | 34 | 7 | | 35 | 4 | | 36 | 10 | | 37 | 4 | | 38 | 6 | | 39 | 2 | | 40 | 9 | | 41 | 13 | | 42 | 6 | | 43 | 6 | | 44 | 2 | | 45 | 11 | | 46 | 35 | | 47 | 11 | | 48 | 6 | | 49 | 5 |
| |
| 45.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.23703703703703705 | | totalSentences | 135 | | uniqueOpeners | 32 | |
| 82.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 81 | | matches | | 0 | "Just looked at her, his" | | 1 | "Just watched her as she" |
| | ratio | 0.025 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 81 | | matches | | 0 | "She knew this place." | | 1 | "His auburn hair was streaked" | | 2 | "He looked older, sharper." | | 3 | "he said, finally" | | 4 | "She laughed, sharp and brittle." | | 5 | "He grinned, just a little." | | 6 | "She slid onto a stool" | | 7 | "He wiped down the counter" | | 8 | "She gestured to the bag" | | 9 | "He studied her for a" | | 10 | "His fingers stilled on the" | | 11 | "She looked away first, her" | | 12 | "He set the rag down" | | 13 | "he said quietly" | | 14 | "She exhaled through her nose." | | 15 | "She almost laughed." | | 16 | "His voice was steady, but" | | 17 | "She didn’t want to talk" | | 18 | "She turned her wrist, the" | | 19 | "She met his gaze." |
| | ratio | 0.58 | |
| 46.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 81 | | matches | | 0 | "The green neon sign of" | | 1 | "Rory paused beneath it, her" | | 2 | "The bell above the door" | | 3 | "The bar was half-empty, the" | | 4 | "She knew this place." | | 5 | "The last time she’d been" | | 6 | "The voice cut through the" | | 7 | "Silas stood behind the counter," | | 8 | "His auburn hair was streaked" | | 9 | "He looked older, sharper." | | 10 | "The limp in his left" | | 11 | "The air between them thickened." | | 12 | "he said, finally" | | 13 | "She laughed, sharp and brittle." | | 14 | "He grinned, just a little." | | 15 | "She slid onto a stool" | | 16 | "The space between them felt" | | 17 | "He wiped down the counter" | | 18 | "She gestured to the bag" | | 19 | "He studied her for a" |
| | ratio | 0.827 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 81 | | matches | | 0 | "Now, the only thing that" | | 1 | "Because she needed to know." |
| | ratio | 0.025 | |
| 47.62% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 4 | | matches | | 0 | "Now, the only thing that felt familiar was the way her boots sank slightly into the worn carpet, the way the bar’s dim light made her own face look stranger tha…" | | 1 | "Silas stood behind the counter, his hands resting on the polished wood, his signet ring catching the light." | | 2 | "His auburn hair was streaked with grey now, his beard neatly trimmed, but it was his eyes—the hazel flecked with gold—that made her stomach twist." | | 3 | "The limp in his left leg was more pronounced, but his posture was still that of a man who carried himself like he owned the room." |
| |
| 34.09% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 2 | | matches | | 0 | "he said, finally" | | 1 | "He wiped, his movements precise" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 58 | | tagDensity | 0.121 | | leniency | 0.241 | | rawRatio | 0 | | effectiveRatio | 0 | |