| 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 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 821 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 8.65% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 821 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "flickered" | | 1 | "weight" | | 2 | "pulse" | | 3 | "flicker" | | 4 | "pulsed" | | 5 | "shimmered" | | 6 | "stomach" | | 7 | "echoed" | | 8 | "roaring" | | 9 | "surreal" | | 10 | "raced" | | 11 | "whisper" | | 12 | "racing" | | 13 | "pounding" |
| |
| 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 | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 75 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 813 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 760 | | uniqueNames | 11 | | maxNameDensity | 1.84 | | worstName | "Quinn" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Quinn" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Harlow | 1 | | Quinn | 14 | | London | 1 | | Tomás | 4 | | Herrera | 2 | | Veil | 1 | | Market | 1 | | Saint | 1 | | Christopher | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Harlow" | | 3 | "Quinn" | | 4 | "Tomás" | | 5 | "Herrera" | | 6 | "Market" | | 7 | "Saint" | | 8 | "Christopher" |
| | places | | | globalScore | 0.579 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 51 | | 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 | 813 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 75 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 20 | | mean | 40.65 | | std | 22.55 | | cv | 0.555 | | sampleLengths | | 0 | 58 | | 1 | 79 | | 2 | 53 | | 3 | 68 | | 4 | 62 | | 5 | 60 | | 6 | 4 | | 7 | 72 | | 8 | 56 | | 9 | 18 | | 10 | 7 | | 11 | 14 | | 12 | 41 | | 13 | 19 | | 14 | 10 | | 15 | 39 | | 16 | 45 | | 17 | 30 | | 18 | 49 | | 19 | 29 |
| |
| 84.92% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 69 | | matches | | 0 | "were lined" | | 1 | "were wrapped" | | 2 | "were closed" | | 3 | "was lost" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 127 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 75 | | ratio | 0.08 | | matches | | 0 | "The man had vanished into the labyrinth of alleys, leaving behind only a trail of wet footprints and the faint, acrid tang of something unnatural—like ozone and burnt copper." | | 1 | "A flicker of movement caught her eye—a shadow darting between the flickering lights of a boarded-up shop." | | 2 | "The suspect—if that’s what he was—had already vanished into the darkness, but the scent lingered." | | 3 | "The walls were lined with shelves of strange, glowing objects—vials of liquid that shimmered like liquid starlight, jars of preserved things that shouldn’t exist, and bundles of cloth wrapped in patterns that made her stomach twist." | | 4 | "The scent of the suspect grew stronger, now mixed with something else—something metallic and warm, like blood and sweat." | | 5 | "The hood fell back, revealing a face she’d seen before—sharp features, cold eyes." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 768 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.024739583333333332 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.006510416666666667 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 75 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 75 | | mean | 10.84 | | std | 6.48 | | cv | 0.598 | | sampleLengths | | 0 | 17 | | 1 | 21 | | 2 | 20 | | 3 | 14 | | 4 | 29 | | 5 | 11 | | 6 | 7 | | 7 | 18 | | 8 | 17 | | 9 | 9 | | 10 | 15 | | 11 | 12 | | 12 | 3 | | 13 | 23 | | 14 | 16 | | 15 | 14 | | 16 | 12 | | 17 | 4 | | 18 | 36 | | 19 | 13 | | 20 | 9 | | 21 | 13 | | 22 | 19 | | 23 | 10 | | 24 | 18 | | 25 | 4 | | 26 | 19 | | 27 | 11 | | 28 | 3 | | 29 | 18 | | 30 | 3 | | 31 | 18 | | 32 | 3 | | 33 | 11 | | 34 | 10 | | 35 | 3 | | 36 | 16 | | 37 | 13 | | 38 | 9 | | 39 | 9 | | 40 | 3 | | 41 | 4 | | 42 | 6 | | 43 | 8 | | 44 | 3 | | 45 | 4 | | 46 | 5 | | 47 | 12 | | 48 | 17 | | 49 | 15 |
| |
| 40.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.28 | | totalSentences | 75 | | uniqueOpeners | 21 | |
| 99.50% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 67 | | matches | | 0 | "Somewhere, a child’s laughter echoed," | | 1 | "Then she saw him." |
| | ratio | 0.03 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 67 | | matches | | 0 | "She’d been chasing Tomás Herrera" | | 1 | "She didn’t hesitate." | | 2 | "She followed the trail, her" | | 3 | "His eyes were closed, his" | | 4 | "She moved without sound, her" | | 5 | "She grabbed the man by" | | 6 | "She had to move." | | 7 | "She had to get out." | | 8 | "She could hear the distant" | | 9 | "She lunged, her fist connecting" | | 10 | "He stumbled back, but he" | | 11 | "She screamed, but the sound" | | 12 | "She fought, her body moving" | | 13 | "She had to get out." | | 14 | "She had to get out" | | 15 | "She stumbled forward, her boots" | | 16 | "She was back on the" | | 17 | "She didn’t look back." | | 18 | "It was only the beginning." |
| | ratio | 0.284 | |
| 12.24% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 67 | | matches | | 0 | "The neon glow of the" | | 1 | "Detective Harlow Quinn’s breath fogged" | | 2 | "The scent of damp earth" | | 3 | "She’d been chasing Tomás Herrera" | | 4 | "The man had vanished into" | | 5 | "Quinn’s fingers tightened around the" | | 6 | "The clock had stopped at" | | 7 | "A flicker of movement caught" | | 8 | "Quinn lunged, her instincts screaming" | | 9 | "The suspect—if that’s what he" | | 10 | "Something metallic, sharp, like the" | | 11 | "She didn’t hesitate." | | 12 | "The chase took her beneath" | | 13 | "The air grew thick with" | | 14 | "The entrance was a rusted" | | 15 | "Quinn kicked it open with" | | 16 | "The walls were lined with" | | 17 | "The market was alive with" | | 18 | "Quinn’s boots sank into a" | | 19 | "The scent of the suspect" |
| | ratio | 0.896 | |
| 74.63% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 67 | | matches | | 0 | "Before Quinn could react, he" |
| | ratio | 0.015 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 2 | | matches | | 0 | "She’d been chasing Tomás Herrera for hours now, her pulse hammering against her ribs." | | 1 | "The walls were lined with shelves of strange, glowing objects—vials of liquid that shimmered like liquid starlight, jars of preserved things that shouldn’t exis…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 2 | | matches | | 0 | "the man said, his voice smooth, dangerous" | | 1 | "Quinn said, her voice steady despite the fear clawing at her throat" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 8 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |