| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 81.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1346 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "very" | | 1 | "precisely" | | 2 | "lightly" | | 3 | "slowly" |
| |
| 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) | |
| 74.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1346 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "fractured" | | 1 | "measured" | | 2 | "resolving" | | 3 | "footsteps" | | 4 | "absolutely" | | 5 | "framework" | | 6 | "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 | 85 | | matches | (empty) | |
| 92.44% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 0 | | narrationSentences | 85 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 85 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 60 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1359 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 1359 | | uniqueNames | 16 | | maxNameDensity | 0.44 | | worstName | "Herrera" | | maxWindowNameDensity | 1 | | worstWindowName | "Quinn" | | discoveredNames | | Detective | 1 | | Harlow | 1 | | Quinn | 5 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Raven | 1 | | Nest | 1 | | Tomás | 2 | | Herrera | 6 | | Shaftesbury | 1 | | Avenue | 1 | | Morris | 3 | | Camden | 2 | | Saint | 1 | | Christopher | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Nest" | | 3 | "Tomás" | | 4 | "Herrera" | | 5 | "Morris" | | 6 | "Saint" | | 7 | "Christopher" |
| | places | | 0 | "Charing" | | 1 | "Cross" | | 2 | "Road" | | 3 | "Raven" | | 4 | "Shaftesbury" | | 5 | "Avenue" | | 6 | "Camden" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 57 | | glossingSentenceCount | 1 | | matches | | 0 | "quite name — something old and mineral and wrong in a way that raised the hair on her forearms" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.736 | | wordCount | 1359 | | matches | | 0 | "not his face or his voice, but his absence, the precise negative shape of him" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 85 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 41.18 | | std | 34.88 | | cv | 0.847 | | sampleLengths | | 0 | 24 | | 1 | 4 | | 2 | 109 | | 3 | 7 | | 4 | 86 | | 5 | 78 | | 6 | 57 | | 7 | 6 | | 8 | 75 | | 9 | 21 | | 10 | 2 | | 11 | 36 | | 12 | 22 | | 13 | 9 | | 14 | 86 | | 15 | 19 | | 16 | 97 | | 17 | 13 | | 18 | 27 | | 19 | 78 | | 20 | 3 | | 21 | 16 | | 22 | 68 | | 23 | 26 | | 24 | 5 | | 25 | 8 | | 26 | 79 | | 27 | 113 | | 28 | 66 | | 29 | 13 | | 30 | 70 | | 31 | 21 | | 32 | 15 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 85 | | matches | | |
| 48.48% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 220 | | matches | | 0 | "wasn't losing" | | 1 | "wasn't slowing" | | 2 | "wasn't running" | | 3 | "was doing" | | 4 | "was talking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 85 | | ratio | 0.141 | | matches | | 0 | "The man ahead of her was fast — faster than she'd expected when she'd first clocked him outside the Raven's Nest, standing under that garish green neon sign with his collar up and his hands shoved deep into his jacket pockets." | | 1 | "He kept company with people whose names appeared in reports she wasn't supposed to have accessed — reports connected to the case that had taken Morris from her three years ago and left her with nothing but a sealed file and a grief she'd since weaponised into something useful." | | 2 | "Quinn's leather watch pressed cold against her wrist as she checked the time — eleven forty-three — and filed the fact away." | | 3 | "She stood very still and listened the way Morris had taught her — listen past what you're hearing for what you're not." | | 4 | "Just the steps and the dark and the faint suggestion of air moving upward, carrying a smell she couldn't quite name — something old and mineral and wrong in a way that raised the hair on her forearms." | | 5 | "She thought about him the way she always did in moments like this — not his face or his voice, but his absence, the precise negative shape of him that had never been adequately explained." | | 6 | "She didn't switch it on yet — too visible, too early." | | 7 | "She kept one hand lightly on the wall as the darkness thickened and the smell grew stronger — that mineral wrongness resolving slowly into something closer to woodsmoke and copper and something else entirely, something she had no category for yet." | | 8 | "Tube infrastructure — old, decommissioned, the kind the city swallowed and forgot." | | 9 | "But ahead, beneath the junction, she could see a faint light blooming — warm, amber, sourceless." | | 10 | "The corridor opened into something larger beyond — a platform, she registered, an old platform, the kind that hadn't seen a scheduled train since before she was born, and on it was something she had absolutely no framework for and spent two full seconds simply processing before the detective part of her brain overrode everything else and began, methodically, to record." | | 11 | "Dozens of them, draped in dark cloth and lit by lanterns that burned with that amber light, arranged along the platform length like a market — a proper market, densely packed, moving, alive with commerce." |
| |
| 98.68% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1349 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 56 | | adverbRatio | 0.04151223128243143 | | lyAdverbCount | 24 | | lyAdverbRatio | 0.017790956263899184 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 85 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 85 | | mean | 15.99 | | std | 14.11 | | cv | 0.882 | | sampleLengths | | 0 | 24 | | 1 | 4 | | 2 | 41 | | 3 | 25 | | 4 | 4 | | 5 | 39 | | 6 | 3 | | 7 | 4 | | 8 | 32 | | 9 | 5 | | 10 | 49 | | 11 | 7 | | 12 | 2 | | 13 | 2 | | 14 | 18 | | 15 | 49 | | 16 | 21 | | 17 | 36 | | 18 | 6 | | 19 | 3 | | 20 | 31 | | 21 | 22 | | 22 | 3 | | 23 | 16 | | 24 | 21 | | 25 | 2 | | 26 | 25 | | 27 | 1 | | 28 | 2 | | 29 | 6 | | 30 | 2 | | 31 | 22 | | 32 | 3 | | 33 | 4 | | 34 | 2 | | 35 | 40 | | 36 | 2 | | 37 | 6 | | 38 | 38 | | 39 | 19 | | 40 | 35 | | 41 | 3 | | 42 | 20 | | 43 | 4 | | 44 | 35 | | 45 | 8 | | 46 | 5 | | 47 | 9 | | 48 | 11 | | 49 | 7 |
| |
| 33.53% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.29411764705882354 | | totalSentences | 85 | | uniqueOpeners | 25 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 75 | | matches | | 0 | "Then Tomás Herrera had walked" | | 1 | "Just the steps and the" | | 2 | "More than she would have" | | 3 | "Then she pulled her collar" |
| | ratio | 0.053 | |
| 22.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 75 | | matches | | 0 | "She kept running anyway." | | 1 | "She'd been watching the bar" | | 2 | "He was good." | | 3 | "She'd give him that." | | 4 | "He cut left off Shaftesbury" | | 5 | "Her shoes found every puddle." | | 6 | "She'd pulled his file three" | | 7 | "He kept company with people" | | 8 | "She cut through a side" | | 9 | "He was maybe thirty metres" | | 10 | "He went north." | | 11 | "Her lungs burned." | | 12 | "She hadn't smoked in four" | | 13 | "She stood very still and" | | 14 | "She stood at the top" | | 15 | "She thought about him the" | | 16 | "She'd examined them properly." | | 17 | "She'd been examining them properly" | | 18 | "She knew what was down" | | 19 | "She didn't know precisely how." |
| | ratio | 0.493 | |
| 53.33% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 61 | | totalSentences | 75 | | matches | | 0 | "The rain came down in" | | 1 | "She kept running anyway." | | 2 | "The man ahead of her" | | 3 | "She'd been watching the bar" | | 4 | "He was good." | | 5 | "She'd give him that." | | 6 | "He cut left off Shaftesbury" | | 7 | "Her shoes found every puddle." | | 8 | "The city at this hour" | | 9 | "She'd pulled his file three" | | 10 | "He kept company with people" | | 11 | "She cut through a side" | | 12 | "He was maybe thirty metres" | | 13 | "The thought made her push" | | 14 | "He went north." | | 15 | "Quinn's leather watch pressed cold" | | 16 | "Her lungs burned." | | 17 | "She hadn't smoked in four" | | 18 | "Herrera turned down a service" | | 19 | "The lane was narrow, maybe" |
| | ratio | 0.813 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 75 | | matches | (empty) | | ratio | 0 | |
| 3.11% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 9 | | matches | | 0 | "She'd been watching the bar for six nights straight, cycling unmarked vehicles, sitting on cold leather in rental cars that smelled of other people's takeaway." | | 1 | "The city at this hour was all fractured neon and the hiss of tyres, black cabs spraying arcs of water as they turned, and Herrera was a dark shape threading thr…" | | 2 | "He kept company with people whose names appeared in reports she wasn't supposed to have accessed — reports connected to the case that had taken Morris from her …" | | 3 | "She cut through a side alley after him, her shoulder clipping a drainpipe, water dumping down the back of her neck." | | 4 | "Just the steps and the dark and the faint suggestion of air moving upward, carrying a smell she couldn't quite name — something old and mineral and wrong in a w…" | | 5 | "She thought about him the way she always did in moments like this — not his face or his voice, but his absence, the precise negative shape of him that had never…" | | 6 | "The corridor opened into something larger beyond — a platform, she registered, an old platform, the kind that hadn't seen a scheduled train since before she was…" | | 7 | "Dozens of them, draped in dark cloth and lit by lanterns that burned with that amber light, arranged along the platform length like a market — a proper market, …" | | 8 | "She had her badge and her torch and eighteen years of decorated service and a sealed file with her dead partner's name on it, and ahead of her was a man who was…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |