| 94.74% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 2 | | adverbTags | | 0 | "Herrera said quietly [quietly]" | | 1 | "Her voice broke just [just]" |
| | dialogueSentences | 36 | | tagDensity | 0.528 | | leniency | 1 | | rawRatio | 0.105 | | effectiveRatio | 0.105 | |
| 89.56% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1915 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "carefully" | | 1 | "really" | | 2 | "slightly" |
| |
| 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) | |
| 84.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1915 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "tracing" | | 1 | "silence" | | 2 | "lilt" | | 3 | "mechanical" |
| |
| 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 | 97 | | matches | | |
| 69.22% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 2 | | narrationSentences | 97 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 114 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 3 | | totalWords | 1900 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 97.77% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 64 | | wordCount | 1436 | | uniqueNames | 20 | | maxNameDensity | 1.04 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | London | 2 | | Thames | 3 | | Harlow | 1 | | Quinn | 15 | | Herrera | 14 | | Seville-born | 1 | | Saint | 1 | | Christopher | 1 | | Met | 1 | | Morris | 8 | | Wardour | 1 | | Street | 1 | | Soho | 1 | | Raven | 3 | | Nest | 3 | | Seville | 2 | | Metropolitan | 2 | | Police | 2 | | Amelia | 1 | | Voss | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Saint" | | 4 | "Christopher" | | 5 | "Morris" | | 6 | "Raven" | | 7 | "Nest" | | 8 | "Amelia" | | 9 | "Voss" |
| | places | | 0 | "London" | | 1 | "Thames" | | 2 | "Seville-born" | | 3 | "Wardour" | | 4 | "Street" | | 5 | "Soho" | | 6 | "Seville" |
| | globalScore | 0.978 | | windowScore | 1 | |
| 41.30% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 69 | | glossingSentenceCount | 3 | | matches | | 0 | "something like this" | | 1 | "seemed ordinary then, covered in maps and photographs that meant nothing until you knew what to look for" | | 2 | "symbols that seemed to shift when viewed from the corner of her eye" |
| |
| 94.74% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.053 | | wordCount | 1900 | | matches | | 0 | "not softer, but more dangerous, the register of a man who'd learned to speak" | | 1 | "not a pleasant thing, but it was honest" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 114 | | matches | | 0 | "learned that much" | | 1 | "believed that order" |
| |
| 96.03% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 46.34 | | std | 22.53 | | cv | 0.486 | | sampleLengths | | 0 | 55 | | 1 | 70 | | 2 | 91 | | 3 | 10 | | 4 | 60 | | 5 | 48 | | 6 | 41 | | 7 | 70 | | 8 | 53 | | 9 | 33 | | 10 | 35 | | 11 | 45 | | 12 | 50 | | 13 | 3 | | 14 | 62 | | 15 | 61 | | 16 | 41 | | 17 | 51 | | 18 | 72 | | 19 | 37 | | 20 | 88 | | 21 | 31 | | 22 | 9 | | 23 | 71 | | 24 | 4 | | 25 | 49 | | 26 | 50 | | 27 | 58 | | 28 | 57 | | 29 | 19 | | 30 | 16 | | 31 | 86 | | 32 | 53 | | 33 | 61 | | 34 | 66 | | 35 | 47 | | 36 | 39 | | 37 | 16 | | 38 | 54 | | 39 | 27 | | 40 | 11 |
| |
| 94.41% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 97 | | matches | | 0 | "been ruled" | | 1 | "been cleared" | | 2 | "been carved" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 248 | | matches | | 0 | "was treating" | | 1 | "was coming" | | 2 | "was going" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 114 | | ratio | 0.096 | | matches | | 0 | "The rain had turned London into something else entirely—a city of smeared lights and black water, where the Thames ran silver-gray and the streetlamps bled amber into the gutters." | | 1 | "She'd known better and done nothing, because the things she'd seen in that water had no name in any procedural manual, and she'd been afraid—still was afraid—of what followed fear into the dark." | | 2 | "Her shoes—practical, broken-in, the kind she'd worn to Morris's funeral—slipped on wet cobblestones." | | 3 | "That was what made him dangerous—the confidence of a man who had already decided he couldn't be caught, or didn't care if he was." | | 4 | "Quinn followed, her breath coming sharp in the cold air, her leather watch catching the neon from a dozen signs—the green glow of the Raven's Nest rising from the darkness like a promise or a warning." | | 5 | "The bartender—a woman with silver hair pulled back in a severe bun—watched them with the flat attention of someone who'd seen everything and judged most of it unworthy of comment." | | 6 | "\"People like me keep her alive. The question you should be asking\"—he turned to face her fully, those warm brown eyes steady in the dim light—\"is why a Metropolitan Police detective with eighteen years of service is chasing a paramedic through the rain instead of filing a report about a runaway teenager.\"" | | 7 | "\"Or someone's trying to stop it.\" Herrera reached into his jacket—slow, deliberate, the movement of a man who'd learned that sudden gestures killed people—and withdrew a photograph." | | 8 | "\"I'm telling you he was *used*. There's a difference.\" Herrera's voice dropped, becoming something else—not softer, but more dangerous, the register of a man who'd learned to speak carefully in rooms where the walls listened." | | 9 | "Then he reached beneath the bar and withdrew a small object—a token, carved from bone, warm to the touch even through the dim light." | | 10 | "\"The market doesn't just sell. It *shows*. It shows you what you want to see, what you're afraid of, what you've lost. And sometimes\"—he turned toward the back of the bar, toward the bookshelf that Quinn now saw was slightly askew, the hidden door waiting—\"sometimes what it shows you is real.\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1213 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 23 | | adverbRatio | 0.018961253091508656 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.004122011541632316 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 114 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 114 | | mean | 16.67 | | std | 12.6 | | cv | 0.756 | | sampleLengths | | 0 | 29 | | 1 | 26 | | 2 | 2 | | 3 | 20 | | 4 | 2 | | 5 | 4 | | 6 | 42 | | 7 | 8 | | 8 | 3 | | 9 | 36 | | 10 | 7 | | 11 | 4 | | 12 | 33 | | 13 | 8 | | 14 | 2 | | 15 | 20 | | 16 | 13 | | 17 | 21 | | 18 | 6 | | 19 | 8 | | 20 | 10 | | 21 | 3 | | 22 | 3 | | 23 | 24 | | 24 | 5 | | 25 | 36 | | 26 | 4 | | 27 | 12 | | 28 | 21 | | 29 | 5 | | 30 | 7 | | 31 | 21 | | 32 | 6 | | 33 | 16 | | 34 | 5 | | 35 | 26 | | 36 | 18 | | 37 | 7 | | 38 | 5 | | 39 | 3 | | 40 | 26 | | 41 | 9 | | 42 | 28 | | 43 | 17 | | 44 | 7 | | 45 | 30 | | 46 | 13 | | 47 | 3 | | 48 | 6 | | 49 | 4 |
| |
| 48.54% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.35964912280701755 | | totalSentences | 114 | | uniqueOpeners | 41 | |
| 37.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 90 | | matches | | 0 | "Then he reached beneath the" |
| | ratio | 0.011 | |
| 82.22% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 90 | | matches | | 0 | "She'd lost DS Morris chasing" | | 1 | "She'd known better and done" | | 2 | "Her shoes—practical, broken-in, the kind" | | 3 | "She kept her hand near" | | 4 | "Their eyes met across thirty" | | 5 | "He didn't run." | | 6 | "He never ran." | | 7 | "He turned left, toward Soho." | | 8 | "She'd been here before." | | 9 | "She found him at the" | | 10 | "He didn't look up when" | | 11 | "He'd known she was coming." | | 12 | "They both knew." | | 13 | "His voice carried the soft" | | 14 | "She slid onto the stool" | | 15 | "He set down his glass" | | 16 | "he turned to face her" | | 17 | "He slid it across the" | | 18 | "She'd learned that much." | | 19 | "He leaned closer, close enough" |
| | ratio | 0.344 | |
| 15.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 80 | | totalSentences | 90 | | matches | | 0 | "The rain had turned London" | | 1 | "Detective Harlow Quinn pulled her" | | 2 | "The file on her desk" | | 3 | "She'd lost DS Morris chasing" | | 4 | "A case that had started" | | 5 | "The department had called it" | | 6 | "Quinn had known better." | | 7 | "She'd known better and done" | | 8 | "Herrera ducked into an alley" | | 9 | "The alley narrowed to a" | | 10 | "Her shoes—practical, broken-in, the kind" | | 11 | "She kept her hand near" | | 12 | "Bullets didn't stop what didn't" | | 13 | "Herrera emerged at the alley's" | | 14 | "Their eyes met across thirty" | | 15 | "He didn't run." | | 16 | "He never ran." | | 17 | "That was what made him" | | 18 | "He turned left, toward Soho." | | 19 | "Quinn followed, her breath coming" |
| | ratio | 0.889 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 90 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 16 | | matches | | 0 | "The file on her desk at the Met had grown thick over six months, each page a dead end that circled back to the same impossible conclusion: Herrera was treating …" | | 1 | "A case that had started with a missing persons report and ended with Morris's body in the Thames, cold and unmarked, and Quinn alone in a morgue that smelled of…" | | 2 | "Quinn followed, her breath coming sharp in the cold air, her leather watch catching the neon from a dozen signs—the green glow of the Raven's Nest rising from t…" | | 3 | "Three weeks ago, undercover, buying information from a bartender who'd known Morris." | | 4 | "The photographs captured faces blurred by motion, or by something else, something that moved too fast for the camera to hold." | | 5 | "Inside, the air tasted of stale beer and something metallic, something that reminded her of hospitals and the particular silence of rooms where people died alon…" | | 6 | "She found him at the bar, nursing a glass of something amber, his medallion catching the dim light." | | 7 | "The bartender—a woman with silver hair pulled back in a severe bun—watched them with the flat attention of someone who'd seen everything and judged most of it u…" | | 8 | "Quinn felt the old anger rise, the one that had carried her through Morris's death, through the silence of superiors who didn't want to know, through nights whe…" | | 9 | "The tick of it, steady and mechanical, the only reliable thing in a world that had stopped making sense." | | 10 | "The rain against the windows, the distant sound of a siren, the particular quality of stillness that preceded violence." | | 11 | "She thought of Amelia Voss, seventeen years old, hiding in the dark from people who wanted to hurt her." | | 12 | "The air that rose from below smelled of earth and old stone and something else, something that reminded Quinn of hospitals and the particular silence of rooms w…" | | 13 | "She thought of her badge, her warrant, the authority of the Metropolitan Police, all of it meaningless in a place that didn't recognize the laws of the city abo…" | | 14 | "Herrera followed, close behind, his hand finding her shoulder with the gentleness of a physician and the certainty of a man who knew exactly where he was going." | | 15 | "Above them, the rain continued to fall, washing the streets clean of everything except the questions that wouldn't wash away." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 36 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0.167 | | effectiveRatio | 0.056 | |