| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1502 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 70.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1502 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "footsteps" | | 1 | "echoing" | | 2 | "mosaic" | | 3 | "flickered" | | 4 | "etched" | | 5 | "quickened" | | 6 | "echoed" | | 7 | "weight" |
| |
| 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 | 103 | | matches | | |
| 87.38% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 103 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 110 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1522 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 1455 | | uniqueNames | 16 | | maxNameDensity | 0.62 | | worstName | "Harlow" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Harlow" | | discoveredNames | | Harlow | 9 | | Quinn | 1 | | Delancey | 1 | | Street | 2 | | Grainstore | 1 | | Camden | 3 | | High | 1 | | Achebe | 1 | | Helmand | 1 | | Georgian | 1 | | Victorian | 1 | | Tube | 1 | | Morris | 1 | | Chalk | 1 | | Farm | 1 | | London | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Achebe" | | 3 | "Morris" |
| | places | | 0 | "Delancey" | | 1 | "Street" | | 2 | "Grainstore" | | 3 | "Camden" | | 4 | "High" | | 5 | "Victorian" | | 6 | "Chalk" | | 7 | "Farm" | | 8 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 79.58% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 71 | | glossingSentenceCount | 2 | | matches | | 0 | "symbols that seemed to shift when she wasn't looking directly at them" | | 1 | "seemed surprised by her presence either" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.657 | | wordCount | 1522 | | matches | | 0 | "not a station platform but something carved from the tunnel itself, wider than it shoul" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 110 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 36.24 | | std | 24.42 | | cv | 0.674 | | sampleLengths | | 0 | 18 | | 1 | 61 | | 2 | 3 | | 3 | 22 | | 4 | 50 | | 5 | 37 | | 6 | 4 | | 7 | 72 | | 8 | 30 | | 9 | 86 | | 10 | 27 | | 11 | 60 | | 12 | 24 | | 13 | 6 | | 14 | 72 | | 15 | 43 | | 16 | 49 | | 17 | 52 | | 18 | 42 | | 19 | 29 | | 20 | 19 | | 21 | 8 | | 22 | 51 | | 23 | 21 | | 24 | 70 | | 25 | 94 | | 26 | 27 | | 27 | 77 | | 28 | 18 | | 29 | 34 | | 30 | 29 | | 31 | 8 | | 32 | 6 | | 33 | 20 | | 34 | 21 | | 35 | 41 | | 36 | 73 | | 37 | 15 | | 38 | 60 | | 39 | 19 | | 40 | 13 | | 41 | 11 |
| |
| 98.45% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 103 | | matches | | 0 | "been taught" | | 1 | "were gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 222 | | matches | | 0 | "were arguing" | | 1 | "were almost touching" | | 2 | "wasn't looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 1 | | flaggedSentences | 16 | | totalSentences | 110 | | ratio | 0.145 | | matches | | 0 | "She'd spotted him on the corner of Delancey Street — the same gaunt figure from the Grainstore CCTV, the one who'd slipped through the drain cover at eleven minutes past two in the morning while her colleagues were arguing about warrants." | | 1 | "He was faster than he looked — long legs, a runner's gait — but he glanced back twice, and both times she caught the flash of his eyes beneath the hood." | | 2 | "The depot was a skeletal wreck — corrugated iron walls, a collapsed roof at one end, a floor of cracked concrete pooled with black water." | | 3 | "Eighteen years on the force and her lungs still burned like this, though she'd run in worse — Helmand, twenty twelve, sprinting across open ground with IED dust in her mouth." | | 4 | "The suspect seemed to know them well — he took turns without hesitation, cutting through a courtyard, over a low wall, past a row of wheelie bins that toppled behind him." | | 5 | "The buildings grew older — Georgian brick swallowed by grime, windows boarded with mismatched timber." | | 6 | "She saw him again — fifty metres ahead, turning onto a street she didn't recognise." | | 7 | "Beyond them, a tiled corridor stretched into darkness — white subway tiles, cracked and missing in patches, the name of a station she didn't recognise spelled out in mosaic above the archway: CANTLOW." | | 8 | "A draft of warm air rolled up the stairs, carrying with it a smell — incense and something metallic, copper maybe, mixed with the sweet rot of old money." | | 9 | "Her radio sat silent on her belt; whatever signal there'd been up on street level died down here." | | 10 | "The corridor curved left and opened onto a platform — not a station platform but something carved from the tunnel itself, wider than it should have been, the ceiling supported by iron pillars bolted into the rock." | | 11 | "At the far end, a card table held stacks of paper — documents, maps — and a figure sat behind them with a ledger open on his knees, reading aloud to a queue of customers." | | 12 | "Three years since the case that took him, the one she still couldn't explain — the reports that didn't add up, the evidence that vanished from the property store, the postmortem findings that contradicted each other." | | 13 | "He turned his head — one more glance back — and their eyes met across the green light." | | 14 | "A stall keeper to her left — a broad woman with close-cropped hair and a tattoo of a raven on her throat — reached out and touched her arm." | | 15 | "The market continued around her — bargaining, laughter, the clink of glass, the scrape of coin on wood — as if a uniformed detective standing in their midst was the most ordinary thing in the world." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1441 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 36 | | adverbRatio | 0.02498265093684941 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.002081887578070784 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 110 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 110 | | mean | 13.84 | | std | 10.59 | | cv | 0.765 | | sampleLengths | | 0 | 18 | | 1 | 41 | | 2 | 20 | | 3 | 3 | | 4 | 12 | | 5 | 10 | | 6 | 3 | | 7 | 31 | | 8 | 5 | | 9 | 8 | | 10 | 3 | | 11 | 31 | | 12 | 1 | | 13 | 1 | | 14 | 4 | | 15 | 4 | | 16 | 5 | | 17 | 21 | | 18 | 20 | | 19 | 9 | | 20 | 17 | | 21 | 4 | | 22 | 9 | | 23 | 17 | | 24 | 25 | | 25 | 21 | | 26 | 9 | | 27 | 31 | | 28 | 5 | | 29 | 15 | | 30 | 7 | | 31 | 19 | | 32 | 31 | | 33 | 10 | | 34 | 4 | | 35 | 5 | | 36 | 15 | | 37 | 6 | | 38 | 4 | | 39 | 15 | | 40 | 14 | | 41 | 15 | | 42 | 24 | | 43 | 15 | | 44 | 4 | | 45 | 24 | | 46 | 14 | | 47 | 16 | | 48 | 2 | | 49 | 17 |
| |
| 42.73% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.32727272727272727 | | totalSentences | 110 | | uniqueOpeners | 36 | |
| 34.36% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 97 | | matches | | 0 | "Then the streets began to" |
| | ratio | 0.01 | |
| 83.92% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 97 | | matches | | 0 | "She'd spotted him on the" | | 1 | "She thumbed the radio off" | | 2 | "She kept moving." | | 3 | "He was faster than he" | | 4 | "Her voice came out raw." | | 5 | "He hit the fence without" | | 6 | "He rolled over the other" | | 7 | "She landed hard on the" | | 8 | "Her suspect ran diagonally across" | | 9 | "She followed, each breath a" | | 10 | "He squeezed through the gap." | | 11 | "She followed, the torn edge" | | 12 | "She caught it one-handed and" | | 13 | "She hurdled the wall, landed" | | 14 | "She raised one hand, barked" | | 15 | "Her leather watch, a wedding" | | 16 | "She saw him again —" | | 17 | "She caught up to the" | | 18 | "She rounded the corner and" | | 19 | "Her radio sat silent on" |
| | ratio | 0.34 | |
| 73.40% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 97 | | matches | | 0 | "The rain came down sideways" | | 1 | "She'd spotted him on the" | | 2 | "She thumbed the radio off" | | 3 | "The voice of DS Achebe" | | 4 | "Boots struck puddles." | | 5 | "The suspect cut left into" | | 6 | "Trash bags split open underfoot." | | 7 | "Something warm and rank sprayed" | | 8 | "She kept moving." | | 9 | "He was faster than he" | | 10 | "Fear made people clumsy." | | 11 | "Her voice came out raw." | | 12 | "The alley dead-ended at a" | | 13 | "He hit the fence without" | | 14 | "He rolled over the other" | | 15 | "Harlow vaulted after him." | | 16 | "The wire bit into her" | | 17 | "She landed hard on the" | | 18 | "The depot was a skeletal" | | 19 | "Her suspect ran diagonally across" |
| | ratio | 0.773 | |
| 51.55% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 97 | | matches | | 0 | "Now he was forty metres" |
| | ratio | 0.01 | |
| 64.94% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 55 | | technicalSentenceCount | 6 | | matches | | 0 | "The suspect seemed to know them well — he took turns without hesitation, cutting through a courtyard, over a low wall, past a row of wheelie bins that toppled b…" | | 1 | "Her leather watch, a wedding gift from a marriage that had ended four years ago, slipped around her wrist as it filled with rainwater." | | 2 | "A woman in a coat of iridescent feathers haggled over a jar of something that glowed faintly." | | 3 | "The suspect reached the far end of the tunnel where a gap in the stonework yawned black and narrow, a passage that didn't belong to any station construction Har…" | | 4 | "Behind her, the tunnel curved back toward the iron gates, toward the stairs, toward the wet London night and her radio with no signal and her colleagues who wou…" | | 5 | "The market continued around her — bargaining, laughter, the clink of glass, the scrape of coin on wood — as if a uniformed detective standing in their midst was…" |
| |
| 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 | |