| 33.33% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 1 | | adverbTags | | 0 | "Quinn said quietly [quietly]" |
| | dialogueSentences | 12 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0.333 | | effectiveRatio | 0.167 | |
| 90.31% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 516 | | 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) | |
| 51.55% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 516 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "gloom" | | 1 | "shattered" | | 2 | "glistening" | | 3 | "flickered" | | 4 | "pulsed" |
| |
| 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 | 46 | | matches | (empty) | |
| 49.69% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 1 | | narrationSentences | 46 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 55 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 7 | | markdownWords | 15 | | totalWords | 509 | | ratio | 0.029 | | matches | | 0 | "Camden Road" | | 1 | "wrong" | | 2 | "‘I can’t stop it.’" | | 3 | "shifted" | | 4 | "Quinn… don’t trust the shadows." | | 5 | "fresh" | | 6 | "moved" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 62.47% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 457 | | uniqueNames | 6 | | maxNameDensity | 1.75 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Tube | 1 | | Quinn | 8 | | Carter | 7 | | Veil | 1 | | Market | 1 | | Morris | 2 |
| | persons | | 0 | "Quinn" | | 1 | "Carter" | | 2 | "Morris" |
| | places | | | globalScore | 0.625 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 30 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 509 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 55 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 20 | | mean | 25.45 | | std | 22.7 | | cv | 0.892 | | sampleLengths | | 0 | 80 | | 1 | 45 | | 2 | 58 | | 3 | 18 | | 4 | 67 | | 5 | 6 | | 6 | 7 | | 7 | 41 | | 8 | 5 | | 9 | 16 | | 10 | 39 | | 11 | 5 | | 12 | 4 | | 13 | 38 | | 14 | 8 | | 15 | 33 | | 16 | 6 | | 17 | 5 | | 18 | 13 | | 19 | 15 |
| |
| 90.01% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 46 | | matches | | 0 | "were curled" | | 1 | "were scuffed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 75 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 55 | | ratio | 0.109 | | matches | | 0 | "The flickering sodium lights of the abandoned Tube station cast jagged shadows across the damp concrete, their glow barely piercing the thick haze of cigarette smoke and the acrid tang of something older—something that clung to the air like rust." | | 1 | "His flashlight cut through the gloom, illuminating the scattered debris—clothes, a shattered mirror, and something darker, glistening under the light." | | 2 | "Not the kind sold at the Veil Market—these were rougher, carved from something organic, still damp with residue." | | 3 | "The woman’s body twitched—just once—and her head lolled back, the neck making a wet, sickening sound." | | 4 | "Carter’s radio crackled to life, static hissing before a voice cut through—DS Morris’s, though his voice was distorted, layered with something else." | | 5 | "And the tracks—*fresh*." |
| |
| 93.51% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 464 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 22 | | adverbRatio | 0.04741379310344827 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.010775862068965518 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 55 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 55 | | mean | 9.25 | | std | 7.42 | | cv | 0.802 | | sampleLengths | | 0 | 40 | | 1 | 18 | | 2 | 22 | | 3 | 8 | | 4 | 17 | | 5 | 20 | | 6 | 3 | | 7 | 12 | | 8 | 13 | | 9 | 10 | | 10 | 16 | | 11 | 2 | | 12 | 2 | | 13 | 5 | | 14 | 13 | | 15 | 9 | | 16 | 12 | | 17 | 3 | | 18 | 18 | | 19 | 8 | | 20 | 17 | | 21 | 3 | | 22 | 3 | | 23 | 4 | | 24 | 3 | | 25 | 11 | | 26 | 16 | | 27 | 8 | | 28 | 6 | | 29 | 3 | | 30 | 2 | | 31 | 9 | | 32 | 7 | | 33 | 17 | | 34 | 22 | | 35 | 5 | | 36 | 4 | | 37 | 6 | | 38 | 27 | | 39 | 5 | | 40 | 3 | | 41 | 5 | | 42 | 3 | | 43 | 9 | | 44 | 9 | | 45 | 7 | | 46 | 3 | | 47 | 2 | | 48 | 6 | | 49 | 3 |
| |
| 60.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.38181818181818183 | | totalSentences | 55 | | uniqueOpeners | 21 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 43 | | matches | | 0 | "Instead, she knelt again, this" | | 1 | "Somewhere in the dark, something" |
| | ratio | 0.047 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 9 | | totalSentences | 43 | | matches | | 0 | "He stood near the far" | | 1 | "His flashlight cut through the" | | 2 | "She let her gaze drift" | | 3 | "Her skin had that unnatural" | | 4 | "She pried it loose with" | | 5 | "Her eyes, when they finally" | | 6 | "They were black, bottomless, reflecting" | | 7 | "She’d never found his body." | | 8 | "She didn’t answer." |
| | ratio | 0.209 | |
| 18.14% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 43 | | matches | | 0 | "The flickering sodium lights of" | | 1 | "Detective Quinn stepped over the" | | 2 | "The station’s nameplate, *Camden Road*," | | 3 | "DS Carter muttered, his voice" | | 4 | "He stood near the far" | | 5 | "His flashlight cut through the" | | 6 | "Quinn didn’t answer." | | 7 | "She let her gaze drift" | | 8 | "The body lay near the" | | 9 | "A woman, if the shape" | | 10 | "Her skin had that unnatural" | | 11 | "Carter said, stepping forward" | | 12 | "Quinn crouched, her leather watch" | | 13 | "The woman’s fingers were curled" | | 14 | "A bone token." | | 15 | "She pried it loose with" | | 16 | "The moment it left the" | | 17 | "Carter’s flashlight flickered." | | 18 | "Quinn didn’t look up." | | 19 | "The token pulsed faintly, then" |
| | ratio | 0.884 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 43 | | matches | (empty) | | ratio | 0 | |
| 58.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 17 | | technicalSentenceCount | 2 | | matches | | 0 | "The flickering sodium lights of the abandoned Tube station cast jagged shadows across the damp concrete, their glow barely piercing the thick haze of cigarette …" | | 1 | "The station’s nameplate, *Camden Road*, was long since peeled away, the letters swallowed by graffiti that slithered like veins across the walls." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 1 | | matches | | 0 | "DS Carter muttered, his voice tight" |
| |
| 66.67% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "DS Carter muttered (mutter)" |
| | dialogueSentences | 12 | | tagDensity | 0.25 | | leniency | 0.5 | | rawRatio | 0.333 | | effectiveRatio | 0.167 | |