| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 34 | | tagDensity | 0.529 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 92.22% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1286 | | totalAiIsmAdverbs | 2 | | 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) | |
| 68.90% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1286 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "pulse" | | 1 | "trembled" | | 2 | "warmth" | | 3 | "pulsed" | | 4 | "flickered" |
| |
| 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 | 84 | | matches | (empty) | |
| 91.84% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 84 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 100 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1272 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 46 | | wordCount | 999 | | uniqueNames | 12 | | maxNameDensity | 1.7 | | worstName | "Aurora" | | maxWindowNameDensity | 4 | | worstWindowName | "Aurora" | | discoveredNames | | Aurora | 17 | | Nyx | 9 | | Park | 2 | | Heartstone | 1 | | One | 1 | | Half-Fae | 2 | | London | 1 | | Shade | 1 | | Eva | 1 | | Isolde | 8 | | Richmond | 2 | | Fae-forged | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Nyx" | | 2 | "Heartstone" | | 3 | "One" | | 4 | "Shade" | | 5 | "Eva" | | 6 | "Isolde" |
| | places | | 0 | "Park" | | 1 | "London" | | 2 | "Richmond" |
| | globalScore | 0.649 | | windowScore | 0.333 | |
| 66.67% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 2 | | matches | | 0 | "seemed ordinary enough at first—joggers, dogs, the distant thwack of a tennis ball—but then she’d followed the Heartstone’s pulse deeper, off the paths, past the warning signs, into a thicket that didn’t belong on any map" | | 1 | "spirals that seemed to shift when she looked directly at them" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1272 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 100 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 30.29 | | std | 25.47 | | cv | 0.841 | | sampleLengths | | 0 | 75 | | 1 | 30 | | 2 | 18 | | 3 | 7 | | 4 | 116 | | 5 | 5 | | 6 | 46 | | 7 | 51 | | 8 | 5 | | 9 | 37 | | 10 | 27 | | 11 | 3 | | 12 | 28 | | 13 | 3 | | 14 | 57 | | 15 | 51 | | 16 | 6 | | 17 | 3 | | 18 | 8 | | 19 | 28 | | 20 | 21 | | 21 | 77 | | 22 | 7 | | 23 | 39 | | 24 | 7 | | 25 | 61 | | 26 | 10 | | 27 | 64 | | 28 | 36 | | 29 | 11 | | 30 | 46 | | 31 | 15 | | 32 | 67 | | 33 | 24 | | 34 | 53 | | 35 | 25 | | 36 | 19 | | 37 | 12 | | 38 | 44 | | 39 | 6 | | 40 | 18 | | 41 | 6 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 84 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 170 | | matches | | 0 | "was standing" | | 1 | "was standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 100 | | ratio | 0.13 | | matches | | 0 | "Richmond Park had seemed ordinary enough at first—joggers, dogs, the distant thwack of a tennis ball—but then she’d followed the Heartstone’s pulse deeper, off the paths, past the warning signs, into a thicket that didn’t belong on any map." | | 1 | "It tasted green and old, heavy with pollen and something else—something that hummed at the edge of hearing, like a wire vibrating in a distant room." | | 2 | "Ancient oaks ringed the clearing, their trunks twisted into spirals that climbed toward a sky that looked wrong—too blue, too soft, as if someone had painted it from memory rather than sight." | | 3 | "The grass beneath her feet was impossibly green, the kind of green that hurt to look at, studded with wildflowers that bloomed in clusters she didn’t recognize—deep violet petals that opened like mouths, white blossoms that gave off a faint silver glow, yellow stars that trembled despite the stillness of the air." | | 4 | "Nyx stepped past her, their form solidifying into something almost human—a tall silhouette with faint violet embers where eyes should be." | | 5 | "She looked down—the blades were rimed with frost, despite the warmth that pressed against her skin." | | 6 | "Each one bore different carvings—knotwork, leaves, faces with hollow eyes that followed her as she passed." | | 7 | "But the pebbles weren’t pebbles—they were coins, hundreds of them, tarnished and green, stamped with symbols she didn’t recognize." | | 8 | "Her eyes, pale lavender, held no pupils—just deep, swirling color, like milk stirred into wine." | | 9 | "“Plainly?” Isolde laughed, and the sound sent ripples through the grove—the leaves trembled, the stream paused, the air grew heavy." | | 10 | "Then, slowly, she drew the dagger from the sheath at her hip—the one Eva had given her before everything went sideways." | | 11 | "It reflected her face, but distorted—her eyes too large, her mouth a grim slash." | | 12 | "She raised one hand, and the grove began to contract—the trees leaning inward, the sky darkening, the air compressing until Aurora felt she couldn’t breathe." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1021 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.031341821743388835 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.005876591576885406 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 100 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 100 | | mean | 12.72 | | std | 10.67 | | cv | 0.839 | | sampleLengths | | 0 | 21 | | 1 | 15 | | 2 | 39 | | 3 | 4 | | 4 | 26 | | 5 | 8 | | 6 | 10 | | 7 | 7 | | 8 | 9 | | 9 | 32 | | 10 | 23 | | 11 | 52 | | 12 | 5 | | 13 | 21 | | 14 | 23 | | 15 | 2 | | 16 | 8 | | 17 | 16 | | 18 | 27 | | 19 | 5 | | 20 | 9 | | 21 | 16 | | 22 | 12 | | 23 | 27 | | 24 | 2 | | 25 | 1 | | 26 | 2 | | 27 | 26 | | 28 | 3 | | 29 | 7 | | 30 | 16 | | 31 | 25 | | 32 | 3 | | 33 | 6 | | 34 | 22 | | 35 | 19 | | 36 | 10 | | 37 | 6 | | 38 | 3 | | 39 | 5 | | 40 | 3 | | 41 | 24 | | 42 | 4 | | 43 | 7 | | 44 | 7 | | 45 | 7 | | 46 | 21 | | 47 | 18 | | 48 | 23 | | 49 | 15 |
| |
| 78.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.48 | | totalSentences | 100 | | uniqueOpeners | 48 | |
| 96.62% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 69 | | matches | | 0 | "Just the rustle of leaves" | | 1 | "Then, slowly, she drew the" |
| | ratio | 0.029 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 69 | | matches | | 0 | "It tasted green and old," | | 1 | "They made a gesture with" | | 2 | "It had led her here," | | 3 | "She took a step forward." | | 4 | "She looked down—the blades were" | | 5 | "They moved deeper." | | 6 | "Her skin prickled." | | 7 | "She pulled her hand back." | | 8 | "She followed the direction of" | | 9 | "She was tall and slender," | | 10 | "Her dress was the color" | | 11 | "Her eyes, pale lavender, held" | | 12 | "She left no footprints in" | | 13 | "She stepped forward, and where" | | 14 | "She looked at Aurora, and" | | 15 | "She pressed the hilt into" | | 16 | "It reflected her face, but" | | 17 | "She raised one hand, and" | | 18 | "It glimmered, cold and beautiful" |
| | ratio | 0.275 | |
| 61.45% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 69 | | matches | | 0 | "The pendant grew warm against" | | 1 | "Richmond Park had seemed ordinary" | | 2 | "It tasted green and old," | | 3 | "Nyx said, their voice a" | | 4 | "Aurora stepped forward and the" | | 5 | "The grove sprawled before her" | | 6 | "The grass beneath her feet" | | 7 | "Nyx stepped past her, their" | | 8 | "They made a gesture with" | | 9 | "Aurora lifted the pendant from" | | 10 | "The crimson gemstone glowed with" | | 11 | "It had led her here," | | 12 | "She took a step forward." | | 13 | "The grass crunched under her" | | 14 | "She looked down—the blades were" | | 15 | "They moved deeper." | | 16 | "The standing stones seemed to" | | 17 | "Each one bore different carvings—knotwork," | | 18 | "The air grew thicker, heady" | | 19 | "Her skin prickled." |
| | ratio | 0.797 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 69 | | matches | | 0 | "Now the air shifted." | | 1 | "Because suddenly, Isolde was standing" |
| | ratio | 0.029 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 34 | | technicalSentenceCount | 9 | | matches | | 0 | "Richmond Park had seemed ordinary enough at first—joggers, dogs, the distant thwack of a tennis ball—but then she’d followed the Heartstone’s pulse deeper, off …" | | 1 | "It tasted green and old, heavy with pollen and something else—something that hummed at the edge of hearing, like a wire vibrating in a distant room." | | 2 | "Ancient oaks ringed the clearing, their trunks twisted into spirals that climbed toward a sky that looked wrong—too blue, too soft, as if someone had painted it…" | | 3 | "Between the oaks stood stones, rough-hewn and moss-eaten, each one carved with spirals that seemed to shift when she looked directly at them." | | 4 | "The grass beneath her feet was impossibly green, the kind of green that hurt to look at, studded with wildflowers that bloomed in clusters she didn’t recognize—…" | | 5 | "It had led her here, to this hidden pocket of the world, to the Half-Fae seer who might have answers about the shadow growing beneath London’s streets." | | 6 | "She was tall and slender, with silver hair that fell past her waist like a waterfall of moonlight." | | 7 | "Because suddenly, Isolde was standing closer, close enough that Aurora could smell the frost on her breath, the earth in her hair, the distant, wild scent of a …" | | 8 | "The metal was impossibly cold, a shock that traveled up her arm and settled behind her eyes." |
| |
| 69.44% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 2 | | matches | | 0 | "Nyx said, their voice a dry rustle" | | 1 | "the woman said, and her voice was music, layered and strange, the kind of sound that made you lean in despite yourself" |
| |
| 32.35% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 4 | | fancyTags | | 0 | "she breathed (breathe)" | | 1 | "Isolde laughed (laugh)" | | 2 | "She pressed (press)" | | 3 | "she murmured (murmur)" |
| | dialogueSentences | 34 | | tagDensity | 0.353 | | leniency | 0.706 | | rawRatio | 0.333 | | effectiveRatio | 0.235 | |