| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 2 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 91.58% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1188 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 78.96% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1188 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "silence" | | 1 | "weight" | | 2 | "sinister" | | 3 | "navigated" | | 4 | "chill" |
| |
| 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 | 52 | | matches | (empty) | |
| 60.44% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 52 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 53 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 60 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 5 | | totalWords | 1191 | | ratio | 0.004 | | matches | | 0 | "the walls seemed to breathe" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 24 | | wordCount | 1184 | | uniqueNames | 14 | | maxNameDensity | 0.34 | | worstName | "Finch" | | maxWindowNameDensity | 1 | | worstWindowName | "Morris" | | discoveredNames | | Camden | 1 | | Quinn | 3 | | Parkway | 1 | | Errol | 1 | | Finch | 4 | | Raven | 1 | | Nest | 1 | | Deptford | 2 | | Whitechapel | 2 | | Morris | 4 | | Metropolitan | 1 | | Police | 1 | | London | 1 | | Underground | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Errol" | | 2 | "Finch" | | 3 | "Morris" |
| | places | | 0 | "Raven" | | 1 | "Deptford" | | 2 | "Whitechapel" | | 3 | "Metropolitan" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like" | | 1 | "quite sound human" | | 2 | "as if expecting payment" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.84 | | wordCount | 1191 | | matches | | 0 | "not the wet chill of the London night above, but something drier" |
| |
| 40.88% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 53 | | matches | | 0 | "registered that the" | | 1 | "understanding that whatever" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 23 | | mean | 51.78 | | std | 31.6 | | cv | 0.61 | | sampleLengths | | 0 | 79 | | 1 | 104 | | 2 | 37 | | 3 | 36 | | 4 | 57 | | 5 | 82 | | 6 | 59 | | 7 | 17 | | 8 | 110 | | 9 | 47 | | 10 | 10 | | 11 | 74 | | 12 | 16 | | 13 | 71 | | 14 | 7 | | 15 | 88 | | 16 | 15 | | 17 | 23 | | 18 | 104 | | 19 | 45 | | 20 | 25 | | 21 | 29 | | 22 | 56 |
| |
| 85.02% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 52 | | matches | | 0 | "been photographed" | | 1 | "been built" | | 2 | "being funneled" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 192 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 53 | | ratio | 0.057 | | matches | | 0 | "There was a smell coming up from it — tallow smoke, and something sweetish underneath that she didn't want to name, and beneath both of those, faint but unmistakable, the particular cold mineral smell of very old stone that had never seen daylight." | | 1 | "The cold hit her first — not the wet chill of the London night above, but something drier and older, air that had been circulating in the same enclosed dark for longer than she wanted to think about." | | 2 | "She could hear the market properly now — voices haggling in accents she couldn't place, a sound like chimes made of something other than metal, laughter that didn't quite sound human." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1183 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 47 | | adverbRatio | 0.039729501267962805 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.01098901098901099 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 53 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 53 | | mean | 22.47 | | std | 16.76 | | cv | 0.746 | | sampleLengths | | 0 | 38 | | 1 | 6 | | 2 | 35 | | 3 | 26 | | 4 | 20 | | 5 | 58 | | 6 | 37 | | 7 | 30 | | 8 | 6 | | 9 | 3 | | 10 | 35 | | 11 | 13 | | 12 | 6 | | 13 | 5 | | 14 | 56 | | 15 | 11 | | 16 | 10 | | 17 | 30 | | 18 | 29 | | 19 | 17 | | 20 | 4 | | 21 | 36 | | 22 | 53 | | 23 | 17 | | 24 | 11 | | 25 | 36 | | 26 | 10 | | 27 | 43 | | 28 | 7 | | 29 | 2 | | 30 | 1 | | 31 | 21 | | 32 | 9 | | 33 | 7 | | 34 | 4 | | 35 | 21 | | 36 | 46 | | 37 | 7 | | 38 | 50 | | 39 | 22 | | 40 | 16 | | 41 | 5 | | 42 | 10 | | 43 | 23 | | 44 | 38 | | 45 | 6 | | 46 | 60 | | 47 | 14 | | 48 | 31 | | 49 | 25 |
| |
| 55.97% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.4716981132075472 | | totalSentences | 53 | | uniqueOpeners | 25 | |
| 66.67% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 50 | | matches | | 0 | "Somewhere down there, faint, she" |
| | ratio | 0.02 | |
| 12.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 50 | | matches | | 0 | "She didn't slow down for" | | 1 | "She hadn't slowed down for" | | 2 | "His name was Errol Finch," | | 3 | "She rounded the corner onto" | | 4 | "she shouted, though she knew" | | 5 | "He didn't stop." | | 6 | "He cut left down an" | | 7 | "She'd chased plenty of suspects" | | 8 | "She knew what nowhere looked" | | 9 | "It came down heavier, straighter," | | 10 | "He crouched, wrenched it up" | | 11 | "She knew this feeling." | | 12 | "She'd had it once before," | | 13 | "She'd had it in the" | | 14 | "She'd had it every night" | | 15 | "She looked down into the" | | 16 | "Her hand found her radio" | | 17 | "Her thumb rested on the" | | 18 | "She thought about Morris." | | 19 | "She thought about the scorch" |
| | ratio | 0.52 | |
| 60.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 40 | | totalSentences | 50 | | matches | | 0 | "The rain had been falling" | | 1 | "She didn't slow down for" | | 2 | "She hadn't slowed down for" | | 3 | "His name was Errol Finch," | | 4 | "She rounded the corner onto" | | 5 | "she shouted, though she knew" | | 6 | "He didn't stop." | | 7 | "He cut left down an" | | 8 | "She'd chased plenty of suspects" | | 9 | "She knew what nowhere looked" | | 10 | "This didn't look like nowhere." | | 11 | "The rain didn't seem to" | | 12 | "It came down heavier, straighter," | | 13 | "Finch reached the end of" | | 14 | "He crouched, wrenched it up" | | 15 | "Quinn stopped six feet from" | | 16 | "She knew this feeling." | | 17 | "She'd had it once before," | | 18 | "She'd had it in the" | | 19 | "She'd had it every night" |
| | ratio | 0.8 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 50 | | matches | | 0 | "Even as she skidded into" | | 1 | "If she called it in," |
| | ratio | 0.04 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 11 | | matches | | 0 | "Three days ago he'd been photographed outside the Raven's Nest at two in the morning, and two days before that, near a warehouse in Deptford that had turned up …" | | 1 | "She rounded the corner onto the high street and saw him again, forty yards ahead, weaving between the shuttered shopfronts with the loose, animal panic of a man…" | | 2 | "Even as she skidded into the alley after him, boots slapping through a puddle deep enough to soak her socks, she registered that the walls here were wrong someh…" | | 3 | "She'd had it in the weeks after, standing in Morris's empty office, in the report she'd written and rewritten and finally filed with the details that couldn't b…" | | 4 | "There was a smell coming up from it — tallow smoke, and something sweetish underneath that she didn't want to name, and beneath both of those, faint but unmista…" | | 5 | "The ordinary murmur of commerce, muffled by depth and distance, as though an entire market were breathing beneath the city's skin." | | 6 | "She thought about the scorch marks in Deptford that had no accelerant, no chemical signature, nothing that fire investigation could explain." | | 7 | "She thought about eighteen years of cases that had closed clean, and the one that hadn't, and how she had spent three years lying to herself that the not-closin…" | | 8 | "The cold hit her first — not the wet chill of the London night above, but something drier and older, air that had been circulating in the same enclosed dark for…" | | 9 | "Twenty feet down, the ladder ended on a narrow platform, and beyond it, unmistakably, lay the curved tiled wall of a disused Underground station, the paint on t…" | | 10 | "At the near end of the platform stood a figure she didn't recognize, robed, hooded, utterly still, holding out one hand as if expecting payment." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | 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 | |