| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 93.13% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1455 | | totalAiIsmAdverbs | 2 | | 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) | |
| 3.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1455 | | totalAiIsms | 28 | | found | | | highlights | | 0 | "whisper" | | 1 | "pulsed" | | 2 | "warmth" | | 3 | "etched" | | 4 | "pulse" | | 5 | "loomed" | | 6 | "shimmered" | | 7 | "silence" | | 8 | "stomach" | | 9 | "searing" | | 10 | "could feel" | | 11 | "lurch" | | 12 | "glistening" | | 13 | "perfect" | | 14 | "wavered" | | 15 | "depths" | | 16 | "shattered" |
| |
| 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 | 168 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 168 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 168 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 32 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 37 | | markdownWords | 53 | | totalWords | 1443 | | ratio | 0.037 | | matches | | 0 | "thicker" | | 1 | "called" | | 2 | "Come on," | | 3 | "You know you want to." | | 4 | "shifted" | | 5 | "else" | | 6 | "run" | | 7 | "door" | | 8 | "leaning" | | 9 | "her" | | 10 | "waiting" | | 11 | "no" | | 12 | "alive" | | 13 | "smiling" | | 14 | "join" | | 15 | "warm" | | 16 | "You don’t belong here," | | 17 | "ripped" | | 18 | "mouth" | | 19 | "shuddered" | | 20 | "twitched" | | 21 | "it" | | 22 | "key" | | 23 | "hungry" | | 24 | "touching" | | 25 | "holding" | | 26 | "Run," | | 27 | "Just run." | | 28 | "Rory." | | 29 | "Eva." | | 30 | "Rory, it’s me. You have to come back." | | 31 | "reflection" | | 32 | "wavered" | | 33 | "feeling" | | 34 | "shattered" | | 35 | "unraveled" | | 36 | "watching" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1443 | | uniqueNames | 10 | | maxNameDensity | 1.25 | | worstName | "Aurora" | | maxWindowNameDensity | 3 | | worstWindowName | "Aurora" | | discoveredNames | | Richmond | 2 | | Park | 2 | | Carter | 1 | | Heartstone | 1 | | Fae | 1 | | Earth | 1 | | Eva | 3 | | Silas | 1 | | Aurora | 18 | | Silence | 1 |
| | persons | | 0 | "Carter" | | 1 | "Fae" | | 2 | "Eva" | | 3 | "Silas" | | 4 | "Aurora" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Silence" |
| | globalScore | 0.876 | | windowScore | 0.667 | |
| 64.77% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 88 | | glossingSentenceCount | 3 | | matches | | 0 | "something like iron and crushed petals, the" | | 1 | "as if sensing the same unease coiling in her gut" | | 2 | "as if trying to pull Aurora back" |
| |
| 61.40% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.386 | | wordCount | 1443 | | matches | | 0 | "not like heat, but like a veil just out of focus" | | 1 | "not striking, but *touching*, their leaves whispering against her skin like li" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 168 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 57 | | mean | 25.32 | | std | 25.54 | | cv | 1.009 | | sampleLengths | | 0 | 75 | | 1 | 88 | | 2 | 82 | | 3 | 45 | | 4 | 32 | | 5 | 50 | | 6 | 66 | | 7 | 3 | | 8 | 3 | | 9 | 78 | | 10 | 6 | | 11 | 43 | | 12 | 46 | | 13 | 20 | | 14 | 8 | | 15 | 6 | | 16 | 44 | | 17 | 56 | | 18 | 3 | | 19 | 63 | | 20 | 46 | | 21 | 11 | | 22 | 31 | | 23 | 5 | | 24 | 52 | | 25 | 2 | | 26 | 22 | | 27 | 59 | | 28 | 5 | | 29 | 4 | | 30 | 64 | | 31 | 44 | | 32 | 5 | | 33 | 7 | | 34 | 9 | | 35 | 2 | | 36 | 11 | | 37 | 1 | | 38 | 13 | | 39 | 1 | | 40 | 15 | | 41 | 2 | | 42 | 13 | | 43 | 4 | | 44 | 4 | | 45 | 43 | | 46 | 5 | | 47 | 30 | | 48 | 49 | | 49 | 2 |
| |
| 92.73% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 6 | | totalSentences | 168 | | matches | | 0 | "been carved" | | 1 | "being torn" | | 2 | "was gone" | | 3 | "was gone" | | 4 | "was gone" | | 5 | "was torn" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 10 | | totalVerbs | 246 | | matches | | 0 | "was drowning" | | 1 | "was standing" | | 2 | "was *waiting" | | 3 | "was watching" | | 4 | "wasn’t just watching" | | 5 | "was holding" | | 6 | "was happening" | | 7 | "were *holding" | | 8 | "was standing" | | 9 | "was *watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 1 | | flaggedSentences | 15 | | totalSentences | 168 | | ratio | 0.089 | | matches | | 0 | "The air in Richmond Park was thick with the scent of damp earth and something older—something like iron and crushed petals, the faintest whisper of decay beneath the bloom of wildflowers." | | 1 | "But the moment she stepped past the standing stones—those gnarled oaks with their bark etched like old runes—she knew something was wrong." | | 2 | "The night wasn’t just darker here; it was *thicker*, as if the air itself resisted the light." | | 3 | "She’d seen that in the pendant’s glow—the way the grove existed in the cracks between worlds, where the Fae touched Earth." | | 4 | "And someone—or something—had broken them." | | 5 | "The ground beneath her feet wasn’t earth anymore—it was something softer, spongier, like moss but alive, pulsing faintly beneath her soles." | | 6 | "Now it was rich and damp, like a forest floor after rain, but underneath that was something else—something metallic and sweet, like blood and honey." | | 7 | "Her heel caught on something—root?" | | 8 | "Stone?—and she nearly fell." | | 9 | "And then she saw it—the thing’s face." | | 10 | "Some—" | | 11 | "And then the thing—*it*—moved." | | 12 | "She could see the other side—the real world, the park, the safety of the night beyond the grove—but she couldn’t reach it." | | 13 | "And then—" | | 14 | "And then—" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1456 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 50 | | adverbRatio | 0.034340659340659344 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.004120879120879121 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 168 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 168 | | mean | 8.59 | | std | 7.1 | | cv | 0.827 | | sampleLengths | | 0 | 31 | | 1 | 22 | | 2 | 16 | | 3 | 4 | | 4 | 2 | | 5 | 26 | | 6 | 22 | | 7 | 4 | | 8 | 17 | | 9 | 11 | | 10 | 8 | | 11 | 6 | | 12 | 8 | | 13 | 15 | | 14 | 9 | | 15 | 21 | | 16 | 10 | | 17 | 8 | | 18 | 5 | | 19 | 4 | | 20 | 2 | | 21 | 24 | | 22 | 3 | | 23 | 12 | | 24 | 22 | | 25 | 2 | | 26 | 2 | | 27 | 6 | | 28 | 4 | | 29 | 14 | | 30 | 13 | | 31 | 6 | | 32 | 13 | | 33 | 7 | | 34 | 20 | | 35 | 16 | | 36 | 2 | | 37 | 10 | | 38 | 6 | | 39 | 5 | | 40 | 3 | | 41 | 3 | | 42 | 8 | | 43 | 20 | | 44 | 21 | | 45 | 4 | | 46 | 25 | | 47 | 3 | | 48 | 3 | | 49 | 6 |
| |
| 36.31% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 23 | | diversityRatio | 0.21428571428571427 | | totalSentences | 168 | | uniqueOpeners | 36 | |
| 46.95% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 142 | | matches | | 0 | "Just the grove, holding its" | | 1 | "Bright blue eyes." |
| | ratio | 0.014 | |
| 90.42% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 46 | | totalSentences | 142 | | matches | | 0 | "She hadn’t expected this." | | 1 | "She’d come to the grove" | | 2 | "Her breath fogged in the" | | 3 | "It clung, curling around her" | | 4 | "She told herself it was" | | 5 | "She’d seen that in the" | | 6 | "It was a threshold, and" | | 7 | "She should’ve brought Eva." | | 8 | "She’d left it in the" | | 9 | "She turned left, following the" | | 10 | "*You know you want to.*" | | 11 | "She stepped through." | | 12 | "She wasn’t alone." | | 13 | "It came from the darkness" | | 14 | "She should turn back." | | 15 | "She should *run*." | | 16 | "It was a *door*, and" | | 17 | "She forced herself to look" | | 18 | "They were *leaning*." | | 19 | "Its limbs were too long," |
| | ratio | 0.324 | |
| 90.28% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 105 | | totalSentences | 142 | | matches | | 0 | "The air in Richmond Park" | | 1 | "Aurora Carter adjusted the strap" | | 2 | "The pendant pulsed once, just" | | 3 | "She hadn’t expected this." | | 4 | "She’d come to the grove" | | 5 | "The world had shifted." | | 6 | "The night wasn’t just darker" | | 7 | "Her breath fogged in the" | | 8 | "It clung, curling around her" | | 9 | "Aurora’s pulse hammered in her" | | 10 | "She told herself it was" | | 11 | "The trees here were ancient," | | 12 | "Some of them weren’t trees" | | 13 | "She’d seen that in the" | | 14 | "It was a threshold, and" | | 15 | "She should’ve brought Eva." | | 16 | "Aurora’s phone was dead." | | 17 | "She’d left it in the" | | 18 | "She turned left, following the" | | 19 | "The stones loomed ahead, their" |
| | ratio | 0.739 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 142 | | matches | | 0 | "Because the pendant had *called*" | | 1 | "Now, the only sound was" | | 2 | "Now it was rich and" |
| | ratio | 0.021 | |
| 32.97% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 8 | | matches | | 0 | "The stones loomed ahead, their surfaces smooth despite their age, as if they’d been carved by something patient and deliberate." | | 1 | "Its limbs were too long, its joints bending in ways that made her stomach clench." | | 2 | "The pendant burned against her skin, its warmth searing now, like she was holding a brand." | | 3 | "The pendant pulsed in her chest, a rhythm that matched the beating of her heart." | | 4 | "It came forward, its limbs bending in ways that made her eyes cross, its mouth opening wider, wider, until the air itself seemed to recoil from the darkness ins…" | | 5 | "The pendant burned, its pulse frantic now, its glow bleeding through the fabric of her shirt, casting eerie shadows on the ground." | | 6 | "A perfect, flickering reflection of her best friend, standing in the grove, her hands outstretched as if trying to pull Aurora back." | | 7 | "She fell to her knees, her hands pressing against her chest, her fingers coming away slick with something dark and warm." |
| |
| 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 | |