| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 34 | | tagDensity | 0.265 | | leniency | 0.529 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.46% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1101 | | totalAiIsmAdverbs | 1 | | 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) | |
| 81.83% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1101 | | totalAiIsms | 4 | | found | | | highlights | | 0 | "aligned" | | 1 | "traced" | | 2 | "pulse" |
| |
| 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 | 69 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 69 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 94 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1109 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 8 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 20 | | wordCount | 797 | | uniqueNames | 9 | | maxNameDensity | 0.75 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Camden | 1 | | Detective | 1 | | Harlow | 1 | | Quinn | 6 | | Tube | 1 | | Raj | 1 | | Mehta | 6 | | Hendon | 1 | | Morris | 2 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Mehta" | | 3 | "Morris" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 89.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.902 | | wordCount | 1109 | | matches | | 0 | "not into a fist but around something absent" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 94 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 22.63 | | std | 22.43 | | cv | 0.991 | | sampleLengths | | 0 | 82 | | 1 | 5 | | 2 | 44 | | 3 | 12 | | 4 | 7 | | 5 | 1 | | 6 | 69 | | 7 | 42 | | 8 | 3 | | 9 | 31 | | 10 | 1 | | 11 | 7 | | 12 | 31 | | 13 | 1 | | 14 | 1 | | 15 | 3 | | 16 | 49 | | 17 | 8 | | 18 | 9 | | 19 | 14 | | 20 | 57 | | 21 | 7 | | 22 | 2 | | 23 | 23 | | 24 | 22 | | 25 | 37 | | 26 | 3 | | 27 | 17 | | 28 | 9 | | 29 | 63 | | 30 | 7 | | 31 | 13 | | 32 | 5 | | 33 | 78 | | 34 | 36 | | 35 | 25 | | 36 | 15 | | 37 | 6 | | 38 | 47 | | 39 | 2 | | 40 | 7 | | 41 | 58 | | 42 | 23 | | 43 | 6 | | 44 | 10 | | 45 | 39 | | 46 | 56 | | 47 | 9 | | 48 | 7 |
| |
| 84.92% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 69 | | matches | | 0 | "been taught" | | 1 | "were curled" | | 2 | "been pulled" | | 3 | "was, crouched" | | 4 | "been carried" |
| |
| 47.33% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 131 | | matches | | 0 | "were running" | | 1 | "was calling" | | 2 | "were looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 5 | | totalSentences | 94 | | ratio | 0.053 | | matches | | 0 | "Quinn thumbed the catch on her watch — a nervous tic she'd picked up from her father — and stepped around a puddle that should have been water and wasn't, quite." | | 1 | "Her knees complained — the damp did that now, a small betrayal she refused to dignify with medication." | | 2 | "A thin crust had dried into the man's collar, another smear on the tile beneath his cheek, but the spatter pattern she'd expected — the arterial fan, the drag, the pooling — simply wasn't there." | | 3 | "The fingers were curled, not into a fist but around something absent — the specific shape a hand makes when it's been gripping a cord or a strap." | | 4 | "She felt the second hand tick against her pulse and, underneath it, the older pulse of a case three years cold — Morris on the pavement, Morris gone, and the circle of white powder nobody at the time had bothered to name." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 647 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 24 | | adverbRatio | 0.03709428129829984 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0061823802163833074 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 94 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 94 | | mean | 11.8 | | std | 10.3 | | cv | 0.873 | | sampleLengths | | 0 | 38 | | 1 | 30 | | 2 | 2 | | 3 | 2 | | 4 | 10 | | 5 | 5 | | 6 | 20 | | 7 | 24 | | 8 | 7 | | 9 | 5 | | 10 | 7 | | 11 | 1 | | 12 | 18 | | 13 | 20 | | 14 | 31 | | 15 | 18 | | 16 | 6 | | 17 | 18 | | 18 | 3 | | 19 | 16 | | 20 | 15 | | 21 | 1 | | 22 | 7 | | 23 | 2 | | 24 | 18 | | 25 | 4 | | 26 | 3 | | 27 | 4 | | 28 | 1 | | 29 | 1 | | 30 | 3 | | 31 | 2 | | 32 | 2 | | 33 | 35 | | 34 | 10 | | 35 | 5 | | 36 | 3 | | 37 | 9 | | 38 | 14 | | 39 | 2 | | 40 | 3 | | 41 | 24 | | 42 | 4 | | 43 | 5 | | 44 | 19 | | 45 | 7 | | 46 | 2 | | 47 | 23 | | 48 | 8 | | 49 | 9 |
| |
| 73.40% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.5106382978723404 | | totalSentences | 94 | | uniqueOpeners | 48 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 55 | | matches | | 0 | "Then the shoe." | | 1 | "Then the wound again." | | 2 | "Instead, she walked back to" | | 3 | "More like a lanyard yanked" | | 4 | "Almost reverent, she'd been going" |
| | ratio | 0.091 | |
| 81.82% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 55 | | matches | | 0 | "She flashed her warrant card" | | 1 | "She wasn't sure it was." | | 2 | "Her knees complained — the" | | 3 | "She studied the wound." | | 4 | "Her back cracked." | | 5 | "She walked the ten paces" | | 6 | "He was young enough to" | | 7 | "She didn't answer straight away." | | 8 | "She crouched again." | | 9 | "She tilted the palm to" | | 10 | "She traced the line on" | | 11 | "She thought of things a" | | 12 | "His collar was open." | | 13 | "She stepped over and nudged" | | 14 | "She leaned closer and saw" | | 15 | "He opened his mouth, closed" | | 16 | "She felt the second hand" | | 17 | "She'd named a lot of" | | 18 | "She wasn't going to do" |
| | ratio | 0.345 | |
| 96.36% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 40 | | totalSentences | 55 | | matches | | 0 | "Rain had been falling on" | | 1 | "She flashed her warrant card" | | 2 | "She wasn't sure it was." | | 3 | "Quinn paused on the last" | | 4 | "The platform stretched away under" | | 5 | "The air smelled of diesel," | | 6 | "Quinn thumbed the catch on" | | 7 | "The body lay at the" | | 8 | "The other shoe sat three" | | 9 | "Mehta crouched, pointed with the" | | 10 | "Her knees complained — the" | | 11 | "She studied the wound." | | 12 | "A thin crust had dried" | | 13 | "A blow like that should" | | 14 | "Her back cracked." | | 15 | "She walked the ten paces" | | 16 | "The hasp was intact." | | 17 | "The shackle hadn't been cut." | | 18 | "The lock itself sat snug," | | 19 | "Mehta joined her, shoulders tight" |
| | ratio | 0.727 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 55 | | matches | (empty) | | ratio | 0 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 3 | | matches | | 0 | "A paler strip of skin ran from his collarbone up under his jaw, the kind of line that took months of sun to develop and seconds to notice if you were looking fo…" | | 1 | "Or something that looked enough like it to fool a cleaner and a detective inspector." | | 2 | "Quinn stayed where she was, crouched on aching knees beside a dead man who had been carried here by someone who had not, in any conventional sense, come through…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 34 | | tagDensity | 0.147 | | leniency | 0.294 | | rawRatio | 0 | | effectiveRatio | 0 | |