| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 2 | | adverbTags | | 0 | "Ancient oak their bark gnarled like [like]" | | 1 | "quiet their shadow form coiling around [around]" |
| | dialogueSentences | 24 | | tagDensity | 0.833 | | leniency | 1 | | rawRatio | 0.1 | | effectiveRatio | 0.1 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1820 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 25.82% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1820 | | totalAiIsms | 27 | | found | | | highlights | | 0 | "whisper" | | 1 | "reminder" | | 2 | "weight" | | 3 | "pulsed" | | 4 | "warmth" | | 5 | "pulse" | | 6 | "cascading" | | 7 | "scanned" | | 8 | "furrowed" | | 9 | "flickered" | | 10 | "throb" | | 11 | "charged" | | 12 | "echo" | | 13 | "facade" | | 14 | "flicker" |
| |
| 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 | 40 | | matches | (empty) | |
| 0.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 40 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 40 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 150 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1778 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 99.29% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 97 | | wordCount | 1479 | | uniqueNames | 30 | | maxNameDensity | 1.01 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Golden | 1 | | Empress | 1 | | Isolde | 10 | | Nyx | 9 | | Welsh | 2 | | Shade | 1 | | Rory | 15 | | Heartstone | 5 | | Pendant | 1 | | Hel-portal | 1 | | Hel | 3 | | Pre-Law | 4 | | Cardiff | 3 | | University | 1 | | Yu-Fei | 3 | | Grove | 9 | | Half-Fae | 1 | | Dymas | 4 | | Prince | 1 | | Belphegor | 2 | | Veil | 3 | | London | 2 | | Evan | 3 | | Sunday | 1 | | Fae-Forged | 2 | | Blade | 2 | | Fae | 4 | | Dymasian | 1 |
| | persons | | 0 | "Isolde" | | 1 | "Nyx" | | 2 | "Rory" | | 3 | "Heartstone" | | 4 | "Yu-Fei" | | 5 | "Prince" | | 6 | "Belphegor" | | 7 | "Veil" | | 8 | "Evan" | | 9 | "Blade" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Cardiff" | | 3 | "University" | | 4 | "Grove" | | 5 | "Dymas" | | 6 | "London" | | 7 | "Fae-Forged" | | 8 | "Fae" |
| | globalScore | 0.993 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 38 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1778 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 40 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 23 | | mean | 77.3 | | std | 41.14 | | cv | 0.532 | | sampleLengths | | 0 | 143 | | 1 | 147 | | 2 | 99 | | 3 | 6 | | 4 | 102 | | 5 | 24 | | 6 | 79 | | 7 | 28 | | 8 | 83 | | 9 | 101 | | 10 | 33 | | 11 | 86 | | 12 | 58 | | 13 | 86 | | 14 | 98 | | 15 | 55 | | 16 | 49 | | 17 | 118 | | 18 | 37 | | 19 | 51 | | 20 | 26 | | 21 | 121 | | 22 | 148 |
| |
| 96.49% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 40 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 239 | | matches | | 0 | "was syncing" | | 1 | "was eating" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 1 | | flaggedSentences | 16 | | totalSentences | 40 | | ratio | 0.4 | | matches | | 0 | "She’d dropped off a carton of honey-glazed duck to a businessman near the royal deer enclosure, his quick tip barely covering the cost of her oyster card home—but Isolde’s message, delivered via Nyx’s shadow-whisper in her flat’s hallway, had trumped her shift’s end." | | 1 | "When she’d first met the Shade, she’d flinched at their wind-whisper voice, but now it was a strange comfort—like the hum of her mother’s Welsh lullabies through a thin wall." | | 2 | "At 6’2”, their humanoid silhouette cut a sharp line against the frost, their glowing eyes pinning her to the spot. She’d watched them shift forms before—sliding through keyholes, curling around streetlights—but their solid form still made her pause; it was too human, too much a reminder that they’d once been Aldric, a sorcerer trapped between realms in 1643 after a failed summoning ritual." | | 3 | "Rory’s Heartstone Pendant, a thumbnail-sized crimson gem on a silver chain tucked under her shirt, pulsed faintly—warmth seeping through the fabric like a distant campfire. She’d found it tucked into her delivery bag three days prior, no note, only the faint inner glow that had made her freeze mid-dropoff. Dymas origin, she’d deduced from the faint Hel-portal pulse (she’d research Hel realms during her Pre-Law days at Cardiff University, a habit of overanalyzing every unknown until it fit into a legal brief), but she hadn’t dared tell Yu-Fei or her mother—too many questions she couldn’t answer without sounding mad." | | 4 | "Ancient oak, their bark gnarled like crumpled legal briefs left in the rain, marked the Grove’s boundary, their tops glowing with a faint silver light that didn’t match the dusk sky’s gray. Isolde stood between them, her silver waist-length hair cascading over her ethereal shoulders, pale lavender eyes locking onto Rory’s bright blue ones. Rory scanned the ground—no footprints, not even a dent in the frost, and her breath caught in her throat. The Half-Fae seer couldn’t lie, but she could twist truth like a legal loophole, a fact Nyx had warned her about before they left the flat above Silas’ bar." | | 5 | "Rory furrowed her brow, parsing the riddle like a contract clause she’d been hired to dissect. Glutton’s vineyard—Dymas, Prince Belphegor’s realm of excess, where helbound souls stirred exotic ingredients for grand feasts. Thin place—the Veil, which weakened with the winter solstice (only a week away, she’d noted from her calendar’s sticky note reminder to call her mother). “You mean the Heartstone’s pulsing is because of a Hel rift here?” she asked, her Pre-Law precision cutting through the cryptic words." | | 6 | "Cross with caution—they trap souls who don’t watch their steps.” Rory froze—she’d never heard them name their former human self, Aldric, the sorcerer who’d become trapped between realms four centuries prior. The memory of Evan’s sharp words, you’re always overthinking, you’ll get yourself trapped, flickered in her head, and she clamped down on it, her intelligence a shield against the old fear." | | 7 | "She stepped toward the standing stones, the frost crunching under her boots—until she crossed the first oak’s shadow. The crunch vanished. The frost melted into dark, rich soil. Wildflowers burst from the ground at her feet: crimson poppies that matched her Heartstone, white daisies with golden centers, jasmine blooms that scented the air like summer, even though London’s winter had turned the park’s grass brown outside the boundary. Her left wrist’s scar burned hotter, a sharp throb that made her gasp, and she yanked back her coat sleeve to stare at the crescent mark, its edges flushing pink with the pain." | | 8 | "“Time unspools here,” Isolde said, gliding past her—still no footprints, not even a trace of her dress brushing the wildflowers. “An hour inside is a child’s skips outside." | | 9 | "Isolde stopped at the clearing’s center, her silver hair catching the Grove’s amber-tinted light—a faint echo of Dymas’ warm amber sky, Rory noted, a thread connecting the two realms. She held out a hand, and the Fae-Forged Blade materialized in her palm—slender, leaf-shaped, moonsilver, its faint luminescence making Rory’s eyes water when she stared too long. “This cuts through wards,” Isolde said, her voice sharp now, no riddle to hide behind. “Against demons that creep through the Veil’s tears." | | 10 | "Rory reached for it, and the cold hit her like a slap across the face, making her gasp. She’d never felt anything so cold—colder than Evan’s silent treatments that stretched for days, colder than the frost outside the Grove that had nipped her cheeks on the walk over. The blade’s weight was solid in her hand, a contrast to Nyx’s shifting form, and she curled her fingers around the hilt, her crescent scar still burning like a brand. “Why give this to me?” she asked, her Pre-Law training making her demand terms, not just accept a gift blindly." | | 11 | "You cannot outrun them—but you can cut their path before they take the stone and open a full portal to Belphegor’s realm.”" | | 12 | "To seal the rift, you must taste the excess you fear—you must go to Dymas and unbind the stone from its origin.”" | | 13 | "Aldric’s ritual once brushed its edges—its excesses consume souls who cannot resist.”" | | 14 | "Rory glanced back at the standing stones, now faded like they were a memory instead of a physical boundary. A child’s laugh floated from outside the Grove, high and bright, but when she tried to pinpoint its source, it vanished, replaced by the distant creak of a Fae oak. She clutched the Fae-Forged Blade in one hand and pressed the Heartstone to her chest with the other, her crescent scar still burning a steady reminder of the risks she’d always taken to protect the people she loved. Her quick, out-of-the-box thinking kicked in—she’d research Dymasian portals at the university library tomorrow, she’d draft a plan like a legal strategy, she’d not let the glutton’s servants trap her like Evan once had." | | 15 | "The Grove’s wildflowers bloomed brighter, their scent overwhelming now, and Rory stepped toward the clearing’s center, her boots sinking into the rich soil without a sound. She was in over her head, but for the first time since she’d fled Cardiff, she didn’t feel trapped—she felt prepared, her intelligence and the two artifacts in her hands a shield against the realms that sought to claim her. Nyx’s shadow slid down the standing stone to join her, their violet eyes softening with a flicker of what might have been respect, and Isolde glided beside them, her silver hair weaving through the wildflower stems without a single petal being crushed. The Veil’s thinness hummed in the air, the Heartstone’s pulse a steady drumbeat, and Rory knew the next step would be dangerous—but for the first time in years, she was ready to run toward the fight, not away from it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 809 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 14 | | adverbRatio | 0.0173053152039555 | | lyAdverbCount | 2 | | lyAdverbRatio | 0.002472187886279357 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 40 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 40 | | mean | 44.45 | | std | 37.9 | | cv | 0.853 | | sampleLengths | | 0 | 29 | | 1 | 43 | | 2 | 37 | | 3 | 34 | | 4 | 22 | | 5 | 30 | | 6 | 32 | | 7 | 63 | | 8 | 99 | | 9 | 6 | | 10 | 102 | | 11 | 24 | | 12 | 79 | | 13 | 19 | | 14 | 9 | | 15 | 21 | | 16 | 62 | | 17 | 101 | | 18 | 28 | | 19 | 5 | | 20 | 86 | | 21 | 58 | | 22 | 79 | | 23 | 7 | | 24 | 98 | | 25 | 18 | | 26 | 15 | | 27 | 22 | | 28 | 36 | | 29 | 6 | | 30 | 7 | | 31 | 118 | | 32 | 29 | | 33 | 8 | | 34 | 29 | | 35 | 22 | | 36 | 14 | | 37 | 12 | | 38 | 121 | | 39 | 148 |
| |
| 80.83% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.5 | | totalSentences | 40 | | uniqueOpeners | 20 | |
| 85.47% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 39 | | matches | | 0 | "Then she saw the standing" |
| | ratio | 0.026 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 9 | | totalSentences | 39 | | matches | | 0 | "She’d dropped off a carton" | | 1 | "Her left wrist burned, a" | | 2 | "they breathed, their shadow form" | | 3 | "She stepped toward the standing" | | 4 | "They tracked you from Dymas" | | 5 | "You cannot outrun them—but you" | | 6 | "They know you have the" | | 7 | "They’re waiting for the solstice" | | 8 | "She turned to Isolde, her" |
| | ratio | 0.231 | |
| 62.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 31 | | totalSentences | 39 | | matches | | 0 | "Rory’s black shoulder-length hair whipped" | | 1 | "She’d dropped off a carton" | | 2 | "Her left wrist burned, a" | | 3 | "The scar’s edge was still" | | 4 | "Nyx hovered at her heel," | | 5 | "they breathed, their shadow form" | | 6 | "Rory’s Heartstone Pendant, a thumbnail-sized" | | 7 | "Isolde said, her voice like" | | 8 | "Rory furrowed her brow, parsing" | | 9 | "Isolde’s lips curved into a" | | 10 | "The stone’s warmth is a" | | 11 | "Nyx’s shadow form contracted, their" | | 12 | "She stepped toward the standing" | | 13 | "Isolde said, gliding past her—still" | | 14 | "Rory fumbled for her phone," | | 15 | "Rory said, tucking the phone" | | 16 | "Isolde stopped at the clearing’s" | | 17 | "Rory reached for it, and" | | 18 | "Isolde’s pale lavender eyes softened," | | 19 | "They tracked you from Dymas" |
| | ratio | 0.795 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 39 | | matches | | 0 | "Before the helbound souls can" | | 1 | "To seal the rift, you" |
| | ratio | 0.051 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 13 | | technicalSentenceCount | 4 | | matches | | 0 | "Rory’s Heartstone Pendant, a thumbnail-sized crimson gem on a silver chain tucked under her shirt, pulsed faintly—warmth seeping through the fabric like a dista…" | | 1 | "She stepped toward the standing stones, the frost crunching under her boots—until she crossed the first oak’s shadow. The crunch vanished. The frost melted into…" | | 2 | "Rory fumbled for her phone, pulling it from her pocket. The screen was black, dead, even though she’d charged it fully before her delivery. She spotted a discar…" | | 3 | "The Grove’s wildflowers bloomed brighter, their scent overwhelming now, and Rory stepped toward the clearing’s center, her boots sinking into the rich soil with…" |
| |
| 62.50% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 16 | | uselessAdditionCount | 2 | | matches | | 0 | "Isolde’s lips curved, her silver hair catching the standing stones’ glow" | | 1 | "Isolde said, her voice sharp now, no riddle to hide behind" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | 0 | "they breathed (breathe)" |
| | dialogueSentences | 24 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0.25 | | effectiveRatio | 0.083 | |