| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 1 | | adverbTags | | 0 | "Nyx sounded almost [almost]" |
| | dialogueSentences | 38 | | tagDensity | 0.395 | | leniency | 0.789 | | rawRatio | 0.067 | | effectiveRatio | 0.053 | |
| 89.02% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1366 | | totalAiIsmAdverbs | 3 | | 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.77% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1366 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "sentinels" | | 1 | "pulsed" | | 2 | "warmth" | | 3 | "electric" | | 4 | "pulse" | | 5 | "quickened" | | 6 | "almost alive" | | 7 | "silence" | | 8 | "crystalline" | | 9 | "whisper" | | 10 | "unreadable" | | 11 | "weight" | | 12 | "resonated" | | 13 | "dance" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "eyes widened" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 91 | | matches | (empty) | |
| 95.76% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 91 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 113 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1357 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1122 | | uniqueNames | 13 | | maxNameDensity | 1.25 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | London | 2 | | Heartstone | 1 | | Richmond | 1 | | Shade | 2 | | Aurora | 14 | | Eva | 1 | | Cardiff | 1 | | English | 1 | | Nyx | 10 | | Grass | 1 | | Fae | 1 | | Varga | 1 | | Seer | 2 |
| | persons | | 0 | "Heartstone" | | 1 | "Aurora" | | 2 | "Eva" | | 3 | "Nyx" | | 4 | "Seer" |
| | places | | 0 | "London" | | 1 | "Richmond" | | 2 | "Cardiff" | | 3 | "Grass" | | 4 | "Fae" |
| | globalScore | 0.876 | | windowScore | 0.833 | |
| 42.86% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 3 | | matches | | 0 | "something between honeysuckle and lightning, sw" | | 1 | "something between, washing over everything in s" | | 2 | "notes that seemed to come from everywhere and nowhere" |
| |
| 52.62% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.474 | | wordCount | 1357 | | matches | | 0 | "not the muted palette of an English autumn but hues" | | 1 | "not wilting but leaning, curious" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 113 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 30.16 | | std | 21.09 | | cv | 0.699 | | sampleLengths | | 0 | 46 | | 1 | 4 | | 2 | 21 | | 3 | 45 | | 4 | 41 | | 5 | 34 | | 6 | 58 | | 7 | 5 | | 8 | 3 | | 9 | 69 | | 10 | 5 | | 11 | 68 | | 12 | 13 | | 13 | 29 | | 14 | 38 | | 15 | 1 | | 16 | 35 | | 17 | 66 | | 18 | 35 | | 19 | 51 | | 20 | 10 | | 21 | 50 | | 22 | 3 | | 23 | 26 | | 24 | 1 | | 25 | 5 | | 26 | 49 | | 27 | 16 | | 28 | 57 | | 29 | 49 | | 30 | 16 | | 31 | 39 | | 32 | 4 | | 33 | 22 | | 34 | 31 | | 35 | 19 | | 36 | 6 | | 37 | 53 | | 38 | 49 | | 39 | 4 | | 40 | 56 | | 41 | 26 | | 42 | 12 | | 43 | 61 | | 44 | 26 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 91 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 169 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 8 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 113 | | ratio | 0.071 | | matches | | 0 | "Nothing marked it as different from any other path through Richmond's ancient oaks—just a strip of mossy ground leading into deeper shadow." | | 1 | "The air between the stones carried a scent she couldn't name—something between honeysuckle and lightning, sweet and electric." | | 2 | "Colours bled into the air itself—not the muted palette of an English autumn but hues that had no names in any language she knew." | | 3 | "The air hung thick with their combined fragrance, layered and shifting—jasmine one moment, then night-blooming cereus, then something sharp and citrus that made her eyes water." | | 4 | "A sound reached her—running water, though she saw no stream." | | 5 | "The stream appeared when Aurora crested a gentle rise—except it wasn't water." | | 6 | "The woman in the silver stream had her face, her black hair, her bright blue eyes—but the crescent scar on her left wrist glowed like heated metal, and behind her reflection stood a figure she couldn't see when she turned." | | 7 | "\"You stand in a place where truth grows like weeds, and you ask for answers. How very mortal.\" She drifted closer, and Aurora caught the scent of her—winter and woodsmoke and something older, like stone beneath rain." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1135 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.024669603524229075 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.0026431718061674008 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 113 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 113 | | mean | 12.01 | | std | 8.58 | | cv | 0.714 | | sampleLengths | | 0 | 24 | | 1 | 13 | | 2 | 9 | | 3 | 4 | | 4 | 19 | | 5 | 2 | | 6 | 20 | | 7 | 22 | | 8 | 3 | | 9 | 7 | | 10 | 22 | | 11 | 12 | | 12 | 28 | | 13 | 6 | | 14 | 3 | | 15 | 18 | | 16 | 3 | | 17 | 23 | | 18 | 4 | | 19 | 2 | | 20 | 5 | | 21 | 5 | | 22 | 3 | | 23 | 14 | | 24 | 16 | | 25 | 24 | | 26 | 15 | | 27 | 5 | | 28 | 17 | | 29 | 12 | | 30 | 13 | | 31 | 26 | | 32 | 13 | | 33 | 15 | | 34 | 14 | | 35 | 15 | | 36 | 11 | | 37 | 12 | | 38 | 1 | | 39 | 9 | | 40 | 26 | | 41 | 6 | | 42 | 25 | | 43 | 2 | | 44 | 33 | | 45 | 4 | | 46 | 9 | | 47 | 22 | | 48 | 10 | | 49 | 18 |
| |
| 66.96% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.4336283185840708 | | totalSentences | 113 | | uniqueOpeners | 49 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 82 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 18 | | totalSentences | 82 | | matches | | 0 | "She pressed her palm flat" | | 1 | "She pulled the chain over" | | 2 | "They reached toward the gap" | | 3 | "Her pulse quickened." | | 4 | "She thought of Eva, of" | | 5 | "She walked between the stones." | | 6 | "Their violet eyes widened, the" | | 7 | "She couldn't tell if minutes" | | 8 | "Their petals brushed her ankles," | | 9 | "She drew the dagger, its" | | 10 | "She knelt beside it, and" | | 11 | "Her reflection stared back, but" | | 12 | "She pulled her hand back" | | 13 | "Their reflection didn't appear at" | | 14 | "Her voice came out steady" | | 15 | "She wore robes the colour" | | 16 | "She stopped ten feet away" | | 17 | "She drifted closer, and Aurora" |
| | ratio | 0.22 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 77 | | totalSentences | 82 | | matches | | 0 | "The standing stones rose from" | | 1 | "Aurora's pendant pulsed against her" | | 2 | "She pressed her palm flat" | | 3 | "Nyx materialised from the shadow" | | 4 | "She pulled the chain over" | | 5 | "The Heartstone swung in lazy" | | 6 | "Nyx studied the gap between" | | 7 | "Nothing marked it as different" | | 8 | "They reached toward the gap" | | 9 | "Aurora stepped forward." | | 10 | "The air between the stones" | | 11 | "Her pulse quickened." | | 12 | "She thought of Eva, of" | | 13 | "This felt like that." | | 14 | "A point of no return." | | 15 | "She walked between the stones." | | 16 | "The world inverted." | | 17 | "London's grey sky split apart" | | 18 | "Aurora stumbled, her balance betraying" | | 19 | "Colours bled into the air" |
| | ratio | 0.939 | |
| 60.98% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 82 | | matches | | | ratio | 0.012 | |
| 9.97% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 8 | | matches | | 0 | "She thought of Eva, of the morning she'd fled Cardiff with nothing but a rucksack and the desperate certainty that staying meant breaking." | | 1 | "London's grey sky split apart like peeling paint, revealing a firmament that shouldn't exist." | | 2 | "Snowdrops pressed against roses that tangled with sunflowers that climbed over chrysanthemums." | | 3 | "Each flower pulsed with faint luminescence, as though the plants themselves breathed light." | | 4 | "The air hung thick with their combined fragrance, layered and shifting—jasmine one moment, then night-blooming cereus, then something sharp and citrus that made…" | | 5 | "A bluebell the size of her fist swayed, its bell-shaped petals parting to release a puff of golden pollen that hung in the air rather than dispersing." | | 6 | "The woman who approached looked no older than thirty, her features ethereal and sharp, her pale lavender eyes holding the weight of three hundred years without …" | | 7 | "And somewhere in the grove, time continued its impossible dance, indifferent to the mortals who dared step outside its flow." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |