| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 2 | | adverbTags | | 0 | "Eva said quietly [quietly]" | | 1 | "she said slowly [slowly]" |
| | dialogueSentences | 46 | | tagDensity | 0.435 | | leniency | 0.87 | | rawRatio | 0.1 | | effectiveRatio | 0.087 | |
| 87.34% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1580 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "reluctantly" | | count | 1 |
| | 2 | | | 3 | |
| | highlights | | 0 | "slightly" | | 1 | "reluctantly" | | 2 | "slowly" | | 3 | "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) | |
| 58.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1580 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "mosaic" | | 1 | "perfect" | | 2 | "pristine" | | 3 | "scanning" | | 4 | "footsteps" | | 5 | "familiar" | | 6 | "lilt" | | 7 | "intensity" | | 8 | "shimmered" | | 9 | "etched" | | 10 | "trembled" |
| |
| 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 | 96 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 96 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 121 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1566 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 46 | | wordCount | 1163 | | uniqueNames | 7 | | maxNameDensity | 1.63 | | worstName | "Quinn" | | maxWindowNameDensity | 4 | | worstWindowName | "Quinn" | | discoveredNames | | Tube | 2 | | Quinn | 19 | | Costello | 6 | | Phillip | 2 | | Ashworth | 2 | | Eva | 13 | | Kowalski | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Costello" | | 2 | "Phillip" | | 3 | "Ashworth" | | 4 | "Eva" | | 5 | "Kowalski" |
| | places | (empty) | | globalScore | 0.683 | | windowScore | 0.333 | |
| 57.41% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like she'd dressed in a hurry—jean" | | 1 | "seemed reluctant to leave" |
| |
| 72.29% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.277 | | wordCount | 1566 | | matches | | 0 | "not by the uniforms, whose boots left broad, careless patterns, but something else" | | 1 | "not a man but a lock" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 121 | | matches | | 0 | "accept that their" | | 1 | "remembered that he'd" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 48 | | mean | 32.63 | | std | 26.06 | | cv | 0.799 | | sampleLengths | | 0 | 76 | | 1 | 79 | | 2 | 43 | | 3 | 66 | | 4 | 6 | | 5 | 21 | | 6 | 5 | | 7 | 11 | | 8 | 63 | | 9 | 51 | | 10 | 1 | | 11 | 21 | | 12 | 23 | | 13 | 68 | | 14 | 19 | | 15 | 15 | | 16 | 69 | | 17 | 24 | | 18 | 2 | | 19 | 34 | | 20 | 106 | | 21 | 1 | | 22 | 74 | | 23 | 12 | | 24 | 9 | | 25 | 53 | | 26 | 16 | | 27 | 31 | | 28 | 14 | | 29 | 65 | | 30 | 16 | | 31 | 30 | | 32 | 48 | | 33 | 17 | | 34 | 27 | | 35 | 52 | | 36 | 5 | | 37 | 7 | | 38 | 8 | | 39 | 61 | | 40 | 58 | | 41 | 26 | | 42 | 1 | | 43 | 28 | | 44 | 57 | | 45 | 16 | | 46 | 2 | | 47 | 29 |
| |
| 79.68% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 96 | | matches | | 0 | "been rubbed" | | 1 | "was unbroken" | | 2 | "been bricked" | | 3 | "been disturbed" | | 4 | "been dragged" | | 5 | "were etched" | | 6 | "been closed" |
| |
| 33.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 200 | | matches | | 0 | "was escaping" | | 1 | "was giving" | | 2 | "was pulling" | | 3 | "was spinning" | | 4 | "was casting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 1 | | flaggedSentences | 12 | | totalSentences | 121 | | ratio | 0.099 | | matches | | 0 | "The air in the abandoned Tube station tasted of rust and something older—wet stone, burnt copper, the ghost of a fire that had never quite gone out." | | 1 | "The body lay crumpled against the tiled wall beneath a mosaic that had once spelled CAMDEN TOWN in bold lettering, most of the letters now chipped away to leave only CA—TOWN, as if the station itself had lost its voice." | | 2 | "The ash column was unbroken—he'd died holding it, but he hadn't dropped it." | | 3 | "The accountant—she lifted his wallet from his inner pocket with the careful reverence of someone handling evidence, flipped it open; the name was Phillip Ashworth—had no business being here." | | 4 | "A familiar rhythm—brisk, a little harried." | | 5 | "Her curly red hair was escaping a loose bun, and she looked like she'd dressed in a hurry—jeans, a jumper with a frayed cuff, trainers that had seen better weather." | | 6 | "She'd heard a lot of names over eighteen years on the force, and most of them had been nonsense—ghosts and curses and hexed jewelry, the desperate explanations of people who couldn't accept that their loved ones had made bad choices." | | 7 | "The dust had been disturbed—not by the uniforms, whose boots left broad, careless patterns, but something else." | | 8 | "But she felt something—a tingle, a shift in the air pressure around her finger, like the prickling before a thunderstorm." | | 9 | "Protective sigils were etched into the face—curling lines that reminded Quinn of someone's handwriting, half legible, half known." | | 10 | "It was heavier than it looked, and warm—warmer than the station air, warmer than her own hand should have made it." | | 11 | "It trembled, then fixed, pointing east—toward the tiled wall, toward the smudge of glittering dust." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1180 | | adjectiveStacks | 1 | | stackExamples | | 0 | "left broad, careless patterns," |
| | adverbCount | 38 | | adverbRatio | 0.03220338983050847 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.011864406779661017 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 121 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 121 | | mean | 12.94 | | std | 10.58 | | cv | 0.817 | | sampleLengths | | 0 | 27 | | 1 | 49 | | 2 | 40 | | 3 | 39 | | 4 | 10 | | 5 | 21 | | 6 | 12 | | 7 | 12 | | 8 | 21 | | 9 | 5 | | 10 | 13 | | 11 | 3 | | 12 | 9 | | 13 | 3 | | 14 | 6 | | 15 | 6 | | 16 | 15 | | 17 | 5 | | 18 | 2 | | 19 | 9 | | 20 | 5 | | 21 | 14 | | 22 | 7 | | 23 | 30 | | 24 | 7 | | 25 | 29 | | 26 | 16 | | 27 | 2 | | 28 | 2 | | 29 | 2 | | 30 | 1 | | 31 | 12 | | 32 | 6 | | 33 | 3 | | 34 | 23 | | 35 | 11 | | 36 | 27 | | 37 | 30 | | 38 | 13 | | 39 | 6 | | 40 | 15 | | 41 | 18 | | 42 | 13 | | 43 | 5 | | 44 | 13 | | 45 | 20 | | 46 | 5 | | 47 | 19 | | 48 | 2 | | 49 | 19 |
| |
| 48.21% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.36363636363636365 | | totalSentences | 121 | | uniqueOpeners | 44 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 76 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 76 | | matches | | 0 | "His name was Costello, and" | | 1 | "She looked at the cigarette." | | 2 | "You dropped things." | | 3 | "It was a closed station," | | 4 | "She hadn't expected to need" | | 5 | "She heard footsteps on the" | | 6 | "She didn't turn." | | 7 | "Her curly red hair was" | | 8 | "She didn't flinch at the" | | 9 | "She'd heard a lot of" | | 10 | "She'd heard it all, and" | | 11 | "She pushed the thought aside" | | 12 | "It came away with a" | | 13 | "She sniffed it." | | 14 | "she said slowly" | | 15 | "She looked at Eva." | | 16 | "It was heavier than it" | | 17 | "She held it over Phillip" | | 18 | "It trembled, then fixed, pointing" | | 19 | "She looked at the dead" |
| | ratio | 0.263 | |
| 25.79% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 76 | | matches | | 0 | "The air in the abandoned" | | 1 | "Harlow Quinn moved down the" | | 2 | "The body lay crumpled against" | | 3 | "The man was mid-forties, dressed" | | 4 | "His name was Costello, and" | | 5 | "Quinn crouched beside the body," | | 6 | "The suit was pristine except" | | 7 | "She looked at the cigarette." | | 8 | "The ash column was unbroken—he'd" | | 9 | "That was wrong." | | 10 | "A heart attack, sudden and" | | 11 | "You dropped things." | | 12 | "Quinn rose, scanning the platform." | | 13 | "It was a closed station," | | 14 | "The street entrance had been" | | 15 | "The only way in was" | | 16 | "She hadn't expected to need" | | 17 | "The accountant—she lifted his wallet" | | 18 | "She heard footsteps on the" | | 19 | "A familiar rhythm—brisk, a little" |
| | ratio | 0.868 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 76 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 13 | | matches | | 0 | "The air in the abandoned Tube station tasted of rust and something older—wet stone, burnt copper, the ghost of a fire that had never quite gone out." | | 1 | "Harlow Quinn moved down the platform with the practiced economy of a woman who had crossed crime scene tape a thousand times, her worn leather watch ticking aga…" | | 2 | "The body lay crumpled against the tiled wall beneath a mosaic that had once spelled CAMDEN TOWN in bold lettering, most of the letters now chipped away to leave…" | | 3 | "The man was mid-forties, dressed in a three-piece suit that had cost more than Quinn's monthly rent, one hand splayed across his chest, the other wrapped around…" | | 4 | "Her curly red hair was escaping a loose bun, and she looked like she'd dressed in a hurry—jeans, a jumper with a frayed cuff, trainers that had seen better weat…" | | 5 | "She'd heard a lot of names over eighteen years on the force, and most of them had been nonsense—ghosts and curses and hexed jewelry, the desperate explanations …" | | 6 | "But she remembered the address of this station, and she remembered the name of the man who had given it to her, a pale grey man with eyes like wet slate, and sh…" | | 7 | "There was a faint smudge near the edge of the platform, a dark residue that glittered under the lamp light like crushed mica." | | 8 | "It came away with a fine dust that shimmered faintly, like it had swallowed light and was giving it back reluctantly." | | 9 | "The anonymous call that had routed to her specifically, to a detective who had spent months poking around this station months ago and had come up empty-handed." | | 10 | "She looked at the dead accountant, at his carefully arranged hands, at the cigarette that had burned itself out without dropping a single ash." | | 11 | "And she looked at the smudge on the platform, glittering like crushed starlight, a color that was all wrong under a sodium lamp." | | 12 | "Something that had been closed, covering an opening that should have stayed sealed." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 1 | | matches | | 0 | "Quinn pocketed, turned to face the woman" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 15 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 46 | | tagDensity | 0.326 | | leniency | 0.652 | | rawRatio | 0 | | effectiveRatio | 0 | |