| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 5 | | tagDensity | 0.8 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 83.37% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1203 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "really" | | 1 | "very" | | 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) | |
| 70.91% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1203 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "fractured" | | 1 | "gleaming" | | 2 | "footsteps" | | 3 | "methodical" | | 4 | "weight" | | 5 | "electric" | | 6 | "flicked" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 85 | | matches | (empty) | |
| 92.44% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 85 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 86 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 61 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1209 | | 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 | 24 | | wordCount | 1164 | | uniqueNames | 12 | | maxNameDensity | 0.43 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Procedure" | | discoveredNames | | Camden | 1 | | High | 1 | | Street | 1 | | Harlow | 1 | | Quinn | 5 | | Herrera | 4 | | Morris | 3 | | Tube | 1 | | Tomás | 2 | | Saint | 1 | | Christopher | 1 | | Procedure | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Morris" | | 4 | "Tomás" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Procedure" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" |
| | globalScore | 1 | | windowScore | 1 | |
| 65.25% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like this — uncertain, tilting, re" | | 1 | "quite parse" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.827 | | wordCount | 1209 | | matches | | 0 | "not electric, but the warm orange of fire" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 86 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 26 | | mean | 46.5 | | std | 32.52 | | cv | 0.699 | | sampleLengths | | 0 | 62 | | 1 | 48 | | 2 | 15 | | 3 | 6 | | 4 | 97 | | 5 | 27 | | 6 | 33 | | 7 | 88 | | 8 | 93 | | 9 | 25 | | 10 | 113 | | 11 | 48 | | 12 | 27 | | 13 | 80 | | 14 | 4 | | 15 | 53 | | 16 | 6 | | 17 | 11 | | 18 | 53 | | 19 | 89 | | 20 | 27 | | 21 | 68 | | 22 | 5 | | 23 | 50 | | 24 | 72 | | 25 | 9 |
| |
| 88.75% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 85 | | matches | | 0 | "been bolted" | | 1 | "was gone" | | 2 | "was supposed" | | 3 | "was gone" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 195 | | matches | | 0 | "was crawling" | | 1 | "was breathing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 86 | | ratio | 0.081 | | matches | | 0 | "In the spill of a dying sodium lamp she caught his expression — not fear, exactly." | | 1 | "Cold air, yes — but threaded with woodsmoke, with something sweet and metallic, with the faint copper-penny tang of blood and beneath it all a low animal musk that made the hair on her arms stand up." | | 2 | "She always thought of Morris when the ground felt like this — uncertain, tilting, ready to drop away." | | 3 | "The clique she'd been chasing — the people Morris had died trying to expose — would close ranks, and the door would seal, and she'd be back where she started." | | 4 | "She climbed down fast, the square of grey light above her shrinking with every rung until it was a coin, a pinprick, then gone as the grate clanged shut overhead — pushed, she realized, by no hand of hers." | | 5 | "And ahead, where the platform opened into a vaulted hall, light glowed — not electric, but the warm orange of fire and the cold blue of something else, flickering, restless." | | 6 | "\"You really, really shouldn't. But you're going to get yourself killed standing in the open like that, so listen to me very carefully, Detective. Put the light away. Don't touch anything. And whatever you do—\" his eyes flicked past her, to something in the crowd she couldn't see, and his voice dropped to nothing, \"—don't tell anyone your name.\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1155 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.02857142857142857 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0025974025974025974 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 86 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 86 | | mean | 14.06 | | std | 11.13 | | cv | 0.792 | | sampleLengths | | 0 | 21 | | 1 | 20 | | 2 | 21 | | 3 | 3 | | 4 | 7 | | 5 | 20 | | 6 | 10 | | 7 | 8 | | 8 | 13 | | 9 | 2 | | 10 | 3 | | 11 | 3 | | 12 | 18 | | 13 | 13 | | 14 | 18 | | 15 | 4 | | 16 | 29 | | 17 | 6 | | 18 | 9 | | 19 | 18 | | 20 | 5 | | 21 | 4 | | 22 | 28 | | 23 | 5 | | 24 | 22 | | 25 | 28 | | 26 | 16 | | 27 | 4 | | 28 | 18 | | 29 | 19 | | 30 | 5 | | 31 | 32 | | 32 | 37 | | 33 | 8 | | 34 | 9 | | 35 | 8 | | 36 | 2 | | 37 | 21 | | 38 | 4 | | 39 | 18 | | 40 | 44 | | 41 | 9 | | 42 | 5 | | 43 | 10 | | 44 | 5 | | 45 | 5 | | 46 | 38 | | 47 | 5 | | 48 | 2 | | 49 | 20 |
| |
| 67.83% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.47674418604651164 | | totalSentences | 86 | | uniqueOpeners | 41 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 79 | | matches | | 0 | "Then she saw the grate." | | 1 | "Instead it stood propped open," | | 2 | "Then he was gone, swallowed" | | 3 | "Somewhere far below, footsteps rang" |
| | ratio | 0.051 | |
| 52.91% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 33 | | totalSentences | 79 | | matches | | 0 | "She knew him." | | 1 | "She'd been watching him for" | | 2 | "Her voice cracked across the" | | 3 | "He didn't stop." | | 4 | "They never did." | | 5 | "He was already at the" | | 6 | "She felt every one of" | | 7 | "You didn't have to be" | | 8 | "You had to be the" | | 9 | "She didn't look at it." | | 10 | "She looked at him." | | 11 | "He cut right, then right" | | 12 | "It sat at the foot" | | 13 | "She grabbed the edge with" | | 14 | "She crouched at the lip" | | 15 | "She thought of Morris." | | 16 | "She always thought of Morris" | | 17 | "Her partner had followed something" | | 18 | "She still didn't understand what" | | 19 | "It was crawling up out" |
| | ratio | 0.418 | |
| 61.27% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 79 | | matches | | 0 | "Rain came down in sheets," | | 1 | "Detective Harlow Quinn ran through" | | 2 | "She knew him." | | 3 | "She'd been watching him for" | | 4 | "Tomás Herrera, twenty-nine, former NHS" | | 5 | "A man who treated patients" | | 6 | "A man who knew the" | | 7 | "Her voice cracked across the" | | 8 | "He didn't stop." | | 9 | "They never did." | | 10 | "Quinn rounded the corner after" | | 11 | "The alley narrowed, choked with" | | 12 | "He was already at the" | | 13 | "She felt every one of" | | 14 | "You didn't have to be" | | 15 | "You had to be the" | | 16 | "The leather watch on her" | | 17 | "She didn't look at it." | | 18 | "She looked at him." | | 19 | "He cut right, then right" |
| | ratio | 0.797 | |
| 63.29% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 79 | | matches | | 0 | "If she climbed back up" |
| | ratio | 0.013 | |
| 23.81% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 7 | | matches | | 0 | "Detective Harlow Quinn ran through it, her breath sawing, her boots throwing up arcs of dirty water with each stride." | | 1 | "Tomás Herrera, twenty-nine, former NHS paramedic, struck off the register for reasons that didn't survive contact with the official record." | | 2 | "He was already at the far end, vaulting a low chain barrier with a fluidity that surprised her." | | 3 | "It sat at the foot of a graffiti-scarred wall, an iron access plate that should have been bolted flush to the pavement." | | 4 | "Cold air, yes — but threaded with woodsmoke, with something sweet and metallic, with the faint copper-penny tang of blood and beneath it all a low animal musk t…" | | 5 | "The air was thick with that sweet-metal scent and something underneath it that set off every alarm her body had." | | 6 | "He was breathing hard, water dripping from his curls, the silver Saint Christopher at his throat catching her torchlight." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "he said, and his accent was soft, almost gentle" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "she breathed (breathe)" |
| | dialogueSentences | 5 | | tagDensity | 0.4 | | leniency | 0.8 | | rawRatio | 0.5 | | effectiveRatio | 0.4 | |