| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "He reached slowly [slowly]" |
| | dialogueSentences | 18 | | tagDensity | 0.389 | | leniency | 0.778 | | rawRatio | 0.286 | | effectiveRatio | 0.222 | |
| 86.13% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1802 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "really" | | 1 | "very" | | 2 | "softly" | | 3 | "slowly" |
| |
| 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) | |
| 55.60% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1802 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "measured" | | 1 | "pulse" | | 2 | "shattered" | | 3 | "jaw clenched" | | 4 | "perfect" | | 5 | "footsteps" | | 6 | "echoed" | | 7 | "dancing" | | 8 | "fractured" | | 9 | "flickered" | | 10 | "flicked" | | 11 | "raced" | | 12 | "almost alive" | | 13 | "weight" | | 14 | "depths" |
| |
| 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 | 145 | | matches | (empty) | |
| 73.89% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 4 | | narrationSentences | 145 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "tended to" | | 2 | "try to" | | 3 | "happened to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 156 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 6 | | totalWords | 1787 | | ratio | 0.003 | | matches | | 0 | "Quinn—don’t follow me down. It’s not—" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 96.94% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 62 | | wordCount | 1602 | | uniqueNames | 22 | | maxNameDensity | 1.06 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Raven | 1 | | Nest | 2 | | Harlow | 1 | | Quinn | 17 | | Herrera | 13 | | Saint | 3 | | Christopher | 3 | | Old | 1 | | Compton | 1 | | Street | 1 | | Morris | 6 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Tube | 1 | | Veil | 2 | | Market | 2 | | Met | 1 | | London | 1 | | Transport | 1 | | Seville | 1 |
| | persons | | 0 | "Raven" | | 1 | "Harlow" | | 2 | "Quinn" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Morris" |
| | places | | 0 | "Soho" | | 1 | "Nest" | | 2 | "Old" | | 3 | "Compton" | | 4 | "Street" | | 5 | "Charing" | | 6 | "Cross" | | 7 | "Road" | | 8 | "Met" | | 9 | "London" | | 10 | "Seville" |
| | globalScore | 0.969 | | windowScore | 1 | |
| 59.09% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 110 | | glossingSentenceCount | 4 | | matches | | 0 | "travelers and, apparently, of people who supp" | | 1 | "looked like human hair" | | 2 | "looked like regret" | | 3 | "tasted like ash in her mouth" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1787 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 156 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 56 | | mean | 31.91 | | std | 24.18 | | cv | 0.758 | | sampleLengths | | 0 | 70 | | 1 | 72 | | 2 | 10 | | 3 | 67 | | 4 | 89 | | 5 | 6 | | 6 | 76 | | 7 | 65 | | 8 | 75 | | 9 | 8 | | 10 | 42 | | 11 | 48 | | 12 | 6 | | 13 | 12 | | 14 | 77 | | 15 | 6 | | 16 | 11 | | 17 | 53 | | 18 | 9 | | 19 | 3 | | 20 | 44 | | 21 | 78 | | 22 | 17 | | 23 | 46 | | 24 | 47 | | 25 | 46 | | 26 | 21 | | 27 | 6 | | 28 | 6 | | 29 | 53 | | 30 | 37 | | 31 | 22 | | 32 | 35 | | 33 | 13 | | 34 | 8 | | 35 | 35 | | 36 | 38 | | 37 | 35 | | 38 | 32 | | 39 | 8 | | 40 | 53 | | 41 | 14 | | 42 | 44 | | 43 | 8 | | 44 | 6 | | 45 | 22 | | 46 | 14 | | 47 | 37 | | 48 | 22 | | 49 | 12 |
| |
| 93.16% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 145 | | matches | | 0 | "was connected" | | 1 | "been sealed" | | 2 | "been shoved" | | 3 | "been erected" | | 4 | "been carved" |
| |
| 54.55% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 275 | | matches | | 0 | "was chasing" | | 1 | "wasn’t looking" | | 2 | "was going" | | 3 | "was talking" | | 4 | "was waking" | | 5 | "wasn’t leaving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 1 | | flaggedSentences | 15 | | totalSentences | 156 | | ratio | 0.096 | | matches | | 0 | "Her breath steamed in the cold air, but her pulse stayed steady—eighteen years on the job had taught her that panic was a luxury she couldn’t afford." | | 1 | "She’d caught only a glimpse of his face under the hood when he’d bolted from the alley behind the bar—warm brown eyes wide with recognition, the flash of a silver medallion at his throat." | | 2 | "When Herrera slipped through the hidden door behind the bookshelf—Quinn had seen the false panel shift—she’d moved." | | 3 | "She could see the scar on his left forearm when his sleeve rode up—puckered white against olive skin." | | 4 | "Camden Tube station—or what had once been." | | 5 | "The stairwell smelled of wet concrete, ozone, and something sweeter—incense, maybe, or old blood." | | 6 | "Footsteps echoed ahead—quick, confident." | | 7 | "She’d heard rumors—every copper in the Met who’d been on the job longer than five minutes had." | | 8 | "Creatures—she couldn’t call them people—haggled over vials of liquid starlight, over daggers that whispered promises in dead languages, over jars containing things that still moved." | | 9 | "There—twenty meters ahead, near a stall draped in what looked like human hair." | | 10 | "Her watch caught on a rusted bracket; she tore it free without slowing." | | 11 | "Morris’s voice echoed in her memory, the last transmission from his radio three years ago: *Quinn—don’t follow me down." | | 12 | "It’s not—*" | | 13 | "She felt it then—a shift in the air, like the pressure before a storm." | | 14 | "The guardian of the Veil Market roared—a sound that had no place in any sane world—and the chase continued downward, into depths where the rain above could never reach and the rules of the surface no longer applied." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1625 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 53 | | adverbRatio | 0.032615384615384616 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.011076923076923076 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 156 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 156 | | mean | 11.46 | | std | 7.62 | | cv | 0.665 | | sampleLengths | | 0 | 29 | | 1 | 14 | | 2 | 27 | | 3 | 17 | | 4 | 2 | | 5 | 34 | | 6 | 3 | | 7 | 16 | | 8 | 9 | | 9 | 1 | | 10 | 3 | | 11 | 28 | | 12 | 18 | | 13 | 6 | | 14 | 5 | | 15 | 7 | | 16 | 7 | | 17 | 26 | | 18 | 23 | | 19 | 17 | | 20 | 16 | | 21 | 6 | | 22 | 22 | | 23 | 9 | | 24 | 18 | | 25 | 2 | | 26 | 4 | | 27 | 9 | | 28 | 12 | | 29 | 11 | | 30 | 23 | | 31 | 11 | | 32 | 12 | | 33 | 8 | | 34 | 6 | | 35 | 4 | | 36 | 2 | | 37 | 20 | | 38 | 8 | | 39 | 5 | | 40 | 5 | | 41 | 6 | | 42 | 19 | | 43 | 3 | | 44 | 5 | | 45 | 13 | | 46 | 7 | | 47 | 7 | | 48 | 15 | | 49 | 12 |
| |
| 64.32% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.3974358974358974 | | totalSentences | 156 | | uniqueOpeners | 62 | |
| 24.88% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 134 | | matches | | 0 | "Then the tunnel spat her" |
| | ratio | 0.007 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 39 | | totalSentences | 134 | | matches | | 0 | "Her breath steamed in the" | | 1 | "She’d caught only a glimpse" | | 2 | "she shouted, voice cutting through" | | 3 | "He cut left onto Old" | | 4 | "She still hadn’t replaced it." | | 5 | "She’d been nursing a flat" | | 6 | "She could see the scar" | | 7 | "She’d read the file." | | 8 | "Her sharp jaw clenched so" | | 9 | "She knew what she was" | | 10 | "She was certain of it." | | 11 | "She could turn back." | | 12 | "She drew her baton, left" | | 13 | "Her grip tightened on the" | | 14 | "She’d heard rumors—every copper in" | | 15 | "She had never believed it" | | 16 | "She ignored him." | | 17 | "Her eyes swept the crowd," | | 18 | "He kept glancing back toward" | | 19 | "He bolted again, ducking between" |
| | ratio | 0.291 | |
| 42.09% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 112 | | totalSentences | 134 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn’s boots slapped" | | 2 | "Her breath steamed in the" | | 3 | "She’d caught only a glimpse" | | 4 | "The Saint Christopher." | | 5 | "Patron of travelers and, apparently," | | 6 | "she shouted, voice cutting through" | | 7 | "Herrera didn’t slow." | | 8 | "He cut left onto Old" | | 9 | "Quinn lengthened her stride, the" | | 10 | "The strap had belonged to" | | 11 | "She still hadn’t replaced it." | | 12 | "Some ghosts you carried on" | | 13 | "The chase had started inside" | | 14 | "She’d been nursing a flat" | | 15 | "Silas had been behind the" | | 16 | "Herrera veered right onto Charing" | | 17 | "Quinn’s lungs burned, but she" | | 18 | "She could see the scar" | | 19 | "She’d read the file." |
| | ratio | 0.836 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 134 | | matches | | 0 | "By the time she’d cleared" | | 1 | "Now the city swallowed them" | | 2 | "Even if those answers killed" |
| | ratio | 0.022 | |
| 25.59% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 67 | | technicalSentenceCount | 11 | | matches | | 0 | "The rain came down in sheets, turning the Soho pavements into black mirrors that flung back the sickly glow of streetlamps and the acid-green neon of The Raven’…" | | 1 | "Patron of travelers and, apparently, of people who supplied black-market medicine to things that shouldn’t exist." | | 2 | "He cut left onto Old Compton Street, shoulders hunched against the rain, feet splashing through puddles that reflected the lurid signs of shuttered sex shops an…" | | 3 | "Silas had been behind the counter, polishing glasses with the slow, deliberate calm of a man who knew more than he let on." | | 4 | "Herrera veered right onto Charing Cross Road, then sharp left down a narrow lane that smelled of overflowing bins and wet brick." | | 5 | "And one partial footprint in the ash that matched the tread of a Saint Christopher medallion pressed into blood." | | 6 | "An underground black market that moved with the full moon, trading in things that should not be sold." | | 7 | "Creatures—she couldn’t call them people—haggled over vials of liquid starlight, over daggers that whispered promises in dead languages, over jars containing thi…" | | 8 | "A thing that might once have been a man, skin stretched too tight over elongated bones, offered her a tray of bone tokens carved with spiraling sigils." | | 9 | "When he saw Quinn, his face tightened with something that looked like regret." | | 10 | "Quinn gave chase, shouldering past a creature that smelled of wet dog and old pennies." |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "she shouted, voice cutting through the downpour" |
| |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 18 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.167 | | effectiveRatio | 0.111 | |