| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.692 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 82.06% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1115 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "carefully" | | 1 | "suddenly" | | 2 | "very" | | 3 | "utterly" |
| |
| 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) | |
| 86.55% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1115 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "footsteps" | | 1 | "echoed" | | 2 | "pulsed" |
| |
| 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 | 64 | | matches | (empty) | |
| 98.21% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 64 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 69 | | 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 | 0 | | markdownWords | 0 | | totalWords | 1125 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 97.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 23 | | wordCount | 1051 | | uniqueNames | 9 | | maxNameDensity | 1.05 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 2 | | Lock | 1 | | Men | 1 | | Quinn | 11 | | Town | 1 | | Yard | 1 | | Morris | 3 | | London | 2 | | Victorian | 1 |
| | persons | | | places | | 0 | "Camden" | | 1 | "Town" | | 2 | "London" |
| | globalScore | 0.977 | | windowScore | 1 | |
| 43.62% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 47 | | glossingSentenceCount | 2 | | matches | | 0 | "quite catch in his pupils" | | 1 | "not quite a smile" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1125 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 69 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 35.16 | | std | 21.72 | | cv | 0.618 | | sampleLengths | | 0 | 59 | | 1 | 2 | | 2 | 11 | | 3 | 51 | | 4 | 18 | | 5 | 46 | | 6 | 61 | | 7 | 7 | | 8 | 39 | | 9 | 55 | | 10 | 13 | | 11 | 71 | | 12 | 39 | | 13 | 28 | | 14 | 8 | | 15 | 42 | | 16 | 58 | | 17 | 78 | | 18 | 7 | | 19 | 19 | | 20 | 33 | | 21 | 24 | | 22 | 20 | | 23 | 66 | | 24 | 44 | | 25 | 8 | | 26 | 22 | | 27 | 56 | | 28 | 30 | | 29 | 5 | | 30 | 53 | | 31 | 52 |
| |
| 94.30% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 64 | | matches | | 0 | "were snarled" | | 1 | "been closed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 179 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 69 | | ratio | 0.101 | | matches | | 0 | "Quinn filed that detail away the way she filed away everything strange these days — carefully, without comment, the way you'd handle a live wire." | | 1 | "Radioing it in properly, sealing the entrance, letting the specialist units — whoever the hell they were, she'd heard whispers of a unit that didn't officially exist — handle whatever waited beneath London's skin." | | 2 | "The air changed before her eyes adjusted — a mineral cold, underlaid with something sweetish and rotten, like flowers left too long in a vase." | | 3 | "The tunnel opened into what had once been a platform, tiled walls stained the colour of old tea, and there — impossibly — light." | | 4 | "A man — if he was a man — haggled over a jar containing something that pulsed faintly against the glass." | | 5 | "Eighteen years of instinct told her that pulling it here, now, surrounded by however many things she couldn't identify, was the fastest way to end up like Morris — a name in a file nobody closed." | | 6 | "\"Fine,\" Quinn said, and took one step back up toward the stairs, torch beam swinging toward the exit — and then, before the doorman's satisfied grunt could fully land, she pivoted and drove past his shoulder into the crowd beyond, torch dying in her hand as something unseen swallowed the light whole." |
| |
| 98.80% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 701 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 29 | | adverbRatio | 0.04136947218259629 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.014265335235378032 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 69 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 69 | | mean | 16.3 | | std | 11.68 | | cv | 0.717 | | sampleLengths | | 0 | 17 | | 1 | 24 | | 2 | 18 | | 3 | 2 | | 4 | 3 | | 5 | 8 | | 6 | 22 | | 7 | 29 | | 8 | 13 | | 9 | 5 | | 10 | 4 | | 11 | 17 | | 12 | 25 | | 13 | 16 | | 14 | 20 | | 15 | 5 | | 16 | 20 | | 17 | 7 | | 18 | 23 | | 19 | 16 | | 20 | 22 | | 21 | 4 | | 22 | 29 | | 23 | 13 | | 24 | 11 | | 25 | 10 | | 26 | 31 | | 27 | 4 | | 28 | 13 | | 29 | 2 | | 30 | 5 | | 31 | 34 | | 32 | 28 | | 33 | 8 | | 34 | 25 | | 35 | 13 | | 36 | 3 | | 37 | 1 | | 38 | 24 | | 39 | 12 | | 40 | 22 | | 41 | 8 | | 42 | 18 | | 43 | 21 | | 44 | 31 | | 45 | 2 | | 46 | 5 | | 47 | 4 | | 48 | 15 | | 49 | 12 |
| |
| 77.29% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.5072463768115942 | | totalSentences | 69 | | uniqueOpeners | 35 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 60 | | matches | | 0 | "Then she thought about eighteen" | | 1 | "Somewhere behind him, laughter rippled" |
| | ratio | 0.033 | |
| 80.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 60 | | matches | | 0 | "He'd been quick on the" | | 1 | "He didn't stop." | | 2 | "He never did, not the" | | 3 | "she called, though she doubted" | | 4 | "He glanced back once." | | 5 | "He was fifty feet ahead" | | 6 | "She'd called it in but" | | 7 | "she said, mostly to herself" | | 8 | "He dropped down a set" | | 9 | "She knew the file." | | 10 | "She still didn't know." | | 11 | "She thought about turning around." | | 12 | "she said, and went down" | | 13 | "Her torch beam cut through" | | 14 | "They were checking for tokens." | | 15 | "She had a badge, a" | | 16 | "His eyes found her, found" | | 17 | "She held up the badge" | | 18 | "She thought of Morris's wife" | | 19 | "She thought about turning back." |
| | ratio | 0.35 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 48 | | totalSentences | 60 | | matches | | 0 | "Quinn's boots hit the ground" | | 1 | "He'd been quick on the" | | 2 | "He didn't stop." | | 3 | "He never did, not the" | | 4 | "Quinn's lungs burned, eighteen years" | | 5 | "The man cut left down" | | 6 | "she called, though she doubted" | | 7 | "Men like him rarely did." | | 8 | "He glanced back once." | | 9 | "Quinn filed that detail away" | | 10 | "The alley spat them out" | | 11 | "He was fifty feet ahead" | | 12 | "She'd called it in but" | | 13 | "she said, mostly to herself" | | 14 | "He dropped down a set" | | 15 | "Quinn skidded to the top" | | 16 | "Camden Town station, disused, the" | | 17 | "She knew the file." | | 18 | "Everyone at the Yard knew" | | 19 | "The man's footsteps echoed down" |
| | ratio | 0.8 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 60 | | matches | (empty) | | ratio | 0 | |
| 27.03% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 6 | | matches | | 0 | "Radioing it in properly, sealing the entrance, letting the specialist units — whoever the hell they were, she'd heard whispers of a unit that didn't officially …" | | 1 | "Quinn stopped dead at the threshold, torch beam faltering against a crowd that shouldn't have existed under any London street she knew." | | 2 | "His eyes found her, found the torch, found everything about her that marked her as not-belonging." | | 3 | "Behind him, deeper in the tunnel, she caught a last glimpse of grey coat disappearing round a bend where the tiled wall gave way to older brick, Victorian brick…" | | 4 | "The whole geography of the place was wrong, folding in on itself like a map redrawn by someone who'd never seen the actual city." | | 5 | "She thought about the grey coat and the eyes that didn't catch the light right, and the case file that had brought her out into the rain in the first place, thr…" |
| |
| 69.44% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, mostly to herself" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.462 | | leniency | 0.923 | | rawRatio | 0 | | effectiveRatio | 0 | |