| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 15 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 78.95% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 475 | | totalAiIsmAdverbs | 2 | | 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) | |
| 36.84% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 475 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "maw" | | 1 | "whisper" | | 2 | "tension" | | 3 | "measured" | | 4 | "scanning" | | 5 | "stomach" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 63.27% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 27 | | matches | | 0 | "a jolt of unease" | | 1 | "was afraid" |
| |
| 89.95% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 27 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 36 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 5 | | totalWords | 468 | | ratio | 0.011 | | matches | | 0 | "shifted" | | 1 | "sharp and precise" | | 2 | "wrongness" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 365 | | uniqueNames | 7 | | maxNameDensity | 1.64 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Davies" | | discoveredNames | | Veil | 4 | | Market | 2 | | Quinn | 6 | | Tube | 1 | | Camden | 1 | | Compass | 2 | | Davies | 6 |
| | persons | | 0 | "Market" | | 1 | "Quinn" | | 2 | "Davies" |
| | places | | | globalScore | 0.678 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 19 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 4.274 | | wordCount | 468 | | matches | | 0 | "not with a blade, but with something *sharp" | | 1 | "not at the body, but at the far wall" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 36 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 14 | | mean | 33.43 | | std | 22.46 | | cv | 0.672 | | sampleLengths | | 0 | 83 | | 1 | 59 | | 2 | 13 | | 3 | 43 | | 4 | 24 | | 5 | 14 | | 6 | 24 | | 7 | 64 | | 8 | 10 | | 9 | 29 | | 10 | 7 | | 11 | 22 | | 12 | 54 | | 13 | 22 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 27 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 57 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 36 | | ratio | 0.111 | | matches | | 0 | "The Veil Market’s entrance yawned like a gaping maw, its iron bars rusted from decades of neglect, the air thick with the scent of damp stone and something older—something that clung to the edges of your senses like a whisper." | | 1 | "The victim’s throat had been slit—not with a blade, but with something *sharp and precise*, as if the killer had been waiting for the right moment." | | 2 | "Because three years ago, her partner had vanished under similar circumstances—only to resurface months later, hollow-eyed and broken, with no explanation." | | 3 | "She had seen it before—once, in a back-alley deal at the Veil Market, its patina of verdigris catching the light like a warning." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 371 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 11 | | adverbRatio | 0.029649595687331536 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.01078167115902965 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 36 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 36 | | mean | 13 | | std | 9.28 | | cv | 0.714 | | sampleLengths | | 0 | 40 | | 1 | 20 | | 2 | 23 | | 3 | 16 | | 4 | 3 | | 5 | 14 | | 6 | 26 | | 7 | 11 | | 8 | 2 | | 9 | 9 | | 10 | 24 | | 11 | 10 | | 12 | 8 | | 13 | 16 | | 14 | 10 | | 15 | 4 | | 16 | 11 | | 17 | 13 | | 18 | 7 | | 19 | 20 | | 20 | 21 | | 21 | 16 | | 22 | 8 | | 23 | 2 | | 24 | 3 | | 25 | 26 | | 26 | 3 | | 27 | 4 | | 28 | 21 | | 29 | 1 | | 30 | 3 | | 31 | 3 | | 32 | 23 | | 33 | 25 | | 34 | 3 | | 35 | 19 |
| |
| 78.70% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 0 | | diversityRatio | 0.4722222222222222 | | totalSentences | 36 | | uniqueOpeners | 17 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 27 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 6 | | totalSentences | 27 | | matches | | 0 | "She had come to investigate" | | 1 | "She didn’t need the Veil" | | 2 | "she said, voice low" | | 3 | "She had come to investigate," | | 4 | "she said, her voice quieter" | | 5 | "She had seen it before—once," |
| | ratio | 0.222 | |
| 15.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 24 | | totalSentences | 27 | | matches | | 0 | "The Veil Market’s entrance yawned" | | 1 | "Detective Quinn’s boots crunched on" | | 2 | "She had come to investigate" | | 3 | "A figure moved in the" | | 4 | "Quinn’s instincts prickled." | | 5 | "She didn’t need the Veil" | | 6 | "The victim’s throat had been" | | 7 | "a voice cut through the" | | 8 | "Quinn turned, her hand instinctively" | | 9 | "she said, voice low" | | 10 | "Davies gestured to the body" | | 11 | "Quinn exhaled sharply, her fingers" | | 12 | "Davies stepped forward, his boots" | | 13 | "The words hit her like" | | 14 | "She had come to investigate," | | 15 | "she said, her voice quieter" | | 16 | "Davies didn’t flinch." | | 17 | "Quinn’s stomach twisted." | | 18 | "Davies pulled a small brass" | | 19 | "The Veil Compass." |
| | ratio | 0.889 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 27 | | matches | | 0 | "Because three years ago, her" |
| | ratio | 0.037 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 13 | | technicalSentenceCount | 4 | | matches | | 0 | "The Veil Market’s entrance yawned like a gaping maw, its iron bars rusted from decades of neglect, the air thick with the scent of damp stone and something olde…" | | 1 | "The victim’s throat had been slit—not with a blade, but with something *sharp and precise*, as if the killer had been waiting for the right moment." | | 2 | "Standing behind her was DS Davies, his usual sharp eyes scanning the shadows with a professional detachment that belied the way his jaw tightened." | | 3 | "The needle spun, pointing not at the body, but at the far wall, where a door hung slightly ajar, its hinges groaning in the damp." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 4 | | matches | | 0 | "she said, voice low" | | 1 | "Davies stepped, his boots silent on the broken tiles" | | 2 | "she said, her voice quieter now" | | 3 | "Davies pulled, its needle already twitching toward the center of the room" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 15 | | tagDensity | 0.133 | | leniency | 0.267 | | rawRatio | 0 | | effectiveRatio | 0 | |