| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 78.28% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1151 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slowly" | | 1 | "suddenly" | | 2 | "completely" | | 3 | "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) | |
| 78.28% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1151 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "measured" | | 1 | "stomach" | | 2 | "resolved" | | 3 | "footsteps" | | 4 | "echo" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 86 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 86 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 88 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 4 | | totalWords | 1137 | | ratio | 0.004 | | matches | | 0 | "circumstances unclear" | | 1 | "unclear" | | 2 | "cariño" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 1110 | | uniqueNames | 13 | | maxNameDensity | 0.63 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "You" | | discoveredNames | | Soho | 1 | | Detective | 1 | | Harlow | 1 | | Quinn | 7 | | Herrera | 6 | | Raven | 1 | | Nest | 1 | | Morris | 3 | | Tube | 1 | | Camden | 3 | | Tomás | 2 | | Market | 1 | | You | 4 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Raven" | | 4 | "Morris" | | 5 | "Camden" | | 6 | "Tomás" | | 7 | "You" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1137 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 88 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 24 | | mean | 47.38 | | std | 32.79 | | cv | 0.692 | | sampleLengths | | 0 | 77 | | 1 | 76 | | 2 | 13 | | 3 | 6 | | 4 | 94 | | 5 | 17 | | 6 | 86 | | 7 | 54 | | 8 | 77 | | 9 | 18 | | 10 | 43 | | 11 | 51 | | 12 | 90 | | 13 | 7 | | 14 | 85 | | 15 | 3 | | 16 | 62 | | 17 | 23 | | 18 | 117 | | 19 | 23 | | 20 | 40 | | 21 | 15 | | 22 | 27 | | 23 | 33 |
| |
| 97.10% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 86 | | matches | | 0 | "was gone" | | 1 | "been promoted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 180 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 88 | | ratio | 0.114 | | matches | | 0 | "She'd watched him slip out the back of the Raven's Nest twenty minutes ago, the green neon throwing his shadow long across the wet brick, and she'd followed on instinct alone—no warrant, no backup, just the old itch under her sternum that had been there since the night Morris stopped answering his radio." | | 1 | "They came out onto a wider street—closed shopfronts, a kebab place still throwing greasy yellow light onto the kerb, a man under an umbrella who pressed himself flat against a doorway as the two of them blew past." | | 2 | "That changed things—a man running blind ran in loops and dead-ends, but a man running toward something ran straight, and straight was where you caught them or lost them for good." | | 3 | "Not a working one—she could see that even at speed." | | 4 | "And Morris had never come out, and the report had said *circumstances unclear*, and no one—not the brass, not the coroner, not the priest at the funeral—had ever been able to tell her what *unclear* meant." | | 5 | "There were stairs going down—old tiled steps, cream and oxblood, slick with damp." | | 6 | "The drip of water, yes, and her own footsteps, but underneath them a low murmur that grew with every step—voices, many of them, the rustle and clink and barter of a crowd." | | 7 | "Eyes turned toward her—too many eyes, and not all of them in pairs—and she felt, with the certainty of a detective who had spent her whole life reading rooms, that every single one of them had clocked her for exactly what she was." | | 8 | "He simply watched her, rain still dripping from his curls, one hand rising to touch something at his throat—a small medallion, catching the lantern light." | | 9 | "It was a different man—older, gaunt—but past his shoulder Herrera had already melted back into the crowd, and the green-amber light breathed once more over the bones strung above them all." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1129 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 44 | | adverbRatio | 0.03897254207263064 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.007971656333038087 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 88 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 88 | | mean | 12.92 | | std | 10.64 | | cv | 0.824 | | sampleLengths | | 0 | 22 | | 1 | 27 | | 2 | 28 | | 3 | 4 | | 4 | 2 | | 5 | 17 | | 6 | 53 | | 7 | 12 | | 8 | 1 | | 9 | 3 | | 10 | 3 | | 11 | 10 | | 12 | 17 | | 13 | 29 | | 14 | 4 | | 15 | 10 | | 16 | 24 | | 17 | 8 | | 18 | 9 | | 19 | 38 | | 20 | 3 | | 21 | 7 | | 22 | 25 | | 23 | 13 | | 24 | 7 | | 25 | 9 | | 26 | 3 | | 27 | 4 | | 28 | 31 | | 29 | 6 | | 30 | 3 | | 31 | 10 | | 32 | 20 | | 33 | 2 | | 34 | 15 | | 35 | 21 | | 36 | 18 | | 37 | 15 | | 38 | 18 | | 39 | 4 | | 40 | 4 | | 41 | 2 | | 42 | 7 | | 43 | 14 | | 44 | 20 | | 45 | 3 | | 46 | 1 | | 47 | 6 | | 48 | 11 | | 49 | 13 |
| |
| 59.09% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.4090909090909091 | | totalSentences | 88 | | uniqueOpeners | 36 | |
| 44.44% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 75 | | matches | | | ratio | 0.013 | |
| 54.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 75 | | matches | | 0 | "She ran with her elbows" | | 1 | "She knew his name." | | 2 | "She'd watched him slip out" | | 3 | "Her voice tore out of" | | 4 | "He didn't stop." | | 5 | "They never did." | | 6 | "Her foot skidded on something" | | 7 | "He looked, and the looking" | | 8 | "She hit the fence and" | | 9 | "They came out onto a" | | 10 | "They'd come further north than" | | 11 | "Her leather watch strap had" | | 12 | "He didn't slow." | | 13 | "He had a destination." | | 14 | "He angled toward a Tube" | | 15 | "You didn't follow a suspect" | | 16 | "You set a perimeter." | | 17 | "You called it in." | | 18 | "She reached for her radio," | | 19 | "She tried again." |
| | ratio | 0.413 | |
| 40.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 75 | | matches | | 0 | "Rain came down in sheets," | | 1 | "She ran with her elbows" | | 2 | "She knew his name." | | 3 | "She'd watched him slip out" | | 4 | "Her voice tore out of" | | 5 | "He didn't stop." | | 6 | "They never did." | | 7 | "The alley narrowed and stank" | | 8 | "Her foot skidded on something" | | 9 | "That was the mistake amateurs" | | 10 | "He looked, and the looking" | | 11 | "She hit the fence and" | | 12 | "They came out onto a" | | 13 | "Camden, she registered." | | 14 | "They'd come further north than" | | 15 | "The rain had picked up," | | 16 | "Her leather watch strap had" | | 17 | "Herrera cut across the road" | | 18 | "A taxi blared its horn" | | 19 | "He didn't slow." |
| | ratio | 0.84 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 75 | | matches | (empty) | | ratio | 0 | |
| 12.99% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 8 | | matches | | 0 | "Rain came down in sheets, turning the Soho pavement into a black mirror that broke and reformed under Detective Harlow Quinn's boots." | | 1 | "Former paramedic, struck off the NHS register, last seen on no camera that mattered for three weeks." | | 2 | "She'd watched him slip out the back of the Raven's Nest twenty minutes ago, the green neon throwing his shadow long across the wet brick, and she'd followed on …" | | 3 | "They came out onto a wider street—closed shopfronts, a kebab place still throwing greasy yellow light onto the kerb, a man under an umbrella who pressed himself…" | | 4 | "A thin, dead crackle, as though the device had given up the moment she crossed the threshold of the hoarding." | | 5 | "A faint light bled up from below, the wrong colour for any working light, a greenish-amber that breathed." | | 6 | "The drip of water, yes, and her own footsteps, but underneath them a low murmur that grew with every step—voices, many of them, the rustle and clink and barter …" | | 7 | "Eyes turned toward her—too many eyes, and not all of them in pairs—and she felt, with the certainty of a detective who had spent her whole life reading rooms, t…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0 | | effectiveRatio | 0 | |