| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 21 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 34 | | tagDensity | 0.618 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.10% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1680 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "precisely" | | 1 | "slightly" | | 2 | "lazily" | | 3 | "very" |
| |
| 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) | |
| 76.19% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1680 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "absolutely" | | 1 | "familiar" | | 2 | "blown wide" | | 3 | "scanning" | | 4 | "etched" | | 5 | "trembled" | | 6 | "quivered" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 96 | | matches | (empty) | |
| 83.33% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 4 | | 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 | 101 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 78 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1690 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 65 | | wordCount | 1438 | | uniqueNames | 23 | | maxNameDensity | 1.46 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 2 | | Harlow | 1 | | Quinn | 21 | | Tube | 2 | | Blitz | 1 | | Transport | 1 | | London | 1 | | Metropolitan | 1 | | Police | 1 | | Veil | 2 | | Market | 1 | | Eva | 11 | | Kowalski | 3 | | Met | 1 | | Clean | 2 | | Looks | 1 | | Black | 1 | | Lotus | 1 | | Singh | 6 | | Researching | 1 | | Morris | 2 | | Whitechapel | 1 | | Compass | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Market" | | 3 | "Eva" | | 4 | "Kowalski" | | 5 | "Met" | | 6 | "Clean" | | 7 | "Singh" | | 8 | "Morris" | | 9 | "Compass" |
| | places | | 0 | "Camden" | | 1 | "London" | | 2 | "Whitechapel" |
| | globalScore | 0.77 | | windowScore | 0.667 | |
| 73.08% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 2 | | matches | | 0 | "something like incense that was trying too h" | | 1 | "quite fear" |
| |
| 22.49% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.775 | | wordCount | 1690 | | matches | | 0 | "not north, not toward the body, but past it, toward the far end of the platform" | | 1 | "not toward the body, but past it, toward the far end of the platform" | | 2 | "not brick, but something vast" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 101 | | matches | | 0 | "does that tunnel" | | 1 | "like that powder" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 50 | | mean | 33.8 | | std | 23.27 | | cv | 0.689 | | sampleLengths | | 0 | 23 | | 1 | 50 | | 2 | 46 | | 3 | 28 | | 4 | 48 | | 5 | 5 | | 6 | 97 | | 7 | 79 | | 8 | 19 | | 9 | 80 | | 10 | 7 | | 11 | 18 | | 12 | 43 | | 13 | 18 | | 14 | 58 | | 15 | 42 | | 16 | 37 | | 17 | 25 | | 18 | 11 | | 19 | 5 | | 20 | 50 | | 21 | 32 | | 22 | 20 | | 23 | 58 | | 24 | 48 | | 25 | 22 | | 26 | 20 | | 27 | 6 | | 28 | 78 | | 29 | 3 | | 30 | 36 | | 31 | 59 | | 32 | 18 | | 33 | 28 | | 34 | 6 | | 35 | 3 | | 36 | 30 | | 37 | 30 | | 38 | 57 | | 39 | 18 | | 40 | 37 | | 41 | 35 | | 42 | 56 | | 43 | 11 | | 44 | 31 | | 45 | 23 | | 46 | 17 | | 47 | 9 | | 48 | 87 | | 49 | 23 |
| |
| 79.68% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 96 | | matches | | 0 | "been sealed" | | 1 | "was crouched" | | 2 | "was caught" | | 3 | "was buttoned" | | 4 | "been dragged" | | 5 | "been taken" | | 6 | "been sent" | | 7 | "got killed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 246 | | matches | | 0 | "was looking" | | 1 | "was watching" | | 2 | "was lying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 101 | | ratio | 0.069 | | matches | | 0 | "Clean hands. Clean clothes - a heavy workman's coat, cheap but not stained. No defensive wounds. No sign of struggle on the concrete around him. His eyes were open, staring at the vaulted ceiling, pupils blown wide. His mouth was slightly open." | | 1 | "Kowalski - was here." | | 2 | "Researching. Quinn filed that away to tear apart later. She looked again at the body. Brown eyes narrowed. The man's coat was buttoned up wrong. One button hole skipped. Someone had dressed him, or redressed him. And his shoes - heavy boots - were clean. Spotless. On a platform that was slick with fifty years of Tube grime." | | 3 | "Eva pulled out the compass. Small brass, its casing filmed with a patina of verdigris that made it look a hundred years old. The face etched with protective sigils that Quinn didn't recognize and didn't want to. The needle - it should have pointed north. It didn't. It spun lazily, then dragged, then fixed, pointing not north, not toward the body, but past it, toward the far end of the platform where the old tunnel mouth yawned black." | | 4 | "Sometimes things - things come through if you're not careful.\"" | | 5 | "Quinn stepped toward the edge of the platform. The air down there was colder. And now that she was paying attention, she could see it - drag marks. Not on the concrete where everyone had been walking. Down in the track bed itself. A faint double furrow in the slick grime, as if heels had been dragged." | | 6 | "And on this side of the tear, half in the world and half out, was a second set of footprints going the other way. Heavy boots, but the tread was wrong - too deep, too splayed - and beside them, a smear of something dark that wasn't blood, glittering faintly like that powder in the baggie." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1365 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.02783882783882784 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.008791208791208791 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 101 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 101 | | mean | 16.73 | | std | 14.59 | | cv | 0.872 | | sampleLengths | | 0 | 23 | | 1 | 16 | | 2 | 21 | | 3 | 13 | | 4 | 8 | | 5 | 18 | | 6 | 20 | | 7 | 28 | | 8 | 22 | | 9 | 15 | | 10 | 11 | | 11 | 5 | | 12 | 19 | | 13 | 10 | | 14 | 16 | | 15 | 10 | | 16 | 7 | | 17 | 21 | | 18 | 14 | | 19 | 7 | | 20 | 50 | | 21 | 22 | | 22 | 8 | | 23 | 10 | | 24 | 1 | | 25 | 18 | | 26 | 7 | | 27 | 24 | | 28 | 19 | | 29 | 5 | | 30 | 4 | | 31 | 3 | | 32 | 7 | | 33 | 9 | | 34 | 9 | | 35 | 20 | | 36 | 23 | | 37 | 5 | | 38 | 13 | | 39 | 20 | | 40 | 38 | | 41 | 42 | | 42 | 21 | | 43 | 4 | | 44 | 12 | | 45 | 25 | | 46 | 11 | | 47 | 5 | | 48 | 15 | | 49 | 4 |
| |
| 75.33% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.5 | | totalSentences | 100 | | uniqueOpeners | 50 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 83 | | matches | | 0 | "Then she'd dug a small" | | 1 | "Maybe he came down here" | | 2 | "Sometimes things - things come" |
| | ratio | 0.036 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 83 | | matches | | 0 | "They did not happen three" | | 1 | "She turned the thing over" | | 2 | "It was cold, smooth, a" | | 3 | "She looped the cord around" | | 4 | "She checked the worn leather" | | 5 | "She tucked a strand that" | | 6 | "It's an alchemical catalyst." | | 7 | "You wouldn't snort it." | | 8 | "You'd use it in warding" | | 9 | "She says she was" | | 10 | "She crouched again and lifted" | | 11 | "His pockets haven't been" | | 12 | "It points toward the nearest" | | 13 | "She looked at the way" | | 14 | "She jumped down onto the" | | 15 | "She followed the marks ten" | | 16 | "We have to -\"" | | 17 | "He's a courier who got" |
| | ratio | 0.217 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 83 | | matches | | 0 | "The call had come in" | | 1 | "They did not happen three" | | 2 | "She turned the thing over" | | 3 | "It was cold, smooth, a" | | 4 | "The uniform who'd met her" | | 5 | "Quinn had been Metropolitan Police" | | 6 | "She looped the cord around" | | 7 | "The abandoned station wasn't abandoned." | | 8 | "Water still wept down the" | | 9 | "The tracks were dead, the" | | 10 | "Stalls made from old luggage" | | 11 | "Tarps that breathed wrong in" | | 12 | "The smell of fried onions" | | 13 | "The air had a pressure" | | 14 | "The Veil Market, Eva had" | | 15 | "Quinn's left wrist gave off" | | 16 | "She checked the worn leather" | | 17 | "The body was in the" | | 18 | "The Met's photographer was already" | | 19 | "Arms at his sides." |
| | ratio | 0.711 | |
| 60.24% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 83 | | matches | | 0 | "Because my victim isn't a" |
| | ratio | 0.012 | |
| 6.80% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 8 | | matches | | 0 | "The smell of fried onions and ozone and something like incense that was trying too hard to cover up something else." | | 1 | "So was the cordon, two young PCs looking actively miserable and trying not to look at the stalls that were now hurriedly packing up." | | 2 | "Quinn didn't answer. She was looking at the baggie. Small, zip-locked, filled with a dark, iridescent powder that shifted even though there was no draft." | | 3 | "Researching. Quinn filed that away to tear apart later. She looked again at the body. Brown eyes narrowed. The man's coat was buttoned up wrong. One button hole…" | | 4 | "She crouched again and lifted his left wrist, then his right. Rigor had set in the jaw but not fully in the limbs. Dead four to six hours, which put it at rough…" | | 5 | "Eva pulled out the compass. Small brass, its casing filmed with a patina of verdigris that made it look a hundred years old. The face etched with protective sig…" | | 6 | "Quinn felt the familiar itch at the back of her skull, the same itch she'd had three years ago when they'd found DS Morris in that flat in Whitechapel with no m…" | | 7 | "Quinn stepped toward the edge of the platform. The air down there was colder. And now that she was paying attention, she could see it - drag marks. Not on the c…" |
| |
| 58.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 2 | | matches | | 0 | "Quinn moved, her coat pooling around her" | | 1 | "Eva said, quietly" |
| |
| 91.18% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 10 | | fancyCount | 2 | | fancyTags | | 0 | "Quinn muttered (mutter)" | | 1 | "Eva breathed (breathe)" |
| | dialogueSentences | 34 | | tagDensity | 0.294 | | leniency | 0.588 | | rawRatio | 0.2 | | effectiveRatio | 0.118 | |