| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 29 | | tagDensity | 0.517 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 97.42% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1940 | | 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) | |
| 84.54% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1940 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "measured" | | 1 | "etched" | | 2 | "trembled" | | 3 | "flickered" | | 4 | "weight" |
| |
| 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 | 128 | | matches | (empty) | |
| 87.05% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 3 | | narrationSentences | 128 | | filterMatches | | | hedgeMatches | | 0 | "try to" | | 1 | "tended to" | | 2 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 142 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1934 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 57 | | wordCount | 1506 | | uniqueNames | 14 | | maxNameDensity | 1.46 | | worstName | "Quinn" | | maxWindowNameDensity | 3 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 22 | | Camden | 1 | | Morris | 2 | | Veil | 1 | | Market | 4 | | Sergeant | 1 | | Hale | 12 | | Kowalski | 1 | | Oxford | 1 | | British | 1 | | Museum | 1 | | Met | 1 | | Eva | 8 | | July | 1 |
| | persons | | 0 | "Quinn" | | 1 | "Morris" | | 2 | "Market" | | 3 | "Sergeant" | | 4 | "Hale" | | 5 | "Kowalski" | | 6 | "Museum" | | 7 | "Met" | | 8 | "Eva" |
| | places | | 0 | "Camden" | | 1 | "Oxford" | | 2 | "British" | | 3 | "July" |
| | globalScore | 0.77 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 94 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like a simple killing" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.517 | | wordCount | 1934 | | matches | | 0 | "not toward the stairs but toward the bricked tunnel, stopping three feet short as if t" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 142 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 52.27 | | std | 28.81 | | cv | 0.551 | | sampleLengths | | 0 | 74 | | 1 | 80 | | 2 | 79 | | 3 | 29 | | 4 | 20 | | 5 | 70 | | 6 | 21 | | 7 | 79 | | 8 | 5 | | 9 | 3 | | 10 | 54 | | 11 | 12 | | 12 | 54 | | 13 | 87 | | 14 | 30 | | 15 | 63 | | 16 | 6 | | 17 | 62 | | 18 | 14 | | 19 | 80 | | 20 | 34 | | 21 | 64 | | 22 | 121 | | 23 | 86 | | 24 | 13 | | 25 | 94 | | 26 | 66 | | 27 | 71 | | 28 | 60 | | 29 | 44 | | 30 | 43 | | 31 | 42 | | 32 | 48 | | 33 | 75 | | 34 | 22 | | 35 | 51 | | 36 | 78 |
| |
| 61.40% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 16 | | totalSentences | 128 | | matches | | 0 | "was flung" | | 1 | "been poured" | | 2 | "was turned" | | 3 | "was supposed" | | 4 | "was supposed" | | 5 | "been slashed" | | 6 | "was etched" | | 7 | "was sealed" | | 8 | "been dragged" | | 9 | "been locked" | | 10 | "was gone" | | 11 | "was gone" | | 12 | "been melted" | | 13 | "was etched" | | 14 | "been torn" | | 15 | "was supposed" | | 16 | "was supposed" |
| |
| 72.77% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 262 | | matches | | 0 | "was already cataloguing" | | 1 | "was still talking" | | 2 | "was watching" | | 3 | "were not looking" | | 4 | "were looking" |
| |
| 42.25% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 1 | | flaggedSentences | 5 | | totalSentences | 142 | | ratio | 0.035 | | matches | | 0 | "The air hit her first—damp concrete, old iron, and a faint metallic sweetness that did not belong to rust." | | 1 | "She tucked a strand of hair behind her left ear—the nervous habit Quinn had noticed the two times their paths had crossed before." | | 2 | "The Market moved every full moon; tonight the moon was three days past." | | 3 | "She thought of Morris, of the night three years ago when the evidence had not added up either—the room that had been locked from the inside, the frost on the windows in July, the way her partner’s last words had not been words at all." | | 4 | "It started again, but the time was wrong—three minutes behind the phone in her pocket." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1520 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.028289473684210528 | | lyAdverbCount | 8 | | lyAdverbRatio | 0.005263157894736842 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 142 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 142 | | mean | 13.62 | | std | 9.36 | | cv | 0.687 | | sampleLengths | | 0 | 25 | | 1 | 19 | | 2 | 12 | | 3 | 4 | | 4 | 9 | | 5 | 5 | | 6 | 30 | | 7 | 18 | | 8 | 15 | | 9 | 17 | | 10 | 17 | | 11 | 6 | | 12 | 7 | | 13 | 8 | | 14 | 29 | | 15 | 12 | | 16 | 14 | | 17 | 15 | | 18 | 6 | | 19 | 14 | | 20 | 6 | | 21 | 13 | | 22 | 12 | | 23 | 15 | | 24 | 3 | | 25 | 21 | | 26 | 3 | | 27 | 18 | | 28 | 25 | | 29 | 17 | | 30 | 7 | | 31 | 10 | | 32 | 20 | | 33 | 5 | | 34 | 2 | | 35 | 1 | | 36 | 42 | | 37 | 12 | | 38 | 6 | | 39 | 6 | | 40 | 24 | | 41 | 8 | | 42 | 9 | | 43 | 9 | | 44 | 4 | | 45 | 13 | | 46 | 29 | | 47 | 15 | | 48 | 7 | | 49 | 23 |
| |
| 57.51% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.36619718309859156 | | totalSentences | 142 | | uniqueOpeners | 52 | |
| 59.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 113 | | matches | | 0 | "Closely cropped salt-and-pepper hair caught" | | 1 | "Somewhere behind the masonry, something" |
| | ratio | 0.018 | |
| 96.11% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 35 | | totalSentences | 113 | | matches | | 0 | "She checked the worn leather" | | 1 | "She moved with the same" | | 2 | "He looked up as Quinn" | | 3 | "She studied the scene the" | | 4 | "She noted the absence of" | | 5 | "She pointed with a gloved" | | 6 | "She used a pen to" | | 7 | "It was still warm." | | 8 | "She carried her worn leather" | | 9 | "She tucked a strand of" | | 10 | "Her green eyes moved over" | | 11 | "She was already cataloguing the" | | 12 | "It trembled, then swung hard" | | 13 | "She tucked her hair behind" | | 14 | "She stood, joints protesting the" | | 15 | "She returned to the compass." | | 16 | "She thought of Morris, of" | | 17 | "she said, not a question" | | 18 | "She set the compass down" | | 19 | "She looked at Hale" |
| | ratio | 0.31 | |
| 44.07% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 94 | | totalSentences | 113 | | matches | | 0 | "Harlow Quinn ducked under the" | | 1 | "The air hit her first—damp" | | 2 | "She checked the worn leather" | | 3 | "The last train had rattled" | | 4 | "She moved with the same" | | 5 | "The light threw her sharp" | | 6 | "The Veil Market occupied the" | | 7 | "Canvas stalls sagged between tiled" | | 8 | "A brass cage hung empty" | | 9 | "A body lay near the" | | 10 | "Detective Sergeant Hale was already" | | 11 | "He looked up as Quinn" | | 12 | "Quinn did not answer at" | | 13 | "She studied the scene the" | | 14 | "The victim was a woman," | | 15 | "A dark stain spread beneath" | | 16 | "Quinn crouched on the opposite" | | 17 | "The woman’s coat was good" | | 18 | "She noted the absence of" | | 19 | "The head was turned at" |
| | ratio | 0.832 | |
| 44.25% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 113 | | matches | | 0 | "Whoever had done this had" |
| | ratio | 0.009 | |
| 98.21% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 64 | | technicalSentenceCount | 4 | | matches | | 0 | "The air hit her first—damp concrete, old iron, and a faint metallic sweetness that did not belong to rust." | | 1 | "Eva Kowalski stepped into the lamplight from behind a stack of crates, round glasses catching the glare, curly red hair escaping the clip that was supposed to h…" | | 2 | "Hale shot Quinn a look that said he did not appreciate civilians at his scene." | | 3 | "Somewhere behind the masonry, something waited for the next full moon, or for the next person who thought the evidence added up the way it was supposed to." |
| |
| 91.67% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 1 | | matches | | 0 | "Eva said, voice quiet but steady" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 29 | | tagDensity | 0.241 | | leniency | 0.483 | | rawRatio | 0 | | effectiveRatio | 0 | |