| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 96.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1401 | | totalAiIsmAdverbs | 1 | | 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) | |
| 82.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1401 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "weight" | | 1 | "standard" | | 2 | "electric" | | 3 | "could feel" | | 4 | "pulse" |
| |
| 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 | 82 | | matches | (empty) | |
| 90.59% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 82 | | filterMatches | | | hedgeMatches | | 0 | "started to" | | 1 | "happen to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 86 | | 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 | 8 | | markdownWords | 38 | | totalWords | 1413 | | ratio | 0.027 | | matches | | 0 | "Standard" | | 1 | "Police" | | 2 | "he's not running any more. He's stopped, because he's arrived." | | 3 | "The Veil Market." | | 4 | "pending" | | 5 | "cardiac event" | | 6 | "Bone token." | | 7 | "back out, mark the location, come back at nine in the morning with a team and a warrant." |
| |
| 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 | 38 | | wordCount | 1396 | | uniqueNames | 22 | | maxNameDensity | 0.79 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 11 | | Raven | 1 | | Nest | 1 | | Northern | 1 | | Saint | 1 | | Christopher | 1 | | Town | 2 | | Kentish | 1 | | Road | 1 | | Herrera | 4 | | Underground | 1 | | Whitechapel | 1 | | Veil | 1 | | Camden | 2 | | Morris | 2 | | Alan | 1 | | Deptford | 1 | | Rennies | 1 | | Except | 1 | | Thursday | 1 | | God-knew-what | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Saint" | | 4 | "Christopher" | | 5 | "Herrera" | | 6 | "Morris" | | 7 | "Alan" |
| | places | | 0 | "Town" | | 1 | "Kentish" | | 2 | "Road" | | 3 | "Whitechapel" | | 4 | "Camden" | | 5 | "Deptford" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 56 | | glossingSentenceCount | 1 | | matches | | 0 | "something like the inside of a butcher's van" | | 1 | "smelled like cinnamon and burnt hair and s" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1413 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 86 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 30 | | mean | 47.1 | | std | 34.98 | | cv | 0.743 | | sampleLengths | | 0 | 33 | | 1 | 93 | | 2 | 86 | | 3 | 16 | | 4 | 87 | | 5 | 53 | | 6 | 3 | | 7 | 80 | | 8 | 10 | | 9 | 11 | | 10 | 114 | | 11 | 10 | | 12 | 24 | | 13 | 82 | | 14 | 34 | | 15 | 34 | | 16 | 75 | | 17 | 29 | | 18 | 67 | | 19 | 10 | | 20 | 128 | | 21 | 48 | | 22 | 27 | | 23 | 43 | | 24 | 90 | | 25 | 19 | | 26 | 31 | | 27 | 66 | | 28 | 7 | | 29 | 3 |
| |
| 92.43% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 82 | | matches | | 0 | "being followed " | | 1 | "was gone" | | 2 | "been trained" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 231 | | matches | | 0 | "wasn't going" | | 1 | "was buying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 86 | | ratio | 0.093 | | matches | | 0 | "Herrera walked like a man who'd learned to move through crowds without touching anyone — a paramedic's gait, shoulders angled, weight forward, the canvas holdall clamped under his left arm." | | 1 | "Not the nervous flick of a man being followed — a slow, complete scan, left to right, up to the rooflines." | | 2 | "Heard him go down — a scrabble, a grunt — and heard him up again." | | 3 | "Elbow, hip, a paramedic's knowledge of where a body hinges — and she went into the brickwork shoulder-first, hard enough to see white." | | 4 | "You heard names, in eighteen years — from informants who laughed when they said them, from a fence in Whitechapel who'd gone white and asked for a solicitor when she'd repeated one back to him." | | 5 | "DS Alan Morris, who'd taken his tea with four sugars and cried at his daughter's wedding, who'd gone into a house in Deptford ahead of her and come out — Quinn's mind still refused the sentence, still filed it under *pending*, still wouldn't sign it off." | | 6 | "A flat oval of bone, yellowed, warm — always warm, which was the part she'd stopped mentioning to people — with a mark cut into one face that her eyes slid off if she looked at it too long." | | 7 | "She checked her watch — the leather strap black with rain, 11:47 — because she wanted a time in her head if this went wrong, and then she pushed the wet hair back off her forehead and closed her fist around the warm bone until she could feel her own pulse beating against it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 587 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 17 | | adverbRatio | 0.028960817717206135 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.0034071550255536627 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 86 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 86 | | mean | 16.43 | | std | 14.27 | | cv | 0.868 | | sampleLengths | | 0 | 33 | | 1 | 6 | | 2 | 30 | | 3 | 48 | | 4 | 4 | | 5 | 5 | | 6 | 6 | | 7 | 47 | | 8 | 2 | | 9 | 31 | | 10 | 16 | | 11 | 2 | | 12 | 28 | | 13 | 14 | | 14 | 7 | | 15 | 6 | | 16 | 30 | | 17 | 17 | | 18 | 15 | | 19 | 21 | | 20 | 3 | | 21 | 21 | | 22 | 1 | | 23 | 5 | | 24 | 6 | | 25 | 10 | | 26 | 37 | | 27 | 10 | | 28 | 11 | | 29 | 42 | | 30 | 17 | | 31 | 15 | | 32 | 4 | | 33 | 19 | | 34 | 5 | | 35 | 12 | | 36 | 3 | | 37 | 7 | | 38 | 2 | | 39 | 22 | | 40 | 29 | | 41 | 53 | | 42 | 2 | | 43 | 23 | | 44 | 9 | | 45 | 4 | | 46 | 25 | | 47 | 5 | | 48 | 6 | | 49 | 35 |
| |
| 60.08% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.43023255813953487 | | totalSentences | 86 | | uniqueOpeners | 37 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 72 | | matches | | 0 | "Then he'd turned off into" | | 1 | "Then he went through the" | | 2 | "Somewhere below, a long way" |
| | ratio | 0.042 | |
| 75.56% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 72 | | matches | | 0 | "She kept forty feet behind" | | 1 | "She'd watched him carry that" | | 2 | "He'd taken the Northern line" | | 3 | "She'd stood in the next" | | 4 | "She'd made a hundred collars" | | 5 | "Her cuffs sat against her" | | 6 | "Her radio was in her" | | 7 | "He looked back." | | 8 | "He held it for four" | | 9 | "She was forty-one and she" | | 10 | "She heard the holdall clatter" | | 11 | "Her coat dragged at her." | | 12 | "She let the rain into" | | 13 | "They never did, but he" | | 14 | "He's stopped, because he's arrived.*" | | 15 | "She found the door by" | | 16 | "It smelled like cinnamon and" | | 17 | "She'd heard the name." | | 18 | "You heard names, in eighteen" | | 19 | "She sat back on her" |
| | ratio | 0.361 | |
| 78.06% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 72 | | matches | | 0 | "The rain had been falling" | | 1 | "She kept forty feet behind" | | 2 | "Herrera walked like a man" | | 3 | "She'd watched him carry that" | | 4 | "Innocent men glance around." | | 5 | "Innocent men check for traffic." | | 6 | "He'd taken the Northern line" | | 7 | "She'd stood in the next" | | 8 | "Quinn had a mental filing" | | 9 | "A man with a bag" | | 10 | "She'd made a hundred collars" | | 11 | "Her cuffs sat against her" | | 12 | "Her radio was in her" | | 13 | "The lock-ups behind Kentish Town" | | 14 | "Water sheeted off a broken" | | 15 | "Herrera stopped at a chain-link" | | 16 | "He looked back." | | 17 | "Somebody had taught him that." | | 18 | "He held it for four" | | 19 | "Rain ran off the curls" |
| | ratio | 0.764 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 72 | | matches | (empty) | | ratio | 0 | |
| 18.63% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 46 | | technicalSentenceCount | 8 | | matches | | 0 | "Herrera walked like a man who'd learned to move through crowds without touching anyone — a paramedic's gait, shoulders angled, weight forward, the canvas holdal…" | | 1 | "She'd watched him carry that bag out of the Raven's Nest an hour ago, out from under the green neon that turned the wet pavement the colour of pond water, and s…" | | 2 | "Up the escalator into the roar of the high street, the smell of frying onions and wet leather, the tourists gone and the ones who came out after them still arri…" | | 3 | "Quinn stood in the dripping dark with her heart slamming and listened and heard nothing but water, and she thought: *he's not running any more." | | 4 | "A steel hoarding panel that swung when she leaned on it, and behind it a stairwell going down, tiled in cream and oxblood, the old Underground colours, the tile…" | | 5 | "You heard names, in eighteen years — from informants who laughed when they said them, from a fence in Whitechapel who'd gone white and asked for a solicitor whe…" | | 6 | "DS Alan Morris, who'd taken his tea with four sugars and cried at his daughter's wedding, who'd gone into a house in Deptford ahead of her and come out — Quinn'…" | | 7 | "Down there, a man with a bag full of God-knew-what was buying or selling something that had cost her the only person on the job who'd ever told her the truth." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |