| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 79.30% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 966 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "carefully" | | 1 | "slightly" | | 2 | "sharply" | | 3 | "slowly" |
| |
| 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) | |
| 22.36% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 966 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "pulsed" | | 1 | "whisper" | | 2 | "loomed" | | 3 | "pulse" | | 4 | "could feel" | | 5 | "silence" | | 6 | "warmth" | | 7 | "silk" | | 8 | "vibrated" | | 9 | "sentinels" |
| |
| 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 | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "clenched into fists" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 129 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 129 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 130 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 50 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 17 | | markdownWords | 25 | | totalWords | 947 | | ratio | 0.026 | | matches | | 0 | "Ask for the Inner Grove." | | 1 | "for protection" | | 2 | "worked" | | 3 | "retreating" | | 4 | "Behind her." | | 5 | "human" | | 6 | "Rory." | | 7 | "Rory, come back." | | 8 | "thrumming" | | 9 | "wrongness" | | 10 | "Light." | | 11 | "unraveled" | | 12 | "vibrated" | | 13 | "sing" | | 14 | "pressure" | | 15 | "her" | | 16 | "them" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 937 | | uniqueNames | 7 | | maxNameDensity | 0.85 | | worstName | "Aurora" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Aurora" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Heartstone | 1 | | Hel | 1 | | Inner | 1 | | Aurora | 8 | | Rory | 4 |
| | persons | | 0 | "Heartstone" | | 1 | "Aurora" | | 2 | "Rory" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Inner" |
| | globalScore | 1 | | windowScore | 1 | |
| 47.96% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 49 | | glossingSentenceCount | 2 | | matches | | 0 | "something like crushed violets, too sweet, l" | | 1 | "as though pressing together in the dark" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 3.168 | | wordCount | 947 | | matches | | 0 | "not trampled, but *worked*" | | 1 | "not drifting, but *retreating*, as though something had inhaled it" | | 2 | "not warm, but *thrumming*, a vibration against her sternum, slow" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 130 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 67 | | mean | 14.13 | | std | 19.03 | | cv | 1.347 | | sampleLengths | | 0 | 85 | | 1 | 44 | | 2 | 70 | | 3 | 8 | | 4 | 25 | | 5 | 3 | | 6 | 1 | | 7 | 17 | | 8 | 5 | | 9 | 90 | | 10 | 61 | | 11 | 2 | | 12 | 24 | | 13 | 5 | | 14 | 10 | | 15 | 13 | | 16 | 38 | | 17 | 5 | | 18 | 4 | | 19 | 5 | | 20 | 15 | | 21 | 3 | | 22 | 3 | | 23 | 16 | | 24 | 3 | | 25 | 1 | | 26 | 9 | | 27 | 16 | | 28 | 2 | | 29 | 4 | | 30 | 31 | | 31 | 1 | | 32 | 2 | | 33 | 3 | | 34 | 26 | | 35 | 12 | | 36 | 16 | | 37 | 12 | | 38 | 1 | | 39 | 9 | | 40 | 3 | | 41 | 5 | | 42 | 2 | | 43 | 1 | | 44 | 10 | | 45 | 24 | | 46 | 4 | | 47 | 1 | | 48 | 22 | | 49 | 12 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 129 | | matches | | |
| 36.40% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 163 | | matches | | 0 | "was crossing" | | 1 | "was whispering" | | 2 | "wasn’t hiding" | | 3 | "was hiding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 24 | | semicolonCount | 0 | | flaggedSentences | 17 | | totalSentences | 130 | | ratio | 0.131 | | matches | | 0 | "The Richmond Park entrance had been as it always was—wide iron gates, tidy paths, the distant murmur of late-night traffic—but beyond them, the world had folded inward." | | 1 | "The gemstone, tucked into the hollow of her throat, should have warmed by now—should have flared if a Hel portal pulsed nearby." | | 2 | "She adjusted the straps of her delivery bag—an old thing made of canvas, probably older than the pub upstairs—and stepped carefully over the roots that coiled across the path like serpents." | | 3 | "A woman with all silver in her hair and fire in her eyes had slipped her a scrap of paper with coordinates and a warning: *Ask for the Inner Grove.* She didn’t know why the woman had trusted her, but she’d given Aurora the pendant at the same time—*for protection*." | | 4 | "The standing stones—huge, gnarled, their surfaces blackened by centuries—loomed ahead." | | 5 | "Their shadows stretched unnaturally long, even against the ground fog, and at their base, the earth was disturbed—not trampled, but *worked*." | | 6 | "The mist shifted at the edges of her vision—not drifting, but *retreating*, as though something had inhaled it." | | 7 | "The rhythm irregular, like something uneven on foot—limping?" | | 8 | "A voice like wind through reeds, but shaped—formed—into something linguistic, something almost *human*, except it wasn’t." | | 9 | "She could feel the pendant pulsing—not warm, but *thrumming*, a vibration against her sternum, slow and deliberate, like a second heartbeat." | | 10 | "It dissolved into a laugh—a child’s giggle, high and wet and wrong." | | 11 | "Not a shape—just *wrongness*." | | 12 | "It rolled toward her in a wave—no physical form, just an absence given motion—and struck her chest like a gust of ice." | | 13 | "The cold wave recoiled with a shriek—a sound like tearing silk and breaking glass—and the mist before her *unraveled*, threads of fog peeling away like peeling skin." | | 14 | "And from deep within the mist, from beyond the ring of oak sentinels, something began to *sing*—" | | 15 | "—a note so low it wasn’t sound, but *pressure*—" | | 16 | "—and Rory realized with dreadless clarity that the grove wasn’t hiding *her*." |
| |
| 92.94% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 957 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 46 | | adverbRatio | 0.04806687565308255 | | lyAdverbCount | 10 | | lyAdverbRatio | 0.01044932079414838 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 130 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 130 | | mean | 7.28 | | std | 7.81 | | cv | 1.073 | | sampleLengths | | 0 | 31 | | 1 | 27 | | 2 | 2 | | 3 | 5 | | 4 | 20 | | 5 | 16 | | 6 | 22 | | 7 | 4 | | 8 | 1 | | 9 | 1 | | 10 | 31 | | 11 | 14 | | 12 | 8 | | 13 | 17 | | 14 | 8 | | 15 | 3 | | 16 | 2 | | 17 | 2 | | 18 | 2 | | 19 | 2 | | 20 | 1 | | 21 | 13 | | 22 | 2 | | 23 | 1 | | 24 | 1 | | 25 | 8 | | 26 | 9 | | 27 | 5 | | 28 | 8 | | 29 | 2 | | 30 | 8 | | 31 | 50 | | 32 | 22 | | 33 | 3 | | 34 | 10 | | 35 | 13 | | 36 | 11 | | 37 | 21 | | 38 | 1 | | 39 | 2 | | 40 | 2 | | 41 | 17 | | 42 | 3 | | 43 | 4 | | 44 | 5 | | 45 | 3 | | 46 | 3 | | 47 | 4 | | 48 | 3 | | 49 | 8 |
| |
| 45.13% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.33076923076923076 | | totalSentences | 130 | | uniqueOpeners | 43 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 91 | | matches | | 0 | "Only the stones, watching." | | 1 | "Then she heard it again." | | 2 | "Then the whisper began." | | 3 | "Then, from every direction at" |
| | ratio | 0.044 | |
| 83.74% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 91 | | matches | | 0 | "She had checked the coordinates" | | 1 | "She adjusted the straps of" | | 2 | "It hung in the air," | | 3 | "She exhaled through her nose," | | 4 | "she muttered under her breath" | | 5 | "She’d come here for a" | | 6 | "She hadn’t explained why the" | | 7 | "She’d seen photos, but nothing" | | 8 | "They leaned inward slightly, as" | | 9 | "Their shadows stretched unnaturally long," | | 10 | "Her pulse kicked up, but" | | 11 | "She reached for the pendant." | | 12 | "It was still cold." | | 13 | "Her breath shallowened." | | 14 | "She didn’t move." | | 15 | "She turned slowly." | | 16 | "It was layered." | | 17 | "Her hands clenched into fists." | | 18 | "She could feel the pendant" | | 19 | "she demanded, voice steady despite" |
| | ratio | 0.341 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 64 | | totalSentences | 91 | | matches | | 0 | "She had checked the coordinates" | | 1 | "The Richmond Park entrance had" | | 2 | "The air smelled of damp" | | 3 | "Aurora pressed her palm against" | | 4 | "The gemstone, tucked into the" | | 5 | "She adjusted the straps of" | | 6 | "Mist curled around her ankles," | | 7 | "It hung in the air," | | 8 | "That was when she heard" | | 9 | "a wet, clicking noise, like" | | 10 | "She exhaled through her nose," | | 11 | "she muttered under her breath" | | 12 | "The words didn’t reassure her." | | 13 | "She’d come here for a" | | 14 | "A whisper in the back" | | 15 | "A woman with all silver" | | 16 | "She hadn’t explained why the" | | 17 | "The path narrowed." | | 18 | "The standing stones—huge, gnarled, their" | | 19 | "She’d seen photos, but nothing" |
| | ratio | 0.703 | |
| 54.95% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 91 | | matches | | 0 | "—and Rory realized with dreadless" |
| | ratio | 0.011 | |
| 71.43% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 30 | | technicalSentenceCount | 3 | | matches | | 0 | "She adjusted the straps of her delivery bag—an old thing made of canvas, probably older than the pub upstairs—and stepped carefully over the roots that coiled a…" | | 1 | "She hadn’t explained why the heartstone recognized Aurora’s bloodline, but she’d nodded when Rory said her surname, as if it meant something." | | 2 | "The mist shifted at the edges of her vision—not drifting, but *retreating*, as though something had inhaled it." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 1 | | matches | | 0 | "she demanded, voice steady despite the tightness in her chest" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 2 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "she demanded (demand)" |
| | dialogueSentences | 3 | | tagDensity | 0.667 | | leniency | 1 | | rawRatio | 1 | | effectiveRatio | 1 | |