| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 1 | | adverbTags | | 0 | "Nyx’s form flickered again [again]" |
| | dialogueSentences | 28 | | tagDensity | 0.786 | | leniency | 1 | | rawRatio | 0.045 | | effectiveRatio | 0.045 | |
| 96.09% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1279 | | 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) | |
| 37.45% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1279 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "reminder" | | 1 | "loomed" | | 2 | "flickered" | | 3 | "pulsed" | | 4 | "cascading" | | 5 | "charm" | | 6 | "beacon" | | 7 | "facade" | | 8 | "echoed" | | 9 | "whisper" | | 10 | "firmly" |
| |
| 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 | 40 | | matches | (empty) | |
| 71.43% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 40 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 43 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 82 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1256 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 69.76% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 76 | | wordCount | 997 | | uniqueNames | 22 | | maxNameDensity | 1.6 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Golden | 2 | | Richmond | 3 | | Park | 3 | | Isolde | 10 | | Heartstone | 6 | | Pendant | 2 | | Aurora | 16 | | Fae | 6 | | Nyx | 9 | | Cardiff | 3 | | Dymas | 1 | | Prince | 1 | | Belphegor | 1 | | Hel | 1 | | Fae-Forged | 1 | | Blade | 1 | | Evan | 3 | | London | 2 | | Eva | 1 | | Veil | 1 | | Helbound | 1 | | Dymasian | 2 |
| | persons | | 0 | "Isolde" | | 1 | "Heartstone" | | 2 | "Pendant" | | 3 | "Aurora" | | 4 | "Fae" | | 5 | "Nyx" | | 6 | "Prince" | | 7 | "Belphegor" | | 8 | "Blade" | | 9 | "Evan" | | 10 | "Eva" | | 11 | "Veil" |
| | places | | 0 | "Golden" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "Cardiff" | | 4 | "London" |
| | globalScore | 0.698 | | windowScore | 0.833 | |
| 63.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 29 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like hours had passed. Nyx’s form" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1256 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 43 | | matches | (empty) | |
| 61.27% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 26 | | mean | 48.31 | | std | 17.61 | | cv | 0.364 | | sampleLengths | | 0 | 75 | | 1 | 67 | | 2 | 79 | | 3 | 59 | | 4 | 45 | | 5 | 43 | | 6 | 60 | | 7 | 75 | | 8 | 44 | | 9 | 72 | | 10 | 14 | | 11 | 65 | | 12 | 56 | | 13 | 42 | | 14 | 30 | | 15 | 34 | | 16 | 34 | | 17 | 40 | | 18 | 14 | | 19 | 41 | | 20 | 26 | | 21 | 48 | | 22 | 42 | | 23 | 42 | | 24 | 44 | | 25 | 65 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 40 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 176 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 2 | | flaggedSentences | 13 | | totalSentences | 43 | | ratio | 0.302 | | matches | | 0 | "She’d ditched her bike by Richmond Park’s iron gates ten minutes prior—at Isolde’s sharp gesture—after the Heartstone Pendant around her neck flared warm enough to burn through her cotton shirt." | | 1 | "The small crescent scar on her left wrist tugged as she adjusted the bag’s strap; a childhood reminder of how quickly calm could snap into chaos." | | 2 | "Isolde led the way, her silver waist-length hair catching no light, her feet leaving no prints in the dewy grass. The half-Fae’s ethereal frame moved with the sort of grace that made Aurora’s delivery route sprints feel clumsy. When they reached the ancient oak standing stones marking the grove’s edge, Isolde paused. She ran a pale hand over one stone’s rough, weathered surface—carvings of Fae knots winding into each other, their edges glowing faintly when her skin touched them." | | 3 | "Aurora stepped forward, her boot brushing a cluster of wildflowers at the stone’s base. Bluebells, daisies, and poppies bloomed together, their scents mixing into a heady blend of honey and clover. Pine stung her nostrils from the nearby wood. She’d never seen flowers bloom out of season in Richmond Park before—another clue that Isolde’s grove was no ordinary clearing." | | 4 | "Aurora fished her phone from her pocket. The screen was black—no charge, even though she’d plugged it into the Golden Empress’ counter an hour prior. She pressed the power button three times. Nothing. “My phone died." | | 5 | "Roots tick for the grove.” She didn’t lie—Aurora knew the half-Fae’s compulsion—but the riddle left her scrambling for answers. Her cool-headed nature kicked in; she tucked the phone back into her pocket and adjusted the Heartstone Pendant. It pulsed faintly against her chest, warmer than before." | | 6 | "They moved deeper into the grove. The trees clustered closer, their branches weaving a canopy that blocked out most of the sky. Glowing green moss clung to their trunks, casting a soft light over the path. Aurora’s delivery bag felt heavier—she’d forgotten about the leftover spring rolls she’d stashed inside for lunch. When she glanced at her watch (a cheap plastic one from a Cardiff charity shop), the hands spun wildly before freezing at 3:17." | | 7 | "Aurora’s mind jumped to the notes she’d scribbled in her notebook—Dymas, the realm of gluttony, ruled by Prince Belphegor. The Heartstone Pendant had come from there, a gift from an unknown benefactor. She’d noticed it pulsing near Richmond Park every morning on her delivery route, a sign that a Hel portal was nearby. “You said Belphegor’s chefs hunt mortal souls for feasts,” she said to Nyx. “Is that why the Heartstone’s glowing?”" | | 8 | "Isolde stopped by a circular clearing, her silver hair cascading over her shoulders. She pulled a slender, leaf-shaped dagger from her belt—moonsilver, its blade cold enough to make Aurora’s fingers tingle when she took it. “This cuts through magical wards,” Isolde said. “Particularly effective against demons.” It was the Fae-Forged Blade, the one she’d promised to give Aurora if she agreed to hear her prophecy." | | 9 | "Aurora’s breath caught. She’d always thought the Heartstone was a protection charm—now it seemed like a beacon. She pressed the pendant harder against her chest. It pulsed brighter, warm enough to make her wince." | | 10 | "Aurora turned toward the clearing’s edge. She spotted a faint shimmer in the air—the Veil’s distortion, visible only to those with supernatural sight. Copper stung her nostrils. Blood. Recent. She stepped forward, her boot crunching on a pile of dry leaves." | | 11 | "The attendant swatted her delivery bag aside. The soy sauce sachets crinkled, then burst—dark liquid spreading across the grass. The attendant slipped, its boot sliding in the sauce. It fell to one knee, but it reached for the Heartstone around Aurora’s neck." | | 12 | "Aurora raised the Fae blade. She was about to strike when the attendant’s hand wrapped around her wrist—the same wrist with the crescent scar. It squeezed, hard enough to make her gasp. The Heartstone pulsed brighter, its crimson glow illuminating the attendant’s gray face." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 658 | | adjectiveStacks | 1 | | stackExamples | | 0 | "slender, leaf-shaped dagger" |
| | adverbCount | 21 | | adverbRatio | 0.031914893617021274 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.00911854103343465 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 43 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 43 | | mean | 29.21 | | std | 22.99 | | cv | 0.787 | | sampleLengths | | 0 | 19 | | 1 | 30 | | 2 | 26 | | 3 | 67 | | 4 | 79 | | 5 | 59 | | 6 | 45 | | 7 | 36 | | 8 | 7 | | 9 | 14 | | 10 | 46 | | 11 | 75 | | 12 | 37 | | 13 | 7 | | 14 | 72 | | 15 | 8 | | 16 | 6 | | 17 | 65 | | 18 | 56 | | 19 | 6 | | 20 | 3 | | 21 | 12 | | 22 | 11 | | 23 | 10 | | 24 | 17 | | 25 | 13 | | 26 | 34 | | 27 | 12 | | 28 | 7 | | 29 | 9 | | 30 | 6 | | 31 | 37 | | 32 | 3 | | 33 | 8 | | 34 | 6 | | 35 | 41 | | 36 | 19 | | 37 | 7 | | 38 | 48 | | 39 | 42 | | 40 | 42 | | 41 | 44 | | 42 | 65 |
| |
| 85.27% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 0 | | diversityRatio | 0.5116279069767442 | | totalSentences | 43 | | uniqueOpeners | 22 | |
| 90.09% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 37 | | matches | | 0 | "Then, a new roar echoed" |
| | ratio | 0.027 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 6 | | totalSentences | 37 | | matches | | 0 | "She’d ditched her bike by" | | 1 | "They moved deeper into the" | | 2 | "she asked Isolde" | | 3 | "They banished me for sharing" | | 4 | "Your flat above" | | 5 | "He’s found Evan’s old phone" |
| | ratio | 0.162 | |
| 14.05% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 33 | | totalSentences | 37 | | matches | | 0 | "Aurora yanked her delivery bag" | | 1 | "She’d ditched her bike by" | | 2 | "The small crescent scar on" | | 3 | "Nyx loomed beside her, their" | | 4 | "Isolde led the way, her" | | 5 | "Aurora stepped forward, her boot" | | 6 | "Aurora fished her phone from" | | 7 | "Isolde turned, her pale lavender" | | 8 | "Roots tick for the" | | 9 | "They moved deeper into the" | | 10 | "Unease pricked at her. She’d" | | 11 | "Aurora’s mind jumped to the" | | 12 | "Dymasian attendants will track it" | | 13 | "Isolde stopped by a circular" | | 14 | "Aurora turned the dagger over" | | 15 | "she asked Isolde" | | 16 | "Isolde’s gaze darted to the" | | 17 | "They banished me for sharing" | | 18 | "Nyx’s form flickered again, this" | | 19 | "A portal that would let" |
| | ratio | 0.892 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 37 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 12 | | technicalSentenceCount | 7 | | matches | | 0 | "Isolde led the way, her silver waist-length hair catching no light, her feet leaving no prints in the dewy grass. The half-Fae’s ethereal frame moved with the s…" | | 1 | "Aurora stepped forward, her boot brushing a cluster of wildflowers at the stone’s base. Bluebells, daisies, and poppies bloomed together, their scents mixing in…" | | 2 | "They moved deeper into the grove. The trees clustered closer, their branches weaving a canopy that blocked out most of the sky. Glowing green moss clung to thei…" | | 3 | "Aurora turned the dagger over in her hand. The moonsilver glowed faintly in the moss light. She thought of her abusive ex Evan, of fleeing Cardiff to London, of…" | | 4 | "Aurora grabbed the Fae blade from her bag. She stepped forward, her feet planted firmly on the grass. The attendant lunged, its cleaver swinging toward her head…" | | 5 | "The attendant swatted her delivery bag aside. The soy sauce sachets crinkled, then burst—dark liquid spreading across the grass. The attendant slipped, its boot…" | | 6 | "Then, a new roar echoed through the grove. Another Dymasian attendant burst through the rift, its cleaver raised. Aurora’s eyes widened. She’d only prepared for…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "Nyx whispered (whisper)" |
| | dialogueSentences | 28 | | tagDensity | 0.071 | | leniency | 0.143 | | rawRatio | 0.5 | | effectiveRatio | 0.071 | |