| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.769 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.55% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1448 | | 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) | |
| 10.22% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1448 | | totalAiIsms | 26 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | word | "down her spine" | | count | 1 |
| | 11 | | | 12 | | | 13 | | | 14 | | | 15 | |
| | highlights | | 0 | "chill" | | 1 | "pulsed" | | 2 | "warmth" | | 3 | "scanning" | | 4 | "silence" | | 5 | "lurching" | | 6 | "perfect" | | 7 | "weight" | | 8 | "whisper" | | 9 | "flickered" | | 10 | "down her spine" | | 11 | "resolving" | | 12 | "pulse" | | 13 | "synchronized" | | 14 | "racing" | | 15 | "throbbed" |
| |
| 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 | 1 | | narrationSentences | 127 | | matches | | |
| 75.37% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 3 | | narrationSentences | 127 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 130 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 17 | | totalWords | 1432 | | ratio | 0.012 | | matches | | 0 | "Time runs differently here. You must leave before midnight." | | 1 | "Return when you remember who you are, Malphora." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 12 | | unquotedAttributions | 0 | | matches | (empty) | |
| 74.30% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 1387 | | uniqueNames | 14 | | maxNameDensity | 1.51 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 21 | | Park | 2 | | Eva | 2 | | Heartstone | 5 | | Fae | 1 | | Grove | 1 | | Cardiff | 2 | | November | 1 | | Yu-Fei | 1 | | London | 1 | | Evan | 1 | | Malphora | 2 | | English | 1 | | Richmond | 2 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Heartstone" | | 3 | "Yu-Fei" | | 4 | "Evan" |
| | places | | 0 | "Park" | | 1 | "Fae" | | 2 | "Grove" | | 3 | "Cardiff" | | 4 | "November" | | 5 | "London" | | 6 | "Malphora" | | 7 | "Richmond" |
| | globalScore | 0.743 | | windowScore | 0.833 | |
| 50.99% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 101 | | glossingSentenceCount | 4 | | matches | | 0 | "as if responding to her words" | | 1 | "as if moving through gelatin" | | 2 | "seemed feeble barely penetrating the unnatural darkness" | | 3 | "as if running underwater" |
| |
| 60.34% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.397 | | wordCount | 1432 | | matches | | 0 | "Not humid, but viscous, as if moving through gelatin" | | 1 | "not words, but a sound like dry leaves skittering across pavement" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 130 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 62 | | mean | 23.1 | | std | 12.95 | | cv | 0.561 | | sampleLengths | | 0 | 53 | | 1 | 29 | | 2 | 44 | | 3 | 44 | | 4 | 5 | | 5 | 29 | | 6 | 19 | | 7 | 39 | | 8 | 8 | | 9 | 29 | | 10 | 41 | | 11 | 16 | | 12 | 48 | | 13 | 29 | | 14 | 5 | | 15 | 16 | | 16 | 26 | | 17 | 21 | | 18 | 9 | | 19 | 9 | | 20 | 17 | | 21 | 57 | | 22 | 33 | | 23 | 29 | | 24 | 19 | | 25 | 8 | | 26 | 33 | | 27 | 12 | | 28 | 14 | | 29 | 28 | | 30 | 13 | | 31 | 33 | | 32 | 26 | | 33 | 34 | | 34 | 43 | | 35 | 5 | | 36 | 12 | | 37 | 5 | | 38 | 27 | | 39 | 18 | | 40 | 17 | | 41 | 30 | | 42 | 9 | | 43 | 6 | | 44 | 2 | | 45 | 27 | | 46 | 33 | | 47 | 14 | | 48 | 30 | | 49 | 2 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 127 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 252 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 1 | | flaggedSentences | 15 | | totalSentences | 130 | | ratio | 0.115 | | matches | | 0 | "She'd come because of the dreams—three nights of the same vision." | | 1 | "The city sounds—distant traffic, sirens, the low hum of urban life—faded with each step until all she could hear was her own breathing and the soft rustle of wind through leaves." | | 2 | "Wildflowers carpeted the ground, their pale blooms luminous in the darkness—wildflowers in November." | | 3 | "She checked her watch—11:47 PM." | | 4 | "She had work in the morning; Yu-Fei would kill her if she was late for deliveries again." | | 5 | "Nothing answered but silence—a silence too complete to be natural." | | 6 | "The rational part of her brain—the part her father had cultivated through years of logical debate over dinner tables—insisted she turn around, leave the grove, and never return." | | 7 | "But the part of her that had followed Eva's cryptic message to London, the part that had accepted the reality of things that shouldn't exist—that part urged her forward." | | 8 | "As Rory reached for it, a whisper drifted through the clearing—not words, but a sound like dry leaves skittering across pavement." | | 9 | "Something darted between two oaks—a flash of movement too quick to identify." | | 10 | "Her crescent-shaped scar itched beneath her sleeve—an old tell of rising panic she thought she'd overcome." | | 11 | "A name caught her eye—Malphora." | | 12 | "Shapes materialized at the edge of the clearing—tall, slender figures silhouetted against the deeper darkness of the trees." | | 13 | "City sounds rushed in—a distant siren, the rumble of a late-night flight overhead, wind in the trees." | | 14 | "But as Rory pushed herself to her feet, she noticed something clutched in her left hand—a single page torn from a book, covered in elegant script." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1409 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small leather-bound book" |
| | adverbCount | 41 | | adverbRatio | 0.029098651525904896 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.008516678495386799 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 130 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 130 | | mean | 11.02 | | std | 6.28 | | cv | 0.57 | | sampleLengths | | 0 | 16 | | 1 | 21 | | 2 | 16 | | 3 | 14 | | 4 | 15 | | 5 | 11 | | 6 | 2 | | 7 | 3 | | 8 | 14 | | 9 | 14 | | 10 | 13 | | 11 | 31 | | 12 | 5 | | 13 | 5 | | 14 | 13 | | 15 | 11 | | 16 | 8 | | 17 | 11 | | 18 | 8 | | 19 | 18 | | 20 | 13 | | 21 | 8 | | 22 | 10 | | 23 | 4 | | 24 | 15 | | 25 | 14 | | 26 | 27 | | 27 | 16 | | 28 | 5 | | 29 | 17 | | 30 | 26 | | 31 | 9 | | 32 | 9 | | 33 | 3 | | 34 | 8 | | 35 | 5 | | 36 | 6 | | 37 | 10 | | 38 | 10 | | 39 | 2 | | 40 | 3 | | 41 | 11 | | 42 | 5 | | 43 | 16 | | 44 | 9 | | 45 | 9 | | 46 | 17 | | 47 | 28 | | 48 | 29 | | 49 | 7 |
| |
| 53.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.3769230769230769 | | totalSentences | 130 | | uniqueOpeners | 49 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 118 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 118 | | matches | | 0 | "She'd come because of the" | | 1 | "she called, immediately regretting breaking" | | 2 | "Her voice sounded flat, absorbed" | | 3 | "She shook her head." | | 4 | "she muttered, using her surname" | | 5 | "She checked her watch—11:47 PM." | | 6 | "She had work in the" | | 7 | "She wanted to remove it," | | 8 | "She turned back to the" | | 9 | "she said, her voice sounding" | | 10 | "She snatched her hand back," | | 11 | "Her voice emerged stronger this" | | 12 | "She swept it around the" | | 13 | "she lied, backing toward the" | | 14 | "She winced, pulling it away" | | 15 | "Its glow had intensified, casting" | | 16 | "Her crescent-shaped scar itched beneath" | | 17 | "You must leave before midnight.*" | | 18 | "She slammed the book shut," | | 19 | "They moved with unnatural grace," |
| | ratio | 0.212 | |
| 53.22% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 96 | | totalSentences | 118 | | matches | | 0 | "The pendant grew warm against" | | 1 | "Richmond Park had closed hours" | | 2 | "Shadows pooled beneath the trees," | | 3 | "Rory whispered to herself, her" | | 4 | "The Heartstone pulsed against her" | | 5 | "She'd come because of the" | | 6 | "The standing stones." | | 7 | "A voice telling her the" | | 8 | "The city sounds—distant traffic, sirens," | | 9 | "Rory stopped, scanning the darkness." | | 10 | "Wildflowers carpeted the ground, their" | | 11 | "The wrongness of it prickled" | | 12 | "she called, immediately regretting breaking" | | 13 | "Her voice sounded flat, absorbed" | | 14 | "The pendant's warmth intensified, bordering" | | 15 | "Rory pulled it out from" | | 16 | "The silver chain caught the" | | 17 | "Something moved at the edge" | | 18 | "Rory spun, heart lurching, but" | | 19 | "She shook her head." |
| | ratio | 0.814 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 118 | | matches | (empty) | | ratio | 0 | |
| 63.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 63 | | technicalSentenceCount | 7 | | matches | | 0 | "The Heartstone pulsed against her collarbone, its warmth intensifying as if responding to her words." | | 1 | "At its center stood a flat stone that might have been an altar or table, its surface carved with spiraling patterns too regular to be natural erosion." | | 2 | "The Heartstone tugged, a sudden, impossible weight pulling at her neck, drawing her toward the stone." | | 3 | "But the part of her that had followed Eva's cryptic message to London, the part that had accepted the reality of things that shouldn't exist—that part urged her…" | | 4 | "The book on the altar fell open of its own accord, pages flipping as if caught in a strong breeze before settling." | | 5 | "The touch came again at her shoulder, a feather-light caress that sent revulsion crawling down her spine." | | 6 | "The air thickened further, her movements becoming sluggish as if running underwater." |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 2 | | matches | | 0 | "Rory whispered, her breath clouding in the unseasonable chill" | | 1 | "Rory said, her voice tight with fear" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 5 | | fancyTags | | 0 | "Rory whispered (whisper)" | | 1 | "she muttered (mutter)" | | 2 | "she lied (lie)" | | 3 | "Rory demanded (demand)" | | 4 | "Rory shouted (shout)" |
| | dialogueSentences | 13 | | tagDensity | 0.615 | | leniency | 1 | | rawRatio | 0.625 | | effectiveRatio | 0.625 | |