| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said quietly [quietly]" |
| | dialogueSentences | 22 | | tagDensity | 0.455 | | leniency | 0.909 | | rawRatio | 0.1 | | effectiveRatio | 0.091 | |
| 92.33% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1304 | | 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) | |
| 96.17% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1304 | | totalAiIsms | 1 | | found | | | highlights | | |
| 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 | 76 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 76 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 88 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1318 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 34 | | wordCount | 1110 | | uniqueNames | 18 | | maxNameDensity | 0.72 | | worstName | "Herrera" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Herrera" | | discoveredNames | | Soho | 1 | | Detective | 1 | | Harlow | 1 | | Quinn | 6 | | Tommy | 1 | | Herrera | 8 | | Raven | 2 | | Nest | 2 | | Wardour | 1 | | Street | 1 | | Victorian | 2 | | Morris | 2 | | Fleet | 1 | | River | 1 | | Bone | 1 | | Tube | 1 | | Camden | 1 | | Christopher | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tommy" | | 3 | "Herrera" | | 4 | "Raven" | | 5 | "Morris" | | 6 | "Christopher" |
| | places | | 0 | "Soho" | | 1 | "Wardour" | | 2 | "Street" | | 3 | "Victorian" | | 4 | "Fleet" | | 5 | "River" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 55 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.759 | | wordCount | 1318 | | matches | | 0 | "not burning, but humming, vibrating like it recognized something in her blood" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 88 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 34.68 | | std | 31.86 | | cv | 0.918 | | sampleLengths | | 0 | 42 | | 1 | 6 | | 2 | 102 | | 3 | 41 | | 4 | 18 | | 5 | 100 | | 6 | 7 | | 7 | 25 | | 8 | 33 | | 9 | 3 | | 10 | 6 | | 11 | 23 | | 12 | 93 | | 13 | 2 | | 14 | 1 | | 15 | 73 | | 16 | 11 | | 17 | 35 | | 18 | 10 | | 19 | 6 | | 20 | 80 | | 21 | 7 | | 22 | 84 | | 23 | 9 | | 24 | 109 | | 25 | 56 | | 26 | 49 | | 27 | 9 | | 28 | 35 | | 29 | 58 | | 30 | 18 | | 31 | 36 | | 32 | 57 | | 33 | 11 | | 34 | 3 | | 35 | 36 | | 36 | 10 | | 37 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 76 | | matches | | |
| 50.19% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 178 | | matches | | 0 | "was heading" | | 1 | "was making" | | 2 | "was polishing" | | 3 | "was selling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 88 | | ratio | 0.102 | | matches | | 0 | "Sound spilled out — a piano, low voices, glasses clinking — then swallowed him whole as the door swung shut." | | 1 | "Old maps papered the walls — Victorian ordnance surveys, charts of shipping lanes, something hand-drawn that looked older than any of them — intercut with black-and-white photographs of faces she didn't recognize." | | 2 | "Quinn's left wrist ached — the old fracture, the one she'd gotten the night Morris died — and she pressed her thumb into it, a habit she'd never broken." | | 3 | "But one book — a thin green volume — sat slightly proud of the others, and when she put her hand on it the shelf swung inward on silent hinges, exhaling air that smelled of candle wax, wet stone, and something else." | | 4 | "\"He'll be needing a doctor anyway, the state of him. Take it. And miss—\" he met her eyes, and hers were steady because eighteen years of dead partners and open files had burned the flinch out of her, \"—down there, you're not the police. The police don't mean anything down there. Remember that.\"" | | 5 | "Her torch beam caught scratch marks on the wall — letters in no alphabet she knew, though the shapes itched at some memory she couldn't place, and the ache in her wrist flared hot." | | 6 | "At the tunnel mouth stood a gate of black iron and a figure beside it — tall, wrapped in a coat that moved like smoke, faceless." | | 7 | "It flared white-hot in her palm — not burning, but humming, vibrating like it recognized something in her blood that she didn't." | | 8 | "Herrera looked past her shoulder, at the darkness between her and the market, and his face did the thing faces did in hospitals right before the flatline — that terrible professional blankness." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 671 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.038748137108792845 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.007451564828614009 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 88 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 88 | | mean | 14.98 | | std | 13.49 | | cv | 0.901 | | sampleLengths | | 0 | 42 | | 1 | 6 | | 2 | 16 | | 3 | 26 | | 4 | 60 | | 5 | 7 | | 6 | 14 | | 7 | 20 | | 8 | 4 | | 9 | 14 | | 10 | 19 | | 11 | 32 | | 12 | 5 | | 13 | 5 | | 14 | 39 | | 15 | 7 | | 16 | 18 | | 17 | 7 | | 18 | 14 | | 19 | 19 | | 20 | 3 | | 21 | 6 | | 22 | 12 | | 23 | 11 | | 24 | 29 | | 25 | 1 | | 26 | 9 | | 27 | 9 | | 28 | 4 | | 29 | 41 | | 30 | 2 | | 31 | 1 | | 32 | 10 | | 33 | 10 | | 34 | 42 | | 35 | 11 | | 36 | 7 | | 37 | 4 | | 38 | 1 | | 39 | 8 | | 40 | 24 | | 41 | 2 | | 42 | 6 | | 43 | 4 | | 44 | 6 | | 45 | 26 | | 46 | 1 | | 47 | 53 | | 48 | 4 | | 49 | 3 |
| |
| 78.41% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5113636363636364 | | totalSentences | 88 | | uniqueOpeners | 45 | |
| 47.62% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 70 | | matches | | 0 | "Then it stepped aside." |
| | ratio | 0.014 | |
| 77.14% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 70 | | matches | | 0 | "He was heading for the" | | 1 | "She lengthened her stride, boots" | | 2 | "He'd crossed three streets against" | | 3 | "She hit the door four" | | 4 | "He didn't look up as" | | 5 | "She shook water from her" | | 6 | "She'd walked the exterior twice" | | 7 | "She reached the bookshelf before" | | 8 | "Her voice cracked down the" | | 9 | "She looked back once at" | | 10 | "He reached under the bar" | | 11 | "he met her eyes, and" | | 12 | "She took the token." | | 13 | "It was warm." | | 14 | "Her torch beam caught scratch" | | 15 | "She looked hard anyway." | | 16 | "She moved with the flow," | | 17 | "it said, in a voice" | | 18 | "She held up the bone." | | 19 | "It flared white-hot in her" |
| | ratio | 0.357 | |
| 88.57% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 70 | | matches | | 0 | "The rain came down in" | | 1 | "He was heading for the" | | 2 | "She lengthened her stride, boots" | | 3 | "He'd crossed three streets against" | | 4 | "The green neon buzzed above" | | 5 | "Herrera hit it at a" | | 6 | "Sound spilled out — a" | | 7 | "Quinn didn't slow down." | | 8 | "She hit the door four" | | 9 | "The Raven's Nest was dim" | | 10 | "The piano player didn't stop." | | 11 | "The eleven patrons didn't stop." | | 12 | "Herrera was nowhere in the" | | 13 | "The barman was a slab" | | 14 | "He didn't look up as" | | 15 | "She shook water from her" | | 16 | "The barman set down the" | | 17 | "Quinn's left wrist ached —" | | 18 | "The bar was bigger than" | | 19 | "She'd walked the exterior twice" |
| | ratio | 0.743 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 70 | | matches | (empty) | | ratio | 0 | |
| 20.41% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 35 | | technicalSentenceCount | 6 | | matches | | 0 | "The Raven's Nest was dim in the way that felt deliberate, lit by brass lamps with shades pulled low." | | 1 | "But one book — a thin green volume — sat slightly proud of the others, and when she put her hand on it the shelf swung inward on silent hinges, exhaling air tha…" | | 2 | "She looked back once at the barman, who stood with the rag hanging from his fist and an expression that was, strangely, not hostile." | | 3 | "The passage sloped down, narrower than it had any right to be, the brickwork changing under her fingers from Victorian stock to something older, mortared with s…" | | 4 | "Where a platform had been, stalls crowded in: canvas booths and folding tables, lanterns of green and amber glass, and a crowd that was mostly human-shaped if s…" | | 5 | "At the tunnel mouth stood a gate of black iron and a figure beside it — tall, wrapped in a coat that moved like smoke, faceless." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 22 | | tagDensity | 0.182 | | leniency | 0.364 | | rawRatio | 0.25 | | effectiveRatio | 0.091 | |