| 66.67% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 2 | | adverbTags | | 0 | "She turned slowly [slowly]" | | 1 | "She crouched again [again]" |
| | dialogueSentences | 27 | | tagDensity | 0.556 | | leniency | 1 | | rawRatio | 0.133 | | effectiveRatio | 0.133 | |
| 91.66% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1199 | | 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) | |
| 79.15% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1199 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "methodical" | | 1 | "weight" | | 2 | "comfortable" | | 3 | "familiar" | | 4 | "flickered" |
| |
| 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) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 66 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 77 | | 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 | 2 | | markdownWords | 8 | | totalWords | 1189 | | ratio | 0.007 | | matches | | 0 | "stopped" | | 1 | "Where did the rest of them go?" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 19 | | wordCount | 897 | | uniqueNames | 8 | | maxNameDensity | 0.78 | | worstName | "Aldridge" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aldridge" | | discoveredNames | | Detective | 2 | | Harlow | 1 | | Quinn | 5 | | Camden | 1 | | Victorian | 1 | | Sergeant | 1 | | Aldridge | 7 | | Morris | 1 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Sergeant" | | 3 | "Aldridge" | | 4 | "Morris" |
| | places | (empty) | | 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 | 1189 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 77 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 32 | | mean | 37.16 | | std | 31.23 | | cv | 0.84 | | sampleLengths | | 0 | 41 | | 1 | 15 | | 2 | 61 | | 3 | 21 | | 4 | 23 | | 5 | 111 | | 6 | 45 | | 7 | 10 | | 8 | 61 | | 9 | 5 | | 10 | 61 | | 11 | 9 | | 12 | 103 | | 13 | 5 | | 14 | 6 | | 15 | 11 | | 16 | 53 | | 17 | 65 | | 18 | 13 | | 19 | 71 | | 20 | 74 | | 21 | 7 | | 22 | 12 | | 23 | 20 | | 24 | 102 | | 25 | 3 | | 26 | 17 | | 27 | 42 | | 28 | 57 | | 29 | 40 | | 30 | 7 | | 31 | 18 |
| |
| 68.05% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 7 | | totalSentences | 66 | | matches | | 0 | "been bricked" | | 1 | "been carried" | | 2 | "were stained" | | 3 | "was gone" | | 4 | "been disturbed" | | 5 | "were trained" | | 6 | "was supposed" | | 7 | "been allowed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 159 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 77 | | ratio | 0.091 | | matches | | 0 | "The stairwell smelled of rust and old rain, and Detective Harlow Quinn descended it the way she did everything—one boot in front of the other, spine straight, her worn leather watch catching the swing of a constable's torch as she passed." | | 1 | "But where she expected the litter of an abandoned place—pigeon mess, fallen plaster, the slow geological creep of dust—she found instead the ghost of order." | | 2 | "His clothes were ordinary—anorak, work trousers—but his fingers were stained, the pads blackened, and there was a thin cord around his throat with nothing left hanging from it." | | 3 | "And the man's blackened fingers—she leaned closer." | | 4 | "There—a gap in the hoarding at the far end, framed by two more of those clean iron rings, and on the brickwork beside it, scratched faint and recent, a mark she didn't recognise but instinctively disliked: a circle bisected by a vertical stroke, like an eye held shut." | | 5 | "In the last case she'd worked with DS Morris before he stopped existing—not died, *stopped*, walked into a room and never walked out and left behind a coat still warm and a coffee still steaming and a hole in her career she'd been falling into ever since." | | 6 | "Good shoes—worn, but cared for, recently resoled." |
| |
| 98.46% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 910 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.041758241758241756 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.013186813186813187 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 77 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 77 | | mean | 15.44 | | std | 13.09 | | cv | 0.848 | | sampleLengths | | 0 | 41 | | 1 | 12 | | 2 | 3 | | 3 | 3 | | 4 | 16 | | 5 | 19 | | 6 | 4 | | 7 | 19 | | 8 | 21 | | 9 | 3 | | 10 | 20 | | 11 | 18 | | 12 | 11 | | 13 | 25 | | 14 | 18 | | 15 | 23 | | 16 | 16 | | 17 | 11 | | 18 | 19 | | 19 | 15 | | 20 | 10 | | 21 | 22 | | 22 | 5 | | 23 | 28 | | 24 | 6 | | 25 | 5 | | 26 | 47 | | 27 | 14 | | 28 | 3 | | 29 | 6 | | 30 | 7 | | 31 | 24 | | 32 | 24 | | 33 | 7 | | 34 | 2 | | 35 | 6 | | 36 | 33 | | 37 | 5 | | 38 | 3 | | 39 | 3 | | 40 | 6 | | 41 | 5 | | 42 | 5 | | 43 | 16 | | 44 | 32 | | 45 | 6 | | 46 | 29 | | 47 | 30 | | 48 | 2 | | 49 | 11 |
| |
| 83.12% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.5454545454545454 | | totalSentences | 77 | | uniqueOpeners | 42 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 54 | | matches | | 0 | "Officially it didn't exist." | | 1 | "Unofficially, a maintenance crew had" | | 2 | "Too fine, too even, almost" |
| | ratio | 0.056 | |
| 71.85% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 54 | | matches | | 0 | "She didn't answer." | | 1 | "She'd already noted the swollen" | | 2 | "It was wrong." | | 3 | "She knew that within the" | | 4 | "He was a good copper," | | 5 | "She crouched by the body" | | 6 | "His clothes were ordinary—anorak, work" | | 7 | "She was looking at the" | | 8 | "It had got under his" | | 9 | "She watched him take in" | | 10 | "She watched him fail to" | | 11 | "She pointed without quite touching" | | 12 | "She turned slowly, mapping the" | | 13 | "She had seen a mark" | | 14 | "She pushed the memory down." | | 15 | "She crouched again, this time" | | 16 | "She straightened, and the torchlight" | | 17 | "She thought of the green-gold" | | 18 | "She thought of the eye-mark" | | 19 | "She slipped her notebook from" |
| | ratio | 0.37 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 54 | | matches | | 0 | "The stairwell smelled of rust" | | 1 | "the young PC said" | | 2 | "She didn't answer." | | 3 | "She'd already noted the swollen" | | 4 | "The Camden station had been" | | 5 | "Quinn stepped onto the platform" | | 6 | "It was wrong." | | 7 | "She knew that within the" | | 8 | "The platform stretched away under" | | 9 | "The tiling was Victorian, cream" | | 10 | "Scuff marks on the floor" | | 11 | "A faint sweetness in the" | | 12 | "Detective Sergeant Aldridge came toward" | | 13 | "He was a good copper," | | 14 | "She crouched by the body" | | 15 | "A man, fifties, lying on" | | 16 | "His clothes were ordinary—anorak, work" | | 17 | "Whatever had been there was" | | 18 | "Quinn said nothing." | | 19 | "She was looking at the" |
| | ratio | 0.704 | |
| 92.59% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 54 | | matches | | 0 | "To his credit, he looked." |
| | ratio | 0.019 | |
| 44.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 4 | | matches | | 0 | "He was a good copper, methodical, the kind who closed cases by filling in every box on the form." | | 1 | "But the floor beneath him was nearly clean, swept in a rough arc, as if the area had been disturbed and then disturbed again." | | 2 | "Aldridge had gone quiet, the comfortable narrative collapsing behind his eyes, and she felt the old, familiar loneliness of being the only person in the room wh…" | | 3 | "She thought of the eye-mark on the wall, the iron rings, the swept floor, the bone-deep wrongness of an underground place that wasn't dead at all but only sleep…" |
| |
| 58.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 2 | | matches | | 0 | "She crouched again, this time studying the cord at his throat" | | 1 | "She straightened, and the torchlight threw her sharp jaw into hard relief" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 6 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 27 | | tagDensity | 0.222 | | leniency | 0.444 | | rawRatio | 0 | | effectiveRatio | 0 | |