| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 47 | | tagDensity | 0.106 | | leniency | 0.213 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.49% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1051 | | 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) | |
| 95.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1051 | | totalAiIsms | 1 | | found | | | highlights | | |
| 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 | 98 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 98 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 140 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 11 | | totalWords | 1051 | | ratio | 0.01 | | matches | | 0 | "Odd, that" | | 1 | "ah" | | 2 | "Ah, that's Akkadian, Harlow, give me an hour." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 812 | | uniqueNames | 14 | | maxNameDensity | 0.62 | | worstName | "Bremner" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Bremner" | | discoveredNames | | Bremner | 5 | | Quinn | 4 | | Midland | 1 | | Grand | 1 | | St | 1 | | Pancras | 1 | | Morris | 2 | | Eva | 3 | | Akkadian | 1 | | Harlow | 1 | | British | 1 | | Museum | 1 | | Flat | 1 | | Probably | 3 |
| | persons | | 0 | "Bremner" | | 1 | "Quinn" | | 2 | "Morris" | | 3 | "Eva" | | 4 | "Harlow" | | 5 | "Museum" |
| | places | | 0 | "St" | | 1 | "Pancras" | | 2 | "British" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 45 | | 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 | 1051 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 140 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 63 | | mean | 16.68 | | std | 23.29 | | cv | 1.396 | | sampleLengths | | 0 | 28 | | 1 | 4 | | 2 | 1 | | 3 | 5 | | 4 | 47 | | 5 | 49 | | 6 | 12 | | 7 | 3 | | 8 | 3 | | 9 | 1 | | 10 | 5 | | 11 | 24 | | 12 | 7 | | 13 | 49 | | 14 | 13 | | 15 | 29 | | 16 | 2 | | 17 | 5 | | 18 | 3 | | 19 | 68 | | 20 | 10 | | 21 | 37 | | 22 | 15 | | 23 | 3 | | 24 | 3 | | 25 | 1 | | 26 | 8 | | 27 | 2 | | 28 | 62 | | 29 | 20 | | 30 | 12 | | 31 | 9 | | 32 | 3 | | 33 | 1 | | 34 | 2 | | 35 | 106 | | 36 | 25 | | 37 | 1 | | 38 | 1 | | 39 | 1 | | 40 | 4 | | 41 | 5 | | 42 | 8 | | 43 | 8 | | 44 | 10 | | 45 | 26 | | 46 | 5 | | 47 | 1 | | 48 | 12 | | 49 | 4 |
| |
| 87.36% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 98 | | matches | | 0 | "been sealed" | | 1 | "been bitten" | | 2 | "been told" | | 3 | "been poured" | | 4 | "been sliced" |
| |
| 95.01% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 127 | | matches | | 0 | "was shaping" | | 1 | "was holding" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 140 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 817 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 30 | | adverbRatio | 0.03671970624235006 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.012239902080783354 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 140 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 140 | | mean | 7.51 | | std | 8.16 | | cv | 1.087 | | sampleLengths | | 0 | 14 | | 1 | 14 | | 2 | 4 | | 3 | 1 | | 4 | 5 | | 5 | 5 | | 6 | 21 | | 7 | 5 | | 8 | 1 | | 9 | 8 | | 10 | 7 | | 11 | 21 | | 12 | 2 | | 13 | 6 | | 14 | 20 | | 15 | 7 | | 16 | 5 | | 17 | 3 | | 18 | 3 | | 19 | 1 | | 20 | 5 | | 21 | 24 | | 22 | 2 | | 23 | 5 | | 24 | 7 | | 25 | 20 | | 26 | 1 | | 27 | 11 | | 28 | 5 | | 29 | 5 | | 30 | 13 | | 31 | 3 | | 32 | 3 | | 33 | 17 | | 34 | 6 | | 35 | 2 | | 36 | 5 | | 37 | 3 | | 38 | 4 | | 39 | 1 | | 40 | 21 | | 41 | 24 | | 42 | 3 | | 43 | 2 | | 44 | 8 | | 45 | 5 | | 46 | 1 | | 47 | 9 | | 48 | 22 | | 49 | 4 |
| |
| 80.71% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 17 | | diversityRatio | 0.5571428571428572 | | totalSentences | 140 | | uniqueOpeners | 78 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 71 | | matches | | 0 | "Then one of his hands." | | 1 | "Probably from the docker's pipe" | | 2 | "Too faintly metallic underneath." |
| | ratio | 0.042 | |
| 90.42% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 23 | | totalSentences | 71 | | matches | | 0 | "She'd checked it twice on" | | 1 | "She snapped a photo of" | | 2 | "She turned the left hand" | | 3 | "She pressed her thumb against" | | 4 | "Her knees complained." | | 5 | "She walked the perimeter." | | 6 | "She knelt again at the" | | 7 | "Her stomach did the thing" | | 8 | "He came over, held out" | | 9 | "He was a good lad." | | 10 | "He saw what fit and" | | 11 | "She straightened and did the" | | 12 | "She pulled out her notebook," | | 13 | "She'd written it down because" | | 14 | "She looked at him." | | 15 | "He read his own notes" | | 16 | "He was a good lad." | | 17 | "She squatted and dipped a" | | 18 | "She thought about ringing Eva." | | 19 | "She had a suspicion." |
| | ratio | 0.324 | |
| 86.76% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 53 | | totalSentences | 71 | | matches | | 0 | "DS Bremner scribbled something in" | | 1 | "Quinn crouched beside the body." | | 2 | "The rooftop of the old" | | 3 | "Padlock on the access door." | | 4 | "She'd checked it twice on" | | 5 | "The chain still wore its" | | 6 | "The dead man lay face-up" | | 7 | "Oxfords polished to a parade-ground" | | 8 | "She snapped a photo of" | | 9 | "She turned the left hand" | | 10 | "The fingernails had been bitten" | | 11 | "She pressed her thumb against" | | 12 | "Her knees complained." | | 13 | "Bremner stopped writing." | | 14 | "She walked the perimeter." | | 15 | "The leather of her watch" | | 16 | "Gravel crunched under her boots" | | 17 | "Someone had raked the stones." | | 18 | "A child's attempt at hiding" | | 19 | "She knelt again at the" |
| | ratio | 0.746 | |
| 70.42% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 71 | | matches | | 0 | "While he radioed down, she" |
| | ratio | 0.014 | |
| 85.71% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 2 | | matches | | 0 | "The way the puddle around his head wasn't round the way a puddle ought to be, but ran in a thin channel off to the south-east, into a seam between two flags, as…" | | 1 | "The shackle of the padlock, which had been whole when she'd examined it ten minutes ago, was now parted cleanly in two, as if it had been sliced with something …" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 1 | | matches | | 0 | "DS Bremner scribbled, the biro skipping on damp paper" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 47 | | tagDensity | 0.021 | | leniency | 0.043 | | rawRatio | 0 | | effectiveRatio | 0 | |