| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 96.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1389 | | 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) | |
| 56.80% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1389 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "tracing" | | 1 | "scanned" | | 2 | "glint" | | 3 | "glinting" | | 4 | "flickered" | | 5 | "chill" | | 6 | "stomach" | | 7 | "warmth" | | 8 | "comforting" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 139 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 139 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 139 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1383 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 95.77% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 1383 | | uniqueNames | 15 | | maxNameDensity | 1.08 | | worstName | "Quinn" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Quinn" | | discoveredNames | | Quinn | 15 | | Soho | 3 | | Metropolitan | 1 | | Police | 1 | | Herrera | 5 | | Saint | 1 | | Christopher | 1 | | Camden | 2 | | Tube | 1 | | London | 1 | | Veil | 2 | | Market | 2 | | Morris | 2 | | Tomás | 3 | | Eighteen | 3 |
| | persons | | 0 | "Quinn" | | 1 | "Police" | | 2 | "Herrera" | | 3 | "Saint" | | 4 | "Christopher" | | 5 | "Camden" | | 6 | "Market" | | 7 | "Morris" | | 8 | "Tomás" |
| | places | | 0 | "Soho" | | 1 | "Metropolitan" | | 2 | "London" |
| | globalScore | 0.958 | | windowScore | 1 | |
| 62.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 86 | | glossingSentenceCount | 3 | | matches | | 0 | "shadows that seemed to stretch toward her" | | 1 | "sounded like breaking glass" | | 2 | "felt like holding a live wire" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1383 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 139 | | matches | (empty) | |
| 99.56% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 20 | | mean | 69.15 | | std | 34.47 | | cv | 0.498 | | sampleLengths | | 0 | 125 | | 1 | 145 | | 2 | 81 | | 3 | 85 | | 4 | 75 | | 5 | 82 | | 6 | 86 | | 7 | 53 | | 8 | 69 | | 9 | 116 | | 10 | 9 | | 11 | 93 | | 12 | 42 | | 13 | 83 | | 14 | 44 | | 15 | 29 | | 16 | 42 | | 17 | 34 | | 18 | 68 | | 19 | 22 |
| |
| 82.54% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 9 | | totalSentences | 139 | | matches | | 0 | "was plastered" | | 1 | "was spooked" | | 2 | "were gone" | | 3 | "was gone" | | 4 | "been shot" | | 5 | "been stabbed" | | 6 | "was embedded" | | 7 | "was made" | | 8 | "was forgotten" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 239 | | matches | | 0 | "was heading" | | 1 | "was going" | | 2 | "wasn’t just running" |
| |
| 19.53% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 2 | | flaggedSentences | 6 | | totalSentences | 139 | | ratio | 0.043 | | matches | | 0 | "She didn’t run; she never ran." | | 1 | "She could hear him now—a sharp intake of breath, the heavy slap of wet sneakers against pavement, the rustle of a nylon jacket." | | 2 | "He wasn’t just running; he was going home." | | 3 | "The clique she’d been tracking—the same group Herrera was embedded in—had been whispering about rituals, about boundaries thinning, about things that crawled out of the cracks when the moon was full." | | 4 | "But she’d seen Herrera drop it when he’d jumped the fence—a casual flick of his wrist, the way a magician misdirects." | | 5 | "Eyes—some human, some not—fixed on her." |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1400 | | adjectiveStacks | 2 | | stackExamples | | 0 | "short curly dark hair" | | 1 | "damp, cold against her" |
| | adverbCount | 33 | | adverbRatio | 0.023571428571428573 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.007142857142857143 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 139 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 139 | | mean | 9.95 | | std | 7.32 | | cv | 0.736 | | sampleLengths | | 0 | 10 | | 1 | 25 | | 2 | 6 | | 3 | 19 | | 4 | 15 | | 5 | 24 | | 6 | 26 | | 7 | 3 | | 8 | 23 | | 9 | 2 | | 10 | 26 | | 11 | 9 | | 12 | 21 | | 13 | 29 | | 14 | 18 | | 15 | 14 | | 16 | 4 | | 17 | 21 | | 18 | 16 | | 19 | 18 | | 20 | 5 | | 21 | 17 | | 22 | 16 | | 23 | 16 | | 24 | 10 | | 25 | 2 | | 26 | 15 | | 27 | 8 | | 28 | 11 | | 29 | 5 | | 30 | 2 | | 31 | 15 | | 32 | 12 | | 33 | 4 | | 34 | 21 | | 35 | 15 | | 36 | 3 | | 37 | 5 | | 38 | 5 | | 39 | 16 | | 40 | 6 | | 41 | 23 | | 42 | 6 | | 43 | 12 | | 44 | 4 | | 45 | 10 | | 46 | 3 | | 47 | 6 | | 48 | 11 | | 49 | 13 |
| |
| 29.14% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 29 | | diversityRatio | 0.2733812949640288 | | totalSentences | 139 | | uniqueOpeners | 38 | |
| 25.45% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 131 | | matches | | 0 | "Instead, she thought of Morris." |
| | ratio | 0.008 | |
| 33.74% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 61 | | totalSentences | 131 | | matches | | 0 | "She didn’t run; she never" | | 1 | "Her closely cropped salt-and-pepper hair" | | 2 | "Her brown eyes missed nothing:" | | 3 | "She was close." | | 4 | "She could hear him now—a" | | 5 | "He was moving fast, but" | | 6 | "He favored his right leg" | | 7 | "She’d seen the injury herself" | | 8 | "He wore his Saint Christopher" | | 9 | "She vaulted the fence with" | | 10 | "She rose instantly, checking the" | | 11 | "He was heading north, away" | | 12 | "It fell in thick, cold" | | 13 | "She counted twelve steps before" | | 14 | "She paused, her breath fogging" | | 15 | "Her hand drifted to the" | | 16 | "She hadn’t needed it tonight." | | 17 | "She knew what it was." | | 18 | "They called it the Veil" | | 19 | "It moved with the moon," |
| | ratio | 0.466 | |
| 28.70% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 113 | | totalSentences | 131 | | matches | | 0 | "Rain drummed against the asphalt" | | 1 | "Harlow Quinn adjusted her grip" | | 2 | "She didn’t run; she never" | | 3 | "Quinn moved with military precision," | | 4 | "Her closely cropped salt-and-pepper hair" | | 5 | "Her brown eyes missed nothing:" | | 6 | "She was close." | | 7 | "She could hear him now—a" | | 8 | "The former NHS paramedic who" | | 9 | "He was moving fast, but" | | 10 | "He favored his right leg" | | 11 | "She’d seen the injury herself" | | 12 | "He wore his Saint Christopher" | | 13 | "Tonight, it was bouncing against" | | 14 | "Quinn didn’t break stride." | | 15 | "She vaulted the fence with" | | 16 | "She rose instantly, checking the" | | 17 | "He was heading north, away" | | 18 | "The rain hadn’t let up." | | 19 | "It fell in thick, cold" |
| | ratio | 0.863 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 131 | | matches | | 0 | "Now, it was alive." | | 1 | "Now, standing at the edge" | | 2 | "Now, she knelt." |
| | ratio | 0.023 | |
| 93.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 58 | | technicalSentenceCount | 4 | | matches | | 0 | "The fluorescent light overhead flickered, casting long, jagged shadows that seemed to stretch toward her." | | 1 | "The stairwell opened into a cavernous space that had once been an abandoned Tube station." | | 2 | "Banned alchemical substances that could cure or corrupt depending on the drop." | | 3 | "The clique she’d been tracking—the same group Herrera was embedded in—had been whispering about rituals, about boundaries thinning, about things that crawled ou…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |