| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 24 | | tagDensity | 0.458 | | leniency | 0.917 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 84.85% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 990 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "quickly" | | 1 | "lazily" | | 2 | "really" |
| |
| 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) | |
| 69.70% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 990 | | totalAiIsms | 6 | | found | | | highlights | | 0 | "tracing" | | 1 | "flickered" | | 2 | "jaw clenched" | | 3 | "traced" | | 4 | "racing" | | 5 | "shimmered" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 82 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 82 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 95 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 38 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 11 | | markdownWords | 13 | | totalWords | 977 | | ratio | 0.013 | | matches | | 0 | "Camden Road" | | 1 | "found" | | 2 | "high priority" | | 3 | "wrong" | | 4 | "known" | | 5 | "supposed" | | 6 | "looking" | | 7 | "marked" | | 8 | "language" | | 9 | "personal" | | 10 | "altered" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 1 | | matches | | 0 | "The Veil Market, they called it." |
| |
| 0.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 68 | | wordCount | 818 | | uniqueNames | 14 | | maxNameDensity | 2.81 | | worstName | "Quinn" | | maxWindowNameDensity | 5.5 | | worstWindowName | "Quinn" | | discoveredNames | | Tube | 1 | | Camden | 2 | | Detective | 2 | | Harlow | 1 | | Quinn | 23 | | Kowalski | 1 | | Eva | 14 | | Morris | 4 | | Metropolitan | 1 | | Police | 1 | | Veil | 4 | | Market | 1 | | Compass | 3 | | Rourke | 10 |
| | persons | | 0 | "Harlow" | | 1 | "Quinn" | | 2 | "Kowalski" | | 3 | "Eva" | | 4 | "Morris" | | 5 | "Police" | | 6 | "Rourke" |
| | places | | | globalScore | 0.094 | | windowScore | 0 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 97.65% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 1.024 | | wordCount | 977 | | matches | | 0 | "not at the body, but at the far corner of the station" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 95 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 27.14 | | std | 22.62 | | cv | 0.834 | | sampleLengths | | 0 | 95 | | 1 | 74 | | 2 | 14 | | 3 | 18 | | 4 | 9 | | 5 | 60 | | 6 | 65 | | 7 | 14 | | 8 | 49 | | 9 | 53 | | 10 | 12 | | 11 | 54 | | 12 | 20 | | 13 | 13 | | 14 | 27 | | 15 | 12 | | 16 | 5 | | 17 | 2 | | 18 | 22 | | 19 | 37 | | 20 | 5 | | 21 | 6 | | 22 | 46 | | 23 | 14 | | 24 | 7 | | 25 | 16 | | 26 | 11 | | 27 | 16 | | 28 | 49 | | 29 | 6 | | 30 | 16 | | 31 | 36 | | 32 | 50 | | 33 | 19 | | 34 | 14 | | 35 | 11 |
| |
| 92.43% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 82 | | matches | | 0 | "been marked" | | 1 | "was found" | | 2 | "been buried" | | 3 | "been *altered" |
| |
| 29.06% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 156 | | matches | | 0 | "was lingering" | | 1 | "was lying" | | 2 | "wasn’t saying" | | 3 | "was pointing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 95 | | ratio | 0.095 | | matches | | 0 | "Her boots—polished black leather, scuffed at the toes from years of wear—made little sound on the uneven floor, the sound swallowed by the hum of unseen pipes and the distant drip of water." | | 1 | "The case had been marked *high priority* the moment the body was found—an undercover cop, gutted like a fish, his uniform torn away to reveal the sigils carved into his ribs." | | 2 | "The man—DS Morris, her partner—had been dead for three days, but the rigor had set in too quickly, the decomposition stunted." | | 3 | "Eva had been digging into the same leads she had—occult circles, forbidden texts, the kind of things that made the Metropolitan Police’s higher-ups nervous." | | 4 | "Detective Rourke stood in the doorway, his face a mask of professional concern, though his eyes flickered with something else—distrust, maybe, or fear." | | 5 | "“Morris wasn’t just killed. He was *marked*. And not by some street gang or cult. These sigils—” she traced a finger over the carved lines on Morris’s ribs—“they’re not just symbols. They’re a *language*. And they’re pointing somewhere.”" | | 6 | "“I suspected. But this—” she gestured to the body—“this is different. This is *personal*.”" | | 7 | "The last case—the one that had gotten Morris killed—had been buried." | | 8 | "Eva was already moving, her satchel slung over her shoulder as she stepped closer to the rift in the wall—the one the Veil Compass was pointing to." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 807 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, brass-bound notebook." |
| | adverbCount | 26 | | adverbRatio | 0.0322180916976456 | | lyAdverbCount | 5 | | lyAdverbRatio | 0.006195786864931847 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 95 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 95 | | mean | 10.28 | | std | 7.79 | | cv | 0.758 | | sampleLengths | | 0 | 24 | | 1 | 33 | | 2 | 22 | | 3 | 8 | | 4 | 8 | | 5 | 23 | | 6 | 19 | | 7 | 15 | | 8 | 17 | | 9 | 7 | | 10 | 7 | | 11 | 14 | | 12 | 4 | | 13 | 9 | | 14 | 4 | | 15 | 6 | | 16 | 31 | | 17 | 19 | | 18 | 15 | | 19 | 21 | | 20 | 1 | | 21 | 18 | | 22 | 10 | | 23 | 14 | | 24 | 3 | | 25 | 4 | | 26 | 24 | | 27 | 6 | | 28 | 12 | | 29 | 19 | | 30 | 28 | | 31 | 3 | | 32 | 3 | | 33 | 12 | | 34 | 2 | | 35 | 23 | | 36 | 15 | | 37 | 14 | | 38 | 20 | | 39 | 3 | | 40 | 10 | | 41 | 8 | | 42 | 5 | | 43 | 7 | | 44 | 7 | | 45 | 12 | | 46 | 2 | | 47 | 3 | | 48 | 2 | | 49 | 10 |
| |
| 44.74% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.2631578947368421 | | totalSentences | 95 | | uniqueOpeners | 25 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 73 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 73 | | matches | | 0 | "Her boots—polished black leather, scuffed" | | 1 | "It was a place meant" | | 2 | "She tucked a curl of" | | 3 | "She didn’t look up as" | | 4 | "She knew why Eva was" | | 5 | "She crouched beside the body," | | 6 | "She didn’t have to." | | 7 | "She reached into her coat" | | 8 | "He was the senior investigator" | | 9 | "She knew Rourke was lying." | | 10 | "She wasn’t even *supposed* to" | | 11 | "She knew what Rourke wasn’t" | | 12 | "she traced a finger over" | | 13 | "she gestured to the body—“this" | | 14 | "He had to." | | 15 | "She had seen the way" | | 16 | "She had seen the way" | | 17 | "She turned back to the" | | 18 | "They were coordinates." | | 19 | "She didn’t have to." |
| | ratio | 0.288 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 73 | | matches | | 0 | "The abandoned Tube station beneath" | | 1 | "Her boots—polished black leather, scuffed" | | 2 | "The station’s name, *Camden Road*," | | 3 | "This wasn’t a place meant" | | 4 | "It was a place meant" | | 5 | "Eva Kowalski stood near the" | | 6 | "She tucked a curl of" | | 7 | "Eva’s satchel was slung over" | | 8 | "She didn’t look up as" | | 9 | "Eva said, her voice low" | | 10 | "Quinn exhaled through her nose," | | 11 | "Quinn’s sharp jaw tightened." | | 12 | "She knew why Eva was" | | 13 | "The case had been marked" | | 14 | "She crouched beside the body," | | 15 | "The man—DS Morris, her partner—had" | | 16 | "The coroner’s report would say" | | 17 | "The air here was thick" | | 18 | "Eva murmured, following her gaze" | | 19 | "Quinn didn’t answer." |
| | ratio | 0.932 | |
| 68.49% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 73 | | matches | | 0 | "Because she had been digging" |
| | ratio | 0.014 | |
| 99.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 33 | | technicalSentenceCount | 2 | | matches | | 0 | "Quinn exhaled through her nose, a sound that was equal parts frustration and amusement." | | 1 | "Eva had been digging into the same leads she had—occult circles, forbidden texts, the kind of things that made the Metropolitan Police’s higher-ups nervous." |
| |
| 34.09% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 2 | | matches | | 0 | "Eva said, her voice low" | | 1 | "Eva asked, her voice barely audible over the hum of the station" |
| |
| 66.67% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 2 | | fancyTags | | 0 | "Eva murmured (murmur)" | | 1 | "Rourke warned (warn)" |
| | dialogueSentences | 24 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.25 | | effectiveRatio | 0.167 | |