| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 44 | | tagDensity | 0.114 | | leniency | 0.227 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.94% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1976 | | totalAiIsmAdverbs | 2 | | 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) | |
| 62.04% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1976 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "pulse" | | 1 | "traced" | | 2 | "flicked" | | 3 | "weight" | | 4 | "familiar" | | 5 | "etched" | | 6 | "quivered" | | 7 | "magnetic" | | 8 | "disrupt" | | 9 | "trembled" | | 10 | "flickered" |
| |
| 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 | 172 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 0 | | narrationSentences | 172 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 210 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 39 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1965 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 16.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 77 | | wordCount | 1658 | | uniqueNames | 10 | | maxNameDensity | 2.53 | | worstName | "Quinn" | | maxWindowNameDensity | 4.5 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 42 | | Camden | 1 | | Victorian | 1 | | Veil | 1 | | Market | 1 | | Kowalski | 1 | | Eva | 25 | | Tube | 1 | | Renshaw | 3 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Camden" | | 3 | "Market" | | 4 | "Kowalski" | | 5 | "Eva" | | 6 | "Renshaw" |
| | places | (empty) | | globalScore | 0.233 | | windowScore | 0.167 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 122 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like it had come from a police sup" | | 1 | "sounded like insults" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1965 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 210 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 122 | | mean | 16.11 | | std | 14.02 | | cv | 0.871 | | sampleLengths | | 0 | 58 | | 1 | 20 | | 2 | 24 | | 3 | 63 | | 4 | 46 | | 5 | 51 | | 6 | 24 | | 7 | 17 | | 8 | 8 | | 9 | 5 | | 10 | 9 | | 11 | 4 | | 12 | 9 | | 13 | 6 | | 14 | 12 | | 15 | 43 | | 16 | 56 | | 17 | 14 | | 18 | 29 | | 19 | 8 | | 20 | 30 | | 21 | 13 | | 22 | 8 | | 23 | 16 | | 24 | 34 | | 25 | 23 | | 26 | 52 | | 27 | 3 | | 28 | 3 | | 29 | 13 | | 30 | 8 | | 31 | 7 | | 32 | 12 | | 33 | 5 | | 34 | 6 | | 35 | 11 | | 36 | 27 | | 37 | 11 | | 38 | 40 | | 39 | 18 | | 40 | 45 | | 41 | 4 | | 42 | 8 | | 43 | 9 | | 44 | 24 | | 45 | 23 | | 46 | 4 | | 47 | 12 | | 48 | 2 | | 49 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 172 | | matches | | 0 | "been disturbed" | | 1 | "being opened" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 303 | | matches | (empty) | |
| 47.62% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 1 | | flaggedSentences | 7 | | totalSentences | 210 | | ratio | 0.033 | | matches | | 0 | "The air under Camden carried its own weather—wet stone, old brake dust, a tang like burnt pennies that clung to the back of her throat." | | 1 | "The old roundel sign hung crooked, and beneath it the Veil Market spread across the tracks—stalls built from pallet wood and bent scaffolding, lanterns floating with no chains, shelves stacked with jars that twitched when people passed." | | 2 | "The tape looked like it had come from a police supply cupboard; the way it sagged suggested it had been set up in a hurry." | | 3 | "Beside her, a uniformed transport copper—too clean for this place—held a notebook against his chest and stared at the shadows like they might bite." | | 4 | "The air changed the instant she crossed it—cooler, as if the space held its own breath." | | 5 | "Skin temperature felt wrong—cool, but not morgue-cool." | | 6 | "Someone had pressed them back into place, but Quinn caught the difference now—a thin line where ballast met something smoother underneath, a seam." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1669 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 60 | | adverbRatio | 0.035949670461354104 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.004194128220491312 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 210 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 210 | | mean | 9.36 | | std | 6.5 | | cv | 0.695 | | sampleLengths | | 0 | 17 | | 1 | 25 | | 2 | 16 | | 3 | 8 | | 4 | 2 | | 5 | 1 | | 6 | 9 | | 7 | 16 | | 8 | 4 | | 9 | 4 | | 10 | 12 | | 11 | 3 | | 12 | 8 | | 13 | 3 | | 14 | 37 | | 15 | 21 | | 16 | 25 | | 17 | 24 | | 18 | 11 | | 19 | 16 | | 20 | 24 | | 21 | 17 | | 22 | 8 | | 23 | 5 | | 24 | 9 | | 25 | 4 | | 26 | 9 | | 27 | 6 | | 28 | 12 | | 29 | 6 | | 30 | 16 | | 31 | 21 | | 32 | 10 | | 33 | 15 | | 34 | 2 | | 35 | 17 | | 36 | 5 | | 37 | 1 | | 38 | 2 | | 39 | 4 | | 40 | 14 | | 41 | 8 | | 42 | 21 | | 43 | 8 | | 44 | 14 | | 45 | 7 | | 46 | 9 | | 47 | 13 | | 48 | 8 | | 49 | 16 |
| |
| 45.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.28095238095238095 | | totalSentences | 210 | | uniqueOpeners | 59 | |
| 21.79% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 153 | | matches | | 0 | "Somewhere, something in a cage" |
| | ratio | 0.007 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 32 | | totalSentences | 153 | | matches | | 0 | "Her torch beam cut a" | | 1 | "Her worn leather watch pressed" | | 2 | "She walked with clipped steps," | | 3 | "Her round glasses caught lantern-light," | | 4 | "Her worn leather satchel hung" | | 5 | "He wore a long coat" | | 6 | "His throat showed a cut," | | 7 | "She didn’t flinch, but she" | | 8 | "She aimed her torch along" | | 9 | "She glanced at the coat" | | 10 | "It looked like ground bone." | | 11 | "She looked up." | | 12 | "She reached into her satchel" | | 13 | "She checked his eyelids." | | 14 | "She pressed two fingers to" | | 15 | "Her watch ticked on." | | 16 | "He stood straighter as he" | | 17 | "She reached into the dead" | | 18 | "His other pocket bulged." | | 19 | "It didn’t settle to north." |
| | ratio | 0.209 | |
| 12.29% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 137 | | totalSentences | 153 | | matches | | 0 | "Detective Harlow Quinn dropped the" | | 1 | "The air under Camden carried" | | 2 | "Her torch beam cut a" | | 3 | "A low murmur rolled up" | | 4 | "Laughter that hit the tiles" | | 5 | "Her worn leather watch pressed" | | 6 | "The second hand moved." | | 7 | "That, at least, behaved." | | 8 | "She walked with clipped steps," | | 9 | "The tunnel widened." | | 10 | "The abandoned station opened out" | | 11 | "Platform edges crumbled." | | 12 | "The old roundel sign hung" | | 13 | "The tape looked like it" | | 14 | "Eva Kowalski hovered at the" | | 15 | "Her round glasses caught lantern-light," | | 16 | "Her worn leather satchel hung" | | 17 | "Quinn kept her torch down" | | 18 | "Eva spotted her and stepped" | | 19 | "Quinn’s sharp jaw tightened as" |
| | ratio | 0.895 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 153 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 67 | | technicalSentenceCount | 2 | | matches | | 0 | "The air under Camden carried its own weather—wet stone, old brake dust, a tang like burnt pennies that clung to the back of her throat." | | 1 | "The old roundel sign hung crooked, and beneath it the Veil Market spread across the tracks—stalls built from pallet wood and bent scaffolding, lanterns floating…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 1 | | matches | | 0 | "He stood, posture snapping into place out of habit" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 44 | | tagDensity | 0.068 | | leniency | 0.136 | | rawRatio | 0.333 | | effectiveRatio | 0.045 | |