| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 1 | | adverbTags | | 0 | "the Department had quietly [quietly]" |
| | dialogueSentences | 9 | | tagDensity | 0.556 | | leniency | 1 | | rawRatio | 0.2 | | effectiveRatio | 0.2 | |
| 95.18% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1037 | | 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) | |
| 75.89% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1037 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "footsteps" | | 1 | "fragmented" | | 2 | "electric" | | 3 | "sense of" |
| |
| 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 | 84 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 84 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 88 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 43 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1035 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 99.44% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 989 | | uniqueNames | 19 | | maxNameDensity | 1.01 | | worstName | "Quinn" | | maxWindowNameDensity | 2 | | worstWindowName | "Quinn" | | discoveredNames | | Harlow | 1 | | Quinn | 10 | | Camden | 2 | | High | 1 | | Street | 2 | | Raven | 1 | | Nest | 1 | | Morris | 5 | | Herrera | 5 | | Inverness | 2 | | Underground | 1 | | Tube | 2 | | Static | 1 | | Airwave | 1 | | Arlington | 1 | | Peter | 1 | | Department | 1 | | Veil | 1 | | Market | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Raven" | | 3 | "Morris" | | 4 | "Herrera" | | 5 | "Peter" | | 6 | "Department" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "Inverness" | | 4 | "Tube" | | 5 | "Arlington" | | 6 | "Veil" |
| | globalScore | 0.994 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 50 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.966 | | wordCount | 1035 | | matches | | 0 | "not to get in, but to be let out" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 88 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 32.34 | | std | 25.22 | | cv | 0.78 | | sampleLengths | | 0 | 64 | | 1 | 5 | | 2 | 6 | | 3 | 89 | | 4 | 17 | | 5 | 70 | | 6 | 5 | | 7 | 29 | | 8 | 34 | | 9 | 21 | | 10 | 76 | | 11 | 40 | | 12 | 3 | | 13 | 25 | | 14 | 43 | | 15 | 8 | | 16 | 38 | | 17 | 29 | | 18 | 1 | | 19 | 66 | | 20 | 56 | | 21 | 32 | | 22 | 12 | | 23 | 37 | | 24 | 80 | | 25 | 13 | | 26 | 6 | | 27 | 59 | | 28 | 7 | | 29 | 10 | | 30 | 36 | | 31 | 18 |
| |
| 88.55% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 84 | | matches | | 0 | "been taught" | | 1 | "been boarded" | | 2 | "was fragmented" | | 3 | "was paid" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 166 | | matches | | |
| 77.92% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 2 | | semicolonCount | 0 | | flaggedSentences | 2 | | totalSentences | 88 | | ratio | 0.023 | | matches | | 0 | "\"—heading into the Tube. Station looks closed. Request backup.\"" | | 1 | "\"—the corner of Inverness and Arlington. Gate's locked. I need a unit with bolt cutters.\"" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 768 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.024739583333333332 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005208333333333333 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 88 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 88 | | mean | 11.76 | | std | 10.1 | | cv | 0.859 | | sampleLengths | | 0 | 17 | | 1 | 22 | | 2 | 25 | | 3 | 5 | | 4 | 3 | | 5 | 3 | | 6 | 36 | | 7 | 25 | | 8 | 2 | | 9 | 1 | | 10 | 25 | | 11 | 3 | | 12 | 14 | | 13 | 19 | | 14 | 14 | | 15 | 7 | | 16 | 2 | | 17 | 28 | | 18 | 5 | | 19 | 25 | | 20 | 4 | | 21 | 25 | | 22 | 9 | | 23 | 1 | | 24 | 5 | | 25 | 15 | | 26 | 9 | | 27 | 30 | | 28 | 3 | | 29 | 23 | | 30 | 5 | | 31 | 6 | | 32 | 11 | | 33 | 2 | | 34 | 3 | | 35 | 2 | | 36 | 22 | | 37 | 3 | | 38 | 3 | | 39 | 4 | | 40 | 3 | | 41 | 15 | | 42 | 18 | | 43 | 3 | | 44 | 22 | | 45 | 3 | | 46 | 5 | | 47 | 23 | | 48 | 15 | | 49 | 5 |
| |
| 51.14% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.4090909090909091 | | totalSentences | 88 | | uniqueOpeners | 36 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 74 | | matches | | 0 | "Then he'd glanced over his" | | 1 | "Then a crackle, then nothing." | | 2 | "Just a pale scoring on" | | 3 | "Then she heard it, quieter" | | 4 | "Somewhere below, the drum kept" |
| | ratio | 0.068 | |
| 84.86% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 74 | | matches | | 0 | "He didn't stop." | | 1 | "They never did." | | 2 | "She'd clocked him coming out" | | 3 | "She'd followed at a distance" | | 4 | "He ran well." | | 5 | "She gritted her teeth and" | | 6 | "She hadn't chased a man" | | 7 | "He vaulted a low railing," | | 8 | "She swung round the corner" | | 9 | "He hit the gate shoulder-first," | | 10 | "He slid through the gap." | | 11 | "She yanked again." | | 12 | "She bent close." | | 13 | "She drew her Airwave again." | | 14 | "She looked up at the" | | 15 | "She hadn't let it go." | | 16 | "She pressed her palm flat" | | 17 | "She'd taken it because it" | | 18 | "She held it up to" | | 19 | "Her watch ticked against her" |
| | ratio | 0.338 | |
| 54.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 60 | | totalSentences | 74 | | matches | | 0 | "Rain came down in sheets," | | 1 | "Detective Harlow Quinn pounded across" | | 2 | "He didn't stop." | | 3 | "They never did." | | 4 | "She'd clocked him coming out" | | 5 | "She'd followed at a distance" | | 6 | "He ran well." | | 7 | "Paramedic's lungs, she reminded herself," | | 8 | "Tomás Herrera cut left down" | | 9 | "Quinn hurdled a milk crate" | | 10 | "She gritted her teeth and" | | 11 | "She hadn't chased a man" | | 12 | "He vaulted a low railing," | | 13 | "Quinn keyed her radio." | | 14 | "She swung round the corner" | | 15 | "\"—heading into the Tube. Station" | | 16 | "The rain or the buildings" | | 17 | "The station front had been" | | 18 | "Quinn had walked past it" | | 19 | "Herrera didn't slow." |
| | ratio | 0.811 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 74 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 4 | | matches | | 0 | "Rain came down in sheets, turning the pavement into a black mirror that swallowed the streetlights whole." | | 1 | "Detective Harlow Quinn pounded across Camden High Street, her boots sending up arcs of filthy water, her breath sawing in her throat." | | 2 | "The padlock sat cold and closed in her palm, heavy, rust-flecked, and altogether unremarkable, as if it had never opened at all." | | 3 | "And this was the first time since that night that her gut had lit up the same way it had lit up then, with that low electric hum that said you are standing on t…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |