| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 50 | | tagDensity | 0.14 | | leniency | 0.28 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 87.57% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1609 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | | 2 | | adverb | "barely above a whisper" | | count | 1 |
| | 3 | |
| | highlights | | 0 | "sharply" | | 1 | "slightly" | | 2 | "barely above a whisper" | | 3 | "really" |
| |
| 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) | |
| 31.63% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1609 | | totalAiIsms | 22 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "weight" | | 1 | "familiar" | | 2 | "footsteps" | | 3 | "shattered" | | 4 | "flicker" | | 5 | "pulse" | | 6 | "flickered" | | 7 | "racing" | | 8 | "unreadable" | | 9 | "eyebrow" | | 10 | "stomach" | | 11 | "rhythmic" | | 12 | "whisper" | | 13 | "raced" | | 14 | "etched" | | 15 | "fluttered" | | 16 | "could feel" | | 17 | "silence" |
| |
| 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 | 103 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 103 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "happened to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 146 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 3 | | totalWords | 1599 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 57 | | wordCount | 1186 | | uniqueNames | 11 | | maxNameDensity | 2.19 | | worstName | "Quinn" | | maxWindowNameDensity | 5 | | worstWindowName | "Tomás" | | discoveredNames | | Quinn | 26 | | Special | 1 | | Response | 1 | | Unit | 1 | | Morris | 2 | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Tomás | 19 | | Veil | 2 | | Market | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Morris" | | 2 | "Tomás" |
| | places | | 0 | "Special" | | 1 | "Soho" | | 2 | "Raven" |
| | globalScore | 0.404 | | windowScore | 0 | |
| 16.67% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 75 | | glossingSentenceCount | 4 | | matches | | 0 | "felt like a different world, one where" | | 1 | "something between a sneer and a grimace" | | 2 | "as if gathering his thoughts" | | 3 | "felt like a promise" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1599 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 146 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 54 | | mean | 29.61 | | std | 25.06 | | cv | 0.846 | | sampleLengths | | 0 | 113 | | 1 | 113 | | 2 | 59 | | 3 | 77 | | 4 | 21 | | 5 | 38 | | 6 | 90 | | 7 | 15 | | 8 | 38 | | 9 | 33 | | 10 | 7 | | 11 | 29 | | 12 | 30 | | 13 | 7 | | 14 | 42 | | 15 | 55 | | 16 | 20 | | 17 | 58 | | 18 | 7 | | 19 | 28 | | 20 | 25 | | 21 | 32 | | 22 | 23 | | 23 | 21 | | 24 | 35 | | 25 | 64 | | 26 | 9 | | 27 | 6 | | 28 | 12 | | 29 | 20 | | 30 | 5 | | 31 | 8 | | 32 | 23 | | 33 | 21 | | 34 | 21 | | 35 | 9 | | 36 | 24 | | 37 | 19 | | 38 | 42 | | 39 | 10 | | 40 | 11 | | 41 | 8 | | 42 | 50 | | 43 | 4 | | 44 | 40 | | 45 | 14 | | 46 | 11 | | 47 | 20 | | 48 | 27 | | 49 | 9 |
| |
| 88.23% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 103 | | matches | | 0 | "was fixed" | | 1 | "got buried" | | 2 | "got" | | 3 | "being dropped" | | 4 | "was shaped" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 217 | | matches | | 0 | "was itching" | | 1 | "was talking" | | 2 | "was letting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 146 | | ratio | 0.062 | | matches | | 0 | "She hadn’t fired it in years—not since the night she’d lost Morris." | | 1 | "The suspect—*he*—had been easy to tail at first." | | 2 | "The air smelled of wet stone and something sharper—ozone, maybe, or the faint metallic tang of old blood." | | 3 | "He wore a stained white shirt beneath a worn leather jacket, and the scent of antiseptic and something earthier—like damp earth and crushed herbs—lingered around him." | | 4 | "The younger man—*Tomás*, she realized with a flicker of irritation—didn’t look at the suspect." | | 5 | "\"I know about it because I’ve been looking for answers. And right now, that suspect—\" she jerked her chin toward the man on the ground, who was now muttering to himself in a language she didn’t recognize \"—he’s got something that belongs to the clique. Something that’s got my partner’s name on it.\"" | | 6 | "She’d heard rumors, of course—whispers in the back alleys of the force, files that got marked \"classified\" and then disappeared." | | 7 | "A sound cut through the night—a distant, rhythmic *thump*, like something heavy being dropped into water." | | 8 | "And if she wanted answers—if she wanted to find out what had really happened to Morris—she had to go down there." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 937 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 31 | | adverbRatio | 0.033084311632870865 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.007470651013874066 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 146 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 146 | | mean | 10.95 | | std | 8.2 | | cv | 0.749 | | sampleLengths | | 0 | 17 | | 1 | 30 | | 2 | 19 | | 3 | 12 | | 4 | 35 | | 5 | 8 | | 6 | 18 | | 7 | 18 | | 8 | 22 | | 9 | 10 | | 10 | 30 | | 11 | 7 | | 12 | 17 | | 13 | 15 | | 14 | 18 | | 15 | 4 | | 16 | 5 | | 17 | 6 | | 18 | 24 | | 19 | 30 | | 20 | 13 | | 21 | 4 | | 22 | 3 | | 23 | 4 | | 24 | 9 | | 25 | 5 | | 26 | 12 | | 27 | 26 | | 28 | 15 | | 29 | 21 | | 30 | 14 | | 31 | 14 | | 32 | 26 | | 33 | 11 | | 34 | 4 | | 35 | 31 | | 36 | 7 | | 37 | 14 | | 38 | 7 | | 39 | 12 | | 40 | 3 | | 41 | 4 | | 42 | 17 | | 43 | 4 | | 44 | 8 | | 45 | 15 | | 46 | 15 | | 47 | 6 | | 48 | 1 | | 49 | 6 |
| |
| 47.95% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.2465753424657534 | | totalSentences | 146 | | uniqueOpeners | 36 | |
| 33.67% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 99 | | matches | | 0 | "Instead, he nodded toward the" |
| | ratio | 0.01 | |
| 98.79% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 99 | | matches | | 0 | "She kept her pace steady," | | 1 | "She hadn’t fired it in" | | 2 | "He moved with the confidence" | | 3 | "She’d been there once, posing" | | 4 | "She didn’t like it." | | 5 | "She ducked, pressing herself against" | | 6 | "he said, his voice low," | | 7 | "She didn’t need to." | | 8 | "She stepped forward, her revolver" | | 9 | "He reached into his coat," | | 10 | "She whirled, her gun still" | | 11 | "He was younger, maybe mid-thirties," | | 12 | "He wore a stained white" | | 13 | "he said, his voice calm," | | 14 | "His gaze was fixed on" | | 15 | "She knew that tone." | | 16 | "She’d heard it before, in" | | 17 | "she jerked her chin toward" | | 18 | "She’d heard rumors, of course—whispers" | | 19 | "She turned to Tomás." |
| | ratio | 0.303 | |
| 15.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 88 | | totalSentences | 99 | | matches | | 0 | "The rain came down in" | | 1 | "She kept her pace steady," | | 2 | "The gun was a relic" | | 3 | "She hadn’t fired it in" | | 4 | "The suspect—*he*—had been easy to" | | 5 | "A man in a long," | | 6 | "He moved with the confidence" | | 7 | "Quinn had seen him before," | | 8 | "She’d been there once, posing" | | 9 | "That was when she’d first" | | 10 | "Something that wasn’t just a" | | 11 | "Quinn followed, her boots splashing" | | 12 | "The air smelled of wet" | | 13 | "She didn’t like it." | | 14 | "A sharp crack split the" | | 15 | "Quinn barely had time to" | | 16 | "She ducked, pressing herself against" | | 17 | "he said, his voice low," | | 18 | "Quinn didn’t answer." | | 19 | "She didn’t need to." |
| | ratio | 0.889 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 99 | | matches | | 0 | "Now, he was cutting through" | | 1 | "Before he could answer, the" |
| | ratio | 0.02 | |
| 28.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 8 | | matches | | 0 | "The rain came down in sheets, a relentless drumming that turned the cobblestones slick beneath Quinn’s boots." | | 1 | "Quinn followed, her boots splashing through puddles that reflected the sickly glow of the streetlamps." | | 2 | "A hand clamped over her wrist, yanking her back with a strength that surprised her." | | 3 | "Quinn glared at him, then back at the suspect, who was now pressing a hand to his side, his coat gaping open to reveal a dark stain spreading across his shirt." | | 4 | "Knew the way his voice dropped, the way his body language shifted when he was talking about things that went beyond the law." | | 5 | "She looked back at the suspect, who was now lying still, his chest rising and falling in shallow, unnatural breaths." | | 6 | "Tomás closed his eyes for a moment, as if gathering his thoughts." | | 7 | "She turned and started walking, her boots splashing through the rain-soaked streets." |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "he said, his voice low, amused" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 50 | | tagDensity | 0.06 | | leniency | 0.12 | | rawRatio | 0.333 | | effectiveRatio | 0.04 | |