| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 6 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.48% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1812 | | 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) | |
| 69.65% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1812 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "footsteps" | | 1 | "standard" | | 2 | "velvet" | | 3 | "absolutely" | | 4 | "pulsed" | | 5 | "weight" | | 6 | "silk" | | 7 | "silence" |
| |
| 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 | 136 | | matches | (empty) | |
| 58.82% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 6 | | narrationSentences | 136 | | filterMatches | | | hedgeMatches | | 0 | "happened to" | | 1 | "tend to" | | 2 | "tried to" | | 3 | "seemed to" | | 4 | "appeared to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 139 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1791 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 61 | | wordCount | 1735 | | uniqueNames | 27 | | maxNameDensity | 0.92 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Herrera" | | discoveredNames | | Chalk | 1 | | Farm | 1 | | Road | 1 | | Raven | 1 | | Nest | 1 | | Thames | 1 | | Saint | 1 | | Christopher | 1 | | Herrera | 10 | | Met | 2 | | Camden | 3 | | Lock | 1 | | Market | 2 | | Kentish | 1 | | Town | 1 | | Morris | 3 | | Bermondsey | 3 | | Quinn | 16 | | Tube | 1 | | London | 1 | | Underground | 2 | | English | 1 | | Arabic | 1 | | Mandarin | 1 | | Veil | 1 | | French | 1 | | Tomás | 2 |
| | persons | | 0 | "Saint" | | 1 | "Christopher" | | 2 | "Herrera" | | 3 | "Market" | | 4 | "Morris" | | 5 | "Quinn" | | 6 | "Tomás" |
| | places | | 0 | "Chalk" | | 1 | "Farm" | | 2 | "Road" | | 3 | "Raven" | | 4 | "Thames" | | 5 | "Met" | | 6 | "Camden" | | 7 | "Kentish" | | 8 | "Town" | | 9 | "Bermondsey" | | 10 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 71.88% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 96 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like a maintenance hatch in the pa" | | 1 | "something between burnt cinnamon and ozone, wit" | | 2 | "silk that seemed to move independent of any breeze" |
| |
| 88.33% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.117 | | wordCount | 1791 | | matches | | 0 | "Not the specifics, not the layout, but the shape of it" | | 1 | "not the layout, but the shape of it" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 139 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 39.8 | | std | 30.46 | | cv | 0.765 | | sampleLengths | | 0 | 58 | | 1 | 98 | | 2 | 23 | | 3 | 70 | | 4 | 59 | | 5 | 24 | | 6 | 26 | | 7 | 57 | | 8 | 5 | | 9 | 59 | | 10 | 85 | | 11 | 17 | | 12 | 25 | | 13 | 26 | | 14 | 12 | | 15 | 48 | | 16 | 61 | | 17 | 49 | | 18 | 11 | | 19 | 94 | | 20 | 73 | | 21 | 3 | | 22 | 60 | | 23 | 3 | | 24 | 88 | | 25 | 44 | | 26 | 3 | | 27 | 80 | | 28 | 88 | | 29 | 19 | | 30 | 5 | | 31 | 52 | | 32 | 5 | | 33 | 3 | | 34 | 37 | | 35 | 5 | | 36 | 20 | | 37 | 9 | | 38 | 1 | | 39 | 60 | | 40 | 86 | | 41 | 27 | | 42 | 81 | | 43 | 27 | | 44 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 136 | | matches | | 0 | "been transformed" | | 1 | "been replaced" |
| |
| 81.38% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 281 | | matches | | 0 | "was like descending" | | 1 | "was arranging" | | 2 | "was seeing" | | 3 | "was running" | | 4 | "was running" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 21 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 139 | | ratio | 0.108 | | matches | | 0 | "Quinn's boots struck the asphalt in a rhythm she hadn't used since her days running infantry drills—heel, ball, push, repeat—each stride eating up the distance between her and the figure in the dark hooded jacket thirty meters ahead." | | 1 | "Then his hand had gone to the Saint Christopher medallion at his throat—a reflex, like touching a talisman—and he'd vaulted the bar rail and crashed through the back exit before the bartender could do more than swear." | | 2 | "The stalls of Camden Market rose around her like the walls of a maze—corrugated metal shutters padlocked for the night, canvas awnings dumping pockets of collected rainwater onto the walkways below." | | 3 | "Then—a scrape." | | 4 | "Warm air rose from the hole, carrying a smell she couldn't place—something between burnt cinnamon and ozone, with an undercurrent of old stone and earth." | | 5 | "Three years of pulling at loose threads since Morris had died in that warehouse in Bermondsey—three years of case files that didn't add up, witness statements that contradicted physics, evidence logs with items that vanished between booking and trial—had led her to the edges of something she didn't have a name for." | | 6 | "She recognized the architecture immediately—the curved tiled walls, the arched ceiling—but every surface had been transformed." | | 7 | "Vendors called out in languages she recognized—English, Arabic, Mandarin—and languages she didn't." | | 8 | "She'd found a carved disc of bone among his possessions—smooth, white, about the size of a fifty-pence piece." | | 9 | "A few heads turned—a woman with skin the colour of polished obsidian and pupils shaped like keyholes gave her a long look, then turned back to the vials of luminous blue liquid she was arranging on her stall." | | 10 | "She carried no firearm—Met protocol for plain-clothes detectives didn't extend to that without special authorization." | | 11 | "She kept three stalls between them and tried to move the way the other shoppers moved—unhurried, browsing." | | 12 | "At the curve's apex, a narrow archway had been cut into the tunnel wall—rough-edged, recent." | | 13 | "The treads matched a pair of trainers—Herrera's size, Herrera's gait pattern, the left foot striking slightly heavier than the right, a detail she'd noted when reviewing CCTV footage from the Bermondsey case." | | 14 | "Whatever he was running toward, down this dark brick corridor in a market that shouldn't exist beneath the streets of Camden—it was something that frightened him more than a detective with eighteen years of service and a dead partner she couldn't let go." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1761 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 39 | | adverbRatio | 0.022146507666098807 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.006246450880181715 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 139 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 139 | | mean | 12.88 | | std | 10.44 | | cv | 0.81 | | sampleLengths | | 0 | 20 | | 1 | 38 | | 2 | 10 | | 3 | 8 | | 4 | 43 | | 5 | 37 | | 6 | 2 | | 7 | 2 | | 8 | 19 | | 9 | 24 | | 10 | 18 | | 11 | 28 | | 12 | 2 | | 13 | 16 | | 14 | 31 | | 15 | 10 | | 16 | 3 | | 17 | 2 | | 18 | 1 | | 19 | 4 | | 20 | 7 | | 21 | 7 | | 22 | 2 | | 23 | 12 | | 24 | 12 | | 25 | 12 | | 26 | 6 | | 27 | 17 | | 28 | 22 | | 29 | 5 | | 30 | 13 | | 31 | 8 | | 32 | 25 | | 33 | 4 | | 34 | 1 | | 35 | 3 | | 36 | 5 | | 37 | 6 | | 38 | 11 | | 39 | 52 | | 40 | 10 | | 41 | 6 | | 42 | 6 | | 43 | 11 | | 44 | 25 | | 45 | 1 | | 46 | 4 | | 47 | 13 | | 48 | 8 | | 49 | 2 |
| |
| 50.60% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.381294964028777 | | totalSentences | 139 | | uniqueOpeners | 53 | |
| 27.32% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 122 | | matches | | 0 | "Then his hand had gone" |
| | ratio | 0.008 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 36 | | totalSentences | 122 | | matches | | 0 | "He'd bolted the second she'd" | | 1 | "She'd pushed through the door" | | 2 | "She watched him stumble on" | | 3 | "Her worn leather watch strap" | | 4 | "He gripped the edge with" | | 5 | "He dropped through without hesitation." | | 6 | "She knew what was down" | | 7 | "Her radio wouldn't work down" | | 8 | "She pulled it from her" | | 9 | "She repeated the call." | | 10 | "She clipped the radio back" | | 11 | "She could hear Herrera's footsteps" | | 12 | "She thought about Morris." | | 13 | "She hadn't believed it then." | | 14 | "She didn't believe it now." | | 15 | "She recognized the architecture immediately—the" | | 16 | "She'd found a carved disc" | | 17 | "She'd kept it." | | 18 | "It sat in her coat" | | 19 | "She stepped off the ladder's" |
| | ratio | 0.295 | |
| 78.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 93 | | totalSentences | 122 | | matches | | 0 | "Quinn's boots struck the asphalt" | | 1 | "He'd bolted the second she'd" | | 2 | "She'd pushed through the door" | | 3 | "Quinn wiped rain from her" | | 4 | "Herrera was fast, younger by" | | 5 | "She watched him stumble on" | | 6 | "Her worn leather watch strap" | | 7 | "The stalls of Camden Market" | | 8 | "The air stank of day-old" | | 9 | "A distant siren winding through" | | 10 | "The drip and gurgle of" | | 11 | "Metal on metal, coming from" | | 12 | "Quinn pressed herself against a" | | 13 | "Herrera crouched beside what looked" | | 14 | "The cover was heavier, older," | | 15 | "He gripped the edge with" | | 16 | "He dropped through without hesitation." | | 17 | "Quinn crossed the distance in" | | 18 | "A narrow iron ladder descended" | | 19 | "Sound drifted up too." |
| | ratio | 0.762 | |
| 40.98% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 122 | | matches | | 0 | "If anyone knew what had" |
| | ratio | 0.008 | |
| 27.31% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 68 | | technicalSentenceCount | 11 | | matches | | 0 | "Quinn wiped rain from her eyes and cut left across the road, nearly clipping a night bus that blared its horn at her back." | | 1 | "Three years of pulling at loose threads since Morris had died in that warehouse in Bermondsey—three years of case files that didn't add up, witness statements t…" | | 2 | "The rungs were damp with condensation and something that caught the amber light with an iridescent sheen, like motor oil but thinner." | | 3 | "Had lost his medical license for administering treatments that weren't in any pharmacopoeia she could find." | | 4 | "Quinn had heard the name whispered exactly once, by a confidential informant who'd turned up dead a week later in circumstances that remained, officially, unexp…" | | 5 | "A massive man with tusks protruding from his lower jaw glanced at Quinn's belt, where the outline of her radio and warrant card holder were visible, and let out…" | | 6 | "She had a collapsible baton in her right coat pocket and thirty years of institutional credibility that meant absolutely nothing in this tunnel." | | 7 | "He moved like someone who knew this place, nodding to a vendor here, sidestepping a knot of customers there, angling toward the far end of the tunnel where the …" | | 8 | "The woman who'd grabbed her was short, barely five feet, wrapped in layers of green silk that seemed to move independent of any breeze." | | 9 | "She pushed forward, past a stall selling clockwork insects that crawled and clicked in a glass terrarium, past a vendor arguing in rapid French with a customer …" | | 10 | "Whatever he was running toward, down this dark brick corridor in a market that shouldn't exist beneath the streets of Camden—it was something that frightened hi…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |