| 9.52% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 2 | | adverbTags | | 0 | "Quinn said honestly [honestly]" | | 1 | "she said again [again]" |
| | dialogueSentences | 21 | | tagDensity | 0.476 | | leniency | 0.952 | | rawRatio | 0.2 | | effectiveRatio | 0.19 | |
| 97.02% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1677 | | 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) | |
| 91.06% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1677 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "electric" | | 1 | "weight" | | 2 | "rhythmic" |
| |
| 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 | 1 | | narrationSentences | 109 | | matches | | |
| 77.33% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 2 | | narrationSentences | 109 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 120 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 132 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 9 | | markdownWords | 44 | | totalWords | 1694 | | ratio | 0.026 | | matches | | 0 | "hold position" | | 1 | "there's a light down here, guv" | | 2 | "cardiac event" | | 3 | "Go home" | | 4 | "Please." | | 5 | "please" | | 6 | "Camden. Hawley Crescent area. 0034hrs. Following Herrera, T. If you're reading this and I'm not there, start here." | | 7 | "stopped" | | 8 | "move, move, get out of the way, I've got four hours" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 0 | | matches | (empty) | |
| 98.75% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 51 | | wordCount | 1561 | | uniqueNames | 20 | | maxNameDensity | 1.02 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 16 | | Raven | 1 | | Nest | 1 | | Tomás | 3 | | Herrera | 8 | | Seville | 1 | | Wetherspoons | 1 | | Morris | 4 | | Old | 1 | | Compton | 1 | | Street | 1 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Marathon | 1 | | Camden | 3 | | Hawley | 2 | | Crescent | 2 | | Tube | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Tomás" | | 3 | "Herrera" | | 4 | "Morris" |
| | places | | 0 | "Raven" | | 1 | "Seville" | | 2 | "Old" | | 3 | "Compton" | | 4 | "Street" | | 5 | "Charing" | | 6 | "Cross" | | 7 | "Road" | | 8 | "Hawley" | | 9 | "Crescent" |
| | globalScore | 0.988 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1694 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 120 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 31.96 | | std | 31.45 | | cv | 0.984 | | sampleLengths | | 0 | 9 | | 1 | 98 | | 2 | 19 | | 3 | 43 | | 4 | 82 | | 5 | 30 | | 6 | 57 | | 7 | 36 | | 8 | 2 | | 9 | 75 | | 10 | 4 | | 11 | 31 | | 12 | 2 | | 13 | 3 | | 14 | 74 | | 15 | 9 | | 16 | 28 | | 17 | 67 | | 18 | 9 | | 19 | 49 | | 20 | 16 | | 21 | 4 | | 22 | 26 | | 23 | 1 | | 24 | 2 | | 25 | 4 | | 26 | 90 | | 27 | 4 | | 28 | 6 | | 29 | 11 | | 30 | 14 | | 31 | 85 | | 32 | 86 | | 33 | 5 | | 34 | 2 | | 35 | 132 | | 36 | 34 | | 37 | 34 | | 38 | 30 | | 39 | 43 | | 40 | 17 | | 41 | 38 | | 42 | 12 | | 43 | 3 | | 44 | 92 | | 45 | 4 | | 46 | 15 | | 47 | 18 | | 48 | 24 | | 49 | 51 |
| |
| 85.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 109 | | matches | | 0 | "was pasted" | | 1 | "was ruined" | | 2 | "been feared" | | 3 | "were furred" | | 4 | "been fourteen" | | 5 | "being lied" | | 6 | "were replaced" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 270 | | matches | | 0 | "was heading" | | 1 | "was coming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 120 | | ratio | 0.092 | | matches | | 0 | "Detective Harlow Quinn had been standing across from The Raven's Nest for two hours and eleven minutes — she'd checked her watch, the worn leather one that had been her father's, twice in the last five minutes — and in that time the green neon sign above the door had painted the wet pavement the colour of pond scum." | | 1 | "Tomás Herrera, twenty-nine, born Seville, came over at twenty-two to work for the NHS and did it well by all accounts — commendations, a letter from a woman whose son he'd resuscitated on the floor of a Wetherspoons." | | 2 | "Her shoes were already soaked through, water squeezing between her toes with every step, and she thought — not for the first time — about the sensible boots in the boot of her car three streets back." | | 3 | "She walked with military precision, heel-toe, arms loose, and let the distance stretch to seventy feet while she memorised the shape of him — the slight favour of the left arm where the knife scar ran along his forearm, the bounce of the satchel, the flash of something silver at his throat catching the streetlight." | | 4 | "He was heading for Camden — she recognised the shape of the route, the doglegs, the way he took the smaller roads." | | 5 | "He laughed — a real laugh, exhausted and half-hysterical." | | 6 | "The tiles were furred with grime but the pattern was unmistakable — a station name half-visible under seventy years of dirt, letters she could only make out three of." | | 7 | "Full moon in nine days, she thought, apropos of nothing — she'd started noting the phases in her pocketbook a year ago and couldn't have told anyone why." | | 8 | "The rain stopped instantly — not muffled, *stopped*, as though she'd shut a door behind her, though when she glanced back she could still see the storm sheeting down through the gap in the plywood, silent as film." | | 9 | "She counted — sixty-one, seventy-four, ninety-two — and the tiles gave way to bare brick and the brick to something older and darker that her hand didn't want to touch." | | 10 | "From below came the sound of a market in full cry — hundreds of voices haggling in a dozen languages, some of which had no business existing — and, threading through it, a man's voice shouting for someone to *move, move, get out of the way, I've got four hours* —" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1560 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.02564102564102564 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.004487179487179487 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 120 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 120 | | mean | 14.12 | | std | 16.86 | | cv | 1.194 | | sampleLengths | | 0 | 9 | | 1 | 59 | | 2 | 5 | | 3 | 2 | | 4 | 32 | | 5 | 3 | | 6 | 16 | | 7 | 3 | | 8 | 2 | | 9 | 18 | | 10 | 20 | | 11 | 4 | | 12 | 38 | | 13 | 6 | | 14 | 3 | | 15 | 12 | | 16 | 7 | | 17 | 12 | | 18 | 11 | | 19 | 19 | | 20 | 16 | | 21 | 4 | | 22 | 37 | | 23 | 36 | | 24 | 2 | | 25 | 3 | | 26 | 17 | | 27 | 55 | | 28 | 4 | | 29 | 15 | | 30 | 3 | | 31 | 4 | | 32 | 9 | | 33 | 2 | | 34 | 3 | | 35 | 40 | | 36 | 24 | | 37 | 5 | | 38 | 5 | | 39 | 3 | | 40 | 6 | | 41 | 3 | | 42 | 3 | | 43 | 22 | | 44 | 1 | | 45 | 22 | | 46 | 44 | | 47 | 9 | | 48 | 25 | | 49 | 14 |
| |
| 69.75% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.453781512605042 | | totalSentences | 119 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 97 | | matches | | 0 | "Then he turned north and" | | 1 | "Then, three years ago, struck" | | 2 | "Then he looked back." | | 3 | "A lot of voices, and" | | 4 | "Then she put the phone" |
| | ratio | 0.052 | |
| 75.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 97 | | matches | | 0 | "She'd counted forty-three people in." | | 1 | "She knew his file." | | 2 | "She'd requested the unredacted file" | | 3 | "Her shoes were already soaked" | | 4 | "He turned onto Charing Cross" | | 5 | "She didn't run." | | 6 | "She walked with military precision," | | 7 | "Their eyes met across seventy" | | 8 | "He was younger by twelve" | | 9 | "He cut east down a" | | 10 | "Her lungs started to bite." | | 11 | "He didn't stop." | | 12 | "She'd said the words maybe" | | 13 | "He was heading for Camden" | | 14 | "She was forty feet back" | | 15 | "He stood in the middle" | | 16 | "he called out" | | 17 | "His voice was ruined by" | | 18 | "He wiped his mouth with" | | 19 | "He laughed — a real" |
| | ratio | 0.361 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 97 | | matches | | 0 | "The rain came down like" | | 1 | "Detective Harlow Quinn had been" | | 2 | "She'd counted forty-three people in." | | 3 | "Nobody she recognised until the" | | 4 | "Quinn didn't move." | | 5 | "Herrera looked left." | | 6 | "She knew his file." | | 7 | "Tomás Herrera, twenty-nine, born Seville," | | 8 | "The disciplinary paperwork was so" | | 9 | "She'd requested the unredacted file" | | 10 | "That stamp was why she" | | 11 | "That stamp, and DS Morris," | | 12 | "Herrera crossed Old Compton Street" | | 13 | "Quinn lengthened her stride." | | 14 | "Her shoes were already soaked" | | 15 | "He turned onto Charing Cross" | | 16 | "She didn't run." | | 17 | "She walked with military precision," | | 18 | "Their eyes met across seventy" | | 19 | "Something closer to disappointment." |
| | ratio | 0.701 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 97 | | matches | | 0 | "Because three years ago she" | | 1 | "If you're reading this and" |
| | ratio | 0.021 | |
| 51.67% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 6 | | matches | | 0 | "Someone had strung a cable down the wall and hung bulbs from it at intervals, and the bulbs weren't electric-white but a low amber that didn't seem to reach as …" | | 1 | "That was the thing that stopped her, standing there with the rain hammering her shoulders and her radio a dead weight on her hip." | | 2 | "A lot of voices, and under them a low hum like a transformer, and under that a rhythmic thudding that wasn't a generator and wasn't a drum and wasn't anything s…" | | 3 | "Because three years ago she had reached for her radio in a stairwell not unlike this one, and DS Morris had gone down ahead of her, and she had said *hold posit…" | | 4 | "The rain stopped instantly — not muffled, *stopped*, as though she'd shut a door behind her, though when she glanced back she could still see the storm sheeting…" | | 5 | "From below came the sound of a market in full cry — hundreds of voices haggling in a dozen languages, some of which had no business existing — and, threading th…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 54.76% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 2 | | fancyTags | | 0 | "she shouted (shout)" | | 1 | "he agreed (agree)" |
| | dialogueSentences | 21 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0.333 | | effectiveRatio | 0.19 | |