| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 1 | | adverbTags | | 0 | "Tomás swallowed hard [hard]" |
| | dialogueSentences | 22 | | tagDensity | 0.409 | | leniency | 0.818 | | rawRatio | 0.111 | | effectiveRatio | 0.091 | |
| 97.33% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1872 | | 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) | |
| 65.28% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1872 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "rhythmic" | | 1 | "tracing" | | 2 | "glistening" | | 3 | "footsteps" | | 4 | "echoing" | | 5 | "navigate" | | 6 | "flickered" | | 7 | "echoed" | | 8 | "could feel" | | 9 | "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 | 2 | | narrationSentences | 125 | | matches | | 0 | "e with fear" | | 1 | "was surprised" |
| |
| 85.71% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 3 | | narrationSentences | 125 | | filterMatches | | | hedgeMatches | | 0 | "happened to" | | 1 | "seemed to" | | 2 | "tried to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 137 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 11 | | totalWords | 1857 | | ratio | 0.006 | | matches | | 0 | "Camden, old Tube entrance off Buck Street. Following suspect. Will update." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 58 | | wordCount | 1679 | | uniqueNames | 27 | | maxNameDensity | 0.83 | | worstName | "Harlow" | | maxWindowNameDensity | 2 | | worstWindowName | "Harlow" | | discoveredNames | | Harlow | 14 | | Quinn | 3 | | Vauxhall | 1 | | Charing | 1 | | Cross | 1 | | Road | 1 | | Morris | 4 | | Raven | 3 | | Nest | 3 | | London | 1 | | Camden | 2 | | Town | 1 | | Northern | 1 | | Line | 1 | | Tube | 3 | | Buck | 1 | | Street | 1 | | Veil | 1 | | Market | 1 | | Saint | 2 | | Christopher | 2 | | Metropolitan | 1 | | Police | 1 | | St | 1 | | Spanish | 1 | | Tomás | 5 | | Herrera | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Raven" | | 4 | "Buck" | | 5 | "Street" | | 6 | "Saint" | | 7 | "Christopher" | | 8 | "Tomás" | | 9 | "Herrera" |
| | places | | 0 | "Vauxhall" | | 1 | "Charing" | | 2 | "Cross" | | 3 | "Road" | | 4 | "London" | | 5 | "Camden" | | 6 | "Town" | | 7 | "Market" | | 8 | "Metropolitan" | | 9 | "St" |
| | globalScore | 1 | | windowScore | 1 | |
| 73.47% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 98 | | glossingSentenceCount | 3 | | matches | | 0 | "herbs that seemed to writhe when she looked at them directly" | | 1 | "looked like patchwork leather" | | 2 | "felt like they belonged to someone else" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1857 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 137 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 47 | | mean | 39.51 | | std | 26.18 | | cv | 0.663 | | sampleLengths | | 0 | 95 | | 1 | 100 | | 2 | 34 | | 3 | 52 | | 4 | 83 | | 5 | 45 | | 6 | 6 | | 7 | 87 | | 8 | 18 | | 9 | 42 | | 10 | 43 | | 11 | 44 | | 12 | 39 | | 13 | 51 | | 14 | 82 | | 15 | 67 | | 16 | 53 | | 17 | 6 | | 18 | 78 | | 19 | 33 | | 20 | 55 | | 21 | 5 | | 22 | 74 | | 23 | 26 | | 24 | 20 | | 25 | 14 | | 26 | 11 | | 27 | 49 | | 28 | 10 | | 29 | 8 | | 30 | 16 | | 31 | 17 | | 32 | 43 | | 33 | 8 | | 34 | 65 | | 35 | 18 | | 36 | 23 | | 37 | 10 | | 38 | 25 | | 39 | 15 | | 40 | 74 | | 41 | 40 | | 42 | 48 | | 43 | 31 | | 44 | 10 | | 45 | 44 | | 46 | 40 |
| |
| 85.61% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 125 | | matches | | 0 | "been told" | | 1 | "was recessed" | | 2 | "been sealed" | | 3 | "been locked" | | 4 | "been removed" | | 5 | "been erected" | | 6 | "was surprised" |
| |
| 11.54% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 8 | | totalVerbs | 283 | | matches | | 0 | "was tailing" | | 1 | "was gaining" | | 2 | "was watching" | | 3 | "was weaving" | | 4 | "were shaking" | | 5 | "was shaking" | | 6 | "was backing" | | 7 | "were giving" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 137 | | ratio | 0.088 | | matches | | 0 | "Her fingers found the worn leather band of her watch, thumb tracing the crack along its face—a nervous habit she’d picked up since Morris died, or since she’d been told he’d died, the file stamped closed with explanations that never quite fit together." | | 1 | "The man—mid-thirties, dark coat, and a limp she’d noted on her surveillance log three times now—glanced over his shoulder." | | 2 | "A sign above it, rusted and half-obscured by a dead ivy vine, read CAMDEN TOWN STATION – EMERGENCY ACCESS." | | 3 | "The man pulled the door open—it wasn’t locked, it should have been locked—and disappeared into the darkness below." | | 4 | "Not the wide, tiled corridors of the Tube she knew—this was older, rougher, the walls lined with arched alcoves that might once have held gas lamps." | | 5 | "It wasn’t part of the original station—the ceiling arched too high, the space too vast to be any kind of Tube infrastructure." | | 6 | "Lanterns hung from the ceiling on chains, burning with flames that flickered in unnatural colors—deep blue, sickly violet." | | 7 | "He glanced back once, and she saw his face clearly for the first time in the blue lantern light—a young man, dark curly hair plastered to his forehead, warm brown eyes wide with fear." | | 8 | "The smell hit her first—incense and blood and something that made her sinuses tingle." | | 9 | "The man—the medallion man—had stopped at a stall near the cavern’s far wall." | | 10 | "The name stirred something in her memory—a file, a witness statement from three years ago, a paramedic who’d been at the scene when Morris died." | | 11 | "He was younger than she’d thought, barely thirty, and the scar on his forearm was the same one from the coroner’s photos she’d studied—a knife wound treated at St." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1698 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.026501766784452298 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.0088339222614841 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 137 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 137 | | mean | 13.55 | | std | 9.06 | | cv | 0.668 | | sampleLengths | | 0 | 17 | | 1 | 35 | | 2 | 43 | | 3 | 33 | | 4 | 21 | | 5 | 12 | | 6 | 9 | | 7 | 25 | | 8 | 19 | | 9 | 10 | | 10 | 5 | | 11 | 24 | | 12 | 8 | | 13 | 20 | | 14 | 3 | | 15 | 16 | | 16 | 21 | | 17 | 13 | | 18 | 30 | | 19 | 19 | | 20 | 15 | | 21 | 8 | | 22 | 3 | | 23 | 6 | | 24 | 25 | | 25 | 19 | | 26 | 18 | | 27 | 25 | | 28 | 18 | | 29 | 8 | | 30 | 15 | | 31 | 15 | | 32 | 2 | | 33 | 2 | | 34 | 17 | | 35 | 12 | | 36 | 14 | | 37 | 5 | | 38 | 16 | | 39 | 16 | | 40 | 7 | | 41 | 9 | | 42 | 30 | | 43 | 24 | | 44 | 2 | | 45 | 25 | | 46 | 6 | | 47 | 19 | | 48 | 9 | | 49 | 30 |
| |
| 41.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.30656934306569344 | | totalSentences | 137 | | uniqueOpeners | 42 | |
| 28.74% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 116 | | matches | | 0 | "Then he nodded, once, and" |
| | ratio | 0.009 | |
| 99.31% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 116 | | matches | | 0 | "Her fingers found the worn" | | 1 | "She’d been watching the place" | | 2 | "He broke into a run." | | 3 | "She was out of the" | | 4 | "He didn’t stop." | | 5 | "He cut left into an" | | 6 | "They were in a service" | | 7 | "She was gaining." | | 8 | "It was recessed into the" | | 9 | "She’d read about it in" | | 10 | "She pulled out her torch," | | 11 | "She could hear the man’s" | | 12 | "She should call for backup." | | 13 | "She should wait for a" | | 14 | "Her torch beam caught patches" | | 15 | "She’d stopped believing in coincidences" | | 16 | "It was enough to navigate" | | 17 | "She followed, her tread careful" | | 18 | "It wasn’t part of the" | | 19 | "She’d heard the name whispered" |
| | ratio | 0.302 | |
| 24.66% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 101 | | totalSentences | 116 | | matches | | 0 | "The rain came down in" | | 1 | "Detective Harlow Quinn killed the" | | 2 | "Her fingers found the worn" | | 3 | "The man she was tailing" | | 4 | "She’d been watching the place" | | 5 | "Bodies with wounds that suggested" | | 6 | "Tox screens that showed compounds" | | 7 | "The man—mid—thirties, dark coat, and" | | 8 | "Harlow slid lower in her" | | 9 | "He broke into a run." | | 10 | "She was out of the" | | 11 | "The rain hit her face" | | 12 | "The words were automatic, muscle" | | 13 | "He didn’t stop." | | 14 | "He cut left into an" | | 15 | "The alley was narrow, brick" | | 16 | "Bins lined one wall, and" | | 17 | "The man was fast despite" | | 18 | "Harlow scaled the fence less" | | 19 | "They were in a service" |
| | ratio | 0.871 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 116 | | matches | (empty) | | ratio | 0 | |
| 28.99% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 69 | | technicalSentenceCount | 11 | | matches | | 0 | "And threading through all of it, a loose constellation of people who moved through London like they knew something the rest of the city didn’t." | | 1 | "She was out of the car before her brain caught up with her legs, boots splashing through puddles that soaked her trouser cuffs instantly." | | 2 | "The man was fast despite his limp, and she watched him vault a chain-link fence at the alley’s end with a practiced efficiency that told her he’d done this befo…" | | 3 | "The staircase yawned beneath her, exhaling air that smelled of damp concrete and something else." | | 4 | "Not the wide, tiled corridors of the Tube she knew—this was older, rougher, the walls lined with arched alcoves that might once have held gas lamps." | | 5 | "The tracks had been removed, but the impression of them remained in the gravel floor, faint parallel depressions that guided her deeper underground." | | 6 | "Lanterns hung from the ceiling on chains, burning with flames that flickered in unnatural colors—deep blue, sickly violet." | | 7 | "Dozens of them, moving among the stalls, their voices a low murmur that echoed strangely in the cavern’s acoustics." | | 8 | "The smell hit her first—incense and blood and something that made her sinuses tingle." | | 9 | "She spun, baton half-extended, and found herself facing a woman with silver teeth and pupils that didn’t contract in the light." | | 10 | "Mary’s four years ago, the case that had first put his name on her radar." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 22 | | tagDensity | 0.318 | | leniency | 0.636 | | rawRatio | 0 | | effectiveRatio | 0 | |