| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.82% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1617 | | 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) | |
| 69.08% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1617 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "gleaming" | | 1 | "navigating" | | 2 | "beacon" | | 3 | "scanning" | | 4 | "sturdy" | | 5 | "depths" | | 6 | "weight" | | 7 | "stomach" | | 8 | "tension" |
| |
| 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 | 1 | | narrationSentences | 115 | | matches | | |
| 80.75% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 4 | | narrationSentences | 115 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "happened to" | | 2 | "tried to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 117 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1602 | | ratio | 0 | | matches | (empty) | |
| 97.22% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 1 | | matches | | 0 | "A hidden supernatural black market, they said." |
| |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 57 | | wordCount | 1586 | | uniqueNames | 23 | | maxNameDensity | 1.07 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Herrera" | | discoveredNames | | Soho | 1 | | Harlow | 1 | | Quinn | 17 | | Greek | 1 | | Street | 1 | | Tomás | 1 | | Herrera | 13 | | European | 1 | | Seville | 1 | | Raven | 1 | | Nest | 1 | | Morris | 5 | | London | 2 | | Great | 1 | | Fire | 1 | | Deptford | 1 | | Underground | 1 | | Victorian | 2 | | Tube | 1 | | Veil | 1 | | Market | 1 | | Saint | 1 | | Christopher | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Raven" | | 5 | "Morris" | | 6 | "Market" | | 7 | "Saint" | | 8 | "Christopher" |
| | places | | 0 | "Soho" | | 1 | "Greek" | | 2 | "Street" | | 3 | "Seville" | | 4 | "London" |
| | globalScore | 0.964 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 79 | | glossingSentenceCount | 1 | | matches | | 0 | "photographs that seemed to shift when you weren't looking directly at them" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1602 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 117 | | matches | | 0 | "up that ladder" | | 1 | "up that ladder" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 40 | | mean | 40.05 | | std | 33.67 | | cv | 0.841 | | sampleLengths | | 0 | 87 | | 1 | 85 | | 2 | 3 | | 3 | 46 | | 4 | 18 | | 5 | 104 | | 6 | 44 | | 7 | 53 | | 8 | 8 | | 9 | 5 | | 10 | 2 | | 11 | 43 | | 12 | 64 | | 13 | 35 | | 14 | 29 | | 15 | 8 | | 16 | 88 | | 17 | 64 | | 18 | 5 | | 19 | 71 | | 20 | 11 | | 21 | 75 | | 22 | 3 | | 23 | 64 | | 24 | 14 | | 25 | 69 | | 26 | 3 | | 27 | 118 | | 28 | 6 | | 29 | 77 | | 30 | 13 | | 31 | 77 | | 32 | 4 | | 33 | 68 | | 34 | 29 | | 35 | 12 | | 36 | 70 | | 37 | 15 | | 38 | 7 | | 39 | 5 |
| |
| 90.01% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 115 | | matches | | 0 | "was swallowed" | | 1 | "was gone" | | 2 | "been transformed" | | 3 | "been converted" | | 4 | "been twisted" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 9 | | totalVerbs | 264 | | matches | | 0 | "was only beginning" | | 1 | "weren't looking" | | 2 | "was gaining" | | 3 | "was running" | | 4 | "wasn't looking" | | 5 | "was standing" | | 6 | "was screaming" | | 7 | "was talking" | | 8 | "were saying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 117 | | ratio | 0.094 | | matches | | 0 | "She caught a glimpse of him fifty meters ahead—dark curly hair plastered to his skull, olive skin gleaming under the streetlights as he vaulted over a row of rubbish bins." | | 1 | "The radio had been acting up all night, ever since she'd started tailing Herrera from that bar—the Raven's Nest, the sign had said, distinctive green neon cutting through the darkness like a beacon." | | 2 | "One moment he was running full tilt toward a dead end—a solid wall of brick that had been there since before the Great Fire—and the next he was gone, swallowed by the earth as if the pavement had simply opened up beneath him." | | 3 | "And something else—a faint glow, warm and amber, rising from depths that shouldn't exist this close to the surface." | | 4 | "She'd heard the screaming—sounds that couldn't have come from a human throat, sounds that still woke her at three in the morning with her sheets soaked in sweat." | | 5 | "The official report had said \"cardiac event.\" The unofficial whispers at the station had been worse—accusations of incompetence, of cowardice, of freezing when her partner needed her." | | 6 | "The rungs were slick with moisture that didn't feel quite like rain—thicker, somehow, with a faint luminescence that clung to her palms." | | 7 | "This was a station, yes—she could see the remnants of platform signage, the curved walls distinctive to the old Tube architecture—but it had been transformed into something else entirely." | | 8 | "Lanterns hung from the ceiling—the source of the amber glow—containing flames that burned without heat or smoke." | | 9 | "A man—if it was a man—stood seven feet tall, his proportions all wrong, his joints bending in directions that made Quinn's eyes water when she tried to follow them." | | 10 | "He was talking to someone—a woman in a dark coat, her face obscured by the shadow of a wide-brimmed hat." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1609 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 47 | | adverbRatio | 0.029210689869484153 | | lyAdverbCount | 16 | | lyAdverbRatio | 0.009944064636420136 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 117 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 117 | | mean | 13.69 | | std | 10.14 | | cv | 0.741 | | sampleLengths | | 0 | 15 | | 1 | 29 | | 2 | 24 | | 3 | 19 | | 4 | 30 | | 5 | 22 | | 6 | 6 | | 7 | 3 | | 8 | 3 | | 9 | 21 | | 10 | 3 | | 11 | 20 | | 12 | 26 | | 13 | 7 | | 14 | 11 | | 15 | 5 | | 16 | 33 | | 17 | 21 | | 18 | 20 | | 19 | 24 | | 20 | 1 | | 21 | 18 | | 22 | 5 | | 23 | 2 | | 24 | 19 | | 25 | 11 | | 26 | 15 | | 27 | 27 | | 28 | 5 | | 29 | 2 | | 30 | 1 | | 31 | 5 | | 32 | 2 | | 33 | 43 | | 34 | 12 | | 35 | 22 | | 36 | 2 | | 37 | 16 | | 38 | 12 | | 39 | 10 | | 40 | 2 | | 41 | 4 | | 42 | 19 | | 43 | 8 | | 44 | 15 | | 45 | 3 | | 46 | 3 | | 47 | 8 | | 48 | 25 | | 49 | 28 |
| |
| 61.82% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.42735042735042733 | | totalSentences | 117 | | uniqueOpeners | 50 | |
| 32.05% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 104 | | matches | | 0 | "Then Herrera did something impossible." |
| | ratio | 0.01 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 104 | | matches | | 0 | "She caught a glimpse of" | | 1 | "He moved like someone who'd" | | 2 | "Her shout was swallowed by" | | 3 | "She keyed her radio without" | | 4 | "She'd been watching the place" | | 5 | "She was gaining on him." | | 6 | "She crouched down, her brown" | | 7 | "She'd heard the screaming—sounds that" | | 8 | "She'd been looking ever since." | | 9 | "She knew about the abandoned" | | 10 | "She'd heard the name whispered" | | 11 | "She'd dismissed it as urban" | | 12 | "They weren't all people, Quinn" | | 13 | "She was out of her" | | 14 | "She knew that." | | 15 | "He'd stopped running." | | 16 | "He was talking to someone—a" | | 17 | "His eyes met Quinn's." | | 18 | "She'd assumed it was from" | | 19 | "He raised one hand slowly," |
| | ratio | 0.212 | |
| 89.81% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 77 | | totalSentences | 104 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn's boots slapped" | | 2 | "She caught a glimpse of" | | 3 | "He moved like someone who'd" | | 4 | "Quinn had studied his file" | | 5 | "License revoked under circumstances that" | | 6 | "Her shout was swallowed by" | | 7 | "A group of drunk tourists" | | 8 | "She keyed her radio without" | | 9 | "Static crackled back at her." | | 10 | "The radio had been acting" | | 11 | "She'd been watching the place" | | 12 | "The old maps on the" | | 13 | "The hidden back room she'd" | | 14 | "Herrera cut left, and Quinn" | | 15 | "The watch had been Morris's." | | 16 | "The side street narrowed, the" | | 17 | "Victorian architecture gave way to" | | 18 | "Quinn's sharp jaw was set" | | 19 | "She was gaining on him." |
| | ratio | 0.74 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 104 | | matches | | 0 | "By the time she'd breached" | | 1 | "Now she was standing at" | | 2 | "Now she wondered if the" |
| | ratio | 0.029 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 63 | | technicalSentenceCount | 13 | | matches | | 0 | "He moved like someone who'd spent years navigating the narrow arteries of old European cities, all fluid grace and economy of motion." | | 1 | "She'd been watching the place for weeks, cataloguing the strange clientele who came and went through its doors at all hours." | | 2 | "The old maps on the walls, the black-and-white photographs that seemed to shift when you weren't looking directly at them." | | 3 | "Quinn's sharp jaw was set with determination as she closed the distance, her military-precise movements carrying her over obstacles that would have tripped a le…" | | 4 | "One moment he was running full tilt toward a dead end—a solid wall of brick that had been there since before the Great Fire—and the next he was gone, swallowed …" | | 5 | "And something else—a faint glow, warm and amber, rising from depths that shouldn't exist this close to the surface." | | 6 | "By the time she'd breached the door, Morris was dead, his body twisted in ways that defied anatomy, and there was nothing in the warehouse except shadows and th…" | | 7 | "Something that moved through the city like blood through veins, invisible to anyone who wasn't looking." | | 8 | "The abandoned platform had been converted into a bazaar that stretched in both directions beyond what the architecture should have allowed." | | 9 | "A man—if it was a man—stood seven feet tall, his proportions all wrong, his joints bending in directions that made Quinn's eyes water when she tried to follow t…" | | 10 | "A child darted between the stalls, laughing, and when she turned to watch him pass, she caught a glimpse of too many teeth in a mouth that stretched too wide." | | 11 | "The woman handed him something small, something that glinted in the lantern light, and Herrera pocketed it quickly before glancing back toward the entrance." | | 12 | "Follow Herrera deeper into this market, deeper into a world that operated by rules she didn't understand, chasing answers that might destroy everything she thou…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | 0 | "The official report had (have)" |
| | dialogueSentences | 3 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 1 | | effectiveRatio | 0.667 | |