| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 33 | | tagDensity | 0.273 | | leniency | 0.545 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 91.70% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1205 | | totalAiIsmAdverbs | 2 | | found | | 0 | | adverb | "barely above a whisper" | | count | 1 |
| | 1 | |
| | highlights | | 0 | "barely above a whisper" | | 1 | "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) | |
| 21.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1205 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "tracing" | | 1 | "flicker" | | 2 | "whisper" | | 3 | "shimmered" | | 4 | "stomach" | | 5 | "weight" | | 6 | "reminder" | | 7 | "pulsed" | | 8 | "silk" | | 9 | "glinting" | | 10 | "pulse" | | 11 | "flicked" | | 12 | "predictable" | | 13 | "pounding" | | 14 | "loomed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 94 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 94 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 118 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 16 | | markdownWords | 16 | | totalWords | 1196 | | ratio | 0.013 | | matches | | 0 | "door" | | 1 | "parted" | | 2 | "live" | | 3 | "threshold" | | 4 | "alive" | | 5 | "hot" | | 6 | "moved" | | 7 | "hungry" | | 8 | "predictable" | | 9 | "used" | | 10 | "shifted" | | 11 | "moving" | | 12 | "leapt" | | 13 | "screamed" | | 14 | "hell" | | 15 | "moving" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 49.23% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 57 | | wordCount | 1042 | | uniqueNames | 14 | | maxNameDensity | 2.02 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Carter | 1 | | Nyx | 8 | | Fae | 2 | | Rory | 21 | | Heartstone | 1 | | Ahead | 1 | | Fae-forged | 1 | | Dymas | 2 | | Belphegor | 4 | | London | 1 | | Isolde | 8 | | Silas | 5 | | Richmond | 1 | | Park | 1 |
| | persons | | 0 | "Carter" | | 1 | "Nyx" | | 2 | "Rory" | | 3 | "Belphegor" | | 4 | "Isolde" | | 5 | "Silas" |
| | places | | 0 | "London" | | 1 | "Richmond" | | 2 | "Park" |
| | globalScore | 0.492 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 72 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1196 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 118 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 53 | | mean | 22.57 | | std | 19.94 | | cv | 0.884 | | sampleLengths | | 0 | 67 | | 1 | 63 | | 2 | 26 | | 3 | 48 | | 4 | 59 | | 5 | 14 | | 6 | 6 | | 7 | 37 | | 8 | 52 | | 9 | 3 | | 10 | 14 | | 11 | 7 | | 12 | 81 | | 13 | 6 | | 14 | 61 | | 15 | 34 | | 16 | 14 | | 17 | 9 | | 18 | 9 | | 19 | 12 | | 20 | 26 | | 21 | 9 | | 22 | 38 | | 23 | 3 | | 24 | 9 | | 25 | 46 | | 26 | 2 | | 27 | 34 | | 28 | 8 | | 29 | 9 | | 30 | 14 | | 31 | 13 | | 32 | 10 | | 33 | 19 | | 34 | 13 | | 35 | 10 | | 36 | 6 | | 37 | 44 | | 38 | 17 | | 39 | 10 | | 40 | 45 | | 41 | 8 | | 42 | 7 | | 43 | 53 | | 44 | 29 | | 45 | 3 | | 46 | 31 | | 47 | 9 | | 48 | 17 | | 49 | 14 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 94 | | matches | (empty) | |
| 9.52% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 175 | | matches | | 0 | "were fighting" | | 1 | "was standing" | | 2 | "was running was gasping" | | 3 | "was pushing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 118 | | ratio | 0.059 | | matches | | 0 | "The air smelled wrong—sweet and thick, like overripe fruit left too long in the sun." | | 1 | "The grove had swallowed them whole the moment they crossed, but this—this was different." | | 2 | "Rory caught a glimpse of something silver moving in the undergrowth—too quick, too wrong." | | 3 | "The sky above wasn’t sky at all—it was a vast, swirling canvas of amber and deep violet, like the inside of a bruise." | | 4 | "Figures moved through the haze, their forms shifting between human and something else—something with too many limbs, too many eyes." | | 5 | "Rory’s breath hitched as she realised—this wasn’t just a glimpse of Dymas." | | 6 | "One moment, she was running through the grove, the next—she was gasping on the cold pavement of Richmond Park, her hands pressed to her knees, her heart hammering against her ribs." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1051 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 36 | | adverbRatio | 0.03425309229305423 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.006660323501427212 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 118 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 118 | | mean | 10.14 | | std | 6.68 | | cv | 0.659 | | sampleLengths | | 0 | 15 | | 1 | 19 | | 2 | 14 | | 3 | 19 | | 4 | 3 | | 5 | 8 | | 6 | 22 | | 7 | 14 | | 8 | 16 | | 9 | 8 | | 10 | 10 | | 11 | 8 | | 12 | 3 | | 13 | 18 | | 14 | 12 | | 15 | 15 | | 16 | 15 | | 17 | 4 | | 18 | 15 | | 19 | 14 | | 20 | 11 | | 21 | 14 | | 22 | 4 | | 23 | 2 | | 24 | 23 | | 25 | 14 | | 26 | 13 | | 27 | 23 | | 28 | 16 | | 29 | 3 | | 30 | 11 | | 31 | 3 | | 32 | 2 | | 33 | 5 | | 34 | 10 | | 35 | 16 | | 36 | 21 | | 37 | 34 | | 38 | 6 | | 39 | 20 | | 40 | 23 | | 41 | 18 | | 42 | 10 | | 43 | 12 | | 44 | 3 | | 45 | 9 | | 46 | 6 | | 47 | 8 | | 48 | 5 | | 49 | 4 |
| |
| 50.56% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.3389830508474576 | | totalSentences | 118 | | uniqueOpeners | 40 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 88 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 13 | | totalSentences | 88 | | matches | | 0 | "She never did, not unless" | | 1 | "Her silver hair caught the" | | 2 | "He adjusted the strap of" | | 3 | "She was already stepping forward," | | 4 | "They *parted*, then snapped back" | | 5 | "They laughed, their voices a" | | 6 | "She’d seen his name in" | | 7 | "He smiled, and Rory’s blood" | | 8 | "he purred, his voice like" | | 9 | "His gaze flicked to the" | | 10 | "He stepped closer, his presence" | | 11 | "She turned and sprinted for" | | 12 | "She *leapt*, her fingers closing" |
| | ratio | 0.148 | |
| 28.18% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 76 | | totalSentences | 88 | | matches | | 0 | "The air smelled wrong—sweet and" | | 1 | "Rory Carter stepped through the" | | 2 | "The others hesitated at the" | | 3 | "Isolde didn’t move." | | 4 | "She never did, not unless" | | 5 | "Her silver hair caught the" | | 6 | "The grove had swallowed them" | | 7 | "The air hummed, alive with" | | 8 | "Silas muttered, his usual bravado" | | 9 | "He adjusted the strap of" | | 10 | "Rory didn’t answer." | | 11 | "She was already stepping forward," | | 12 | "The wood was warm under" | | 13 | "The Heartstone pendant at her" | | 14 | "Nyx drifted ahead, their shadow" | | 15 | "The branches didn’t resist." | | 16 | "They *parted*, then snapped back" | | 17 | "Rory caught a glimpse of" | | 18 | "A flicker of movement, like" | | 19 | "Isolde said, her voice barely" |
| | ratio | 0.864 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 88 | | matches | (empty) | | ratio | 0 | |
| 11.66% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 49 | | technicalSentenceCount | 9 | | matches | | 0 | "The others hesitated at the threshold, fingers brushing the rough bark of the ancient oaks that marked the boundary." | | 1 | "The air hummed, alive with something older than the Fae, something that made Rory’s skin prickle." | | 2 | "She was already stepping forward, her fingers tracing the bark of a tree that shouldn’t have been there." | | 3 | "Towering vines laden with fruit hung heavy in the air, their skins shimmering like polished gemstones." | | 4 | "A fountain bubbled with wine-red liquid that smelled of spice and something darker, something that made Rory’s mouth water despite herself." | | 5 | "In the distance, a long table groaned under the weight of platters piled high with meats and sweets, all of it steaming, all of it *alive* in a way that made he…" | | 6 | "Nyx’s shadow stretched toward the table, their fingers brushing the edge of a goblet filled with something that sloshed like liquid shadow." | | 7 | "The revelers turned, their attention snapping toward the intruders like hounds scenting blood." | | 8 | "One moment, she was running through the grove, the next—she was gasping on the cold pavement of Richmond Park, her hands pressed to her knees, her heart hammeri…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 5 | | matches | | 0 | "Silas muttered, his usual bravado slipping" | | 1 | "Isolde said, her voice barely above a whisper" | | 2 | "Isolde’s fingers twitched, as if she were fighting the urge to reach out and touch the air itself" | | 3 | "His gaze flicked, his smile widening" | | 4 | "He stepped, his presence pressing down on them like a physical weight" |
| |
| 59.09% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 3 | | fancyTags | | 0 | "Silas muttered (mutter)" | | 1 | "she breathed (breathe)" | | 2 | "Rory warned (warn)" |
| | dialogueSentences | 33 | | tagDensity | 0.152 | | leniency | 0.303 | | rawRatio | 0.6 | | effectiveRatio | 0.182 | |