| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 2 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1248 | | 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) | |
| 67.95% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1248 | | totalAiIsms | 8 | | found | | 0 | | | 1 | | word | "down her spine" | | count | 1 |
| | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | |
| | highlights | | 0 | "pulse" | | 1 | "down her spine" | | 2 | "footsteps" | | 3 | "echoing" | | 4 | "streaming" | | 5 | "flickered" | | 6 | "electric" | | 7 | "flicker" |
| |
| 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 | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 70 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 67 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 5 | | markdownWords | 28 | | totalWords | 1262 | | ratio | 0.022 | | matches | | 0 | "You run like a metronome, Harlow." | | 1 | "cardiac event" | | 2 | "undiagnosed condition" | | 3 | "withdraw, observe, return with resources." | | 4 | "Morris went into a room he shouldn't have, and nobody came after him." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1217 | | uniqueNames | 14 | | maxNameDensity | 0.82 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Morris" | | discoveredNames | | Raven | 1 | | Nest | 1 | | Harlow | 4 | | Quinn | 10 | | Tomás | 1 | | Herrera | 6 | | Saint | 1 | | Christopher | 1 | | Soho | 2 | | Berwick | 1 | | Morris | 7 | | Camden | 2 | | Bermondsey | 3 | | Tube | 1 |
| | persons | | 0 | "Raven" | | 1 | "Nest" | | 2 | "Harlow" | | 3 | "Quinn" | | 4 | "Tomás" | | 5 | "Herrera" | | 6 | "Saint" | | 7 | "Christopher" | | 8 | "Morris" |
| | places | | 0 | "Soho" | | 1 | "Berwick" | | 2 | "Camden" | | 3 | "Bermondsey" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 49 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.792 | | wordCount | 1262 | | matches | | 0 | "not electric flicker, nothing so clean, but a living waver, like candlelight seen through deep water" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 70 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 25 | | mean | 50.48 | | std | 33.19 | | cv | 0.657 | | sampleLengths | | 0 | 69 | | 1 | 55 | | 2 | 4 | | 3 | 96 | | 4 | 64 | | 5 | 20 | | 6 | 12 | | 7 | 92 | | 8 | 4 | | 9 | 78 | | 10 | 88 | | 11 | 30 | | 12 | 107 | | 13 | 32 | | 14 | 13 | | 15 | 85 | | 16 | 26 | | 17 | 68 | | 18 | 5 | | 19 | 75 | | 20 | 13 | | 21 | 89 | | 22 | 74 | | 23 | 34 | | 24 | 29 |
| |
| 74.75% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 69 | | matches | | 0 | "got caught" | | 1 | "been cornered" | | 2 | "were gone" | | 3 | "was armed" | | 4 | "was gone" | | 5 | "been made" |
| |
| 67.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 201 | | matches | | 0 | "were still running" | | 1 | "was panicking" | | 2 | "was willing" | | 3 | "was cooling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 70 | | ratio | 0.129 | | matches | | 0 | "Quinn settled into her pace — not a sprint, never a sprint, not at forty-one." | | 1 | "Quinn's shoes were soaked through, her left sock grinding a blister into her heel, and her watch — Morris's old leather strap, worn soft as skin — ticked against her wrist like a second pulse." | | 2 | "She'd heard the whispers — every detective who worked the strange fringes of the city heard them eventually, in the spaces between official reports." | | 3 | "A suspect who'd been cornered in a basement in Bermondsey, who'd looked at Morris — only looked at him — and Morris had screamed and clawed his own throat open, and the official inquiry had used words like *cardiac event* and *undiagnosed condition*, and Quinn had sat in that hearing with her jaw locked and said nothing, because the truth had no vocabulary she was willing to speak aloud." | | 4 | "It was iron, painted black, set into the side of a disused Tube entrance she'd walked past a hundred times without noticing — one of those dead mouths of the old network, bricked up since before the war, except the bricks were gone now, and warm light breathed up from the stairwell below, and the air that came with it was wrong." | | 5 | "She had no phone signal — she'd checked twice during the chase, a habit — and no one alive knew she'd followed a person of interest into a hole in the ground beneath Camden." | | 6 | "She'd held the perimeter like a good officer, and by the time she went in, her partner was cooling on the concrete and the suspect was gone, and the only thing left in the room was a smell she now recognized — frankincense and old pennies — rising up the stairwell in front of her like a summons." | | 7 | "Below her, the light flickered — not electric flicker, nothing so clean, but a living waver, like candlelight seen through deep water." | | 8 | "She checked the alley behind her — empty, raining, indifferent." |
| |
| 95.23% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 88 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 4 | | adverbRatio | 0.045454545454545456 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.011363636363636364 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 70 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 70 | | mean | 18.03 | | std | 15.87 | | cv | 0.88 | | sampleLengths | | 0 | 23 | | 1 | 46 | | 2 | 3 | | 3 | 5 | | 4 | 47 | | 5 | 4 | | 6 | 18 | | 7 | 27 | | 8 | 15 | | 9 | 8 | | 10 | 28 | | 11 | 18 | | 12 | 33 | | 13 | 3 | | 14 | 10 | | 15 | 15 | | 16 | 5 | | 17 | 4 | | 18 | 2 | | 19 | 6 | | 20 | 23 | | 21 | 35 | | 22 | 1 | | 23 | 7 | | 24 | 11 | | 25 | 15 | | 26 | 4 | | 27 | 14 | | 28 | 24 | | 29 | 7 | | 30 | 10 | | 31 | 23 | | 32 | 4 | | 33 | 15 | | 34 | 69 | | 35 | 30 | | 36 | 62 | | 37 | 45 | | 38 | 7 | | 39 | 25 | | 40 | 13 | | 41 | 4 | | 42 | 17 | | 43 | 34 | | 44 | 30 | | 45 | 26 | | 46 | 7 | | 47 | 3 | | 48 | 58 | | 49 | 5 |
| |
| 64.76% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.45714285714285713 | | totalSentences | 70 | | uniqueOpeners | 32 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 65 | | matches | | 0 | "Of course he saw her." | | 1 | "Exactly one, three years ago," | | 2 | "Somewhere down there was a" | | 3 | "Somewhere down there were answers" | | 4 | "Then Harlow Quinn put the" |
| | ratio | 0.077 | |
| 35.38% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 65 | | matches | | 0 | "He saw her." | | 1 | "She'd never been subtle about" | | 2 | "*You run like a metronome," | | 3 | "He went left on Berwick," | | 4 | "She kept him in sight" | | 5 | "He was panicking." | | 6 | "she shouted, and her voice" | | 7 | "He didn't believe her." | | 8 | "She wasn't sure she believed" | | 9 | "They ran north, out of" | | 10 | "She'd been off shift for" | | 11 | "She catalogued that fact the" | | 12 | "She'd heard the whispers —" | | 13 | "She'd filed the stories alongside" | | 14 | "It was iron, painted black," | | 15 | "She could hear his footsteps," | | 16 | "She was off duty." | | 17 | "She was armed with nothing" | | 18 | "She had no phone signal" | | 19 | "She'd waited outside that basement" |
| | ratio | 0.462 | |
| 36.92% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 65 | | matches | | 0 | "The green neon of the" | | 1 | "Detective Harlow Quinn pressed her" | | 2 | "He saw her." | | 3 | "She'd never been subtle about" | | 4 | "Quinn went after him." | | 5 | "The rain came down in" | | 6 | "Herrera was fast, faster than" | | 7 | "Quinn settled into her pace" | | 8 | "Morris used to laugh at" | | 9 | "*You run like a metronome," | | 10 | "He went left on Berwick," | | 11 | "She kept him in sight" | | 12 | "He was panicking." | | 13 | "Panic made people fast and" | | 14 | "she shouted, and her voice" | | 15 | "He didn't believe her." | | 16 | "She wasn't sure she believed" | | 17 | "They ran north, out of" | | 18 | "Quinn's shoes were soaked through," | | 19 | "She'd been off shift for" |
| | ratio | 0.846 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 65 | | matches | (empty) | | ratio | 0 | |
| 30.08% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 6 | | matches | | 0 | "Herrera was fast, faster than a paramedic had any right to be, cutting between a delivery van and a shuttered café, his boots throwing up silver spray." | | 1 | "A suspect who'd been cornered in a basement in Bermondsey, who'd looked at Morris — only looked at him — and Morris had screamed and clawed his own throat open,…" | | 2 | "It was iron, painted black, set into the side of a disused Tube entrance she'd walked past a hundred times without noticing — one of those dead mouths of the ol…" | | 3 | "Warm, yes, but thick with smells that didn't belong together: frankincense and old pennies, dried blood and honey, the green reek of river mud and something und…" | | 4 | "She could hear his footsteps, quick and echoing, receding into a space that sounded far larger than any maintenance tunnel had a right to be." | | 5 | "Somewhere down there were answers that had no vocabulary, and Harlow Quinn had spent three years suffocating on the official version of events." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 1 | | effectiveRatio | 1 | |