| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 33 | | tagDensity | 0.394 | | leniency | 0.788 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 85.13% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1009 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "tightly" | | 1 | "very" | | 2 | "slowly" |
| |
| 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) | |
| 30.62% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1009 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "churn" | | 1 | "footfall" | | 2 | "silence" | | 3 | "comforting" | | 4 | "warmth" | | 5 | "pulse" | | 6 | "scanned" | | 7 | "fractured" | | 8 | "chill" | | 9 | "whisper" | | 10 | "footsteps" | | 11 | "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 | 50 | | matches | (empty) | |
| 57.14% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 50 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 69 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1000 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 86.71% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 21 | | wordCount | 711 | | uniqueNames | 7 | | maxNameDensity | 1.27 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 9 | | London | 1 | | Heartstone | 1 | | Hel | 1 | | Wardens | 1 | | Nyx | 7 | | Fae | 1 |
| | persons | | | places | | | globalScore | 0.867 | | windowScore | 1 | |
| 18.42% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 38 | | glossingSentenceCount | 2 | | matches | | 0 | "petals that seemed to drink the light and hold it" | | 1 | "glow that seemed to seep from the air itself, the colour of late afternoon held permanently in amber" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 1 | | wordCount | 1000 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 69 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 30.3 | | std | 20.95 | | cv | 0.691 | | sampleLengths | | 0 | 43 | | 1 | 49 | | 2 | 40 | | 3 | 5 | | 4 | 53 | | 5 | 23 | | 6 | 50 | | 7 | 8 | | 8 | 2 | | 9 | 75 | | 10 | 17 | | 11 | 51 | | 12 | 17 | | 13 | 13 | | 14 | 66 | | 15 | 14 | | 16 | 4 | | 17 | 6 | | 18 | 58 | | 19 | 10 | | 20 | 20 | | 21 | 26 | | 22 | 65 | | 23 | 8 | | 24 | 61 | | 25 | 24 | | 26 | 17 | | 27 | 49 | | 28 | 26 | | 29 | 9 | | 30 | 29 | | 31 | 38 | | 32 | 24 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 50 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 138 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 1 | | flaggedSentences | 9 | | totalSentences | 69 | | ratio | 0.13 | | matches | | 0 | "The standing stones came into view before anything else made sense—great slabs of weathered oak rising from the bracken like the ribs of some buried beast, each one taller than a man and ringed with moss that glowed faint green at its roots." | | 1 | "Behind her, London hummed—traffic, sirens, the distant churn of a city that never quite slept—and then, between one footfall and the next, silence swallowed it whole." | | 2 | "Wildflowers carpeted the ground in colours Rory had no names for—violets that shaded into gold at their edges, blooms the deep crimson of arterial blood, petals that seemed to drink the light and hold it." | | 3 | "There was no sun—Rory looked and found none, only a diffuse glow that seemed to seep from the air itself, the colour of late afternoon held permanently in amber." | | 4 | "When she opened her fingers, the water didn't fall—it lifted, breaking into beads that drifted upward and vanished into the canopy like reversed rain." | | 5 | "The Fae blade sat sheathed at her hip, and as they crossed the stream it warmed against her thigh—no, the opposite." | | 6 | "The clearing held a tree unlike the rest—an oak so vast its trunk could have housed her flat three times over, bark gnarled into faces that shifted when she looked away and stilled when she looked back." | | 7 | "Lanterns hung from its lower branches, though no flame burned inside them; they held captured light, pale and lavender, swaying though no wind moved." | | 8 | "A footstep sounded behind her—except there were no footsteps." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 721 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.038834951456310676 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.012482662968099861 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 69 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 69 | | mean | 14.49 | | std | 9.73 | | cv | 0.672 | | sampleLengths | | 0 | 43 | | 1 | 12 | | 2 | 16 | | 3 | 21 | | 4 | 30 | | 5 | 10 | | 6 | 5 | | 7 | 4 | | 8 | 26 | | 9 | 2 | | 10 | 21 | | 11 | 11 | | 12 | 12 | | 13 | 10 | | 14 | 12 | | 15 | 15 | | 16 | 13 | | 17 | 8 | | 18 | 2 | | 19 | 14 | | 20 | 35 | | 21 | 26 | | 22 | 9 | | 23 | 8 | | 24 | 7 | | 25 | 19 | | 26 | 25 | | 27 | 2 | | 28 | 8 | | 29 | 7 | | 30 | 13 | | 31 | 5 | | 32 | 29 | | 33 | 32 | | 34 | 8 | | 35 | 6 | | 36 | 4 | | 37 | 6 | | 38 | 25 | | 39 | 6 | | 40 | 3 | | 41 | 24 | | 42 | 10 | | 43 | 12 | | 44 | 8 | | 45 | 26 | | 46 | 21 | | 47 | 17 | | 48 | 27 | | 49 | 8 |
| |
| 89.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 0 | | diversityRatio | 0.5362318840579711 | | totalSentences | 69 | | uniqueOpeners | 37 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 47 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 10 | | totalSentences | 47 | | matches | | 0 | "She pulled the Heartstone pendant" | | 1 | "It sat dark and quiet" | | 2 | "She crouched, watching a second" | | 3 | "Their violet eyes scanned the" | | 4 | "It weighed nothing." | | 5 | "She wiped her dry palm" | | 6 | "It went colder, cold enough" | | 7 | "She rested her hand on" | | 8 | "They turned, and for the" | | 9 | "She drew a breath that" |
| | ratio | 0.213 | |
| 34.47% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 40 | | totalSentences | 47 | | matches | | 0 | "The standing stones came into" | | 1 | "Rory pressed her palm against" | | 2 | "The bark hummed beneath her" | | 3 | "Nyx slid between two stones," | | 4 | "Rory stepped through after them." | | 5 | "The cold dropped away." | | 6 | "The gap between the stones" | | 7 | "Nyx caught her wrist before" | | 8 | "She pulled the Heartstone pendant" | | 9 | "It sat dark and quiet" | | 10 | "Whatever this place was, it" | | 11 | "The grove opened wider than" | | 12 | "Wildflowers carpeted the ground in" | | 13 | "She crouched, watching a second" | | 14 | "Nyx hadn't slowed" | | 15 | "Their violet eyes scanned the" | | 16 | "A chill walked the length" | | 17 | "Birdsong threaded through the trees," | | 18 | "Nyx's whisper barely carried" | | 19 | "A stream cut across their" |
| | ratio | 0.851 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 47 | | matches | (empty) | | ratio | 0 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 24 | | technicalSentenceCount | 3 | | matches | | 0 | "The standing stones came into view before anything else made sense—great slabs of weathered oak rising from the bracken like the ribs of some buried beast, each…" | | 1 | "Wildflowers carpeted the ground in colours Rory had no names for—violets that shaded into gold at their edges, blooms the deep crimson of arterial blood, petals…" | | 2 | "There was no sun—Rory looked and found none, only a diffuse glow that seemed to seep from the air itself, the colour of late afternoon held permanently in amber…" |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "Nyx had, their form flickering at the edges" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 33 | | tagDensity | 0.03 | | leniency | 0.061 | | rawRatio | 1 | | effectiveRatio | 0.061 | |