| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 38 | | tagDensity | 0.395 | | leniency | 0.789 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 96.22% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1324 | | 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) | |
| 24.47% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1324 | | totalAiIsms | 20 | | found | | | highlights | | 0 | "chill" | | 1 | "etched" | | 2 | "pulsed" | | 3 | "stomach" | | 4 | "perfect" | | 5 | "shimmered" | | 6 | "whisper" | | 7 | "pulse" | | 8 | "unraveling" | | 9 | "silence" | | 10 | "weight" | | 11 | "velvet" | | 12 | "flicked" | | 13 | "echoed" | | 14 | "warmth" | | 15 | "glistening" |
| |
| 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 | 147 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 147 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 170 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 22 | | markdownWords | 22 | | totalWords | 1307 | | ratio | 0.017 | | matches | | 0 | "is" | | 1 | "around" | | 2 | "taste" | | 3 | "wanted" | | 4 | "perfect" | | 5 | "hell" | | 6 | "shimmered" | | 7 | "Hel" | | 8 | "wrong" | | 9 | "snapped" | | 10 | "Alive" | | 11 | "pulsed" | | 12 | "moved" | | 13 | "Moved" | | 14 | "dream" | | 15 | "tilted" | | 16 | "delicious" | | 17 | "ripped" | | 18 | "dissolving" | | 19 | "Now" | | 20 | "wrong" | | 21 | "smiling" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 35.88% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 64 | | wordCount | 1183 | | uniqueNames | 10 | | maxNameDensity | 2.28 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Carter | 1 | | Fae-forged | 1 | | Rory | 27 | | Nyx | 11 | | Isolde | 13 | | Ahead | 1 | | Half-Fae | 1 | | Heartstone | 3 | | Belphegor | 3 | | Fae | 3 |
| | persons | | 0 | "Carter" | | 1 | "Rory" | | 2 | "Nyx" | | 3 | "Isolde" | | 4 | "Belphegor" |
| | places | | | globalScore | 0.359 | | windowScore | 0.5 | |
| 89.76% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 83 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like roasting meat" | | 1 | "smelled like fire and iron" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.765 | | wordCount | 1307 | | matches | | 0 | "not violently, but as if they *wanted* to let her pass" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 170 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 58 | | mean | 22.53 | | std | 23.19 | | cv | 1.029 | | sampleLengths | | 0 | 12 | | 1 | 111 | | 2 | 7 | | 3 | 7 | | 4 | 61 | | 5 | 19 | | 6 | 30 | | 7 | 92 | | 8 | 10 | | 9 | 5 | | 10 | 8 | | 11 | 64 | | 12 | 47 | | 13 | 24 | | 14 | 51 | | 15 | 14 | | 16 | 4 | | 17 | 58 | | 18 | 7 | | 19 | 18 | | 20 | 6 | | 21 | 27 | | 22 | 8 | | 23 | 35 | | 24 | 12 | | 25 | 6 | | 26 | 8 | | 27 | 50 | | 28 | 4 | | 29 | 4 | | 30 | 8 | | 31 | 9 | | 32 | 60 | | 33 | 8 | | 34 | 7 | | 35 | 7 | | 36 | 54 | | 37 | 6 | | 38 | 44 | | 39 | 2 | | 40 | 38 | | 41 | 8 | | 42 | 34 | | 43 | 21 | | 44 | 14 | | 45 | 14 | | 46 | 9 | | 47 | 3 | | 48 | 35 | | 49 | 1 |
| |
| 98.10% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 147 | | matches | | 0 | "was gone" | | 1 | "been meant" | | 2 | "been, stood" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 241 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 170 | | ratio | 0.094 | | matches | | 0 | "The scent was rich—earth and damp moss, but beneath it, something sweet and cloying, like overripe fruit left too long in the sun." | | 1 | "Isolde glided ahead, her silver hair catching the dappled light that filtered through the canopy of ancient oaks, though the trees here were wrong—too tall, their leaves too broad, their bark etched with symbols that made Rory’s eyes ache if she stared too long." | | 2 | "“You invited us,” they murmured, though Rory knew better—Isolde had brought them here, not the other way around." | | 3 | "Not underfoot—*around* them." | | 4 | "Not sunlight—something warmer, richer, like the glow of a forge seen through smoke." | | 5 | "Instead, she reached out, and the trees parted for her—not violently, but as if they *wanted* to let her pass." | | 6 | "Not a feast—just a single platter, heaped with roasted meats, fruits so ripe they glistened, bread still steaming." | | 7 | "The meat smelled incredible—smoky, spiced, *perfect*." | | 8 | "She reached out—" | | 9 | "The wind shifted, carrying a new scent—burnt sugar, copper, something *wrong*." | | 10 | "She could see it now—the distortion, a rippling in the air like heat off pavement, but wrong." | | 11 | "A sound cut through the silence—a laugh, rich and deep, like gravel shifting in a riverbed." | | 12 | "Their branches twisted, forming shapes—faces, hands, things that weren’t quite right." | | 13 | "Not from stories—from *dream*s." | | 14 | "Rory lunged, but Nyx was already gone—vanished into the darkness, their shadow stretching, twisting, *dissolving*." | | 15 | "She turned—and froze." |
| |
| 97.81% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1200 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 51 | | adverbRatio | 0.0425 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.009166666666666667 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 170 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 170 | | mean | 7.69 | | std | 5.74 | | cv | 0.746 | | sampleLengths | | 0 | 12 | | 1 | 11 | | 2 | 23 | | 3 | 18 | | 4 | 15 | | 5 | 44 | | 6 | 7 | | 7 | 7 | | 8 | 17 | | 9 | 9 | | 10 | 13 | | 11 | 11 | | 12 | 5 | | 13 | 6 | | 14 | 3 | | 15 | 8 | | 16 | 8 | | 17 | 12 | | 18 | 18 | | 19 | 6 | | 20 | 3 | | 21 | 12 | | 22 | 17 | | 23 | 3 | | 24 | 4 | | 25 | 21 | | 26 | 7 | | 27 | 14 | | 28 | 5 | | 29 | 8 | | 30 | 2 | | 31 | 3 | | 32 | 2 | | 33 | 5 | | 34 | 3 | | 35 | 11 | | 36 | 13 | | 37 | 7 | | 38 | 16 | | 39 | 3 | | 40 | 14 | | 41 | 12 | | 42 | 24 | | 43 | 7 | | 44 | 4 | | 45 | 11 | | 46 | 11 | | 47 | 2 | | 48 | 3 | | 49 | 20 |
| |
| 47.06% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.27058823529411763 | | totalSentences | 170 | | uniqueOpeners | 46 | |
| 51.68% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 129 | | matches | | 0 | "Instead, she reached out, and" | | 1 | "Then he stepped into the" |
| | ratio | 0.016 | |
| 95.97% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 129 | | matches | | 0 | "She tightened her grip on" | | 1 | "It was a wound in" | | 2 | "She jerked her hand back." | | 3 | "she said, voice soft, almost" | | 4 | "they murmured, though Rory knew" | | 5 | "She looked down." | | 6 | "It was a carpet of" | | 7 | "She crouched, brushing her fingers" | | 8 | "She snatched her hand back." | | 9 | "She could *taste* it, metallic" | | 10 | "Her stomach twisted." | | 11 | "She hadn’t eaten since breakfast," | | 12 | "It pulsed faintly against her" | | 13 | "She swallowed hard, forcing the" | | 14 | "She hadn’t realized how hungry" | | 15 | "Her fingers itched." | | 16 | "She flexed them, nails digging" | | 17 | "She stepped closer, drawn despite" | | 18 | "She reached out—" | | 19 | "She fumbled for it, pulling" |
| | ratio | 0.31 | |
| 10.39% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 116 | | totalSentences | 129 | | matches | | 0 | "The air smelled wrong the" | | 1 | "Rory Carter exhaled sharply, her" | | 2 | "The scent was rich—earth and" | | 3 | "She tightened her grip on" | | 4 | "Nyx moved beside her, their" | | 5 | "Isolde glided ahead, her silver" | | 6 | "The grove wasn’t a grove" | | 7 | "It was a wound in" | | 8 | "The standing stones marked the" | | 9 | "Rory reached out, fingers hovering" | | 10 | "The symbol carved into the" | | 11 | "She jerked her hand back." | | 12 | "Isolde didn’t turn." | | 13 | "she said, voice soft, almost" | | 14 | "Nyx tilted their head, violet" | | 15 | "they murmured, though Rory knew" | | 16 | "The ground beneath their feet" | | 17 | "The earth seemed to breathe," | | 18 | "Rory stumbled, her boot sinking" | | 19 | "She looked down." |
| | ratio | 0.899 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 129 | | matches | (empty) | | ratio | 0 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 5 | | matches | | 0 | "Isolde glided ahead, her silver hair catching the dappled light that filtered through the canopy of ancient oaks, though the trees here were wrong—too tall, the…" | | 1 | "When she touched it, her skin prickled, as if she’d brushed against static." | | 2 | "It was a carpet of bioluminescent flowers, their petals unfurling in time with her heartbeat, pulsing with a faint, eerie light." | | 3 | "The pendant grew warmer, its glow intensifying until it was nearly blinding." | | 4 | "He wore a coat of dark velvet, embroidered with silver thread that glinted like fresh blood." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 4 | | matches | | 0 | "she said, voice soft, almost musical" | | 1 | "Isolde said, voice sharp" | | 2 | "Rory demanded, voice tight" | | 3 | "He stepped, and the world *tilted*" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 6 | | fancyTags | | 0 | "they murmured (murmur)" | | 1 | "Isolde warned (warn)" | | 2 | "Nyx whispered (whisper)" | | 3 | "Rory demanded (demand)" | | 4 | "Nyx murmured (murmur)" | | 5 | "He snapped (snap)" |
| | dialogueSentences | 38 | | tagDensity | 0.316 | | leniency | 0.632 | | rawRatio | 0.5 | | effectiveRatio | 0.316 | |