| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 79.65% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 983 | | totalAiIsmAdverbs | 4 | | 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.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 983 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "jaw clenched" | | 1 | "charm" | | 2 | "navigated" | | 3 | "treacherous" | | 4 | "weight" | | 5 | "familiar" | | 6 | "echoed" | | 7 | "echo" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 62 | | matches | (empty) | |
| 73.73% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 62 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 62 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 32 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 978 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.72% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 975 | | uniqueNames | 12 | | maxNameDensity | 1.03 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Herrera" | | discoveredNames | | Harlow | 1 | | Quinn | 10 | | Soho | 2 | | Tomás | 1 | | Herrera | 8 | | Morris | 4 | | Saint | 1 | | Christopher | 1 | | Camden | 1 | | Tube | 2 | | Veil | 2 | | Market | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Morris" | | 5 | "Saint" | | 6 | "Christopher" |
| | places | | | globalScore | 0.987 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | glossingSentenceCount | 1 | | matches | | 0 | "as if acknowledging a choice she had yet to make" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 978 | | matches | (empty) | |
| 59.14% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 62 | | matches | | 0 | "seen that night" | | 1 | "recognizing that it" |
| |
| 47.36% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 18 | | mean | 54.33 | | std | 17.16 | | cv | 0.316 | | sampleLengths | | 0 | 66 | | 1 | 67 | | 2 | 58 | | 3 | 28 | | 4 | 86 | | 5 | 66 | | 6 | 48 | | 7 | 40 | | 8 | 54 | | 9 | 48 | | 10 | 75 | | 11 | 38 | | 12 | 62 | | 13 | 12 | | 14 | 62 | | 15 | 51 | | 16 | 48 | | 17 | 69 |
| |
| 93.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 62 | | matches | | 0 | "was plastered" | | 1 | "been abandoned" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 164 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 1 | | flaggedSentences | 6 | | totalSentences | 62 | | ratio | 0.097 | | matches | | 0 | "Detective Harlow Quinn pressed forward, her worn leather watch catching the glow as she checked the time—23:47." | | 1 | "Quinn recognized him—Tomás Herrera, the paramedic turned back-alley doctor who'd been showing up in her investigation with uncomfortable frequency." | | 2 | "Something glinted at his neck as he moved—Saint Christopher medallion, protective charm, or something else entirely?" | | 3 | "Her brown eyes tracked his every move, missing nothing—the way he favored his right leg slightly, the practiced rhythm of his breathing, the certainty with which he navigated the labyrinthine passages." | | 4 | "This wasn't a man running scared; this was a man leading her somewhere." | | 5 | "There—a small indentation in the shape of a bone." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 985 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.03553299492385787 | | lyAdverbCount | 19 | | lyAdverbRatio | 0.019289340101522844 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 62 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 62 | | mean | 15.77 | | std | 6.87 | | cv | 0.435 | | sampleLengths | | 0 | 16 | | 1 | 17 | | 2 | 17 | | 3 | 16 | | 4 | 17 | | 5 | 19 | | 6 | 31 | | 7 | 18 | | 8 | 11 | | 9 | 15 | | 10 | 14 | | 11 | 28 | | 12 | 11 | | 13 | 9 | | 14 | 16 | | 15 | 32 | | 16 | 18 | | 17 | 22 | | 18 | 31 | | 19 | 13 | | 20 | 16 | | 21 | 9 | | 22 | 15 | | 23 | 4 | | 24 | 4 | | 25 | 17 | | 26 | 13 | | 27 | 10 | | 28 | 12 | | 29 | 18 | | 30 | 11 | | 31 | 13 | | 32 | 17 | | 33 | 12 | | 34 | 19 | | 35 | 9 | | 36 | 9 | | 37 | 16 | | 38 | 3 | | 39 | 19 | | 40 | 19 | | 41 | 10 | | 42 | 10 | | 43 | 18 | | 44 | 12 | | 45 | 28 | | 46 | 22 | | 47 | 12 | | 48 | 6 | | 49 | 17 |
| |
| 76.88% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.5 | | totalSentences | 62 | | uniqueOpeners | 31 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 62 | | matches | | 0 | "Officially closed, structurally unsound." | | 1 | "Unofficially, something else entirely." | | 2 | "Too precise for a knife" |
| | ratio | 0.048 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 62 | | matches | | 0 | "Her closely cropped salt-and-pepper hair" | | 1 | "She dodged traffic, ignoring the" | | 2 | "Her sharp jaw clenched as" | | 3 | "Her voice cut through the" | | 4 | "She'd seen plenty of scars" | | 5 | "He led her through a" | | 6 | "Her brown eyes tracked his" | | 7 | "They were approaching the Tube" | | 8 | "She drew her firearm, the" | | 9 | "She edged forward, sweeping her" | | 10 | "She'd seen similar mechanisms in" | | 11 | "She tightened her grip on" | | 12 | "He raised his left arm," | | 13 | "He met her gaze and" | | 14 | "Her worn leather watch ticked" |
| | ratio | 0.242 | |
| 56.77% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 50 | | totalSentences | 62 | | matches | | 0 | "Rain lashed against the pavement," | | 1 | "Detective Harlow Quinn pressed forward," | | 2 | "Her closely cropped salt-and-pepper hair" | | 3 | "Quinn recognized him—Tomás Herrera, the" | | 4 | "She dodged traffic, ignoring the" | | 5 | "The walls narrowed, closing in" | | 6 | "Water streamed from overflowing gutters," | | 7 | "Her sharp jaw clenched as" | | 8 | "Her voice cut through the" | | 9 | "The alley opened onto a" | | 10 | "Herrera was twenty yards ahead," | | 11 | "Something glinted at his neck" | | 12 | "Quinn added it to her" | | 13 | "She'd seen plenty of scars" | | 14 | "He led her through a" | | 15 | "Her brown eyes tracked his" | | 16 | "This wasn't a man running" | | 17 | "The rain intensified, hammering on" | | 18 | "Quinn's boots slipped but she" | | 19 | "They were approaching the Tube" |
| | ratio | 0.806 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 62 | | matches | (empty) | | ratio | 0 | |
| 48.52% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 7 | | matches | | 0 | "Quinn recognized him—Tomás Herrera, the paramedic turned back-alley doctor who'd been showing up in her investigation with uncomfortable frequency." | | 1 | "Three years since DS Morris had died under those impossible circumstances, and Herrera's name kept surfacing around the edges of her cases, always wrapped in wh…" | | 2 | "Water streamed from overflowing gutters, forming miniature waterfalls that drenched her already sodden trench coat." | | 3 | "The abandoned Tube station had vanished, replaced by a cavernous underground marketplace that shouldn't have been possible." | | 4 | "Creatures that couldn't exist mingled with humans who moved with unnatural confidence." | | 5 | "And Herrera, who stood just twenty yards ahead, removing his hood and looking back at her with those warm brown eyes that showed no surprise at all, was her way…" | | 6 | "Around her, the market continued its impossible business, oblivious or indifferent to the human detective who had just stepped across the threshold into a world…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |