| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 44 | | tagDensity | 0.159 | | leniency | 0.318 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 77.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1094 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "suddenly" | | 1 | "very" | | 2 | "slightly" |
| |
| 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) | |
| 86.29% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1094 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "traced" | | 1 | "standard" | | 2 | "flicked" |
| |
| 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 | 66 | | matches | (empty) | |
| 99.57% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 66 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 103 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 64 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 8 | | totalWords | 1097 | | ratio | 0.007 | | matches | | 0 | "Evie," | | 1 | "Need a word. Off the record. Now." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 790 | | uniqueNames | 7 | | maxNameDensity | 0.76 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 6 | | St | 1 | | Ashworth | 6 | | Savile | 1 | | Row | 1 | | Morris | 1 | | Deptford | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Ashworth" | | 2 | "Morris" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 34 | | 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 | 1097 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 103 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 56 | | mean | 19.59 | | std | 25.3 | | cv | 1.291 | | sampleLengths | | 0 | 74 | | 1 | 4 | | 2 | 41 | | 3 | 4 | | 4 | 78 | | 5 | 76 | | 6 | 3 | | 7 | 7 | | 8 | 21 | | 9 | 4 | | 10 | 3 | | 11 | 4 | | 12 | 5 | | 13 | 39 | | 14 | 20 | | 15 | 31 | | 16 | 27 | | 17 | 2 | | 18 | 4 | | 19 | 13 | | 20 | 3 | | 21 | 6 | | 22 | 2 | | 23 | 4 | | 24 | 81 | | 25 | 50 | | 26 | 5 | | 27 | 7 | | 28 | 25 | | 29 | 25 | | 30 | 23 | | 31 | 10 | | 32 | 2 | | 33 | 1 | | 34 | 118 | | 35 | 2 | | 36 | 57 | | 37 | 4 | | 38 | 7 | | 39 | 2 | | 40 | 6 | | 41 | 4 | | 42 | 7 | | 43 | 1 | | 44 | 32 | | 45 | 6 | | 46 | 4 | | 47 | 15 | | 48 | 12 | | 49 | 1 |
| |
| 89.31% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 66 | | matches | | 0 | "been caught" | | 1 | "been polished" | | 2 | "been poured" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 128 | | matches | (empty) | |
| 87.38% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 2 | | semicolonCount | 0 | | flaggedSentences | 2 | | totalSentences | 103 | | ratio | 0.019 | | matches | | 0 | "The blood there was — she stopped." | | 1 | "The single bootprint on the wet cobble three feet from the body, which pointed away from the corpse rather than toward it, and which was not a print she recognised from any standard-issue boot she'd ever seen — the tread was a spiral." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 670 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 19 | | adverbRatio | 0.028358208955223882 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005970149253731343 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 103 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 103 | | mean | 10.65 | | std | 11.66 | | cv | 1.094 | | sampleLengths | | 0 | 21 | | 1 | 11 | | 2 | 21 | | 3 | 4 | | 4 | 17 | | 5 | 4 | | 6 | 24 | | 7 | 17 | | 8 | 4 | | 9 | 62 | | 10 | 16 | | 11 | 2 | | 12 | 3 | | 13 | 18 | | 14 | 1 | | 15 | 1 | | 16 | 29 | | 17 | 9 | | 18 | 9 | | 19 | 4 | | 20 | 3 | | 21 | 7 | | 22 | 18 | | 23 | 3 | | 24 | 4 | | 25 | 3 | | 26 | 2 | | 27 | 2 | | 28 | 5 | | 29 | 19 | | 30 | 20 | | 31 | 1 | | 32 | 2 | | 33 | 17 | | 34 | 9 | | 35 | 22 | | 36 | 17 | | 37 | 7 | | 38 | 3 | | 39 | 2 | | 40 | 4 | | 41 | 13 | | 42 | 3 | | 43 | 5 | | 44 | 1 | | 45 | 2 | | 46 | 4 | | 47 | 16 | | 48 | 18 | | 49 | 31 |
| |
| 85.76% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.5436893203883495 | | totalSentences | 103 | | uniqueOpeners | 56 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 49 | | matches | (empty) | | ratio | 0 | |
| 73.06% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 49 | | matches | | 0 | "He was twenty-nine, eager, still" | | 1 | "Her knees complained." | | 2 | "She set her torch down" | | 3 | "His shoes had been polished" | | 4 | "His fingernails were clean." | | 5 | "She pressed two fingers to" | | 6 | "He glanced at the two" | | 7 | "He frowned down at it." | | 8 | "She squatted again and traced" | | 9 | "It sat perhaps six inches" | | 10 | "It was clean." | | 11 | "She nodded at the shallow" | | 12 | "She pulled a pen from" | | 13 | "She drew the pen back." | | 14 | "Her eyes swept the alley" | | 15 | "She felt the old cold" | | 16 | "It had the same flavour" | | 17 | "She took out her phone" |
| | ratio | 0.367 | |
| 11.02% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 44 | | totalSentences | 49 | | matches | | 0 | "The rain had stopped by" | | 1 | "Pancras still held it, slick" | | 2 | "Someone had run a cable" | | 3 | "The smell came first." | | 4 | "Copper, yes, but also something" | | 5 | "DC Ashworth peeled off his" | | 6 | "He was twenty-nine, eager, still" | | 7 | "Ashworth gestured with his chin" | | 8 | "Her knees complained." | | 9 | "She set her torch down" | | 10 | "A small nick under the" | | 11 | "The suit was Savile Row" | | 12 | "His shoes had been polished" | | 13 | "His fingernails were clean." | | 14 | "She pressed two fingers to" | | 15 | "He glanced at the two" | | 16 | "Quinn slid a gloved hand" | | 17 | "A pale oval of cobble" | | 18 | "Ashworth said, quick to recover" | | 19 | "Quinn lowered the shoulder, rose," |
| | ratio | 0.898 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 49 | | matches | | 0 | "As though the air there" |
| | ratio | 0.02 | |
| 87.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 2 | | matches | | 0 | "The single bootprint on the wet cobble three feet from the body, which pointed away from the corpse rather than toward it, and which was not a print she recogni…" | | 1 | "Quinn stayed where she was, in the hot white pool of the lights, and looked down at the dead man whose blood would not sit the way blood sat, and at the second …" |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "Ashworth said, quick to recover" |
| |
| 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 | |