| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said again [again]" |
| | dialogueSentences | 6 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |
| 84.08% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1256 | | totalAiIsmAdverbs | 4 | | 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) | |
| 80.10% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1256 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "pulse" | | 1 | "electric" | | 2 | "tinged" | | 3 | "scanning" | | 4 | "weight" |
| |
| 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 | 88 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 88 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 90 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1268 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 53 | | wordCount | 1244 | | uniqueNames | 30 | | maxNameDensity | 0.72 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Herrera" | | discoveredNames | | Camden | 2 | | High | 2 | | Street | 2 | | Detective | 1 | | Harlow | 1 | | Quinn | 9 | | Tomás | 2 | | Herrera | 6 | | Friday-night | 1 | | Raven | 1 | | Nest | 1 | | Chalk | 1 | | Farm | 1 | | Road | 2 | | Saint | 1 | | Christopher | 1 | | Met | 1 | | Underground | 1 | | Tube | 1 | | Board | 1 | | Hartland | 1 | | Shadwell | 2 | | Morris | 2 | | Victorian | 1 | | Brick | 1 | | Lane | 1 | | Sunday | 1 | | Metropolitan | 1 | | Police | 1 | | Eighteen | 4 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Saint" | | 5 | "Christopher" | | 6 | "Met" | | 7 | "Board" | | 8 | "Morris" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "Raven" | | 4 | "Chalk" | | 5 | "Farm" | | 6 | "Road" | | 7 | "Underground" | | 8 | "Hartland" | | 9 | "Shadwell" | | 10 | "Brick" | | 11 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 1 | | matches | | 0 | "not-quite of people, hooded and unhooded, cloaked and in ordinary anoraks, carrying baskets and cases and small covered cages" |
| |
| 42.27% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.577 | | wordCount | 1268 | | matches | | 0 | "not damp, not mildew, but something more like burnt honey" | | 1 | "not mildew, but something more like burnt honey" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 90 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 42.27 | | std | 38.51 | | cv | 0.911 | | sampleLengths | | 0 | 115 | | 1 | 12 | | 2 | 111 | | 3 | 89 | | 4 | 11 | | 5 | 7 | | 6 | 116 | | 7 | 16 | | 8 | 38 | | 9 | 4 | | 10 | 34 | | 11 | 47 | | 12 | 8 | | 13 | 1 | | 14 | 65 | | 15 | 65 | | 16 | 4 | | 17 | 23 | | 18 | 73 | | 19 | 16 | | 20 | 136 | | 21 | 39 | | 22 | 12 | | 23 | 53 | | 24 | 13 | | 25 | 78 | | 26 | 31 | | 27 | 24 | | 28 | 15 | | 29 | 12 |
| |
| 93.30% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 88 | | matches | | 0 | "was gone" | | 1 | "was armed " | | 2 | "been told" |
| |
| 61.11% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 192 | | matches | | 0 | "was watching" | | 1 | "wasn't imagining" | | 2 | "was speaking" | | 3 | "was shaking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 3 | | flaggedSentences | 10 | | totalSentences | 90 | | ratio | 0.111 | | matches | | 0 | "He'd made her outside The Raven's Nest twenty minutes ago — she'd seen the recognition snap behind his eyes the moment she'd stepped through the green neon — and he'd been running ever since." | | 1 | "He cut down a side street — one of those narrow service roads that smelled of bin-juice even in rain — and the crowd thinned to nothing." | | 2 | "She slowed, drew her baton — not her firearm, not yet; Met rules, and besides, she didn't believe he was armed — and stepped into the alley with her back to the brick." | | 3 | "CAMDEN TOWN — one of the old disused ones, the kind the Tube Board pretended had never existed." | | 4 | "He'd gone quiet on the descent; she couldn't hear him below." | | 5 | "\"—off Hartland Road, Camden. Requesting backup to my location, over.\"" | | 6 | "The gate breathed cold air up out of the dark, and the cold had a smell on it — not damp, not mildew, but something more like burnt honey, and under that, very faintly, iron." | | 7 | "Her hand found the rail — wrought iron, cold enough to bite through her glove — and she went down one step at a time, feeling ahead with the toe of her boot." | | 8 | "Lanterns hung at intervals along it — not electric; actual flame, green-tinged, the colour of the bar's neon she had just left, but smaller and steadier." | | 9 | "A low murmur rose off them — a market's murmur, the bargain-hum she knew from Brick Lane on a Sunday morning — but threaded through with languages her ear could not catch hold of." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 538 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 8 | | adverbRatio | 0.01486988847583643 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0018587360594795538 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 90 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 90 | | mean | 14.09 | | std | 11.34 | | cv | 0.805 | | sampleLengths | | 0 | 43 | | 1 | 28 | | 2 | 5 | | 3 | 5 | | 4 | 34 | | 5 | 10 | | 6 | 2 | | 7 | 2 | | 8 | 23 | | 9 | 23 | | 10 | 5 | | 11 | 3 | | 12 | 28 | | 13 | 4 | | 14 | 15 | | 15 | 8 | | 16 | 27 | | 17 | 16 | | 18 | 6 | | 19 | 40 | | 20 | 11 | | 21 | 7 | | 22 | 33 | | 23 | 13 | | 24 | 3 | | 25 | 30 | | 26 | 18 | | 27 | 19 | | 28 | 4 | | 29 | 4 | | 30 | 8 | | 31 | 12 | | 32 | 11 | | 33 | 4 | | 34 | 11 | | 35 | 4 | | 36 | 21 | | 37 | 3 | | 38 | 10 | | 39 | 3 | | 40 | 3 | | 41 | 10 | | 42 | 31 | | 43 | 4 | | 44 | 4 | | 45 | 1 | | 46 | 9 | | 47 | 7 | | 48 | 14 | | 49 | 35 |
| |
| 60.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.45555555555555555 | | totalSentences | 90 | | uniqueOpeners | 41 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 83 | | matches | | 0 | "Then a voice came, but" | | 1 | "Somewhere above, a siren wailed" | | 2 | "Just the same burnt-honey smell," |
| | ratio | 0.036 | |
| 85.06% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 28 | | totalSentences | 83 | | matches | | 0 | "He did not look back." | | 1 | "He did not need to." | | 2 | "He'd made her outside The" | | 3 | "she shouted, and the word" | | 4 | "He jinked left, shoulder-checked a" | | 5 | "She didn't care." | | 6 | "She was watching the back" | | 7 | "He cut down a side" | | 8 | "Her boots hit a cobbled" | | 9 | "She slowed, drew her baton" | | 10 | "Her breath steamed." | | 11 | "She'd passed it a hundred" | | 12 | "He'd gone quiet on the" | | 13 | "She thumbed her radio." | | 14 | "She glanced at the alley" | | 15 | "she said again" | | 16 | "She stood very still for" | | 17 | "She had gone in after" | | 18 | "She had spent three years" | | 19 | "She wasn't imagining this." |
| | ratio | 0.337 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 57 | | totalSentences | 83 | | matches | | 0 | "The rain came down in" | | 1 | "He did not look back." | | 2 | "He did not need to." | | 3 | "He'd made her outside The" | | 4 | "she shouted, and the word" | | 5 | "He jinked left, shoulder-checked a" | | 6 | "A black cab slammed its" | | 7 | "The driver mouthed something obscene." | | 8 | "She didn't care." | | 9 | "She was watching the back" | | 10 | "Patron saint of travellers." | | 11 | "He cut down a side" | | 12 | "Her boots hit a cobbled" | | 13 | "Herrera ducked under a scaffolding" | | 14 | "She slowed, drew her baton" | | 15 | "Rainwater ran from her cropped" | | 16 | "Her breath steamed." | | 17 | "The alley dead-ended at a" | | 18 | "CAMDEN TOWN — one of" | | 19 | "She'd passed it a hundred" |
| | ratio | 0.687 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 83 | | matches | (empty) | | ratio | 0 | |
| 68.45% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 48 | | technicalSentenceCount | 5 | | matches | | 0 | "The rain came down in sheets that turned Camden High Street into a smear of sodium light and moving shadow, and Detective Harlow Quinn ran through it with her c…" | | 1 | "Ahead of her, Tomás Herrera threaded the Friday-night crowd like a man who had practiced it, shoulders low, the collar of his jacket turned up against the downp…" | | 2 | "Eighteen years and a worn leather watchstrap that had gone through three buckles and one funeral, and she still moved like the army had taught her to move, spin…" | | 3 | "The alley dead-ended at a boarded-up doorway and a sagging wrought-iron gate that had once, by the look of the tile-work above it, been the entrance to an Under…" | | 4 | "She thought of the radio in her pocket that did not work down here, and of the fact that no one on the surface knew where she was, and of the way the stitched-e…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 1 | | matches | | 0 | "she shouted, and the word tore away into traffic" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 6 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.5 | | effectiveRatio | 0.333 | |