| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 8 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.11% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 726 | | totalAiIsmAdverbs | 1 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (17 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 3.58% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 726 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "flickered" | | 1 | "familiar" | | 2 | "weight" | | 3 | "comforting" | | 4 | "wavering" | | 5 | "flicker" | | 6 | "glinting" | | 7 | "pulse" | | 8 | "stomach" | | 9 | "raced" | | 10 | "unreadable" | | 11 | "pulsed" | | 12 | "determined" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 64 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 64 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 70 | | 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 | 8 | | markdownWords | 34 | | totalWords | 720 | | ratio | 0.047 | | matches | | 0 | "The Raven’s Nest" | | 1 | "Unlicensed medical treatments," | | 2 | "You shouldn’t be here." | | 3 | "He’s lying." | | 4 | "The Veil Market" | | 5 | "This isn’t just some underground market. It’s a black market for things that shouldn’t exist." | | 6 | "clique" | | 7 | "He’s protecting someone." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 680 | | uniqueNames | 9 | | maxNameDensity | 1.91 | | worstName | "Quinn" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Quinn" | | discoveredNames | | Raven | 1 | | Harlow | 1 | | Quinn | 13 | | Herrera | 1 | | Veil | 2 | | Tube | 1 | | Camden | 1 | | Tomás | 8 | | Market | 2 |
| | persons | | 0 | "Raven" | | 1 | "Harlow" | | 2 | "Quinn" | | 3 | "Herrera" | | 4 | "Tomás" |
| | places | | | globalScore | 0.544 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 44 | | 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 | 720 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 70 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 24 | | std | 24.4 | | cv | 1.017 | | sampleLengths | | 0 | 83 | | 1 | 69 | | 2 | 3 | | 3 | 60 | | 4 | 62 | | 5 | 2 | | 6 | 6 | | 7 | 71 | | 8 | 11 | | 9 | 47 | | 10 | 46 | | 11 | 9 | | 12 | 10 | | 13 | 22 | | 14 | 39 | | 15 | 2 | | 16 | 11 | | 17 | 7 | | 18 | 5 | | 19 | 1 | | 20 | 49 | | 21 | 15 | | 22 | 2 | | 23 | 14 | | 24 | 10 | | 25 | 12 | | 26 | 15 | | 27 | 28 | | 28 | 5 | | 29 | 4 |
| |
| 94.30% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 64 | | matches | | 0 | "been pushed" | | 1 | "was determined" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 112 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 70 | | ratio | 0.1 | | matches | | 0 | "Tomás Herrera had led her here—again." | | 1 | "Now, the rain pattered against her umbrella like a thousand tiny knives, and the city hummed around her—a distant siren, a car backfiring, the occasional laugh from a group of drunken revelers." | | 2 | "The way he’d darted into the shadows, the way his scar had glinted under the bar’s sickly green light—it was all there in the way his breath hitched when he’d looked at her." | | 3 | "Then she saw it—a flicker of movement in the darkness ahead." | | 4 | "It was someone else—someone with eyes too sharp, too knowing." | | 5 | "Tomás had mentioned a *clique*—a group involved in something far worse than simple black-market deals." | | 6 | "Tomás didn’t hesitate—he lunged, his knife flashing in the dim light." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 689 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 18 | | adverbRatio | 0.026124818577648767 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.00725689404934688 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 70 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 70 | | mean | 10.29 | | std | 7.86 | | cv | 0.764 | | sampleLengths | | 0 | 26 | | 1 | 30 | | 2 | 27 | | 3 | 6 | | 4 | 11 | | 5 | 34 | | 6 | 14 | | 7 | 4 | | 8 | 3 | | 9 | 32 | | 10 | 13 | | 11 | 7 | | 12 | 8 | | 13 | 11 | | 14 | 18 | | 15 | 33 | | 16 | 2 | | 17 | 6 | | 18 | 26 | | 19 | 13 | | 20 | 17 | | 21 | 15 | | 22 | 11 | | 23 | 16 | | 24 | 13 | | 25 | 3 | | 26 | 6 | | 27 | 9 | | 28 | 9 | | 29 | 7 | | 30 | 3 | | 31 | 10 | | 32 | 17 | | 33 | 9 | | 34 | 5 | | 35 | 5 | | 36 | 12 | | 37 | 10 | | 38 | 3 | | 39 | 15 | | 40 | 18 | | 41 | 3 | | 42 | 2 | | 43 | 4 | | 44 | 7 | | 45 | 3 | | 46 | 4 | | 47 | 5 | | 48 | 1 | | 49 | 12 |
| |
| 45.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.3 | | totalSentences | 70 | | uniqueOpeners | 21 | |
| 55.56% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 60 | | matches | | 0 | "Then she saw it—a flicker" |
| | ratio | 0.017 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 60 | | matches | | 0 | "*You shouldn’t be here.*" | | 1 | "She’d ignored him." | | 2 | "She’d been a cop for" | | 3 | "She knew how to move" | | 4 | "She could hear the distant" | | 5 | "It’s a black market for" | | 6 | "She stepped forward, her boots" | | 7 | "It wasn’t Tomás." | | 8 | "It was someone else—someone with" | | 9 | "She’d seen the way he’d" | | 10 | "*He’s protecting someone.*" | | 11 | "She didn’t have to." | | 12 | "He was there, hidden in" | | 13 | "She didn’t have time for" | | 14 | "He didn’t move." | | 15 | "She didn’t have to." | | 16 | "She took a step forward." |
| | ratio | 0.283 | |
| 18.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 60 | | matches | | 0 | "The neon glow of *The" | | 1 | "Detective Harlow Quinn adjusted the" | | 2 | "The scent of old leather" | | 3 | "Tomás Herrera had led her" | | 4 | "The man’s voice had been" | | 5 | "*You shouldn’t be here.*" | | 6 | "She’d ignored him." | | 7 | "Quinn’s fingers tightened around the" | | 8 | "She’d been a cop for" | | 9 | "She knew how to move" | | 10 | "Tomás had vanished into the" | | 11 | "The way he’d darted into" | | 12 | "The first step down into" | | 13 | "Quinn’s boots sank into the" | | 14 | "The tunnel was narrow, the" | | 15 | "She could hear the distant" | | 16 | "A figure crouched near the" | | 17 | "The bone token hung from" | | 18 | "Quinn’s pulse spiked." | | 19 | "*This isn’t just some underground" |
| | ratio | 0.883 | |
| 83.33% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 60 | | matches | | 0 | "Now, the rain pattered against" |
| | ratio | 0.017 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 31 | | technicalSentenceCount | 1 | | matches | | 0 | "The scent of old leather and damp earth clung to the alley behind her, a familiar, unsettling mix that told her the hunt was far from over." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 1 | | matches | | 0 | "the stranger said, his voice smooth, amused" |
| |
| 25.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "the stranger hissed (hiss)" |
| | dialogueSentences | 8 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0.5 | | effectiveRatio | 0.25 | |