| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1027 | | 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.79% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1027 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "flicker" | | 1 | "glint" | | 2 | "tinged" | | 3 | "traced" | | 4 | "pulse" |
| |
| 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 | 66 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 66 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 66 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1040 | | ratio | 0 | | matches | (empty) | |
| 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 | 21 | | wordCount | 1036 | | uniqueNames | 11 | | maxNameDensity | 0.58 | | worstName | "Herrera" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Herrera" | | discoveredNames | | Thames | 1 | | Camden | 1 | | High | 1 | | Street | 1 | | Raven | 1 | | Nest | 1 | | Herrera | 6 | | Thursday | 1 | | Brixton | 1 | | Tube | 2 | | Quinn | 5 |
| | persons | | | places | | 0 | "Thames" | | 1 | "Camden" | | 2 | "High" | | 3 | "Street" | | 4 | "Raven" | | 5 | "Brixton" |
| | globalScore | 1 | | windowScore | 1 | |
| 57.41% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like at distance" | | 1 | "quite music played on something that wasn't quite an instrument" | | 2 | "quite an instrument" |
| |
| 7.69% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.923 | | wordCount | 1040 | | matches | | 0 | "not the cold white of a torch or the flicker of emergency lighting, but something warmer" | | 1 | "not loud, but layered, conversations in languages she couldn't identify, t" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 66 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 28 | | mean | 37.14 | | std | 34.59 | | cv | 0.931 | | sampleLengths | | 0 | 25 | | 1 | 75 | | 2 | 14 | | 3 | 49 | | 4 | 68 | | 5 | 11 | | 6 | 55 | | 7 | 3 | | 8 | 63 | | 9 | 9 | | 10 | 79 | | 11 | 12 | | 12 | 81 | | 13 | 11 | | 14 | 7 | | 15 | 59 | | 16 | 4 | | 17 | 2 | | 18 | 108 | | 19 | 8 | | 20 | 127 | | 21 | 41 | | 22 | 13 | | 23 | 57 | | 24 | 9 | | 25 | 42 | | 26 | 2 | | 27 | 6 |
| |
| 99.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 66 | | matches | | |
| 46.74% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 174 | | matches | | 0 | "were doing" | | 1 | "wasn't running" | | 2 | "was walking" | | 3 | "was looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 66 | | ratio | 0.167 | | matches | | 0 | "He'd bolted the moment he'd clocked her across the road outside the Raven's Nest — one look at her face through the green neon wash and he'd dropped his cigarette and gone." | | 1 | "Herrera was already through, already on the next street, already turning again — south this time, she tracked the slap of his feet before she saw him." | | 2 | "He glanced back once, and she saw it in the angle of his jaw — the calculation running again, some different arithmetic this time." | | 3 | "He went down a staircase she'd have walked past a hundred times without registering — a narrow concrete descent behind a rusted railing, tucked between a shuttered newsagent and a betting shop." | | 4 | "Below, the staircase bent out of sight after eight or nine steps, and beyond the bend there was light — not the cold white of a torch or the flicker of emergency lighting, but something warmer and stranger, amber-tinged, pulsing faintly as though it breathed." | | 5 | "She could call in a location, request backup, wait at the top of these stairs for support to arrive and let Herrera disappear into whatever this was — because he would disappear, she knew that the way she knew her own heartbeat, the certainty of it sitting in her chest like a stone." | | 6 | "The geometry of it didn't work against the street plan she held in her head — they went down too far, turned twice, and the ceiling lowered until the cool damp air pressed close on all sides." | | 7 | "But the platform itself — wide, long, impossibly busy — had become something else entirely." | | 8 | "The noise was extraordinary up close — not loud, but layered, conversations in languages she couldn't identify, the occasional bark of laughter, somewhere the thin high note of something that wasn't quite music played on something that wasn't quite an instrument." | | 9 | "He was walking with purpose, head down, hand already reaching into his jacket for something — and Quinn saw it now, saw the calculation he'd been running since the moment he'd bolted: he hadn't been running from her." | | 10 | "A small dish on the counter held a collection of objects about the size of a thumbnail — irregular, yellowish, worn smooth." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1029 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 35 | | adverbRatio | 0.034013605442176874 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.007774538386783284 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 66 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 66 | | mean | 15.76 | | std | 11.75 | | cv | 0.745 | | sampleLengths | | 0 | 22 | | 1 | 3 | | 2 | 21 | | 3 | 32 | | 4 | 22 | | 5 | 14 | | 6 | 26 | | 7 | 23 | | 8 | 15 | | 9 | 9 | | 10 | 17 | | 11 | 27 | | 12 | 11 | | 13 | 23 | | 14 | 8 | | 15 | 24 | | 16 | 3 | | 17 | 4 | | 18 | 4 | | 19 | 32 | | 20 | 14 | | 21 | 2 | | 22 | 7 | | 23 | 9 | | 24 | 8 | | 25 | 45 | | 26 | 26 | | 27 | 7 | | 28 | 5 | | 29 | 10 | | 30 | 33 | | 31 | 24 | | 32 | 14 | | 33 | 11 | | 34 | 5 | | 35 | 2 | | 36 | 6 | | 37 | 53 | | 38 | 4 | | 39 | 2 | | 40 | 8 | | 41 | 37 | | 42 | 28 | | 43 | 35 | | 44 | 8 | | 45 | 11 | | 46 | 20 | | 47 | 15 | | 48 | 22 | | 49 | 11 |
| |
| 61.11% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.4393939393939394 | | totalSentences | 66 | | uniqueOpeners | 29 | |
| 53.76% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 62 | | matches | | 0 | "Then the corridor opened, and" |
| | ratio | 0.016 | |
| 90.97% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 62 | | matches | | 0 | "He'd bolted the moment he'd" | | 1 | "She'd caught the flicker of" | | 2 | "Her voice cut through the" | | 3 | "He ducked left, taking a" | | 4 | "He was fast for a" | | 5 | "She gained ground on the" | | 6 | "He glanced back once, and" | | 7 | "He ducked down." | | 8 | "He went down a staircase" | | 9 | "She put her hand on" | | 10 | "She'd pulled Herrera's NHS file," | | 11 | "She pushed that thought down." | | 12 | "Her radio was on her" | | 13 | "She could call in a" | | 14 | "He was walking with purpose," | | 15 | "He'd been leading her here." | | 16 | "Her hand moved to her" | | 17 | "She looked at the stall" | | 18 | "It took her a moment" | | 19 | "She hadn't paid to get" |
| | ratio | 0.323 | |
| 48.71% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 51 | | totalSentences | 62 | | matches | | 0 | "The rain came sideways off" | | 1 | "Quinn ran anyway." | | 2 | "Herrera was forty metres ahead" | | 3 | "He'd bolted the moment he'd" | | 4 | "She'd caught the flicker of" | | 5 | "Her voice cut through the" | | 6 | "He ducked left, taking a" | | 7 | "Quinn followed, her shoes hitting" | | 8 | "The alley smelled of bin" | | 9 | "A fox froze at the" | | 10 | "Herrera was already through, already" | | 11 | "He was fast for a" | | 12 | "She gained ground on the" | | 13 | "The gap closed to thirty" | | 14 | "He glanced back once, and" | | 15 | "He ducked down." | | 16 | "He went down a staircase" | | 17 | "The kind of entrance that" | | 18 | "Quinn reached the top of" | | 19 | "The rain drummed on the" |
| | ratio | 0.823 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 62 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 9 | | matches | | 0 | "Quinn followed, her shoes hitting the puddles hard, the water spraying cold against her shins." | | 1 | "The kind of entrance that belonged to a basement bar or a storage unit." | | 2 | "Below, the staircase bent out of sight after eight or nine steps, and beyond the bend there was light — not the cold white of a torch or the flicker of emergenc…" | | 3 | "The sound that drifted up wasn't music exactly, more like voices in a large space, a low collective murmur threaded through with something she couldn't name." | | 4 | "The unlicensed treatments, the patients who didn't appear in any hospital records, the substances seized in the Brixton flat that the lab had come back on three…" | | 5 | "She'd pulled Herrera's NHS file, traced the license revocation, interviewed the registrar who'd signed the paperwork with shaking hands and then refused a follo…" | | 6 | "The walls changed from concrete to something older, tiled in cracked cream ceramic with thin green borders, the kind of tile that belonged in an abandoned Tube …" | | 7 | "The tracks were still there, sunk below, rusted over and webbed with something that caught the light between the ties." | | 8 | "The noise was extraordinary up close — not loud, but layered, conversations in languages she couldn't identify, the occasional bark of laughter, somewhere the 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 | |