| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.538 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 81.74% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1095 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "suddenly" | | 1 | "very" | | 2 | "slightly" | | 3 | "gently" |
| |
| 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) | |
| 77.17% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1095 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "glint" | | 1 | "chill" | | 2 | "footsteps" | | 3 | "warmth" |
| |
| 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 | 42 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 42 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 49 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 62 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1087 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 901 | | uniqueNames | 15 | | maxNameDensity | 0.78 | | worstName | "Herrera" | | maxWindowNameDensity | 2 | | worstWindowName | "Herrera" | | discoveredNames | | Camden | 2 | | High | 1 | | Street | 1 | | Harlow | 1 | | Quinn | 5 | | Herrera | 7 | | Parkway | 1 | | Tube | 1 | | Eighteen | 1 | | Underground | 2 | | Town | 1 | | Saint | 1 | | Christopher | 1 | | London | 1 | | Morris | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Herrera" | | 3 | "Parkway" | | 4 | "Town" | | 5 | "Saint" | | 6 | "Christopher" | | 7 | "Morris" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "Eighteen" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 11.11% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 36 | | glossingSentenceCount | 2 | | matches | | 0 | "not quite sympathy, but close enough to it that she recognized the shape of it" | | 1 | "looked like small bones strung on silver" |
| |
| 16.01% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.84 | | wordCount | 1087 | | matches | | 0 | "not built for this kind of night sprint anymore, but she pushed harder anyway, because something about the way" | | 1 | "not quite sympathy, but close enough to it" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 49 | | matches | (empty) | |
| 96.69% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 22 | | mean | 49.41 | | std | 24.13 | | cv | 0.488 | | sampleLengths | | 0 | 57 | | 1 | 88 | | 2 | 27 | | 3 | 65 | | 4 | 63 | | 5 | 74 | | 6 | 29 | | 7 | 24 | | 8 | 18 | | 9 | 61 | | 10 | 87 | | 11 | 33 | | 12 | 31 | | 13 | 65 | | 14 | 11 | | 15 | 78 | | 16 | 46 | | 17 | 44 | | 18 | 90 | | 19 | 48 | | 20 | 26 | | 21 | 22 |
| |
| 96.91% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 42 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 145 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 49 | | ratio | 0.122 | | matches | | 0 | "Tomás Herrera moved like someone who'd spent years running toward emergencies instead of away from them—economical, low to the ground, cutting corners with the precision of a man who'd once had seconds to decide whether someone lived or died." | | 1 | "He hit the gate at a dead run, and instead of climbing it, he did something with his hand at the padlock—she saw the glint of a key, or maybe not a key at all, maybe just his fingers moving too fast to track in the rain and streetlight—and the chain fell away like it had been waiting for him." | | 2 | "The smell hit her first—damp stone, old electrical wiring, and underneath it something sweeter, like copper and crushed flowers, wrong in a way she couldn't name." | | 3 | "She remembered this station from before it closed—Camden Town's ghost twin, decommissioned when the tunnels beneath it were declared structurally unsound." | | 4 | "There were people—if they were people—moving between the stalls, wrapped in long coats and scarves despite the warmth radiating up from somewhere below, an unnatural warmth that had no business existing in an abandoned Underground station." | | 5 | "Something shifted in Herrera's expression—not quite sympathy, but close enough to it that she recognized the shape of it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 273 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 9 | | adverbRatio | 0.03296703296703297 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.003663003663003663 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 49 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 49 | | mean | 22.18 | | std | 13.22 | | cv | 0.596 | | sampleLengths | | 0 | 28 | | 1 | 29 | | 2 | 39 | | 3 | 49 | | 4 | 9 | | 5 | 18 | | 6 | 5 | | 7 | 60 | | 8 | 3 | | 9 | 33 | | 10 | 7 | | 11 | 20 | | 12 | 18 | | 13 | 26 | | 14 | 9 | | 15 | 21 | | 16 | 5 | | 17 | 24 | | 18 | 19 | | 19 | 5 | | 20 | 14 | | 21 | 4 | | 22 | 27 | | 23 | 21 | | 24 | 10 | | 25 | 3 | | 26 | 33 | | 27 | 36 | | 28 | 18 | | 29 | 22 | | 30 | 11 | | 31 | 27 | | 32 | 4 | | 33 | 31 | | 34 | 34 | | 35 | 3 | | 36 | 8 | | 37 | 39 | | 38 | 39 | | 39 | 19 | | 40 | 27 | | 41 | 20 | | 42 | 24 | | 43 | 35 | | 44 | 27 | | 45 | 28 | | 46 | 48 | | 47 | 26 | | 48 | 22 |
| |
| 63.27% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.4897959183673469 | | totalSentences | 49 | | uniqueOpeners | 24 | |
| 81.30% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 41 | | matches | | 0 | "Then a woman's voice called" |
| | ratio | 0.024 | |
| 15.12% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 41 | | matches | | 0 | "He'd ducked between two stalled" | | 1 | "she shouted, though she knew" | | 2 | "He didn't even look back." | | 3 | "He hit the gate at" | | 4 | "She was forty-one, not built" | | 5 | "She'd seen a lot in" | | 6 | "She'd learned to recognize the" | | 7 | "She reached the gate seconds" | | 8 | "She could hear Herrera's footsteps" | | 9 | "She thumbed on her torch." | | 10 | "she called, knowing how absurd" | | 11 | "His laugh drifted back up" | | 12 | "She followed him down two" | | 13 | "She remembered this station from" | | 14 | "It looked *occupied*." | | 15 | "She smelled roasting meat, and" | | 16 | "he said, and for the" | | 17 | "She kept her torch trained" | | 18 | "She could see a stall" | | 19 | "She thought of Morris's face" |
| | ratio | 0.512 | |
| 20.98% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 36 | | totalSentences | 41 | | matches | | 0 | "Rain came down in silver" | | 1 | "Detective Harlow Quinn ran through" | | 2 | "Tomás Herrera moved like someone" | | 3 | "He'd ducked between two stalled" | | 4 | "she shouted, though she knew" | | 5 | "He didn't even look back." | | 6 | "He hit the gate at" | | 7 | "Quinn's lungs burned." | | 8 | "She was forty-one, not built" | | 9 | "She'd seen a lot in" | | 10 | "She'd learned to recognize the" | | 11 | "She reached the gate seconds" | | 12 | "The smell hit her first—damp" | | 13 | "Water dripped somewhere in the" | | 14 | "She could hear Herrera's footsteps" | | 15 | "She thumbed on her torch." | | 16 | "The beam caught peeling tile," | | 17 | "she called, knowing how absurd" | | 18 | "His laugh drifted back up" | | 19 | "She followed him down two" |
| | ratio | 0.878 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 41 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 28 | | technicalSentenceCount | 7 | | matches | | 0 | "Tomás Herrera moved like someone who'd spent years running toward emergencies instead of away from them—economical, low to the ground, cutting corners with the …" | | 1 | "She'd learned to recognize the particular chill that came before something she wouldn't be able to explain in a report." | | 2 | "She could hear Herrera's footsteps below, descending fast, sure of himself in a way that told her he'd done this before." | | 3 | "The beam caught peeling tile, a faded Underground roundel gone green with mold, and then Herrera's shadow slipping around a bend thirty feet down." | | 4 | "There were people—if they were people—moving between the stalls, wrapped in long coats and scarves despite the warmth radiating up from somewhere below, an unna…" | | 5 | "Quinn stood at the platform's edge, torch beam trembling very slightly in her grip, rain still running off her coat in thin rivulets onto stone that had absorbe…" | | 6 | "Behind Herrera, deeper in the tunnel, she could see figures with eyes that caught the lantern light wrong, reflecting it back gold and green like something noct…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 73.08% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 13 | | tagDensity | 0.385 | | leniency | 0.769 | | rawRatio | 0.2 | | effectiveRatio | 0.154 | |