| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 2 | | adverbTags | | 0 | "he said quietly [quietly]" | | 1 | "He stepped backward [backward]" |
| | dialogueSentences | 16 | | tagDensity | 0.438 | | leniency | 0.875 | | rawRatio | 0.286 | | effectiveRatio | 0.25 | |
| 93.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1521 | | 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) | |
| 86.85% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1521 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "familiar" | | 1 | "stomach" | | 2 | "lurch" | | 3 | "electric" |
| |
| 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 | 89 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 89 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 71 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 8 | | markdownWords | 36 | | totalWords | 1533 | | ratio | 0.023 | | matches | | 0 | "non-vocal audio artifacts" | | 1 | "somewhere" | | 2 | "he's got a destination and he thinks it's a wall I can't climb." | | 3 | "You keep looking, Detective. You've got a good heart and the wrong map." | | 4 | "Detective." | | 5 | "frightened for her" | | 6 | "you" | | 7 | "diagnosis" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1391 | | uniqueNames | 21 | | maxNameDensity | 0.93 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 13 | | Raven | 1 | | Nest | 3 | | Bateman | 1 | | Street | 4 | | Frith | 1 | | Soho | 1 | | Old | 2 | | Compton | 1 | | Regent | 1 | | Canal | 1 | | London | 2 | | Berwick | 2 | | Morris | 1 | | Oxford | 1 | | Tomás | 1 | | Herrera | 4 | | Charing | 1 | | Cross | 1 | | Detective | 1 | | Camden | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Raven" | | 2 | "Nest" | | 3 | "Regent" | | 4 | "Morris" | | 5 | "Tomás" | | 6 | "Herrera" |
| | places | | 0 | "Bateman" | | 1 | "Street" | | 2 | "Frith" | | 3 | "Soho" | | 4 | "Old" | | 5 | "Compton" | | 6 | "London" | | 7 | "Berwick" | | 8 | "Oxford" | | 9 | "Charing" | | 10 | "Camden" |
| | globalScore | 1 | | windowScore | 1 | |
| 63.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like inventing, and the reason she" | | 1 | "something like pity in their eyes" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1533 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 98 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 41.43 | | std | 34.68 | | cv | 0.837 | | sampleLengths | | 0 | 69 | | 1 | 35 | | 2 | 105 | | 3 | 32 | | 4 | 44 | | 5 | 6 | | 6 | 86 | | 7 | 10 | | 8 | 2 | | 9 | 109 | | 10 | 7 | | 11 | 117 | | 12 | 76 | | 13 | 13 | | 14 | 62 | | 15 | 9 | | 16 | 73 | | 17 | 64 | | 18 | 28 | | 19 | 3 | | 20 | 72 | | 21 | 5 | | 22 | 66 | | 23 | 60 | | 24 | 3 | | 25 | 46 | | 26 | 106 | | 27 | 4 | | 28 | 60 | | 29 | 6 | | 30 | 16 | | 31 | 25 | | 32 | 8 | | 33 | 25 | | 34 | 15 | | 35 | 51 | | 36 | 15 |
| |
| 81.61% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 89 | | matches | | 0 | "been told" | | 1 | "being laughed" | | 2 | "were braced" | | 3 | "was gone " | | 4 | "been oiled" | | 5 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 211 | | matches | | 0 | "was working" | | 1 | "was chafing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 98 | | ratio | 0.082 | | matches | | 0 | "She'd gone in four times in the last three weeks and each time the bar had performed its little pantomime for her — a barman polishing glasses he'd already polished, three drinkers who all needed the toilet at once, conversation dropping to the temperature of a held breath." | | 1 | "Not the face — she couldn't see the face." | | 2 | "Just a flick of the head, a smear of olive skin and dark curls under a streetlight, and then he was gone — not sprinting, not yet, just walking very fast with the particular urgency of a man late for something." | | 3 | "He went hard right, down into the streets north of Oxford, and then he was in a taxi — no, past the taxi, over the bonnet, the driver's horn wailing — and Quinn thought: *he's got a destination and he thinks it's a wall I can't climb.*" | | 4 | "She knew that with absolute, sickening certainty, because she had done it before — twice — and both times the paperwork had come back clean and the CPS had come back uninterested and the men she'd brought in had walked out into the rain with their belts and shoelaces returned to them and something like pity in their eyes." | | 5 | "At the far wall there was a hoarding — corrugated iron, faded planning notices, LONDON UNDERGROUND in letters half-eaten by damp — and the hoarding had a mouth in it." | | 6 | "Around his neck, a small medallion caught the orange glow — a saint, a river, a child on a shoulder." | | 7 | "She saw the scar on his forearm then, pale and long, badly closed — the work of somebody who hadn't had the luxury of good light." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1386 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 41 | | adverbRatio | 0.02958152958152958 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.005772005772005772 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 15.64 | | std | 15.45 | | cv | 0.987 | | sampleLengths | | 0 | 44 | | 1 | 3 | | 2 | 22 | | 3 | 35 | | 4 | 4 | | 5 | 48 | | 6 | 19 | | 7 | 34 | | 8 | 32 | | 9 | 4 | | 10 | 9 | | 11 | 2 | | 12 | 29 | | 13 | 6 | | 14 | 9 | | 15 | 41 | | 16 | 3 | | 17 | 12 | | 18 | 21 | | 19 | 9 | | 20 | 1 | | 21 | 2 | | 22 | 3 | | 23 | 31 | | 24 | 35 | | 25 | 8 | | 26 | 32 | | 27 | 7 | | 28 | 4 | | 29 | 32 | | 30 | 2 | | 31 | 2 | | 32 | 6 | | 33 | 71 | | 34 | 3 | | 35 | 22 | | 36 | 29 | | 37 | 12 | | 38 | 10 | | 39 | 5 | | 40 | 8 | | 41 | 6 | | 42 | 9 | | 43 | 47 | | 44 | 9 | | 45 | 4 | | 46 | 13 | | 47 | 56 | | 48 | 5 | | 49 | 59 |
| |
| 70.75% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.4489795918367347 | | totalSentences | 98 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 77 | | matches | | 0 | "Just a flick of the" | | 1 | "Then he did something interesting." | | 2 | "Somewhere in the last twelve" | | 3 | "Somewhere below, someone laughed, and" | | 4 | "Then he was gone down" |
| | ratio | 0.065 | |
| 43.38% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 77 | | matches | | 0 | "She noticed that." | | 1 | "She noticed everything about the" | | 2 | "She'd gone in four times" | | 3 | "She had spent forty minutes" | | 4 | "He came through the door" | | 5 | "He made her at the" | | 6 | "You ran when they ran," | | 7 | "she called, conversational, pitched to" | | 8 | "He was quick." | | 9 | "He cut through the alley" | | 10 | "Her lungs burned in a" | | 11 | "She wanted to talk to" | | 12 | "She wanted to talk to" | | 13 | "He knocked a crate of" | | 14 | "Her watch strap had soaked" | | 15 | "She was aware of this" | | 16 | "He stopped running away and" | | 17 | "She felt the change in" | | 18 | "He went hard right, down" | | 19 | "She had the radio." |
| | ratio | 0.442 | |
| 76.88% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 77 | | matches | | 0 | "The rain had been falling" | | 1 | "She noticed that." | | 2 | "She noticed everything about the" | | 3 | "The Raven's Nest bled green" | | 4 | "Quinn didn't go in." | | 5 | "She'd gone in four times" | | 6 | "She had spent forty minutes" | | 7 | "Tonight she waited across the" | | 8 | "That was the tell." | | 9 | "He came through the door" | | 10 | "Quinn stepped out into the" | | 11 | "He made her at the" | | 12 | "Quinn matched him." | | 13 | "You ran when they ran," | | 14 | "she called, conversational, pitched to" | | 15 | "He was quick." | | 16 | "He cut through the alley" | | 17 | "Her lungs burned in a" | | 18 | "That was mostly true." | | 19 | "She wanted to talk to" |
| | ratio | 0.766 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 77 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 2 | | matches | | 0 | "The Raven's Nest bled green light onto the wet pavement of Bateman Street, and under the neon a man stood smoking with the specific stillness of someone who had…" | | 1 | "Twenty-nine and quick and he knew Soho the way a cabbie knew it, which was to say he knew all the places it opened up and all the places it lied." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 16 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0 | | effectiveRatio | 0 | |