| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 83.98% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1561 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "suddenly" | | 1 | "completely" | | 2 | "softly" | | 3 | "utterly" | | 4 | "very" |
| |
| 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) | |
| 48.75% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1561 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "velvet" | | 1 | "rhythmic" | | 2 | "pulse" | | 3 | "weight" | | 4 | "whisper" | | 5 | "stomach" | | 6 | "pang" | | 7 | "wavering" | | 8 | "glistening" | | 9 | "throbbed" | | 10 | "vibrated" | | 11 | "marble" | | 12 | "echoed" |
| |
| 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 | 109 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 109 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 109 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1558 | | ratio | 0 | | matches | (empty) | |
| 0.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 8 | | matches | | 0 | "A garden where the fruit never rots, Isolde murmured, her voice musical, distant, and maddeningly calm." | | 1 | "Look up, mortal, Nyx murmured." | | 2 | "Do not swallow, Isolde said softly, not looking back as she glided ahead." | | 3 | "They sought mastery, Nyx said, their form wavering into a thin, smoky tendril that coiled around a bronze trellis before…" | | 4 | "We are expected, Isolde whispered." | | 5 | "The truth is a mirror, Aurora Carter, Isolde said, turning her head with an eerie, deliberate slowness." | | 6 | "We need to keep moving, Rory said, her voice flattening into the brisk, pragmatic register she used when a delivery went…" | | 7 | "Move, Aurora said, her grip tightening on the freezing hilt." |
| |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 48 | | wordCount | 1558 | | uniqueNames | 16 | | maxNameDensity | 1.03 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 16 | | Veil | 1 | | Richmond | 1 | | Park | 1 | | Heartstone | 2 | | Isolde | 8 | | Shade | 1 | | Cardiff | 1 | | Fae | 3 | | Nyx | 6 | | London | 1 | | Belphegor | 2 | | Hel | 2 | | Carter | 1 | | Rory | 1 | | Shoreditch | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Heartstone" | | 2 | "Isolde" | | 3 | "Shade" | | 4 | "Fae" | | 5 | "Nyx" | | 6 | "Belphegor" | | 7 | "Hel" | | 8 | "Carter" | | 9 | "Rory" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Cardiff" | | 3 | "London" |
| | globalScore | 0.987 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 90 | | glossingSentenceCount | 1 | | matches | | 0 | "looked like sprawling open-air kitchens," |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1558 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 109 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 39.95 | | std | 20.61 | | cv | 0.516 | | sampleLengths | | 0 | 33 | | 1 | 48 | | 2 | 31 | | 3 | 55 | | 4 | 16 | | 5 | 52 | | 6 | 63 | | 7 | 32 | | 8 | 59 | | 9 | 21 | | 10 | 35 | | 11 | 53 | | 12 | 11 | | 13 | 5 | | 14 | 87 | | 15 | 64 | | 16 | 22 | | 17 | 50 | | 18 | 80 | | 19 | 42 | | 20 | 37 | | 21 | 62 | | 22 | 68 | | 23 | 51 | | 24 | 29 | | 25 | 16 | | 26 | 14 | | 27 | 38 | | 28 | 65 | | 29 | 40 | | 30 | 29 | | 31 | 13 | | 32 | 59 | | 33 | 23 | | 34 | 66 | | 35 | 23 | | 36 | 24 | | 37 | 31 | | 38 | 11 |
| |
| 89.17% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 5 | | totalSentences | 109 | | matches | | 0 | "being torn" | | 1 | "was gone" | | 2 | "was made" | | 3 | "were edged" | | 4 | "was carved" |
| |
| 46.15% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 260 | | matches | | 0 | "were scraping" | | 1 | "was humming" | | 2 | "was pulling" | | 3 | "were coming" | | 4 | "were leaving" | | 5 | "was stretching" |
| |
| 38.01% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 3 | | semicolonCount | 1 | | flaggedSentences | 4 | | totalSentences | 109 | | ratio | 0.037 | | matches | | 0 | "From the boughs hung clusters of fruit the size of carriage wheels—pomegranates split open to reveal kernels that gleamed like polished rubies, and pale, translucent globes that drifted in the still air like bioluminescent jellyfish, tethered to the vines by threads of spun bronze." | | 1 | "It wasn't just hot; it was humming." | | 2 | "Isolde, of course, left nothing—the moss sprang back untouched beneath her weightless glide." | | 3 | "Under the amber dome, her shadow lay sharp and distinct—except where it touched the edge of the vine-wrapped trellis." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1574 | | adjectiveStacks | 1 | | stackExamples | | 0 | "faint, frost-white vapor" |
| | adverbCount | 42 | | adverbRatio | 0.026683608640406607 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.00698856416772554 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 109 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 109 | | mean | 14.29 | | std | 8.78 | | cv | 0.614 | | sampleLengths | | 0 | 11 | | 1 | 22 | | 2 | 14 | | 3 | 21 | | 4 | 13 | | 5 | 7 | | 6 | 24 | | 7 | 7 | | 8 | 26 | | 9 | 22 | | 10 | 9 | | 11 | 7 | | 12 | 15 | | 13 | 19 | | 14 | 18 | | 15 | 15 | | 16 | 29 | | 17 | 19 | | 18 | 6 | | 19 | 26 | | 20 | 3 | | 21 | 17 | | 22 | 18 | | 23 | 21 | | 24 | 16 | | 25 | 5 | | 26 | 22 | | 27 | 2 | | 28 | 1 | | 29 | 10 | | 30 | 6 | | 31 | 17 | | 32 | 30 | | 33 | 9 | | 34 | 2 | | 35 | 5 | | 36 | 5 | | 37 | 12 | | 38 | 26 | | 39 | 44 | | 40 | 4 | | 41 | 32 | | 42 | 3 | | 43 | 18 | | 44 | 7 | | 45 | 13 | | 46 | 9 | | 47 | 8 | | 48 | 27 | | 49 | 15 |
| |
| 66.06% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.44036697247706424 | | totalSentences | 109 | | uniqueOpeners | 48 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 103 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 29 | | totalSentences | 103 | | matches | | 0 | "It settled on Aurora’s tongue" | | 1 | "She stumbled forward, her boots" | | 2 | "Her pale lavender eyes swept" | | 3 | "She kept her right hand" | | 4 | "She was twenty-five, her shoulder-length" | | 5 | "She thumbed the crescent-shaped scar" | | 6 | "It was the scent of" | | 7 | "It was intoxicating." | | 8 | "Her stomach, which had been" | | 9 | "Her mouth watered so hard" | | 10 | "Her throat felt dry, her" | | 11 | "She tore her gaze away" | | 12 | "They sought mastery, Nyx said," | | 13 | "They found an eternity of" | | 14 | "It wasn't just hot; it" | | 15 | "She reached up, closing her" | | 16 | "It was clear, pale gold," | | 17 | "Her silver hair grazed the" | | 18 | "Her lavender eyes reflected the" | | 19 | "We are expected, Isolde whispered." |
| | ratio | 0.282 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 72 | | totalSentences | 103 | | matches | | 0 | "The air on the other" | | 1 | "It settled on Aurora’s tongue" | | 2 | "She stumbled forward, her boots" | | 3 | "The cold mist of Richmond" | | 4 | "Aurora caught herself against a" | | 5 | "The crimson gemstone glowed through" | | 6 | "Hel, she thought, the breath" | | 7 | "The half-Fae’s silver hair tumbled" | | 8 | "Her pale lavender eyes swept" | | 9 | "Nyx came last, their silhouette" | | 10 | "The sky above them was" | | 11 | "Aurora asked, her Cardiff accent" | | 12 | "She kept her right hand" | | 13 | "The Fae blade was an" | | 14 | "A garden where the fruit" | | 15 | "Nyx drifted alongside them, their" | | 16 | "The prince builds high walls" | | 17 | "Aurora straightened, rolling her shoulders" | | 18 | "She was twenty-five, her shoulder-length" | | 19 | "She thumbed the crescent-shaped scar" |
| | ratio | 0.699 | |
| 97.09% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 103 | | matches | | 0 | "If this is an orchard," | | 1 | "To taste the gift is" |
| | ratio | 0.019 | |
| 18.63% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 69 | | technicalSentenceCount | 12 | | matches | | 0 | "Through the thin leather of her glove, the wood felt warm, coursing with a sluggish, rhythmic pulse that made her yank her hand away." | | 1 | "What had been a dull, reassuring weight against her sternum was suddenly alive, radiating a feverish, throbbing heat that seeped through the wool of her sweater…" | | 2 | "Nyx drifted alongside them, their voice a dry whisper that felt as though it were scraping against the inside of Aurora’s ears." | | 3 | "She thumbed the crescent-shaped scar on the inside of her left wrist, a nervous habit from childhood that had grounded her through worse things than bad air and…" | | 4 | "From the boughs hung clusters of fruit the size of carriage wheels—pomegranates split open to reveal kernels that gleamed like polished rubies, and pale, transl…" | | 5 | "Her stomach, which had been empty since she skipped breakfast at her flat, gave a vicious, audible pang." | | 6 | "They sought mastery, Nyx said, their form wavering into a thin, smoky tendril that coiled around a bronze trellis before snapping back to humanoid shape." | | 7 | "A cluster of pale berries shuddered as she stepped past, their skins glistening with a thin dew that smelled unmistakably of fermented cider." | | 8 | "It was clear, pale gold, and bubbled with tiny, lazy effervescence that released the scent of crushed mint and elderflower." | | 9 | "Where she had stepped, the violet moss had darkened to the color of dried blood, weeping a sticky, sweet sap that clung to the rubber soles." | | 10 | "We need to keep moving, Rory said, her voice flattening into the brisk, pragmatic register she used when a delivery went wrong in an alley off Shoreditch." | | 11 | "It was stretching, pulling toward the petrified roots, thin dark tendrils of her own outline reaching out, straining to lap at the fallen drops of golden syrup …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |