| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 82.91% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1170 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slightly" | | 1 | "completely" | | 2 | "sharply" |
| |
| 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) | |
| 70.09% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1170 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "weight" | | 1 | "echoing" | | 2 | "flickered" | | 3 | "resolved" | | 4 | "tinged" | | 5 | "stomach" |
| |
| 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 | 86 | | matches | (empty) | |
| 93.02% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 86 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 86 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1162 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1162 | | uniqueNames | 21 | | maxNameDensity | 0.69 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 8 | | Soho | 2 | | Tomás | 1 | | Herrera | 5 | | Saint | 1 | | Christopher | 1 | | Raven | 2 | | Nest | 2 | | Camden | 1 | | Tommy | 1 | | Morris | 4 | | Underground | 2 | | Vice | 1 | | Homicide | 1 | | London | 2 | | Met | 1 | | Victoria | 1 | | Latin | 1 | | Tube | 1 | | Veil | 2 | | Market | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Tomás" | | 2 | "Herrera" | | 3 | "Saint" | | 4 | "Christopher" | | 5 | "Raven" | | 6 | "Tommy" | | 7 | "Morris" | | 8 | "Met" | | 9 | "Victoria" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 7 | | matches | | 0 | "is forearm and apparently endless stamina" | | 1 | "seemed heavier here, as if the weather itself wanted to discourage her from going further" | | 2 | "felt like crossing a threshold" | | 3 | "sounded like Latin but wasn't, a man laugh" | | 4 | "quite name" | | 5 | "herbs that seemed to breathe, objects crafted from materials she couldn't identify" | | 6 | "quite their features slightly off in ways that made her stomach clench—a man whose eyes reflected the candlelight like a cat's, a woman with too many fingers on her left hand, a figure whose face seemed to blur and reform each time she blinked" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.861 | | wordCount | 1162 | | matches | | 0 | "not the fluorescent wash of a Tube platform but something warmer, stranger, tinged with colors she couldn't" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 86 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 27 | | mean | 43.04 | | std | 23.49 | | cv | 0.546 | | sampleLengths | | 0 | 51 | | 1 | 38 | | 2 | 65 | | 3 | 42 | | 4 | 65 | | 5 | 5 | | 6 | 77 | | 7 | 42 | | 8 | 62 | | 9 | 47 | | 10 | 13 | | 11 | 9 | | 12 | 61 | | 13 | 48 | | 14 | 50 | | 15 | 82 | | 16 | 9 | | 17 | 61 | | 18 | 56 | | 19 | 9 | | 20 | 75 | | 21 | 67 | | 22 | 5 | | 23 | 37 | | 24 | 44 | | 25 | 25 | | 26 | 17 |
| |
| 93.02% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 86 | | matches | | 0 | "being provided" | | 1 | "been closed" | | 2 | "been transformed" |
| |
| 96.91% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 194 | | matches | | 0 | "was still running" | | 1 | "wasn't looking" | | 2 | "was facing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 86 | | ratio | 0.081 | | matches | | 0 | "She caught movement at the edge of her vision—a figure ducking between parked cars, the Saint Christopher medallion catching streetlight before he vanished around the corner." | | 1 | "He held it up toward the darkness below, and Quinn strained to see what happened next—some signal, some response—but the rain swallowed everything." | | 2 | "The steps were slick with moss and grime, and the smell that rose from below was strange—ozone and copper and something else she couldn't name, something that made the hairs on her arms stand at attention." | | 3 | "And beneath the voices, something else—a low hum that she felt more than heard, vibrating in her molars and the joints of her jaw." | | 4 | "The walls of the stairwell changed too—the gritty tile of a London Underground station giving way to something older, brickwork that predated the Victoria line by centuries, marked with symbols she didn't recognize." | | 5 | "The voices resolved into individual threads—a woman bargaining in a language that sounded like Latin but wasn't, a man laughing too loudly, the clink of glass and metal." | | 6 | "Others didn't quite, their features slightly off in ways that made her stomach clench—a man whose eyes reflected the candlelight like a cat's, a woman with too many fingers on her left hand, a figure whose face seemed to blur and reform each time she blinked." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1172 | | adjectiveStacks | 1 | | stackExamples | | 0 | "low, pressed against her" |
| | adverbCount | 37 | | adverbRatio | 0.031569965870307165 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.00938566552901024 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 86 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 86 | | mean | 13.51 | | std | 8.83 | | cv | 0.654 | | sampleLengths | | 0 | 12 | | 1 | 25 | | 2 | 2 | | 3 | 12 | | 4 | 26 | | 5 | 5 | | 6 | 7 | | 7 | 12 | | 8 | 16 | | 9 | 27 | | 10 | 10 | | 11 | 15 | | 12 | 12 | | 13 | 15 | | 14 | 9 | | 15 | 14 | | 16 | 19 | | 17 | 23 | | 18 | 5 | | 19 | 20 | | 20 | 20 | | 21 | 11 | | 22 | 6 | | 23 | 20 | | 24 | 9 | | 25 | 11 | | 26 | 14 | | 27 | 8 | | 28 | 16 | | 29 | 6 | | 30 | 26 | | 31 | 14 | | 32 | 11 | | 33 | 13 | | 34 | 23 | | 35 | 3 | | 36 | 10 | | 37 | 4 | | 38 | 2 | | 39 | 3 | | 40 | 8 | | 41 | 17 | | 42 | 36 | | 43 | 5 | | 44 | 20 | | 45 | 4 | | 46 | 19 | | 47 | 6 | | 48 | 1 | | 49 | 19 |
| |
| 51.94% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.3953488372093023 | | totalSentences | 86 | | uniqueOpeners | 34 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 81 | | matches | | 0 | "Just a disgraced paramedic with" | | 1 | "Then Herrera descended." | | 2 | "Then she stepped forward into" |
| | ratio | 0.037 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 81 | | matches | | 0 | "She'd chased him three blocks" | | 1 | "She caught movement at the" | | 2 | "She'd been watching the bar" | | 3 | "He was fast for a" | | 4 | "She rounded the corner and" | | 5 | "Her partner had died chasing" | | 6 | "She'd seen the terror frozen" | | 7 | "Her worn leather watch slipped" | | 8 | "She slid forward, inching toward" | | 9 | "He wasn't looking back at" | | 10 | "He was facing a set" | | 11 | "She watched him reach into" | | 12 | "He held it up toward" | | 13 | "He didn't reappear." | | 14 | "Her jaw tightened as she" | | 15 | "She'd worked Vice before Homicide." | | 16 | "She'd been inside crack houses" | | 17 | "She could call it in." | | 18 | "She pocketed the phone and" | | 19 | "She met his gaze and" |
| | ratio | 0.259 | |
| 71.11% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 81 | | matches | | 0 | "Harlow Quinn pressed her shoulder" | | 1 | "She'd chased him three blocks" | | 2 | "She caught movement at the" | | 3 | "The patron saint of travelers." | | 4 | "Some good it had done" | | 5 | "Quinn pushed off from the" | | 6 | "The rain had started an" | | 7 | "She'd been watching the bar" | | 8 | "Tonight was the first time" | | 9 | "He was fast for a" | | 10 | "She rounded the corner and" | | 11 | "Water cascaded from a blocked" | | 12 | "The green neon of The" | | 13 | "The question needled her as" | | 14 | "Her partner had died chasing" | | 15 | "The official report said cardiac" | | 16 | "She'd seen the terror frozen" | | 17 | "Something moved at the mouth" | | 18 | "Quinn slowed, pressing herself against" | | 19 | "Her worn leather watch slipped" |
| | ratio | 0.778 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 61.99% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 6 | | matches | | 0 | "She'd been watching the bar for two weeks now, ever since the informant mentioned off-the-books medical services being provided to people who didn't exist on an…" | | 1 | "He was facing a set of iron stairs that descended into the earth, the remnants of an Underground station that had been closed since the seventies." | | 2 | "The steps were slick with moss and grime, and the smell that rose from below was strange—ozone and copper and something else she couldn't name, something that m…" | | 3 | "Dozens of them, layered and echoing in a way that shouldn't have been possible from a single abandoned platform." | | 4 | "Vendors displayed their wares on battered tables: bottles of liquid that shifted color when she looked at them sideways, bundles of dried herbs that seemed to b…" | | 5 | "Of the answers that might be waiting somewhere in this impossible market." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |