| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 1 | | adverbTags | | 0 | "She turned back [back]" |
| | dialogueSentences | 46 | | tagDensity | 0.261 | | leniency | 0.522 | | rawRatio | 0.083 | | effectiveRatio | 0.043 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1027 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 100.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1027 | | totalAiIsms | 0 | | found | (empty) | | highlights | (empty) | |
| 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 | 43 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 43 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 71 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 72 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1034 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 71.74% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 575 | | uniqueNames | 15 | | maxNameDensity | 1.57 | | worstName | "Quinn" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 2 | | High | 1 | | Street | 1 | | Detective | 1 | | Harlow | 1 | | Quinn | 9 | | Tube | 1 | | Ferro | 4 | | White | 1 | | Take | 1 | | Remember | 1 | | Morris | 1 | | British | 1 | | Museum | 1 | | Restricted | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Ferro" | | 3 | "Morris" |
| | places | | 0 | "Camden" | | 1 | "High" | | 2 | "Street" | | 3 | "British" | | 4 | "Museum" | | 5 | "Restricted" |
| | globalScore | 0.717 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 28 | | 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.967 | | wordCount | 1034 | | matches | | 0 | "not north but sideways" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 71 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 40 | | mean | 25.85 | | std | 22.51 | | cv | 0.871 | | sampleLengths | | 0 | 24 | | 1 | 32 | | 2 | 14 | | 3 | 3 | | 4 | 1 | | 5 | 39 | | 6 | 36 | | 7 | 12 | | 8 | 30 | | 9 | 2 | | 10 | 39 | | 11 | 9 | | 12 | 46 | | 13 | 18 | | 14 | 46 | | 15 | 6 | | 16 | 54 | | 17 | 37 | | 18 | 7 | | 19 | 6 | | 20 | 69 | | 21 | 3 | | 22 | 44 | | 23 | 33 | | 24 | 49 | | 25 | 2 | | 26 | 56 | | 27 | 5 | | 28 | 27 | | 29 | 6 | | 30 | 101 | | 31 | 1 | | 32 | 10 | | 33 | 61 | | 34 | 15 | | 35 | 1 | | 36 | 36 | | 37 | 23 | | 38 | 9 | | 39 | 22 |
| |
| 88.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 43 | | matches | | 0 | "been baked" | | 1 | "being told" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 86 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 71 | | ratio | 0.099 | | matches | | 0 | "Chalk marks climbed the tiles there — a spiral of them, careful and repeated, worn glossy in places like a door handle." | | 1 | "White, waxy, half worn away, and beneath the chalk the tile itself was discoloured — heat damage, the kind you see on the back of a toaster." | | 2 | "\"What's this, a compass?\" Quinn tipped it into her palm through the bag. The needle under the scratched glass should have been rattling loose or stuck. Instead it held steady, dead level, pointing not north but sideways — straight through the tiled wall of the arch, into solid earth." | | 3 | "Not a watch — wrong placement.\"" | | 4 | "The needle of the compass twitched. Quinn felt it through the bag more than saw it — a tremor, like a dog waking. She held it flat and watched the needle swing a hard right, toward the stairs, toward the street, then stop mid-arc and steady on a new heading: deeper into the station, down the dead tunnel past the arch." | | 5 | "\"—ask for anyone who studies things that shouldn't exist.\"" | | 6 | "Ferro's radio crackled behind her, and far down the black throat of the tunnel, the needle swung again — toward something coming." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 469 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 7 | | adverbRatio | 0.014925373134328358 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0021321961620469083 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 71 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 71 | | mean | 14.56 | | std | 13.95 | | cv | 0.958 | | sampleLengths | | 0 | 24 | | 1 | 10 | | 2 | 5 | | 3 | 17 | | 4 | 14 | | 5 | 3 | | 6 | 1 | | 7 | 10 | | 8 | 22 | | 9 | 7 | | 10 | 24 | | 11 | 2 | | 12 | 3 | | 13 | 7 | | 14 | 12 | | 15 | 21 | | 16 | 9 | | 17 | 2 | | 18 | 11 | | 19 | 2 | | 20 | 8 | | 21 | 18 | | 22 | 4 | | 23 | 5 | | 24 | 21 | | 25 | 25 | | 26 | 18 | | 27 | 21 | | 28 | 25 | | 29 | 6 | | 30 | 26 | | 31 | 28 | | 32 | 15 | | 33 | 22 | | 34 | 7 | | 35 | 6 | | 36 | 19 | | 37 | 27 | | 38 | 18 | | 39 | 5 | | 40 | 3 | | 41 | 40 | | 42 | 4 | | 43 | 33 | | 44 | 49 | | 45 | 2 | | 46 | 43 | | 47 | 13 | | 48 | 5 | | 49 | 24 |
| |
| 91.55% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.676056338028169 | | totalSentences | 71 | | uniqueOpeners | 48 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 37 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 7 | | totalSentences | 37 | | matches | | 0 | "Their glare pooled yellow on" | | 1 | "She leaned closer" | | 2 | "She turned back to the" | | 3 | "He came with an instrument" | | 4 | "My partner found what was" | | 5 | "It was tracking the wall," | | 6 | "She paused at the mouth" |
| | ratio | 0.189 | |
| 95.14% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 27 | | totalSentences | 37 | | matches | | 0 | "The tape across the station" | | 1 | "The old Tube station hadn't" | | 2 | "DC Ferro caught up with" | | 3 | "Quinn's boots found the bottom" | | 4 | "The platform stretched out in" | | 5 | "Their glare pooled yellow on" | | 6 | "The dead man lay in" | | 7 | "Quinn crouched at the edge" | | 8 | "She leaned closer" | | 9 | "A body nine days dead" | | 10 | "Ferro crouched beside her." | | 11 | "Quinn circled the body slow" | | 12 | "Quinn stopped at the man's" | | 13 | "Ferro shone her torch along" | | 14 | "Chalk marks climbed the tiles" | | 15 | "Quinn walked to the arch" | | 16 | "The whole spiral had been" | | 17 | "She turned back to the" | | 18 | "Quinn tipped it into her" | | 19 | "Quinn turned a slow half" |
| | ratio | 0.73 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 37 | | matches | | | ratio | 0.027 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 13 | | technicalSentenceCount | 0 | | matches | (empty) | |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |