| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.50% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1427 | | totalAiIsmAdverbs | 1 | | 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) | |
| 71.97% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1427 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "pumping" | | 1 | "charged" | | 2 | "scanned" | | 3 | "streaming" | | 4 | "shattered" | | 5 | "velvet" | | 6 | "silk" | | 7 | "weight" |
| |
| 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 | 107 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 107 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 110 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 47 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1413 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1391 | | uniqueNames | 9 | | maxNameDensity | 0.65 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Morris" | | discoveredNames | | Quinn | 9 | | Soho | 1 | | Raven | 1 | | Nest | 1 | | British | 1 | | London | 1 | | Morris | 6 | | Veil | 1 | | Market | 1 |
| | persons | | | places | | | globalScore | 1 | | windowScore | 1 | |
| 76.47% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like pressure against her eardrums" | | 1 | "materials that seemed to shift color when she looked at them directly" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1413 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 110 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 43 | | mean | 32.86 | | std | 28.15 | | cv | 0.857 | | sampleLengths | | 0 | 19 | | 1 | 55 | | 2 | 88 | | 3 | 3 | | 4 | 82 | | 5 | 4 | | 6 | 55 | | 7 | 67 | | 8 | 4 | | 9 | 57 | | 10 | 3 | | 11 | 21 | | 12 | 15 | | 13 | 48 | | 14 | 30 | | 15 | 3 | | 16 | 15 | | 17 | 21 | | 18 | 65 | | 19 | 59 | | 20 | 12 | | 21 | 54 | | 22 | 10 | | 23 | 75 | | 24 | 22 | | 25 | 44 | | 26 | 37 | | 27 | 20 | | 28 | 38 | | 29 | 12 | | 30 | 3 | | 31 | 76 | | 32 | 11 | | 33 | 4 | | 34 | 117 | | 35 | 19 | | 36 | 5 | | 37 | 41 | | 38 | 42 | | 39 | 8 | | 40 | 38 | | 41 | 7 | | 42 | 4 |
| |
| 88.87% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 107 | | matches | | 0 | "was gone" | | 1 | "been sealed" | | 2 | "was gone" | | 3 | "being unsolved" | | 4 | "being gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 249 | | matches | | 0 | "wasn't running" | | 1 | "was taking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 110 | | ratio | 0.1 | | matches | | 0 | "The worn leather of her watch smacked against her wrist with each stride—a metronome keeping time to her heartbeat, which hammered faster than any percussion." | | 1 | "He'd been in the Raven's Nest when she'd walked in, nursing a whiskey at the far end of the bar, and something about the way he'd looked at her—when their eyes had met for that single, charged moment—had told her everything she needed to know." | | 2 | "The smell of rain and garbage and something else—something acrid, like copper and ozone—filled her lungs with each ragged breath." | | 3 | "The alley opened onto a side street, and she caught a flash of movement—someone vaulting a low wall at the far end, disappearing into the darkness beyond." | | 4 | "The rain fell between them, a curtain of white noise, and in the distance she could hear the wail of sirens—other people's emergencies, other people's crimes." | | 5 | "She took a step forward, and he took a step back—and then he was gone." | | 6 | "Her training screamed at her to advance, to clear the space, but her instincts—those same instincts that had kept her alive through eighteen years of walking into rooms where bad things had happened—held her in place." | | 7 | "The ice crept outward in patterns that looked almost deliberate, almost like—" | | 8 | "She thought of the things she'd seen in those final days before her partner had disappeared—things that had no explanation, no place in the world she thought she understood." | | 9 | "Quinn pocketed the bone token—she didn't know why, only that leaving it behind felt wrong—and she moved toward the shadows where the man had vanished." | | 10 | "The descent was gradual at first—a rusted ladder leading down through a utility hatch, the rungs slick with moisture that had no business being this far underground." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1407 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.024875621890547265 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.008528784648187633 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 110 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 110 | | mean | 12.85 | | std | 9.98 | | cv | 0.777 | | sampleLengths | | 0 | 16 | | 1 | 3 | | 2 | 30 | | 3 | 25 | | 4 | 5 | | 5 | 2 | | 6 | 26 | | 7 | 45 | | 8 | 5 | | 9 | 5 | | 10 | 3 | | 11 | 21 | | 12 | 6 | | 13 | 20 | | 14 | 35 | | 15 | 4 | | 16 | 27 | | 17 | 3 | | 18 | 25 | | 19 | 3 | | 20 | 16 | | 21 | 18 | | 22 | 11 | | 23 | 19 | | 24 | 4 | | 25 | 21 | | 26 | 5 | | 27 | 31 | | 28 | 3 | | 29 | 8 | | 30 | 13 | | 31 | 6 | | 32 | 9 | | 33 | 3 | | 34 | 26 | | 35 | 19 | | 36 | 15 | | 37 | 7 | | 38 | 4 | | 39 | 4 | | 40 | 3 | | 41 | 15 | | 42 | 2 | | 43 | 4 | | 44 | 15 | | 45 | 2 | | 46 | 36 | | 47 | 27 | | 48 | 7 | | 49 | 6 |
| |
| 49.39% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.34545454545454546 | | totalSentences | 110 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 101 | | matches | | 0 | "Somewhere, water dripped through broken" | | 1 | "Then she saw him." | | 2 | "Simply gone, swallowed by the" | | 3 | "Then she stepped forward into" |
| | ratio | 0.04 | |
| 85.35% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 101 | | matches | | 0 | "She could see him ahead." | | 1 | "He'd been in the Raven's" | | 2 | "He knew she was police." | | 3 | "He knew why she'd come." | | 4 | "Her boots slapped against wet" | | 5 | "She was forty-one years old," | | 6 | "She didn't hesitate." | | 7 | "Her hands found the rough" | | 8 | "She scanned the shadows, her" | | 9 | "He was twenty yards ahead," | | 10 | "He stood perfectly still, the" | | 11 | "He was smiling." | | 12 | "He didn't move." | | 13 | "Her focus narrowed to this" | | 14 | "His voice carried across the" | | 15 | "She took a step forward," | | 16 | "Her training screamed at her" | | 17 | "She stood at the edge" | | 18 | "She looked down and saw" | | 19 | "She pulled out her torch," |
| | ratio | 0.337 | |
| 88.71% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 101 | | matches | | 0 | "The rain came down in" | | 1 | "Harlow Quinn ran." | | 2 | "The worn leather of her" | | 3 | "She could see him ahead." | | 4 | "A shadow weaving through the" | | 5 | "He'd been in the Raven's" | | 6 | "He knew she was police." | | 7 | "He knew why she'd come." | | 8 | "Quinn cut left through an" | | 9 | "Her boots slapped against wet" | | 10 | "The smell of rain and" | | 11 | "She was forty-one years old," | | 12 | "The alley opened onto a" | | 13 | "She didn't hesitate." | | 14 | "Her hands found the rough" | | 15 | "A construction site." | | 16 | "She scanned the shadows, her" | | 17 | "The rain drummed against the" | | 18 | "He was twenty yards ahead," | | 19 | "He stood perfectly still, the" |
| | ratio | 0.743 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 101 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 12 | | matches | | 0 | "Eighteen years on the force had taught her body to move like a machine, her legs pumping a steady rhythm through ankle-deep puddles that splashed up against her…" | | 1 | "The worn leather of her watch smacked against her wrist with each stride—a metronome keeping time to her heartbeat, which hammered faster than any percussion." | | 2 | "She was forty-one years old, and she felt every single one of those years in her knees, in the dull ache that had settled into her lower back three winters ago …" | | 3 | "She scanned the shadows, her hand moving instinctively to the grip of her service weapon without drawing it." | | 4 | "He stood perfectly still, the rain plastering his dark hair to his skull, and when he turned to look at her, she saw something in his expression that stopped he…" | | 5 | "Her training screamed at her to advance, to clear the space, but her instincts—those same instincts that had kept her alive through eighteen years of walking in…" | | 6 | "She looked down and saw frost spreading in a thin line across a puddle at her feet, crystallizing the water into something that shouldn't exist in the middle of…" | | 7 | "She thought of the things she'd seen in those final days before her partner had disappeared—things that had no explanation, no place in the world she thought sh…" | | 8 | "And somewhere beneath her feet, in the forgotten arteries of the city, there was a market that didn't appear on any map, populated by people who didn't play by …" | | 9 | "The descent was gradual at first—a rusted ladder leading down through a utility hatch, the rungs slick with moisture that had no business being this far undergr…" | | 10 | "The sounds of the city faded above her, muffled by layers of concrete and stone and something else, something that felt like pressure against her eardrums." | | 11 | "Stalls stretched out in every direction, their wares displayed on tables draped in velvet and silk and materials that seemed to shift color when she looked at t…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |