| 75.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 1 | | adverbTags | | 0 | "Nyx whispered again [again]" |
| | dialogueSentences | 16 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.125 | | effectiveRatio | 0.125 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1296 | | 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) | |
| 30.56% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1296 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "flickered" | | 1 | "chill" | | 2 | "weight" | | 3 | "scanning" | | 4 | "tangible" | | 5 | "pulsed" | | 6 | "echoes" | | 7 | "resolved" | | 8 | "footsteps" | | 9 | "warmth" | | 10 | "glistening" | | 11 | "raced" | | 12 | "glinting" | | 13 | "charged" | | 14 | "echoed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 96.26% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 29 | | matches | | |
| 93.60% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 29 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 36 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 119 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1263 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 81.88% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 84 | | wordCount | 1101 | | uniqueNames | 23 | | maxNameDensity | 1.36 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Heartstone | 7 | | Pendant | 1 | | Nyx | 6 | | Isolde | 11 | | Grove | 5 | | London | 5 | | December | 1 | | Richmond | 1 | | Park | 1 | | Cardiff | 3 | | Evan | 2 | | Aurora | 15 | | Fae-Forged | 4 | | Blade | 4 | | Golden | 1 | | Empress | 1 | | Dymas | 3 | | Answers | 1 | | Veil | 2 | | Half-Fae | 1 | | Fae | 7 | | Dymasian | 1 | | Eva | 1 |
| | persons | | 0 | "Heartstone" | | 1 | "Nyx" | | 2 | "Isolde" | | 3 | "Grove" | | 4 | "December" | | 5 | "Evan" | | 6 | "Aurora" | | 7 | "Blade" | | 8 | "Dymas" | | 9 | "Veil" | | 10 | "Half-Fae" | | 11 | "Eva" |
| | places | | 0 | "London" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "Cardiff" | | 4 | "Fae" |
| | globalScore | 0.819 | | windowScore | 0.833 | |
| 41.30% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 23 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like liquid shadow, red so bright" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.792 | | wordCount | 1263 | | matches | | 0 | "not to stumble into a pocket realm where minutes stretched into hours, but her quick out-of-the-box thinking kicked in: she tucked the" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 36 | | matches | (empty) | |
| 74.58% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 19 | | mean | 66.47 | | std | 27.32 | | cv | 0.411 | | sampleLengths | | 0 | 49 | | 1 | 95 | | 2 | 78 | | 3 | 104 | | 4 | 65 | | 5 | 40 | | 6 | 66 | | 7 | 19 | | 8 | 68 | | 9 | 75 | | 10 | 40 | | 11 | 117 | | 12 | 26 | | 13 | 63 | | 14 | 63 | | 15 | 74 | | 16 | 90 | | 17 | 27 | | 18 | 104 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 29 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 188 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 4 | | flaggedSentences | 11 | | totalSentences | 36 | | ratio | 0.306 | | matches | | 0 | "Wildflowers—crimson clover, pale blue bells, gold crocuses—bloomed in tangled clumps where frost should have bitten the earth; she’d left London’s December chill at the stone’s edge." | | 1 | "She knelt to pluck a crocus, its petals soft against her thumb. When she stood, she checked her analog watch—she’d stepped through the stone five minutes prior, but the hands ticked to three hours later. A jolt of unease pricked her; time warped here, just as Isolde had hinted before they left the bar’s flat. She’d fled Cardiff for London to escape Evan’s fists, not to stumble into a pocket realm where minutes stretched into hours, but her quick out-of-the-box thinking kicked in: she tucked the crocus into her uniform’s lapel as a marker, a small, tangible link to the world she’d left behind." | | 2 | "Isolde stood ten feet away, her ethereal face turned toward a cluster of ancient oaks whose branches twisted into patterns no mortal tree could mimic. Aurora’s gaze darted to her feet—no footprints pressed the wildflower-strewn earth, not even a crumpled petal in her wake. The metallic tang in the air sharpened, and Aurora’s Heartstone pulsed warmer against her palm, a quiet warning she couldn’t ignore." | | 3 | "Aurora’s hand drifted to the moonsilver Fae-Forged Blade Isolde had given her the night before—slender, leaf-shaped, always cold to the touch—she’d tucked it into her uniform’s waistband after her last delivery run for the Golden Empress. The blade’s faint luminescence flared, just enough to catch her eye, and she realized the Grove’s dappled light held a hint of moonlight, even though she’d stepped through the stones at midday." | | 4 | "She walked toward the twisted oaks, the crocus in her lapel brushing against her cheek. The wildflowers thickened, their colors deepening to hues she’d never seen—blue so dark it looked like liquid shadow, red so bright it burned her vision. The honey scent intensified, cloying now, and the metallic tang resolved into overripe fruit turning rot, a scent she’d never encountered but somehow knew belonged to Dymas, the realm of gluttony the Heartstone hailed from." | | 5 | "A sudden blaze of crimson light erupted from the Heartstone. Aurora cried out, dropping her hand to clamp the pendant against her chest; its warmth flared to a burn that seeped up her arm. The oak standing stones rumbled, their bark cracking to reveal faint shimmering distortion—the Veil’s edge, visible now to her mortal eyes. The overripe rot scent exploded, and a vine thick as a man’s arm snaked through the rift, its leaves glistening with amber sap, the same hue as Dymas’s warm amber sky. It coiled toward Isolde, its tendrils hissing like angry serpents, and Aurora spotted small, sharp teeth lining its stems—helbound souls, contracted to serve Dymas’s master chefs, trapped in the vine’s flesh." | | 6 | "Isolde’s ethereal face tightened—for the first time, Aurora saw fear in her pale lavender eyes. The Half-Fae’s Fae compulsion prevented lies, but it didn’t stop her from hiding weakness; Aurora realized now that Isolde’s exile had dimmed her magic, leaving her defenseless against the Dymasian feeder. The vine’s tendrils snaked closer, wrapping around an oak branch and crushing it to splinters in seconds." | | 7 | "Aurora’s mind raced. She’d fled Evan’s abuse by thinking fast—slipping out of their Cardiff flat with a single bag, taking Eva’s train ticket to London, lying to her father about a pre-law internship. She’d survived delivery runs through London’s rain-soaked alleys by outrunning thieves and dodging angry shop owners. Now, she faced a helbound vine creature in a time-warped Fae grove, her only weapons a magic blade and a pulsing pendant she didn’t understand." | | 8 | "The vine’s main stem lunged at Isolde, its teeth glinting in the moonlight. Aurora charged, the Fae-Forged Blade raised, but a second tendril snaked toward her, wrapping around her ankle and yanking her off her feet. She hit the wildflower-strewn earth, the crocus in her lapel crushing to rot under her weight. The Heartstone blazed so bright she could see its crimson glow through her closed eyelids, and the Veil’s distortion stretched wider, revealing a second rift—this one oozing with the same amber sap, more feeders clawing their way through." | | 9 | "They’ll flood the Grove—and then London—for mortal souls to cook.”" | | 10 | "Aurora twisted, driving the Fae-Forged Blade into the tendril around her ankle. The blade cut through the vine’s flesh like a hot knife through butter, and the feeder screamed—a gurgling, hungry sound that echoed through the Grove’s twisted oaks. But as she pulled herself to her feet, she saw the second rift’s feeders spill into the wildflowers, their teeth bared, their amber sap dripping onto the earth and turning it to rot. Nyx’s shadow form flickered out entirely, leaving only a faint violet glow where they’d stood, and the Heartstone’s burn seeped into her wrist’s crescent scar, merging the old pain with the new." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 249 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 5 | | adverbRatio | 0.020080321285140562 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 36 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 36 | | mean | 35.08 | | std | 34.25 | | cv | 0.976 | | sampleLengths | | 0 | 21 | | 1 | 28 | | 2 | 1 | | 3 | 6 | | 4 | 24 | | 5 | 26 | | 6 | 15 | | 7 | 23 | | 8 | 4 | | 9 | 74 | | 10 | 104 | | 11 | 65 | | 12 | 5 | | 13 | 6 | | 14 | 4 | | 15 | 6 | | 16 | 6 | | 17 | 7 | | 18 | 6 | | 19 | 66 | | 20 | 19 | | 21 | 68 | | 22 | 75 | | 23 | 16 | | 24 | 10 | | 25 | 5 | | 26 | 9 | | 27 | 117 | | 28 | 26 | | 29 | 63 | | 30 | 63 | | 31 | 74 | | 32 | 90 | | 33 | 17 | | 34 | 10 | | 35 | 104 |
| |
| 71.30% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4444444444444444 | | totalSentences | 36 | | uniqueOpeners | 16 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 27 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 6 | | totalSentences | 27 | | matches | | 0 | "She stumbled through the threshold," | | 1 | "She slipped it into her" | | 2 | "They shifted their weight, their" | | 3 | "She knelt to pluck a" | | 4 | "She walked toward the twisted" | | 5 | "They’ll flood the Grove—and then" |
| | ratio | 0.222 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 27 | | totalSentences | 27 | | matches | | 0 | "Aurora’s fingers clamped around her" | | 1 | "She stumbled through the threshold," | | 2 | "Aurora’s phone screen flickered then" | | 3 | "She slipped it into her" | | 4 | "Wildflowers—crimson clover, pale blue bells," | | 5 | "A bird call trilled, sharp" | | 6 | "Honey clung to the air," | | 7 | "Nyx’s violet eyes dimmed." | | 8 | "They shifted their weight, their" | | 9 | "She knelt to pluck a" | | 10 | "Isolde stood ten feet away," | | 11 | "Rifts bleed through the thin" | | 12 | "Isolde’s pale lavender eyes glinted," | | 13 | "Nyx whispered again" | | 14 | "Aurora’s hand drifted to the" | | 15 | "She walked toward the twisted" | | 16 | "Isolde followed, her footsteps still" | | 17 | "Answers are my next" | | 18 | "A sudden blaze of crimson" | | 19 | "Nyx’s shadow form shrank, their" |
| | ratio | 1 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 27 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 17 | | technicalSentenceCount | 6 | | matches | | 0 | "She walked toward the twisted oaks, the crocus in her lapel brushing against her cheek. The wildflowers thickened, their colors deepening to hues she’d never se…" | | 1 | "A sudden blaze of crimson light erupted from the Heartstone. Aurora cried out, dropping her hand to clamp the pendant against her chest; its warmth flared to a …" | | 2 | "Aurora’s cool-headedness didn’t waver. She snatched the Fae-Forged Blade from her waistband, its moonsilver metal glowing brightly now, cutting through the Grov…" | | 3 | "Isolde’s ethereal face tightened—for the first time, Aurora saw fear in her pale lavender eyes. The Half-Fae’s Fae compulsion prevented lies, but it didn’t stop…" | | 4 | "The vine’s main stem lunged at Isolde, its teeth glinting in the moonlight. Aurora charged, the Fae-Forged Blade raised, but a second tendril snaked toward her,…" | | 5 | "Aurora twisted, driving the Fae-Forged Blade into the tendril around her ankle. The blade cut through the vine’s flesh like a hot knife through butter, and the …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 87.50% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 1 | | fancyTags | | 0 | "Nyx whispered again (whisper)" |
| | dialogueSentences | 16 | | tagDensity | 0.125 | | leniency | 0.25 | | rawRatio | 0.5 | | effectiveRatio | 0.125 | |