| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 23 | | tagDensity | 0.217 | | leniency | 0.435 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.99% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1246 | | 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) | |
| 59.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1246 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "flicker" | | 1 | "pulse" | | 2 | "quickened" | | 3 | "pulsed" | | 4 | "echoed" | | 5 | "velvet" | | 6 | "silence" | | 7 | "flicked" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "flicker of emotion" | | count | 1 |
|
| | highlights | | 0 | "A flicker of recognition" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 113 | | matches | (empty) | |
| 92.29% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 113 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 131 | | 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 | 0 | | markdownWords | 0 | | totalWords | 1232 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1068 | | uniqueNames | 14 | | maxNameDensity | 1.97 | | worstName | "Quinn" | | maxWindowNameDensity | 4 | | worstWindowName | "Quinn" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Quinn | 21 | | Seiko | 1 | | Berwick | 1 | | Street | 1 | | Old | 1 | | Compton | 1 | | Saint | 1 | | Christopher | 1 | | Tomás | 8 | | Veil | 1 | | Market | 1 | | Morris | 1 |
| | persons | | 0 | "Raven" | | 1 | "Quinn" | | 2 | "Seiko" | | 3 | "Saint" | | 4 | "Christopher" | | 5 | "Tomás" | | 6 | "Morris" |
| | places | | 0 | "Berwick" | | 1 | "Street" | | 2 | "Compton" |
| | globalScore | 0.517 | | windowScore | 0.333 | |
| 77.54% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 69 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like they’d been burned into the s" | | 1 | "looked like skin, jewelry that hummed whe" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1232 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 131 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 70 | | mean | 17.6 | | std | 16.92 | | cv | 0.961 | | sampleLengths | | 0 | 81 | | 1 | 13 | | 2 | 57 | | 3 | 7 | | 4 | 53 | | 5 | 3 | | 6 | 40 | | 7 | 7 | | 8 | 56 | | 9 | 5 | | 10 | 42 | | 11 | 3 | | 12 | 55 | | 13 | 3 | | 14 | 10 | | 15 | 9 | | 16 | 2 | | 17 | 42 | | 18 | 10 | | 19 | 25 | | 20 | 5 | | 21 | 53 | | 22 | 41 | | 23 | 2 | | 24 | 33 | | 25 | 9 | | 26 | 3 | | 27 | 6 | | 28 | 8 | | 29 | 27 | | 30 | 26 | | 31 | 13 | | 32 | 16 | | 33 | 42 | | 34 | 19 | | 35 | 2 | | 36 | 9 | | 37 | 6 | | 38 | 1 | | 39 | 19 | | 40 | 12 | | 41 | 19 | | 42 | 12 | | 43 | 14 | | 44 | 12 | | 45 | 6 | | 46 | 7 | | 47 | 22 | | 48 | 33 | | 49 | 11 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 113 | | matches | | 0 | "were covered" | | 1 | "been burned" |
| |
| 55.86% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 185 | | matches | | 0 | "wasn’t looking" | | 1 | "wasn’t letting" | | 2 | "wasn’t fighting" | | 3 | "was waiting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 131 | | ratio | 0.084 | | matches | | 0 | "Detective Quinn adjusted her leather watch—Seiko, beaten up from use—and checked the alleyway beyond the bar." | | 1 | "The suspect’s jacket—a faded leather thing that clung too tight to his shoulders—had been easy to spot from the bar’s window." | | 2 | "He wasn’t looking for her—just for escape routes." | | 3 | "The chase cut through narrow streets slick with neon and rain, the glow from bars and strip clubs turning everything to liquid color—reds bleeding into blues, greens staining the puddles black." | | 4 | "The suspect’s scent lingered—cheap cologne, sweat, the faint metallic note of adrenaline." | | 5 | "The air changed the moment she passed the gate—thicker, cooler, carrying the scent of damp earth and something older, something that hummed beneath the rain." | | 6 | "The walls were covered in symbols—some painted, some carved, some that looked like they’d been burned into the stone." | | 7 | "And then she saw him—the suspect." | | 8 | "The market stalls buzzed around them—vendors in dark corners offering vials, books bound in something that looked like skin, jewelry that hummed when touched." | | 9 | "A bell chimed somewhere deep in the market—high and clear, like a church bell underwater." | | 10 | "Quinn finally broke her stare and looked deeper into the market, toward where the corridor split—one path leading to more stalls, the other vanishing into deeper dark, the green light fading into black." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1085 | | adjectiveStacks | 1 | | stackExamples | | 0 | "sharp against wet paving," |
| | adverbCount | 32 | | adverbRatio | 0.029493087557603687 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.003686635944700461 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 131 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 131 | | mean | 9.4 | | std | 7.24 | | cv | 0.77 | | sampleLengths | | 0 | 29 | | 1 | 16 | | 2 | 14 | | 3 | 5 | | 4 | 17 | | 5 | 13 | | 6 | 16 | | 7 | 21 | | 8 | 20 | | 9 | 5 | | 10 | 2 | | 11 | 7 | | 12 | 28 | | 13 | 18 | | 14 | 3 | | 15 | 16 | | 16 | 8 | | 17 | 16 | | 18 | 7 | | 19 | 31 | | 20 | 25 | | 21 | 5 | | 22 | 17 | | 23 | 12 | | 24 | 6 | | 25 | 5 | | 26 | 2 | | 27 | 3 | | 28 | 16 | | 29 | 15 | | 30 | 18 | | 31 | 6 | | 32 | 3 | | 33 | 3 | | 34 | 3 | | 35 | 4 | | 36 | 9 | | 37 | 2 | | 38 | 8 | | 39 | 25 | | 40 | 9 | | 41 | 2 | | 42 | 8 | | 43 | 6 | | 44 | 2 | | 45 | 6 | | 46 | 11 | | 47 | 5 | | 48 | 17 | | 49 | 19 |
| |
| 40.84% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.2748091603053435 | | totalSentences | 131 | | uniqueOpeners | 36 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 102 | | matches | | 0 | "Then he turned." | | 1 | "Then he stopped." | | 2 | "Just her and the suspect" | | 3 | "Then she’d walk through hell" |
| | ratio | 0.039 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 102 | | matches | | 0 | "She could hear him, though." | | 1 | "She didn’t need a radio" | | 2 | "He’d ducked inside minutes earlier," | | 3 | "She didn’t call for backup." | | 4 | "He wasn’t looking for her—just" | | 5 | "He bolted down the alley," | | 6 | "She was on him in" | | 7 | "She cut through a side" | | 8 | "He was fast, but not" | | 9 | "He fumbled in his pocket," | | 10 | "Her fingers brushed the grip" | | 11 | "She took the last step." | | 12 | "He stood near a central" | | 13 | "She cleared the distance in" | | 14 | "He thrashed, elbow catching her" | | 15 | "He went still." | | 16 | "His olive skin looked sallow" | | 17 | "She kept her voice low," | | 18 | "He wasn’t fighting the way" | | 19 | "He was waiting." |
| | ratio | 0.275 | |
| 9.02% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 92 | | totalSentences | 102 | | matches | | 0 | "The rain came down hard" | | 1 | "Detective Quinn adjusted her leather" | | 2 | "The suspect’s trail was already" | | 3 | "She could hear him, though." | | 4 | "The wet slap of shoes" | | 5 | "She didn’t need a radio" | | 6 | "Quinn moved fast down the" | | 7 | "The suspect’s jacket—a faded leather" | | 8 | "He’d ducked inside minutes earlier," | | 9 | "She didn’t call for backup." | | 10 | "A flicker of movement near" | | 11 | "The suspect again, edging toward" | | 12 | "Quinn kept to the building" | | 13 | "Quinn dropped behind a parked" | | 14 | "He wasn’t looking for her—just" | | 15 | "He bolted down the alley," | | 16 | "She was on him in" | | 17 | "The chase cut through narrow" | | 18 | "The suspect zigzagged west, aiming" | | 19 | "Quinn wasn’t letting that happen." |
| | ratio | 0.902 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 102 | | matches | (empty) | | ratio | 0 | |
| 83.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 3 | | matches | | 0 | "The suspect’s jacket—a faded leather thing that clung too tight to his shoulders—had been easy to spot from the bar’s window." | | 1 | "The suspect again, edging toward a gap in the buildings that opened into a narrow passage between the remains of an old theatre and a boarded-up kebab shop." | | 2 | "The air changed the moment she passed the gate—thicker, cooler, carrying the scent of damp earth and something older, something that hummed beneath the rain." |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 1 | | matches | | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 23 | | tagDensity | 0.174 | | leniency | 0.348 | | rawRatio | 0.25 | | effectiveRatio | 0.087 | |