| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.71% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1615 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slightly" | | 1 | "suddenly" | | 2 | "very" |
| |
| 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) | |
| 65.94% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1615 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "calculating" | | 1 | "flickered" | | 2 | "warmth" | | 3 | "scanned" | | 4 | "weight" | | 5 | "echoed" | | 6 | "shimmered" | | 7 | "pulsed" | | 8 | "could feel" |
| |
| 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 | 112 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 112 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 118 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1600 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1519 | | uniqueNames | 16 | | maxNameDensity | 0.86 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 2 | | Quinn | 13 | | Wardour | 1 | | Street | 3 | | Indian | 1 | | Dean | 1 | | Raven | 1 | | Nest | 1 | | Soho | 1 | | Silas | 4 | | London | 1 | | Whitechapel | 1 | | Morris | 5 | | Tube | 1 | | Camden | 1 | | Oxford | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Silas" | | 4 | "Morris" |
| | places | | 0 | "Wardour" | | 1 | "Street" | | 2 | "Indian" | | 3 | "Dean" | | 4 | "Soho" | | 5 | "London" | | 6 | "Whitechapel" | | 7 | "Oxford" |
| | globalScore | 1 | | windowScore | 1 | |
| 25.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 80 | | glossingSentenceCount | 4 | | matches | | 0 | "melody that seemed to come from everywhere and nowhere at once" | | 1 | "not quite matching any scale she recognized" | | 2 | "pigments that seemed to shift color as her light touched them" | | 3 | "blades that seemed to drink the light around them, books bound in leather that pulsed like a heartbeat" |
| |
| 75.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.25 | | wordCount | 1600 | | matches | | 0 | "not drawing, not yet, but ready" | | 1 | "not yet, but ready" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 118 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 41.03 | | std | 26.03 | | cv | 0.634 | | sampleLengths | | 0 | 20 | | 1 | 50 | | 2 | 49 | | 3 | 57 | | 4 | 69 | | 5 | 29 | | 6 | 88 | | 7 | 12 | | 8 | 46 | | 9 | 52 | | 10 | 5 | | 11 | 76 | | 12 | 24 | | 13 | 36 | | 14 | 31 | | 15 | 2 | | 16 | 45 | | 17 | 86 | | 18 | 9 | | 19 | 84 | | 20 | 6 | | 21 | 57 | | 22 | 19 | | 23 | 46 | | 24 | 53 | | 25 | 41 | | 26 | 20 | | 27 | 4 | | 28 | 47 | | 29 | 72 | | 30 | 98 | | 31 | 45 | | 32 | 33 | | 33 | 36 | | 34 | 70 | | 35 | 50 | | 36 | 21 | | 37 | 9 | | 38 | 3 |
| |
| 86.47% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 112 | | matches | | 0 | "was supposed" | | 1 | "was hinged" | | 2 | "were covered" | | 3 | "been found" | | 4 | "been closed" | | 5 | "been transformed" |
| |
| 44.36% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 257 | | matches | | 0 | "was breathing" | | 1 | "wasn't looking" | | 2 | "was looking" | | 3 | "was standing" | | 4 | "was standing" | | 5 | "was trying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 118 | | ratio | 0.119 | | matches | | 0 | "The alley spat them out onto Dean Street, and for a moment the streetlights caught him in their amber glow—a clear view of the back of his head, the cropped hair, the thick neck." | | 1 | "She hit it two seconds later, bursting through into a wall of warmth that smelled of old wood, spilled beer, and something else—something faintly chemical, like the air in a hospital corridor." | | 2 | "Quinn's hand went to her hip, fingers brushing the grip of her service weapon—not drawing, not yet, but ready." | | 3 | "For a moment, something flickered in those black eyes—warning, maybe, or pity." | | 4 | "And she believed, now, in the way Silas was looking at her—like he knew exactly what she was and what she'd lost." | | 5 | "It was bone—definitely bone, smooth and old, carved into the shape of a raven in flight." | | 6 | "When she glanced back, the bar was empty—no patrons, no bartender, no sign anyone had ever been there at all." | | 7 | "Somewhere below, she heard music—not jazz, something older, a melody that seemed to come from everywhere and nowhere at once." | | 8 | "She checked the magazine—full—and chambered a round." | | 9 | "The air grew colder with each step, carrying the mineral smell of deep earth and something else—the metallic tang of blood, faint but unmistakable." | | 10 | "Around a bend, it suddenly opened into a vast chamber—the abandoned Tube station, she realized, the old Camden station that had been closed since 1916." | | 11 | "Vendors stood behind tables piled high with goods she couldn't name—vials of liquid that shimmered, blades that seemed to drink the light around them, books bound in leather that pulsed like a heartbeat." | | 12 | "And people—hundreds of people, moving through the market with the casual ease of shoppers on Oxford Street." | | 13 | "That was what Morris would have done—no, that wasn't true." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1536 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 49 | | adverbRatio | 0.031901041666666664 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.0078125 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 118 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 118 | | mean | 13.56 | | std | 9.04 | | cv | 0.667 | | sampleLengths | | 0 | 16 | | 1 | 4 | | 2 | 23 | | 3 | 27 | | 4 | 4 | | 5 | 6 | | 6 | 21 | | 7 | 18 | | 8 | 2 | | 9 | 6 | | 10 | 20 | | 11 | 29 | | 12 | 13 | | 13 | 4 | | 14 | 34 | | 15 | 2 | | 16 | 2 | | 17 | 14 | | 18 | 8 | | 19 | 15 | | 20 | 3 | | 21 | 3 | | 22 | 16 | | 23 | 3 | | 24 | 20 | | 25 | 20 | | 26 | 2 | | 27 | 3 | | 28 | 24 | | 29 | 5 | | 30 | 6 | | 31 | 1 | | 32 | 14 | | 33 | 32 | | 34 | 30 | | 35 | 22 | | 36 | 5 | | 37 | 19 | | 38 | 22 | | 39 | 20 | | 40 | 15 | | 41 | 18 | | 42 | 6 | | 43 | 7 | | 44 | 23 | | 45 | 6 | | 46 | 12 | | 47 | 19 | | 48 | 2 | | 49 | 9 |
| |
| 50.85% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3559322033898305 | | totalSentences | 118 | | uniqueOpeners | 42 | |
| 96.15% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 104 | | matches | | 0 | "Instead she narrowed her focus" | | 1 | "Somewhere below, she heard music—not" | | 2 | "Somewhere ahead, the man she'd" |
| | ratio | 0.029 | |
| 85.38% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 104 | | matches | | 0 | "Her boots struck the wet" | | 1 | "Her knees hated her for" | | 2 | "She could hear it now," | | 3 | "He was tiring." | | 4 | "She was not." | | 5 | "He ducked left again, toward" | | 6 | "She'd heard the name before," | | 7 | "He reached the door and" | | 8 | "She hit it two seconds" | | 9 | "She scanned the room with" | | 10 | "He didn't seem surprised to" | | 11 | "It wasn't her job to" | | 12 | "It was her job to" | | 13 | "She'd heard rumors." | | 14 | "She didn't believe in the" | | 15 | "She believed in the report" | | 16 | "She believed in the files" | | 17 | "He slid it across the" | | 18 | "It was bone—definitely bone, smooth" | | 19 | "It weighed almost nothing, and" |
| | ratio | 0.337 | |
| 65.77% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 82 | | totalSentences | 104 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn ran." | | 2 | "Her boots struck the wet" | | 3 | "The suspect was twenty yards" | | 4 | "Quinn didn't call out." | | 5 | "The two times she'd done" | | 6 | "Her knees hated her for" | | 7 | "The right one especially, the" | | 8 | "The suspect cut left, plunging" | | 9 | "Quinn followed without hesitation." | | 10 | "The alley spat them out" | | 11 | "The kind of man who" | | 12 | "She could hear it now," | | 13 | "He was tiring." | | 14 | "She was not." | | 15 | "He ducked left again, toward" | | 16 | "The Raven's Nest." | | 17 | "The name registered somewhere in" | | 18 | "She'd heard the name before," | | 19 | "A drinking establishment." |
| | ratio | 0.788 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 104 | | matches | (empty) | | ratio | 0 | |
| 50.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 62 | | technicalSentenceCount | 8 | | matches | | 0 | "She hit it two seconds later, bursting through into a wall of warmth that smelled of old wood, spilled beer, and something else—something faintly chemical, like…" | | 1 | "Supernatural activity in London was supposed to be contained, controlled, managed by specialists she didn't know existed until three years ago when her partner …" | | 2 | "Somewhere below, she heard music—not jazz, something older, a melody that seemed to come from everywhere and nowhere at once." | | 3 | "The stairs were steep, carved from stone that had never seen daylight, worn smooth by countless feet over what must have been centuries." | | 4 | "Around a bend, it suddenly opened into a vast chamber—the abandoned Tube station, she realized, the old Camden station that had been closed since 1916." | | 5 | "Vendors stood behind tables piled high with goods she couldn't name—vials of liquid that shimmered, blades that seemed to drink the light around them, books bou…" | | 6 | "She could feel its weight now, the cold of it seeping through the fabric of her coat, traveling up her arm, settling somewhere near her heart." | | 7 | "Somewhere ahead, the man she'd been chasing was trying to disappear into a world that operated by rules she didn't understand." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "The bartender returned, the motion almost hypnotic" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0 | | effectiveRatio | 0 | |