| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 92.28% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1942 | | totalAiIsmAdverbs | 3 | | 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) | |
| 61.38% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1942 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "warmth" | | 1 | "weight" | | 2 | "scanned" | | 3 | "measured" | | 4 | "resolved" | | 5 | "flickered" | | 6 | "whisper" | | 7 | "racing" | | 8 | "standard" | | 9 | "constructed" | | 10 | "could feel" | | 11 | "pulse" | | 12 | "churned" | | 13 | "depths" |
| |
| 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 | 105 | | matches | (empty) | |
| 74.83% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 3 | | narrationSentences | 105 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "appeared to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 106 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 66 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1919 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 50 | | wordCount | 1901 | | uniqueNames | 15 | | maxNameDensity | 0.63 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Soho | 1 | | Quinn | 12 | | Tomás | 2 | | Herrera | 10 | | Raven | 4 | | Nest | 4 | | November | 1 | | Camden | 1 | | High | 1 | | Street | 1 | | Tube | 2 | | Morris | 4 | | Bermondsey | 1 | | Veil | 3 | | Market | 3 |
| | persons | | 0 | "Quinn" | | 1 | "Tomás" | | 2 | "Herrera" | | 3 | "Raven" | | 4 | "Nest" | | 5 | "Morris" | | 6 | "Market" |
| | places | | 0 | "Soho" | | 1 | "Camden" | | 2 | "High" | | 3 | "Street" | | 4 | "Bermondsey" |
| | globalScore | 1 | | windowScore | 1 | |
| 56.25% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 80 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like it had been there for years" | | 1 | "looked like the entrance to an old Tube s" | | 2 | "quite focus on" |
| |
| 95.78% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.042 | | wordCount | 1919 | | matches | | 0 | "not the official version, not the photo on the memorial wall at the station, but the real Morris, with his terrible puns" | | 1 | "not the photo on the memorial wall at the station, but the real Morris, with his terrible puns" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 106 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 35 | | mean | 54.83 | | std | 37.76 | | cv | 0.689 | | sampleLengths | | 0 | 73 | | 1 | 130 | | 2 | 12 | | 3 | 73 | | 4 | 86 | | 5 | 13 | | 6 | 86 | | 7 | 76 | | 8 | 52 | | 9 | 94 | | 10 | 8 | | 11 | 107 | | 12 | 14 | | 13 | 66 | | 14 | 22 | | 15 | 14 | | 16 | 77 | | 17 | 45 | | 18 | 27 | | 19 | 102 | | 20 | 94 | | 21 | 78 | | 22 | 11 | | 23 | 83 | | 24 | 104 | | 25 | 11 | | 26 | 28 | | 27 | 3 | | 28 | 83 | | 29 | 12 | | 30 | 107 | | 31 | 50 | | 32 | 4 | | 33 | 6 | | 34 | 68 |
| |
| 81.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 105 | | matches | | 0 | "was locked" | | 1 | "been cremated" | | 2 | "was connected" | | 3 | "been laughed" | | 4 | "been redacted" | | 5 | "was meant" | | 6 | "been transformed" |
| |
| 52.79% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 317 | | matches | | 0 | "was rapidly becoming" | | 1 | "was standing" | | 2 | "was operating" | | 3 | "were damning" | | 4 | "was hammering" | | 5 | "was screaming" | | 6 | "was running" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 23 | | semicolonCount | 0 | | flaggedSentences | 20 | | totalSentences | 106 | | ratio | 0.189 | | matches | | 0 | "Her boots hammered the slick pavement, each strike sending up a fan of dirty water, and she kept her eyes fixed on the figure thirty meters ahead—Tomás Herrera, moving fast for a man who claimed to be nothing more than a retired paramedic." | | 1 | "She'd watched his face change through the rain-streaked window of the bar—watched the easy warmth drain out of his expression like someone had pulled a plug—and then he was moving, slipping out a side exit she hadn't known existed." | | 2 | "The street opened onto a wider road—Camden High Street, she realized, which meant Herrera had covered more distance than she'd thought, or she'd gotten turned around in the rain." | | 3 | "She reached the hoarding and found the stairs—concrete, uneven, leading down into what looked like the entrance to an old Tube station." | | 4 | "The air changed—warmer, thicker, carrying a smell she couldn't immediately place." | | 5 | "And there, at the far end of the hall, stood a turnstile that looked original to the station—old brass, green with patina—manned by a figure Quinn couldn't quite focus on." | | 6 | "Quinn approached the turnstile with measured steps, her hand resting on the grip of her extendable baton—her firearm was locked in the glovebox of her car six streets away, because she hadn't planned on a chase tonight, had only planned on watching and logging and adding another thread to the web of connections she'd been building on the corkboard in her flat." | | 7 | "Not wrong like unusual—wrong like the color hadn't decided what it was yet." | | 8 | "The figure didn't move, didn't blink—if it had eyelids, Quinn couldn't confirm it in the fitful light." | | 9 | "The phrase surfaced from somewhere in her research—an informant's whisper, a fragment she'd written on a sticky note and pressed to the corner of her bathroom mirror three weeks ago." | | 10 | "Through the cracked ceiling of the ticket hall, she could see a sliver of night sky, and the moon—full, fat, luminous behind racing clouds." | | 11 | "She was standing at the mouth of something she didn't understand, and the last time she'd done that—the last time she'd followed a thread into the dark—Morris had died and she'd spent three months on administrative leave and the department had buried the file so deep it might as well have been cremated." | | 12 | "And Herrera was connected to whatever was operating out of The Raven's Nest—that dimly lit bar with its old maps and black-and-white photographs and its bookshelf that she suspected opened onto something more than storage." | | 13 | "His NHS records alone were damning—dismissed for administering unauthorized treatments, but the file had been redacted in places that didn't correspond to standard privacy protocols." | | 14 | "She thought about Morris—not the official version, not the photo on the memorial wall at the station, but the real Morris, with his terrible puns and his meticulous case notes and the look on his face, preserved forever on the warehouse CCTV, in the half-second before the footage corrupted into static." | | 15 | "Her fingers closed on something hard and smooth that hadn't been there before—or had it?" | | 16 | "The realization should have frightened her, and it did, but beneath the fear was something sharper and more dangerous—the absolute, granite certainty that she was meant to be here." | | 17 | "The sounds grew clearer—a babble of voices in languages she recognized and some she didn't, the clatter of what might have been commerce, a distant strain of music played on instruments that produced notes she felt more than heard." | | 18 | "The abandoned platform had been transformed—or perhaps it had always been this and the station above was the disguise." | | 19 | "Hundreds of figures moved between the stalls—some of them human, some of them almost human, and some of them things that Quinn's mind could only process in fragments, the way you can only look at the sun in peripheral vision." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1933 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 61 | | adverbRatio | 0.03155716502845318 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.008794619762027936 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 106 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 106 | | mean | 18.1 | | std | 14.54 | | cv | 0.803 | | sampleLengths | | 0 | 27 | | 1 | 3 | | 2 | 43 | | 3 | 62 | | 4 | 29 | | 5 | 39 | | 6 | 12 | | 7 | 11 | | 8 | 29 | | 9 | 17 | | 10 | 16 | | 11 | 13 | | 12 | 18 | | 13 | 5 | | 14 | 6 | | 15 | 44 | | 16 | 5 | | 17 | 8 | | 18 | 15 | | 19 | 29 | | 20 | 4 | | 21 | 38 | | 22 | 24 | | 23 | 22 | | 24 | 30 | | 25 | 2 | | 26 | 19 | | 27 | 11 | | 28 | 20 | | 29 | 18 | | 30 | 17 | | 31 | 30 | | 32 | 29 | | 33 | 5 | | 34 | 3 | | 35 | 62 | | 36 | 26 | | 37 | 6 | | 38 | 13 | | 39 | 4 | | 40 | 10 | | 41 | 66 | | 42 | 19 | | 43 | 3 | | 44 | 14 | | 45 | 1 | | 46 | 17 | | 47 | 18 | | 48 | 8 | | 49 | 33 |
| |
| 47.80% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.37735849056603776 | | totalSentences | 106 | | uniqueOpeners | 40 | |
| 33.67% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 99 | | matches | | 0 | "Then it stepped aside, and" |
| | ratio | 0.01 | |
| 90.71% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 99 | | matches | | 0 | "Her boots hammered the slick" | | 1 | "He cut left past a" | | 2 | "He'd spotted her outside The" | | 3 | "She'd watched his face change" | | 4 | "She shrugged it off mid-stride," | | 5 | "She followed, her hand moving" | | 6 | "She hadn't called this in." | | 7 | "She wasn't supposed to be" | | 8 | "They just didn't make sense" | | 9 | "She rounded the corner and" | | 10 | "She scanned the street, rain" | | 11 | "She reached the hoarding and" | | 12 | "He'd gone through." | | 13 | "Its eyes were the wrong" | | 14 | "Its voice was like a" | | 15 | "It flickered and moved the" | | 16 | "She looked up." | | 17 | "She was standing at the" | | 18 | "She'd watched people go into" | | 19 | "She'd been laughed out of" |
| | ratio | 0.323 | |
| 45.86% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 82 | | totalSentences | 99 | | matches | | 0 | "The rain came sideways off" | | 1 | "Harlow Quinn ran." | | 2 | "Her boots hammered the slick" | | 3 | "He cut left past a" | | 4 | "He'd spotted her outside The" | | 5 | "She'd watched his face change" | | 6 | "Quinn pressed harder, her lungs" | | 7 | "She shrugged it off mid-stride," | | 8 | "The worn leather watch on" | | 9 | "Herrera ducked right, disappearing around" | | 10 | "She followed, her hand moving" | | 11 | "She hadn't called this in." | | 12 | "She wasn't supposed to be" | | 13 | "The surveillance on The Raven's" | | 14 | "They just didn't make sense" | | 15 | "She rounded the corner and" | | 16 | "The street opened onto a" | | 17 | "Neither possibility pleased her." | | 18 | "She scanned the street, rain" | | 19 | "Quinn crossed the street at" |
| | ratio | 0.828 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 99 | | matches | | 0 | "Now she was three streets" | | 1 | "If she could bring him" |
| | ratio | 0.02 | |
| 34.63% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 66 | | technicalSentenceCount | 10 | | matches | | 0 | "The rain came sideways off the rooftops of Soho, sheeting across the narrow street in gusts that turned the neon signs into smeared watercolors against the dark…" | | 1 | "Her boots hammered the slick pavement, each strike sending up a fan of dirty water, and she kept her eyes fixed on the figure thirty meters ahead—Tomás Herrera,…" | | 2 | "Eighteen years on the force had kept her fit, but she was forty-one and running in a wool coat that was rapidly becoming a sodden weight across her shoulders." | | 3 | "And there, at the far end of the hall, stood a turnstile that looked original to the station—old brass, green with patina—manned by a figure Quinn couldn't quit…" | | 4 | "Quinn approached the turnstile with measured steps, her hand resting on the grip of her extendable baton—her firearm was locked in the glovebox of her car six s…" | | 5 | "It flickered and moved the way firelight does, orange and amber, and she could hear sounds drifting up: voices, the clink of glass, the low thrum of activity th…" | | 6 | "His NHS records alone were damning—dismissed for administering unauthorized treatments, but the file had been redacted in places that didn't correspond to stand…" | | 7 | "The look of someone who'd just seen a door open onto something vast and incomprehensible and had walked through it anyway, because that was the job." | | 8 | "Stalls crowded every surface, constructed from materials that ranged from ordinary timber to what appeared to be ribcages of animals too large to name." | | 9 | "Lanterns hung from the vaulted ceiling on chains of no visible metal, burning with flames that were the wrong hue, too gold, too steady." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 4 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.5 | | effectiveRatio | 0.5 | |