| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1341 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 70.17% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1341 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "silence" | | 1 | "echo" | | 2 | "footsteps" | | 3 | "gloom" | | 4 | "could feel" | | 5 | "weight" |
| |
| 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 | 102 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 102 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 104 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1325 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 1303 | | uniqueNames | 13 | | maxNameDensity | 0.77 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Thames | 1 | | Quinn | 10 | | Soho | 1 | | Raven | 1 | | Nest | 1 | | Camden | 2 | | Tube | 1 | | London | 1 | | Morris | 4 | | Victorian | 1 | | Veil | 1 | | Market | 1 | | Jamaican | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Raven" | | 2 | "Morris" | | 3 | "Victorian" | | 4 | "Market" |
| | places | | 0 | "Thames" | | 1 | "Soho" | | 2 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 44.37% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like neural pathways, branching tu" | | 1 | "blades that seemed to drink the light" | | 2 | "looked like animal bones, each carved wit" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1325 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 104 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 42.74 | | std | 30.01 | | cv | 0.702 | | sampleLengths | | 0 | 62 | | 1 | 62 | | 2 | 107 | | 3 | 3 | | 4 | 45 | | 5 | 89 | | 6 | 14 | | 7 | 9 | | 8 | 47 | | 9 | 9 | | 10 | 69 | | 11 | 91 | | 12 | 25 | | 13 | 75 | | 14 | 46 | | 15 | 2 | | 16 | 65 | | 17 | 3 | | 18 | 64 | | 19 | 21 | | 20 | 8 | | 21 | 32 | | 22 | 11 | | 23 | 82 | | 24 | 39 | | 25 | 33 | | 26 | 78 | | 27 | 30 | | 28 | 38 | | 29 | 5 | | 30 | 61 |
| |
| 67.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 11 | | totalSentences | 102 | | matches | | 0 | "was plastered" | | 1 | "was connected" | | 2 | "being watched" | | 3 | "been abandoned" | | 4 | "was made" | | 5 | "were bolted" | | 6 | "were lined" | | 7 | "been convinced" | | 8 | "was broken" | | 9 | "been oiled" | | 10 | "was gone" |
| |
| 20.63% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 223 | | matches | | 0 | "was being" | | 1 | "was angling" | | 2 | "was waiting" | | 3 | "was losing" | | 4 | "was selling" | | 5 | "was following" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 104 | | ratio | 0.125 | | matches | | 0 | "She kept her pace steady, boots slapping wet cobblestones as she tracked the figure two blocks ahead—a runner in a dark hood, quick and silent, the kind of silence that didn’t belong to a man who’d just been sprinting through Soho’s back alleys." | | 1 | "Every pivot, every shortcut through a gap between buildings—he moved like he’d been born in these shadows." | | 2 | "She had a face—narrow, sharp-jawed, the kind of face that could hold a grudge for three years—and she had a name." | | 3 | "Camden meant crowds—late-night pub traffic, drunk students, buskers packing up their gear." | | 4 | "The hole was a grate—pried up, recently, the rusted hinges still shiny where the bolts had sheared." | | 5 | "She’d dismissed most of it as folklore—until DS Morris had walked into one of those tunnels three years ago and never walked out." | | 6 | "The rungs were bolted into crumbling brick, and the farther she descended, the more the rain faded, replaced by a damp silence that smelled of damp earth and something metallic—copper, maybe, or old blood." | | 7 | "Beyond the gates, the gloom dissolved into something else—a low, sulfurous glow, like the light of a dying gas lamp." | | 8 | "He’d drawn maps in the margins of his case file—maps that looked like neural pathways, branching tunnels marked with symbols she couldn’t decipher." | | 9 | "Trestle tables lined the platform, heaped with goods that caught the lamplight in strange ways—jars of liquid that swirled with their own internal shimmer, bundles of dried herbs tied with red string, knives with blades that seemed to drink the light." | | 10 | "The runner was gone—lost in the press of bodies—but the air was thick with the knowledge that she didn’t belong here." | | 11 | "But this place—this place was not her jurisdiction." | | 12 | "She kept one hand on the bone token, the other near her weapon, and she moved forward into the dark, wondering if she was following the runner—or if the runner had been leading her here all along." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1326 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 27 | | adverbRatio | 0.020361990950226245 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.003770739064856712 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 104 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 104 | | mean | 12.74 | | std | 8.98 | | cv | 0.705 | | sampleLengths | | 0 | 19 | | 1 | 43 | | 2 | 3 | | 3 | 21 | | 4 | 16 | | 5 | 5 | | 6 | 17 | | 7 | 3 | | 8 | 15 | | 9 | 12 | | 10 | 3 | | 11 | 21 | | 12 | 12 | | 13 | 16 | | 14 | 25 | | 15 | 3 | | 16 | 20 | | 17 | 1 | | 18 | 12 | | 19 | 7 | | 20 | 5 | | 21 | 13 | | 22 | 15 | | 23 | 5 | | 24 | 2 | | 25 | 24 | | 26 | 30 | | 27 | 5 | | 28 | 2 | | 29 | 2 | | 30 | 5 | | 31 | 9 | | 32 | 11 | | 33 | 17 | | 34 | 5 | | 35 | 14 | | 36 | 5 | | 37 | 2 | | 38 | 2 | | 39 | 22 | | 40 | 24 | | 41 | 23 | | 42 | 4 | | 43 | 12 | | 44 | 9 | | 45 | 8 | | 46 | 19 | | 47 | 7 | | 48 | 9 | | 49 | 23 |
| |
| 36.54% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.2980769230769231 | | totalSentences | 104 | | uniqueOpeners | 31 | |
| 72.46% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 92 | | matches | | 0 | "Then he dropped through a" | | 1 | "Somewhere in there was the" |
| | ratio | 0.022 | |
| 41.74% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 92 | | matches | | 0 | "She kept her pace steady," | | 1 | "She pushed harder." | | 2 | "She didn’t care." | | 3 | "She had a face—narrow, sharp-jawed," | | 4 | "She’d been watching the Raven’s" | | 5 | "She could lose him in" | | 6 | "He turned hard left into" | | 7 | "She didn’t want to draw." | | 8 | "He looked back at her." | | 9 | "She could hear the echo" | | 10 | "She pulled out her phone." | | 11 | "She’d heard rumors about the" | | 12 | "She’d dismissed most of it" | | 13 | "It tapped the grate and" | | 14 | "She told herself she was" | | 15 | "She told herself the supernatural" | | 16 | "He’d been sober and thorough" | | 17 | "She took a breath." | | 18 | "She holstered her weapon and" | | 19 | "Her feet hit solid ground" |
| | ratio | 0.446 | |
| 19.78% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 81 | | totalSentences | 92 | | matches | | 0 | "The rain came sideways off" | | 1 | "She kept her pace steady," | | 2 | "Quinn’s lungs burned." | | 3 | "Backup was three minutes out," | | 4 | "The runner knew the streets." | | 5 | "Every pivot, every shortcut through" | | 6 | "She pushed harder." | | 7 | "The leather of her watch" | | 8 | "The salt-and-pepper stubble of her" | | 9 | "She didn’t care." | | 10 | "She had a face—narrow, sharp-jawed," | | 11 | "The runner wasn’t the target," | | 12 | "She’d been watching the Raven’s" | | 13 | "This man had walked out" | | 14 | "Quinn had followed." | | 15 | "Camden meant crowds—late—night pub traffic," | | 16 | "She could lose him in" | | 17 | "He turned hard left into" | | 18 | "Quinn followed without breaking stride," | | 19 | "She didn’t want to draw." |
| | ratio | 0.88 | |
| 54.35% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 92 | | matches | | 0 | "Now she was soaked through," |
| | ratio | 0.011 | |
| 55.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 57 | | technicalSentenceCount | 7 | | matches | | 0 | "She kept her pace steady, boots slapping wet cobblestones as she tracked the figure two blocks ahead—a runner in a dark hood, quick and silent, the kind of sile…" | | 1 | "She had a face—narrow, sharp-jawed, the kind of face that could hold a grudge for three years—and she had a name." | | 2 | "The rungs were bolted into crumbling brick, and the farther she descended, the more the rain faded, replaced by a damp silence that smelled of damp earth and so…" | | 3 | "She pulled out her phone again, turned on the flashlight, and swept the beam across a narrow tunnel that curved left and descended at a shallow angle." | | 4 | "He’d drawn maps in the margins of his case file—maps that looked like neural pathways, branching tunnels marked with symbols she couldn’t decipher." | | 5 | "Trestle tables lined the platform, heaped with goods that caught the lamplight in strange ways—jars of liquid that swirled with their own internal shimmer, bund…" | | 6 | "The walls between the world above and the world below were thinner here, and she could feel them pressing in on her, a weight that had nothing to do with gravit…" |
| |
| 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 | 4 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |