| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 57 | | tagDensity | 0.281 | | leniency | 0.561 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 78.54% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 932 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slightly" | | 1 | "slowly" | | 2 | "really" |
| |
| 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) | |
| 24.89% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 932 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "flickered" | | 1 | "tracing" | | 2 | "flicked" | | 3 | "charged" | | 4 | "unspoken" | | 5 | "silence" | | 6 | "pulse" | | 7 | "weight" | | 8 | "traced" | | 9 | "whisper" |
| |
| 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 | 86 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 86 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 126 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 3 | | totalWords | 923 | | ratio | 0.003 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 684 | | uniqueNames | 4 | | maxNameDensity | 2.34 | | worstName | "Silas" | | maxWindowNameDensity | 5 | | worstWindowName | "Silas" | | discoveredNames | | Raven | 1 | | Rory | 14 | | Blackwood | 1 | | Silas | 16 |
| | persons | | 0 | "Raven" | | 1 | "Rory" | | 2 | "Blackwood" | | 3 | "Silas" |
| | places | (empty) | | globalScore | 0.33 | | windowScore | 0 | |
| 33.72% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 43 | | glossingSentenceCount | 2 | | matches | | 0 | "as if bracing for impact" | | 1 | "something like recognition" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 923 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 126 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 60 | | mean | 15.38 | | std | 13.29 | | cv | 0.864 | | sampleLengths | | 0 | 75 | | 1 | 4 | | 2 | 67 | | 3 | 1 | | 4 | 20 | | 5 | 7 | | 6 | 6 | | 7 | 8 | | 8 | 28 | | 9 | 27 | | 10 | 27 | | 11 | 8 | | 12 | 14 | | 13 | 26 | | 14 | 7 | | 15 | 10 | | 16 | 24 | | 17 | 7 | | 18 | 7 | | 19 | 13 | | 20 | 37 | | 21 | 11 | | 22 | 21 | | 23 | 20 | | 24 | 1 | | 25 | 13 | | 26 | 14 | | 27 | 4 | | 28 | 24 | | 29 | 12 | | 30 | 1 | | 31 | 12 | | 32 | 13 | | 33 | 20 | | 34 | 11 | | 35 | 10 | | 36 | 13 | | 37 | 7 | | 38 | 22 | | 39 | 10 | | 40 | 7 | | 41 | 20 | | 42 | 16 | | 43 | 2 | | 44 | 8 | | 45 | 39 | | 46 | 8 | | 47 | 18 | | 48 | 10 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 86 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 124 | | matches | (empty) | |
| 6.80% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 126 | | ratio | 0.048 | | matches | | 0 | "The air inside was thick with the scent of aged whiskey and something sharper—burnt sugar, maybe, or the faint metallic tang of old blood." | | 1 | "The grey streaks in his hair were more pronounced now, and his posture—shoulders slightly hunched, the faintest limp in his step—told her more had happened in the years since they’d last spoken." | | 2 | "Rory slid into the booth across from him, her fingers tracing the edge of the menu she’d brought—though she already knew what she wanted." | | 3 | "The bar’s jukebox crackled, playing something old and slow—something that made her think of rain on pavement and bad decisions." | | 4 | "But the years between them had carved something deeper than regret—something like recognition." | | 5 | "The man in front of her wasn’t the boy she’d known—the one who’d always had a plan, a way out." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 691 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.03762662807525326 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.004341534008683068 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 126 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 126 | | mean | 7.33 | | std | 5.75 | | cv | 0.785 | | sampleLengths | | 0 | 23 | | 1 | 24 | | 2 | 28 | | 3 | 4 | | 4 | 21 | | 5 | 32 | | 6 | 14 | | 7 | 1 | | 8 | 12 | | 9 | 8 | | 10 | 3 | | 11 | 4 | | 12 | 6 | | 13 | 2 | | 14 | 6 | | 15 | 18 | | 16 | 10 | | 17 | 24 | | 18 | 3 | | 19 | 19 | | 20 | 8 | | 21 | 4 | | 22 | 4 | | 23 | 6 | | 24 | 8 | | 25 | 17 | | 26 | 9 | | 27 | 5 | | 28 | 2 | | 29 | 5 | | 30 | 5 | | 31 | 4 | | 32 | 20 | | 33 | 7 | | 34 | 6 | | 35 | 1 | | 36 | 11 | | 37 | 2 | | 38 | 3 | | 39 | 12 | | 40 | 13 | | 41 | 9 | | 42 | 11 | | 43 | 5 | | 44 | 13 | | 45 | 3 | | 46 | 6 | | 47 | 3 | | 48 | 11 | | 49 | 1 |
| |
| 52.91% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.3412698412698413 | | totalSentences | 126 | | uniqueOpeners | 43 | |
| 85.47% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 78 | | matches | | 0 | "Then she saw him." | | 1 | "Then the door swung open," |
| | ratio | 0.026 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 78 | | matches | | 0 | "She didn’t look up from" | | 1 | "She hesitated, clipboard trembling just" | | 2 | "His voice cut through the" | | 3 | "She turned slowly, as if" | | 4 | "He didn’t have to." | | 5 | "He swirled the liquid in" | | 6 | "His gaze flicked to her" | | 7 | "She flexed her fingers." | | 8 | "He took a slow sip" | | 9 | "She tapped the clipboard" | | 10 | "His fingers brushed the rim" | | 11 | "She should’ve left." | | 12 | "She forced a laugh, brittle" | | 13 | "She didn’t deny it." | | 14 | "He didn’t have to." | | 15 | "She blinked, fast, furious." | | 16 | "He took another sip" | | 17 | "She should’ve walked away." | | 18 | "She smiled, sad and sharp." | | 19 | "His fingers tightened." |
| | ratio | 0.256 | |
| 30.51% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 78 | | matches | | 0 | "The neon green sign of" | | 1 | "The air inside was thick" | | 2 | "She didn’t look up from" | | 3 | "Silas Blackwood sat at the" | | 4 | "The grey streaks in his" | | 5 | "She hesitated, clipboard trembling just" | | 6 | "His voice cut through the" | | 7 | "She turned slowly, as if" | | 8 | "Silas didn’t smile." | | 9 | "He didn’t have to." | | 10 | "He swirled the liquid in" | | 11 | "Rory slid into the booth" | | 12 | "His gaze flicked to her" | | 13 | "She flexed her fingers." | | 14 | "He took a slow sip" | | 15 | "The words slipped out before" | | 16 | "The air between them thickened," | | 17 | "Silas set his glass down." | | 18 | "Rory exhaled, sharp and sudden." | | 19 | "A beat of silence." |
| | ratio | 0.859 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 78 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 1 | | matches | | 0 | "The bar’s jukebox crackled, playing something old and slow—something that made her think of rain on pavement and bad decisions." |
| |
| 62.50% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 2 | | matches | | 0 | "He swirled, the ice clinking against the sides" | | 1 | "Rory exhaled, slow" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 57 | | tagDensity | 0.07 | | leniency | 0.14 | | rawRatio | 0 | | effectiveRatio | 0 | |