| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 16 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 52 | | tagDensity | 0.308 | | leniency | 0.615 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.18% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1467 | | 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) | |
| 89.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1467 | | totalAiIsms | 3 | | found | | | highlights | | 0 | "tracing" | | 1 | "weight" | | 2 | "resolved" |
| |
| 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 | 67 | | matches | (empty) | |
| 78.89% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 0 | | narrationSentences | 67 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 102 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 68 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1477 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 96.62% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 843 | | uniqueNames | 14 | | maxNameDensity | 1.07 | | worstName | "Bell" | | maxWindowNameDensity | 2 | | worstWindowName | "Bell" | | discoveredNames | | Detective | 2 | | Harlow | 1 | | Quinn | 7 | | Camden | 2 | | Lock | 1 | | Northern | 1 | | Line | 1 | | Transport | 1 | | London | 1 | | Adeyemi | 1 | | Sergeant | 1 | | Bell | 9 | | Deptford | 1 | | Morris | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Adeyemi" | | 3 | "Sergeant" | | 4 | "Bell" | | 5 | "Morris" |
| | places | | 0 | "Transport" | | 1 | "London" | | 2 | "Deptford" |
| | globalScore | 0.966 | | windowScore | 1 | |
| 85.90% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 39 | | glossingSentenceCount | 1 | | matches | | 0 | "Something like a struck match, or ozone afte" |
| |
| 64.59% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.354 | | wordCount | 1477 | | matches | | 0 | "not as a thought but as a discomfort, a sound just outside hearing" | | 1 | "not empty, but occupied" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 102 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 54 | | mean | 27.35 | | std | 28.08 | | cv | 1.026 | | sampleLengths | | 0 | 28 | | 1 | 75 | | 2 | 5 | | 3 | 28 | | 4 | 4 | | 5 | 21 | | 6 | 1 | | 7 | 3 | | 8 | 70 | | 9 | 20 | | 10 | 76 | | 11 | 3 | | 12 | 4 | | 13 | 10 | | 14 | 7 | | 15 | 4 | | 16 | 82 | | 17 | 13 | | 18 | 68 | | 19 | 9 | | 20 | 16 | | 21 | 5 | | 22 | 2 | | 23 | 9 | | 24 | 1 | | 25 | 5 | | 26 | 20 | | 27 | 3 | | 28 | 88 | | 29 | 8 | | 30 | 47 | | 31 | 10 | | 32 | 77 | | 33 | 41 | | 34 | 11 | | 35 | 11 | | 36 | 1 | | 37 | 74 | | 38 | 4 | | 39 | 3 | | 40 | 63 | | 41 | 45 | | 42 | 6 | | 43 | 57 | | 44 | 5 | | 45 | 61 | | 46 | 5 | | 47 | 75 | | 48 | 15 | | 49 | 35 |
| |
| 89.55% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 67 | | matches | | 0 | "been sealed" | | 1 | "was curled" | | 2 | "been lifted" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 130 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 102 | | ratio | 0.059 | | matches | | 0 | "Advertisements clung to the wall in fragments: a woman's hand holding a cigarette, half a word — CANNOT — the rest scaled away to plaster." | | 1 | "The blood was there, right enough — a dark halo spread beneath the head, dried to a matte crust that had cracked like riverbed mud." | | 2 | "The dead man's face was slack and unremarkable — a face you'd forget queuing behind it." | | 3 | "The dead man's extended hand was curled, and in the palm, pressed into the flesh, was a shape — a small circular impression, perhaps an inch and a half across, with a raised bar across the middle." | | 4 | "Quinn looked down the tunnel mouth, where the work lamps couldn't reach and the darkness had that particular quality — not empty, but occupied — that she had been refusing to name for three years." | | 5 | "She went back up the forty-one steps into the grey of Camden morning, and she did not tell Bell that as she passed the tunnel mouth, the small hairs along her arms had risen — all of them, at once, as if something enormous had turned over in its sleep." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 837 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 25 | | adverbRatio | 0.02986857825567503 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.007168458781362007 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 102 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 102 | | mean | 14.48 | | std | 13.88 | | cv | 0.959 | | sampleLengths | | 0 | 28 | | 1 | 28 | | 2 | 2 | | 3 | 18 | | 4 | 27 | | 5 | 5 | | 6 | 15 | | 7 | 13 | | 8 | 4 | | 9 | 21 | | 10 | 1 | | 11 | 3 | | 12 | 5 | | 13 | 15 | | 14 | 25 | | 15 | 25 | | 16 | 8 | | 17 | 2 | | 18 | 10 | | 19 | 37 | | 20 | 39 | | 21 | 3 | | 22 | 2 | | 23 | 2 | | 24 | 10 | | 25 | 4 | | 26 | 3 | | 27 | 4 | | 28 | 36 | | 29 | 4 | | 30 | 7 | | 31 | 18 | | 32 | 11 | | 33 | 6 | | 34 | 2 | | 35 | 3 | | 36 | 8 | | 37 | 25 | | 38 | 7 | | 39 | 36 | | 40 | 9 | | 41 | 10 | | 42 | 6 | | 43 | 5 | | 44 | 2 | | 45 | 9 | | 46 | 1 | | 47 | 5 | | 48 | 3 | | 49 | 17 |
| |
| 86.93% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.5392156862745098 | | totalSentences | 102 | | uniqueOpeners | 55 | |
| 61.73% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 54 | | matches | | 0 | "Then she moved the torch" |
| | ratio | 0.019 | |
| 64.44% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 54 | | matches | | 0 | "She descended the maintenance stairs" | | 1 | "She counted them out of" | | 2 | "He gestured, vaguely triumphant." | | 3 | "She walked past him." | | 4 | "Her knees complained." | | 5 | "She shone the torch along" | | 6 | "He came, reluctant, and crouched" | | 7 | "She let the beam rest" | | 8 | "She lowered the torch" | | 9 | "She turned in place" | | 10 | "She watched him look, watched" | | 11 | "It was easier to believe" | | 12 | "She said it without heat" | | 13 | "She moved to the body's" | | 14 | "She had never seen that." | | 15 | "Her thumb found the face" | | 16 | "It had bruised." | | 17 | "She rose, and swept the" | | 18 | "She straightened her coat" | | 19 | "She clicked the torch off," |
| | ratio | 0.389 | |
| 71.11% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 42 | | totalSentences | 54 | | matches | | 0 | "The service tunnel smelled of" | | 1 | "She descended the maintenance stairs" | | 2 | "She counted them out of" | | 3 | "The seal, apparently, had opinions." | | 4 | "PC Adeyemi stood at the" | | 5 | "Quinn ducked under the tape." | | 6 | "The platform stretched away into" | | 7 | "Advertisements clung to the wall" | | 8 | "Someone had rigged two work" | | 9 | "Something like a struck match," | | 10 | "Detective Sergeant Bell came up" | | 11 | "He gestured, vaguely triumphant." | | 12 | "She walked past him." | | 13 | "The man lay on his" | | 14 | "A jumper worn thin at" | | 15 | "Her knees complained." | | 16 | "The blood was there, right" | | 17 | "She shone the torch along" | | 18 | "He came, reluctant, and crouched" | | 19 | "Bell looked up." |
| | ratio | 0.778 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 54 | | matches | (empty) | | ratio | 0 | |
| 87.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 2 | | matches | | 0 | "The man lay on his side ten feet from the tunnel mouth, one arm folded under his body, the other extended along the platform edge as if he had been reaching for…" | | 1 | "She went back up the forty-one steps into the grey of Camden morning, and she did not tell Bell that as she passed the tunnel mouth, the small hairs along her a…" |
| |
| 93.75% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 1 | | matches | | 0 | "She clicked, and the tunnel breathed cold up at her" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 52 | | tagDensity | 0.135 | | leniency | 0.269 | | rawRatio | 0.143 | | effectiveRatio | 0.038 | |