| 63.64% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 3 | | adverbTags | | 0 | "Isolde said neutrally [neutrally]" | | 1 | "Aurora asked wryly [wryly]" | | 2 | "she said quietly [quietly]" |
| | dialogueSentences | 44 | | tagDensity | 0.409 | | leniency | 0.818 | | rawRatio | 0.167 | | effectiveRatio | 0.136 | |
| 90.88% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1645 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "quickly" | | 1 | "slowly" | | 2 | "slightly" |
| |
| 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) | |
| 27.05% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1645 | | totalAiIsms | 24 | | found | | | highlights | | 0 | "pulsed" | | 1 | "echoed" | | 2 | "stomach" | | 3 | "desire" | | 4 | "gleaming" | | 5 | "unraveling" | | 6 | "silence" | | 7 | "flickered" | | 8 | "echoes" | | 9 | "flicked" | | 10 | "trembled" | | 11 | "etched" | | 12 | "could feel" | | 13 | "throbbed" | | 14 | "pulse" | | 15 | "beacon" | | 16 | "warmth" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "clenched jaw/fists" | | count | 1 |
| | 1 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "clenched her fists" | | 1 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 136 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 136 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 163 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 1 | | totalWords | 1626 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 48 | | wordCount | 1317 | | uniqueNames | 8 | | maxNameDensity | 1.37 | | worstName | "Aurora" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Isolde" | | discoveredNames | | Aurora | 18 | | Nyx | 9 | | Isolde | 15 | | Eva | 1 | | Heartstone | 1 | | Dymas | 2 | | Fae-Forged | 1 | | Blade | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Nyx" | | 2 | "Isolde" | | 3 | "Eva" | | 4 | "Heartstone" | | 5 | "Dymas" |
| | places | (empty) | | globalScore | 0.817 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 15.50% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.845 | | wordCount | 1626 | | matches | | 0 | "not bodily, but existential, as if absence itself could starve you in this r" | | 1 | "not with desire, but with proximity" | | 2 | "Not just through space, but through something else" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 163 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 64 | | mean | 25.41 | | std | 24.86 | | cv | 0.978 | | sampleLengths | | 0 | 111 | | 1 | 13 | | 2 | 10 | | 3 | 95 | | 4 | 15 | | 5 | 41 | | 6 | 38 | | 7 | 40 | | 8 | 18 | | 9 | 8 | | 10 | 29 | | 11 | 28 | | 12 | 10 | | 13 | 10 | | 14 | 28 | | 15 | 24 | | 16 | 60 | | 17 | 9 | | 18 | 35 | | 19 | 11 | | 20 | 5 | | 21 | 53 | | 22 | 9 | | 23 | 6 | | 24 | 62 | | 25 | 123 | | 26 | 15 | | 27 | 7 | | 28 | 28 | | 29 | 27 | | 30 | 6 | | 31 | 59 | | 32 | 11 | | 33 | 13 | | 34 | 12 | | 35 | 40 | | 36 | 45 | | 37 | 11 | | 38 | 11 | | 39 | 14 | | 40 | 4 | | 41 | 7 | | 42 | 56 | | 43 | 27 | | 44 | 19 | | 45 | 41 | | 46 | 2 | | 47 | 40 | | 48 | 11 | | 49 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 136 | | matches | | 0 | "were submerged" | | 1 | "been fed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 242 | | matches | | 0 | "was crossing" | | 1 | "was standing" | | 2 | "was waiting" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 163 | | ratio | 0.098 | | matches | | 0 | "The air smelled of damp earth and something brighter—jasmine maybe, or magnolia—mixed with the iron tang of old blood." | | 1 | "The air was thick with scent—roasting meats, spiced wines, the musk of a thousand bodies pressed close." | | 2 | "She hadn’t eaten since breakfast, but hunger here felt different—not bodily, but existential, as if absence itself could starve you in this realm of endless bounty." | | 3 | "A pair of figures descended the stairs, naked and gleaming, their skin patterned with shifting tattoos of food—peaches blooming, loaves of bread unraveling, grapes spilling like blood." | | 4 | "Not collapse, not crumble—it softened like wax, the stone running in rivulets of silver-black." | | 5 | "But in this place, even memory could be tasted—she recalled the stale smell of her flat, the clatter of dishes from the restaurant below, Eva’s voice on the phone: “You’re burning yourself out, Rory. Eat something.” She pushed the thought away." | | 6 | "Ahead, the garden opened into a vast arena where figures in elaborate court dress lounged on cushions the colour of clotted cream, eating from golden platters laden with dishes Aurora couldn’t name—meats that twitched on the bone, fruits with rinds like polished obsidian, sauces that dripped neon blue and green." | | 7 | "As they watched, a new tendril emerged—shaped like a loaf of bread—and the man wept as he consumed it." | | 8 | "This one descended, not ascended—cut into the living rock, etched with the same runes as the standing stones, but here the runes glowed faintly crimson, like embers in wet ash." | | 9 | "The steps were wide and deep, worn smooth by countless descending feet, and at the bottom, a shimmering veil pulsed—thin, translucent, like a curtain of mercury disturbed by breath." | | 10 | "The crimson gem throbbed in time with her pulse—not with desire, but with proximity." | | 11 | "Nyx watched as Aurora tested the edge against her thumb—no cut, no mark, just cold." | | 12 | "The arena, the garden, the figures on the stairs—all began to dissolve into streaks of light and dark, like a dream speeding up." | | 13 | "Then—" | | 14 | "The ground beneath her feet was slick with frost, the air sharp with the scent of pine and something older—ozone, decay, and the faint metallic tang of blood." | | 15 | "No—not warm." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1042 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.03838771593090211 | | lyAdverbCount | 13 | | lyAdverbRatio | 0.012476007677543186 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 163 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 163 | | mean | 9.98 | | std | 8.17 | | cv | 0.819 | | sampleLengths | | 0 | 29 | | 1 | 19 | | 2 | 5 | | 3 | 21 | | 4 | 14 | | 5 | 12 | | 6 | 11 | | 7 | 13 | | 8 | 10 | | 9 | 29 | | 10 | 17 | | 11 | 20 | | 12 | 29 | | 13 | 12 | | 14 | 3 | | 15 | 3 | | 16 | 26 | | 17 | 4 | | 18 | 1 | | 19 | 5 | | 20 | 1 | | 21 | 1 | | 22 | 17 | | 23 | 21 | | 24 | 27 | | 25 | 13 | | 26 | 11 | | 27 | 7 | | 28 | 3 | | 29 | 5 | | 30 | 11 | | 31 | 18 | | 32 | 14 | | 33 | 8 | | 34 | 6 | | 35 | 2 | | 36 | 8 | | 37 | 5 | | 38 | 5 | | 39 | 5 | | 40 | 14 | | 41 | 9 | | 42 | 6 | | 43 | 18 | | 44 | 5 | | 45 | 14 | | 46 | 13 | | 47 | 28 | | 48 | 9 | | 49 | 17 |
| |
| 54.19% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3619631901840491 | | totalSentences | 163 | | uniqueOpeners | 59 | |
| 59.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 113 | | matches | | 0 | "Then Aurora saw the second" | | 1 | "Then she took a deep" |
| | ratio | 0.018 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 113 | | matches | | 0 | "She glanced over her shoulder." | | 1 | "She found herself standing atop" | | 2 | "She hadn’t eaten since breakfast," | | 3 | "She clenched her fists." | | 4 | "she said to Isolde, ignoring" | | 5 | "They descended the dissolving stairs." | | 6 | "It wasn’t her fault she’d" | | 7 | "It was a liability." | | 8 | "It wasn’t water that rose" | | 9 | "His hands were submerged in" | | 10 | "Her fingers were ice." | | 11 | "She could feel heat, almost" | | 12 | "she said quietly" | | 13 | "She pulled the pendant free" | | 14 | "She made a decision." | | 15 | "It was cold in her" | | 16 | "She slid it back into" | | 17 | "Her skin prickled." | | 18 | "She was crossing." | | 19 | "She was standing in deep" |
| | ratio | 0.212 | |
| 75.04% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 87 | | totalSentences | 113 | | matches | | 0 | "The standing stones were cold" | | 1 | "The air smelled of damp" | | 2 | "She glanced over her shoulder." | | 3 | "Nyx had already passed through," | | 4 | "Isolde waited behind her, her" | | 5 | "Isolde said, her voice like" | | 6 | "Aurora swallowed, nudged the pendant" | | 7 | "The moment her boot cleared" | | 8 | "She found herself standing atop" | | 9 | "The air was thick with" | | 10 | "Laughter echoed, not entirely human," | | 11 | "Aurora’s stomach growled." | | 12 | "She hadn’t eaten since breakfast," | | 13 | "She clenched her fists." | | 14 | "Isolde stepped onto the stair" | | 15 | "A pair of figures descended" | | 16 | "the one on the right" | | 17 | "Aurora stepped back." | | 18 | "The other laughed, a sound" | | 19 | "Nyx moved between them, their" |
| | ratio | 0.77 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 113 | | matches | (empty) | | ratio | 0 | |
| 40.82% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 49 | | technicalSentenceCount | 7 | | matches | | 0 | "Nyx had already passed through, their form rippling between solid and smoke, leaving no disturbance in the moss where they walked." | | 1 | "She found herself standing atop a broad obsidian staircase that spiralled upward into a sky of liquid gold, rimmed with swirling crimson clouds that moved like …" | | 2 | "Below, the trees were no trees: their trunks writhing like serpents coiled in ecstasy, their bark lacquered in jewel tones, their branches heavy with fruit that…" | | 3 | "She hadn’t eaten since breakfast, but hunger here felt different—not bodily, but existential, as if absence itself could starve you in this realm of endless bou…" | | 4 | "Ahead, the garden opened into a vast arena where figures in elaborate court dress lounged on cushions the colour of clotted cream, eating from golden platters l…" | | 5 | "It wasn’t water that rose from it, but tendrils of smoke that spiralled upward before dissolving into the golden sky." | | 6 | "In the golden light of Dymas, it pulsed deep crimson, as if filled with slow-moving embers." |
| |
| 97.22% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 1 | | matches | | 0 | "murmured Nyx, their voice drifting through her like a shadow caress" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 2 | | fancyTags | | 0 | "murmured Nyx (murmur)" | | 1 | "Nyx breathed (breathe)" |
| | dialogueSentences | 44 | | tagDensity | 0.318 | | leniency | 0.636 | | rawRatio | 0.143 | | effectiveRatio | 0.091 | |