| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 86.35% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1465 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "suddenly" | | 1 | "completely" | | 2 | "carefully" |
| |
| 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) | |
| 76.11% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1465 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "pulse" | | 1 | "flicker" | | 2 | "footsteps" | | 3 | "resolved" | | 4 | "electric" | | 5 | "cacophony" | | 6 | "scanned" |
| |
| 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 | 84 | | matches | (empty) | |
| 40.82% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 3 | | narrationSentences | 84 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "appeared to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 84 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 55 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 4 | | markdownWords | 25 | | totalWords | 1479 | | ratio | 0.017 | | matches | | 0 | "Ask the medic what he buried in Barnet." | | 1 | "You're not a one-woman unit, Harlow." | | 2 | "Metropolitan Police, stop" | | 3 | "Ask the medic what he buried in Barnet." |
| |
| 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 | 43 | | wordCount | 1479 | | uniqueNames | 20 | | maxNameDensity | 0.54 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Herrera" | | discoveredNames | | Soho | 1 | | Raven | 1 | | Nest | 2 | | Tomás | 2 | | Herrera | 7 | | Clerkenwell | 1 | | Covent | 1 | | Garden | 1 | | Old | 2 | | Compton | 1 | | Street | 2 | | Morris | 4 | | Oxford | 1 | | Quinn | 8 | | Camden | 3 | | Tottenham | 1 | | Court | 1 | | Road | 1 | | Police | 1 | | Tube | 2 |
| | persons | | 0 | "Raven" | | 1 | "Tomás" | | 2 | "Herrera" | | 3 | "Morris" | | 4 | "Quinn" |
| | places | | 0 | "Soho" | | 1 | "Clerkenwell" | | 2 | "Covent" | | 3 | "Garden" | | 4 | "Old" | | 5 | "Compton" | | 6 | "Street" | | 7 | "Oxford" | | 8 | "Tottenham" | | 9 | "Court" | | 10 | "Road" | | 11 | "Tube" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 64.77% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.352 | | wordCount | 1479 | | matches | | 0 | "not electric, not fluorescent, but something warmer" | | 1 | "not fluorescent, but something warmer" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 84 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 39.97 | | std | 33.32 | | cv | 0.833 | | sampleLengths | | 0 | 54 | | 1 | 9 | | 2 | 107 | | 3 | 51 | | 4 | 56 | | 5 | 8 | | 6 | 77 | | 7 | 4 | | 8 | 90 | | 9 | 7 | | 10 | 50 | | 11 | 6 | | 12 | 84 | | 13 | 5 | | 14 | 59 | | 15 | 79 | | 16 | 3 | | 17 | 55 | | 18 | 9 | | 19 | 78 | | 20 | 9 | | 21 | 41 | | 22 | 10 | | 23 | 59 | | 24 | 59 | | 25 | 8 | | 26 | 4 | | 27 | 2 | | 28 | 78 | | 29 | 76 | | 30 | 4 | | 31 | 110 | | 32 | 11 | | 33 | 44 | | 34 | 30 | | 35 | 38 | | 36 | 5 |
| |
| 96.91% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 84 | | matches | | 0 | "been removed" | | 1 | "were chained" | | 2 | "been boarded" |
| |
| 93.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 250 | | matches | | 0 | "was heading" | | 1 | "was doing" | | 2 | "was making" | | 3 | "was recalibrating " |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 1 | | flaggedSentences | 16 | | totalSentences | 84 | | ratio | 0.19 | | matches | | 0 | "It had started with a tip — anonymous, typed on plain paper, slid under the door of her home address, which was the detail that had kept her awake that first night." | | 1 | "In practice, her surveillance had shown a man who moved through the city like water finding its level — slipping into buildings, emerging from others, carrying a medical bag that never seemed to get any lighter." | | 2 | "He'd gone in with the easy loose-limbed saunter of a man dropping in for a drink; he came out checking behind him, shoulders tight, the medical bag clutched against his body instead of swinging from his hand." | | 3 | "She kept him in sight — olive coat, dark curls plastered flat, the faint gleam of something metal at his throat." | | 4 | "She keyed her radio, remembered she'd switched it off — operational discretion, she'd told herself at the start of the evening, which meant she didn't want anyone asking questions about what she was doing working solo on a night she was technically stood down." | | 5 | "She gained ground on the long straight stretch of Tottenham Court Road, close enough now to hear him breathing hard, close enough to see the scar on his left forearm as his sleeve rode up — a pale line that caught the streetlight for just a moment before the darkness swallowed it again." | | 6 | "He ducked into a side street she didn't recognise, then another, and suddenly they were in a pocket of Camden she'd never worked — a dead zone between the market and the canal, industrial buildings with bricked-up windows, streetlights down to one in three." | | 7 | "Not one she knew — the signage had been removed long ago and the ironwork gates were chained and padlocked, threaded through with old police tape that the rain had softened to strips of wet tissue." | | 8 | "He reached into his coat, produced something small — bone-white, flat, the size of a large coin — and pressed it against the padlock." | | 9 | "She checked her watch — the leather band dark with rain, the face fogged." | | 10 | "The rational thing — the professional thing, the thing Morris would have approved of — was to note the location, photograph the entrance, go back and run it through channels in the morning." | | 11 | "The smell that came up through the dark gap between the gates was strange — old stone and something chemical, the metallic bite of things she didn't have names for." | | 12 | "She wasn't surprised — not entirely." | | 13 | "The light resolved itself — not electric, not fluorescent, but something warmer and more erratic, torchlight or gas, pooled and scattered across a vast underground space that opened before her at the bottom of the stairs in a way that made her stop with one hand braced against the tunnel wall." | | 14 | "Stalls crowded the old platform and spread out across tracks that had been boarded over, lit by lanterns in colours she couldn't immediately categorise — amber and green and something that was almost violet, throwing strange shadows across faces that were not, in several cases, quite the faces she was used to seeing on the street." | | 15 | "She touched the worn leather of her watch strap without thinking — a habit when she was recalibrating — and scanned the crowd for an olive coat and dark curls." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1465 | | adjectiveStacks | 1 | | stackExamples | | 0 | "easy loose-limbed saunter" |
| | adverbCount | 42 | | adverbRatio | 0.028668941979522185 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.012286689419795221 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 84 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 84 | | mean | 17.61 | | std | 15.13 | | cv | 0.859 | | sampleLengths | | 0 | 19 | | 1 | 35 | | 2 | 9 | | 3 | 32 | | 4 | 5 | | 5 | 34 | | 6 | 36 | | 7 | 33 | | 8 | 9 | | 9 | 9 | | 10 | 4 | | 11 | 5 | | 12 | 37 | | 13 | 10 | | 14 | 8 | | 15 | 7 | | 16 | 21 | | 17 | 15 | | 18 | 22 | | 19 | 12 | | 20 | 4 | | 21 | 44 | | 22 | 6 | | 23 | 6 | | 24 | 34 | | 25 | 7 | | 26 | 28 | | 27 | 22 | | 28 | 1 | | 29 | 5 | | 30 | 53 | | 31 | 12 | | 32 | 19 | | 33 | 3 | | 34 | 2 | | 35 | 44 | | 36 | 15 | | 37 | 16 | | 38 | 36 | | 39 | 3 | | 40 | 24 | | 41 | 3 | | 42 | 2 | | 43 | 33 | | 44 | 6 | | 45 | 14 | | 46 | 9 | | 47 | 14 | | 48 | 2 | | 49 | 17 |
| |
| 33.33% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 17 | | diversityRatio | 0.32142857142857145 | | totalSentences | 84 | | uniqueOpeners | 27 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 79 | | matches | (empty) | | ratio | 0 | |
| 32.66% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 79 | | matches | | 0 | "She'd been sitting on Tomás" | | 1 | "It had started with a" | | 2 | "She'd watched him enter the" | | 3 | "She was still watching when" | | 4 | "He was moving fast." | | 5 | "He'd gone in with the" | | 6 | "He turned right without pausing" | | 7 | "She kept him in sight" | | 8 | "He was fast for a" | | 9 | "He cut left down a" | | 10 | "He was heading north." | | 11 | "She keyed her radio, remembered" | | 12 | "*You're not a one-woman unit," | | 13 | "She put Morris away and" | | 14 | "She held her warrant card" | | 15 | "He was making for Camden." | | 16 | "She gained ground on the" | | 17 | "She thought about calling out," | | 18 | "She thought about how many" | | 19 | "She said nothing." |
| | ratio | 0.468 | |
| 29.62% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 79 | | matches | | 0 | "The rain came down in" | | 1 | "Quinn turned up the collar" | | 2 | "She'd been sitting on Tomás" | | 3 | "It had started with a" | | 4 | "Someone knew where she lived." | | 5 | "The note contained one line:" | | 6 | "Tonight she'd followed him from" | | 7 | "She'd watched him enter the" | | 8 | "She was still watching when" | | 9 | "He was moving fast." | | 10 | "That was the first tell." | | 11 | "He'd gone in with the" | | 12 | "He turned right without pausing" | | 13 | "Quinn was moving before she'd" | | 14 | "The rain hit her face" | | 15 | "She kept him in sight" | | 16 | "He was fast for a" | | 17 | "He cut left down a" | | 18 | "Quinn followed, catching the chain" | | 19 | "He was heading north." |
| | ratio | 0.861 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 79 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 13 | | matches | | 0 | "It had started with a tip — anonymous, typed on plain paper, slid under the door of her home address, which was the detail that had kept her awake that first ni…" | | 1 | "In practice, her surveillance had shown a man who moved through the city like water finding its level — slipping into buildings, emerging from others, carrying …" | | 2 | "Quinn followed, catching the chain on her shin, swearing quietly, carrying on." | | 3 | "She keyed her radio, remembered she'd switched it off — operational discretion, she'd told herself at the start of the evening, which meant she didn't want anyo…" | | 4 | "She gained ground on the long straight stretch of Tottenham Court Road, close enough now to hear him breathing hard, close enough to see the scar on his left fo…" | | 5 | "Fell, cleanly and completely, each link separating in sequence like a zip pulled open, the whole length dropping into the puddle at his feet without a sound tha…" | | 6 | "She had no radio contact, no backup, no warrant, and no legal basis for anything she'd done in the last forty minutes beyond a note pushed under her door by som…" | | 7 | "Some part of her, the part that had been accumulating small impossibilities for three years and storing them carefully in a room she didn't open, had understood…" | | 8 | "The gate admitted her with the easy indifference of a thing that didn't particularly care who passed through it, and she stepped across the threshold into the d…" | | 9 | "The light resolved itself — not electric, not fluorescent, but something warmer and more erratic, torchlight or gas, pooled and scattered across a vast undergro…" | | 10 | "Stalls crowded the old platform and spread out across tracks that had been boarded over, lit by lanterns in colours she couldn't immediately categorise — amber …" | | 11 | "The noise was the layered cacophony of a bazaar, shouts and laughter and haggling, and the smells were dense and overlapping: burnt herbs, something sour and ch…" | | 12 | "She was, for once, simply a woman standing at the edge of something large and unfamiliar and dangerous, without the armour of authority that had defined every r…" |
| |
| 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 | |