| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.08% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2031 | | 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) | |
| 53.23% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2031 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "measured" | | 1 | "pumping" | | 2 | "glinting" | | 3 | "streaming" | | 4 | "gleaming" | | 5 | "footsteps" | | 6 | "echo" | | 7 | "electric" | | 8 | "pulsed" | | 9 | "constructed" | | 10 | "silk" | | 11 | "echoed" | | 12 | "pulse" | | 13 | "mechanical" | | 14 | "weight" | | 15 | "whisper" | | 16 | "comfortable" |
| |
| 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 | 155 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 155 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 161 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 61 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2049 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 59 | | wordCount | 1989 | | uniqueNames | 24 | | maxNameDensity | 0.8 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Wardour | 1 | | Street | 3 | | Tomás | 1 | | Herrera | 11 | | Brewer | 1 | | Old | 2 | | Compton | 1 | | Polish | 1 | | Saint | 1 | | Christopher | 1 | | Victorian | 2 | | Morris | 4 | | King | 1 | | Cross | 1 | | London | 1 | | Tube | 1 | | Camden | 1 | | Quinn | 16 | | Eleven | 2 | | Veil | 1 | | Market | 1 | | Detective | 1 | | Harlow | 1 | | Dead | 3 |
| | persons | | 0 | "Tomás" | | 1 | "Herrera" | | 2 | "Saint" | | 3 | "Christopher" | | 4 | "Morris" | | 5 | "King" | | 6 | "Cross" | | 7 | "Quinn" | | 8 | "Harlow" |
| | places | | 0 | "Wardour" | | 1 | "Street" | | 2 | "Brewer" | | 3 | "Old" | | 4 | "Compton" | | 5 | "Polish" | | 6 | "London" | | 7 | "Dead" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 104 | | glossingSentenceCount | 2 | | matches | | 0 | "quite make sense given where she'd entered" | | 1 | "liquid that seemed to shift color when she wasn't looking directly at them — those didn't fit any grammar she'd been taught" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.488 | | wordCount | 2049 | | matches | | 0 | "not to her but to the stall beside him" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 161 | | matches | | 0 | "filed that observation" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 40.18 | | std | 30.26 | | cv | 0.753 | | sampleLengths | | 0 | 61 | | 1 | 74 | | 2 | 57 | | 3 | 3 | | 4 | 27 | | 5 | 2 | | 6 | 33 | | 7 | 7 | | 8 | 6 | | 9 | 60 | | 10 | 60 | | 11 | 5 | | 12 | 58 | | 13 | 51 | | 14 | 50 | | 15 | 37 | | 16 | 128 | | 17 | 12 | | 18 | 25 | | 19 | 84 | | 20 | 9 | | 21 | 82 | | 22 | 37 | | 23 | 8 | | 24 | 15 | | 25 | 69 | | 26 | 6 | | 27 | 86 | | 28 | 85 | | 29 | 4 | | 30 | 100 | | 31 | 41 | | 32 | 50 | | 33 | 33 | | 34 | 72 | | 35 | 55 | | 36 | 50 | | 37 | 11 | | 38 | 69 | | 39 | 33 | | 40 | 33 | | 41 | 70 | | 42 | 18 | | 43 | 5 | | 44 | 5 | | 45 | 14 | | 46 | 41 | | 47 | 17 | | 48 | 11 | | 49 | 11 |
| |
| 89.42% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 155 | | matches | | 0 | "was measured" | | 1 | "were worn" | | 2 | "was connected" | | 3 | "were constructed" | | 4 | "was lit" | | 5 | "been taught" | | 6 | "were covered" |
| |
| 80.60% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 335 | | matches | | 0 | "wasn't slowing" | | 1 | "was seeing" | | 2 | "was seeing " | | 3 | "was wearing" | | 4 | "was gaining" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 26 | | semicolonCount | 0 | | flaggedSentences | 21 | | totalSentences | 161 | | ratio | 0.13 | | matches | | 0 | "Quinn's boots cracked through a puddle as she rounded the corner, her eyes locked on the back of Tomás Herrera's jacket — olive drab, hood up, moving fast but not running." | | 1 | "Their eyes met through the downpour — his warm brown, wide with recognition, hers steady and flat." | | 2 | "Quinn went around the railing — faster, cleaner — and closed another three metres." | | 3 | "He dropped to his knees at the base of the alley's back wall and yanked at something — a grate, she realized, a ventilation grate that shouldn't have moved but came free in his hands as if the bolts were decorative." | | 4 | "Warm air rose from the hole, carrying smells she couldn't catalogue — sandalwood, copper, something electrical and burnt, something alive." | | 5 | "The shaft dropped about four metres and opened into a horizontal tunnel — old brickwork, Victorian by the look of it." | | 6 | "Her phone — no signal, hadn't had one for ten minutes." | | 7 | "She'd read the unofficial notes the pathologist kept in a separate file — the ones that mentioned the expression on Morris's face, which the pathologist described, with uncharacteristic imprecision, as \"sustained terror.\" The ones that noted his fingernails were worn to the quick, as if he'd been clawing at something for hours, though his hands showed no brick dust, no concrete residue." | | 8 | "The sounds of the city above — rain, traffic, the electric hum of being alive in London — faded with each step down until they became a memory, then a suggestion, then nothing." | | 9 | "The arched ceiling rose fifteen metres overhead, supported by iron columns wrapped in what she initially mistook for ivy but recognized, on second look, as something else entirely — tendrils of pale bioluminescence that pulsed with a rhythm uncomfortably close to breathing." | | 10 | "They were constructed from salvaged materials — old doors propped on oil drums, sheets of corrugated metal bent into canopies, silk curtains hung from ropes strung between the iron columns." | | 11 | "The air was dense with competing scents — the sandalwood she'd caught from above, but also dried herbs, tallow, ozone, and something beneath it all that reminded her of the smell before a lightning strike." | | 12 | "Not many — perhaps fifty or sixty — but enough to create a low murmur of commerce that echoed off the tiled walls." | | 13 | "Her sidearm was there — she was one of the authorized firearms officers in her unit, had been since the incident with Morris." | | 14 | "But the other things she was seeing — the lights that floated, the tendrils that breathed, the jars of liquid that seemed to shift color when she wasn't looking directly at them — those didn't fit any grammar she'd been taught." | | 15 | "Herrera pulled something from his pocket — small, pale, the size of a coin." | | 16 | "Eleven months of circumstantial evidence, of phone records that led nowhere, of witnesses who forgot her questions mid-sentence, of her DCI telling her to focus on cases with \"prosecutorial traction.\" Eleven months, and here it was — the thing behind the curtain." | | 17 | "The murmur didn't stop, but it changed — a shift in pitch, a reorganization of attention." | | 18 | "A vendor to her left — a young man with filed teeth and a necklace of small bones — leaned forward and sniffed the air near her as she passed." | | 19 | "The market pressed close on either side — stalls crammed with objects she refused to examine too closely, sellers who watched her with expressions ranging from contempt to curiosity to something that might have been hunger." | | 20 | "She looked at the woman — really looked." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1971 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.020294266869609334 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.004058853373921867 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 161 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 161 | | mean | 12.73 | | std | 11.63 | | cv | 0.914 | | sampleLengths | | 0 | 20 | | 1 | 31 | | 2 | 2 | | 3 | 8 | | 4 | 4 | | 5 | 2 | | 6 | 24 | | 7 | 2 | | 8 | 10 | | 9 | 6 | | 10 | 26 | | 11 | 7 | | 12 | 27 | | 13 | 20 | | 14 | 3 | | 15 | 3 | | 16 | 17 | | 17 | 10 | | 18 | 2 | | 19 | 9 | | 20 | 18 | | 21 | 3 | | 22 | 2 | | 23 | 1 | | 24 | 7 | | 25 | 3 | | 26 | 3 | | 27 | 26 | | 28 | 14 | | 29 | 20 | | 30 | 6 | | 31 | 18 | | 32 | 8 | | 33 | 14 | | 34 | 12 | | 35 | 2 | | 36 | 5 | | 37 | 41 | | 38 | 17 | | 39 | 7 | | 40 | 12 | | 41 | 20 | | 42 | 12 | | 43 | 11 | | 44 | 21 | | 45 | 18 | | 46 | 6 | | 47 | 1 | | 48 | 11 | | 49 | 6 |
| |
| 43.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3105590062111801 | | totalSentences | 161 | | uniqueOpeners | 50 | |
| 24.15% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 138 | | matches | | 0 | "Somewhere far below, she heard" |
| | ratio | 0.007 | |
| 54.78% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 57 | | totalSentences | 138 | | matches | | 0 | "He was still pretending he" | | 1 | "She pressed her earpiece." | | 2 | "She'd called in her position" | | 3 | "She followed, keeping her distance" | | 4 | "She ignored it." | | 5 | "He glanced back." | | 6 | "Their eyes met through the" | | 7 | "She was forty-one and felt" | | 8 | "He didn't stop." | | 9 | "They never stopped." | | 10 | "He vaulted a low railing" | | 11 | "She could see the Saint" | | 12 | "He cut down a side" | | 13 | "She followed without hesitation, her" | | 14 | "Her feet found broken glass," | | 15 | "He dropped to his knees" | | 16 | "He slid through feet-first, his" | | 17 | "She crouched, rain streaming off" | | 18 | "She pulled her torch from" | | 19 | "Her hand went to her" |
| | ratio | 0.413 | |
| 28.84% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 119 | | totalSentences | 138 | | matches | | 0 | "The rain hammered Wardour Street" | | 1 | "Quinn's boots cracked through a" | | 2 | "He was still pretending he" | | 3 | "She pressed her earpiece." | | 4 | "Comms had cut out two" | | 5 | "She'd called in her position" | | 6 | "Backup would come or it" | | 7 | "Herrera cut left onto Old" | | 8 | "She followed, keeping her distance" | | 9 | "The rain plastered her cropped" | | 10 | "She ignored it." | | 11 | "He glanced back." | | 12 | "Their eyes met through the" | | 13 | "The pretence died between them" | | 14 | "Quinn exploded forward, her legs" | | 15 | "She was forty-one and felt" | | 16 | "The gap shrank." | | 17 | "He didn't stop." | | 18 | "They never stopped." | | 19 | "He vaulted a low railing" |
| | ratio | 0.862 | |
| 72.46% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 138 | | matches | | 0 | "If she let him vanish" | | 1 | "If he reached whatever exit" |
| | ratio | 0.014 | |
| 10.20% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 70 | | technicalSentenceCount | 13 | | matches | | 0 | "She followed, keeping her distance at thirty metres, threading between a couple huddled under a single umbrella and a delivery cyclist who swore at her in Polis…" | | 1 | "He vaulted a low railing outside a café, scattering chairs, sending a metal table spinning into the gutter with a clang that rang beneath the thunder." | | 2 | "He dropped to his knees at the base of the alley's back wall and yanked at something — a grate, she realized, a ventilation grate that shouldn't have moved but …" | | 3 | "Somewhere far below, she heard Herrera's footsteps retreating, each one producing a wet echo that bounced and multiplied." | | 4 | "The ones who operated in the margins of the case files she couldn't close, the witness statements that contradicted physical evidence, the forensic anomalies th…" | | 5 | "The tunnel at the bottom was wide enough for two abreast, lined with those dark Victorian bricks that sweated in the torchlight." | | 6 | "He stood forty metres ahead, near a stall draped in dark red fabric, speaking urgently to a heavyset man whose arms were covered in tattoos that moved." | | 7 | "Ink serpents coiling around the man's wrists, reshuffling themselves in slow loops." | | 8 | "She'd heard the name once, in a pub, from a retired officer who'd drunk too much and said too little, who'd gripped her wrist across the table and told her some…" | | 9 | "She was wearing plain clothes, no warrant card visible, but she carried herself with the bearing of someone who'd spent years kicking in doors and reading right…" | | 10 | "The market pressed close on either side — stalls crammed with objects she refused to examine too closely, sellers who watched her with expressions ranging from …" | | 11 | "The visible half of her face was old, deeply lined, but her one visible eye was clear and sharp and ancient in a way that had nothing to do with age." | | 12 | "The copper-whisper followed her like a tide, and the market watched, and the luminescent tendrils on the ceiling pulsed, and Detective Harlow Quinn walked deepe…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 38.89% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 9 | | tagDensity | 0.222 | | leniency | 0.444 | | rawRatio | 0.5 | | effectiveRatio | 0.222 | |