| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 14 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.88% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1634 | | 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) | |
| 41.86% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1634 | | totalAiIsms | 19 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | word | "the last thing" | | count | 1 |
|
| | highlights | | 0 | "weight" | | 1 | "chill" | | 2 | "loomed" | | 3 | "lurch" | | 4 | "perfect" | | 5 | "warmth" | | 6 | "whisper" | | 7 | "scanning" | | 8 | "pulse" | | 9 | "pulsed" | | 10 | "searing" | | 11 | "could feel" | | 12 | "stomach" | | 13 | "lurched" | | 14 | "unraveling" | | 15 | "the last thing" |
| |
| 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 | 164 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 164 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 172 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 95.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 28 | | markdownWords | 85 | | totalWords | 1619 | | ratio | 0.053 | | matches | | 0 | "\"You’re sure you want to do this?\"" | | 1 | "shift" | | 2 | "luminous" | | 3 | "close" | | 4 | "behind" | | 5 | "\"You’re not supposed to be here.\"" | | 6 | "looked" | | 7 | "run" | | 8 | "\"Lost, little thief.\"" | | 9 | "Thief?" | | 10 | "called" | | 11 | "\"For when you’re ready.\"" | | 12 | "shifted" | | 13 | "\"You took what wasn’t yours,\"" | | 14 | "\"And now it wants you back.\"" | | 15 | "\"No,\"" | | 16 | "\"You can’t hide,\"" | | 17 | "\"The Grove always takes what it’s owed.\"" | | 18 | "everywhere" | | 19 | "\"Give it back.\"" | | 20 | "wouldn’t" | | 21 | "shuddered" | | 22 | "hungered" | | 23 | "behind" | | 24 | "\"You shouldn’t have come back,\"" | | 25 | "\"But I suppose I should have known you’d be stubborn.\"" | | 26 | "\"Who—?\"" | | 27 | "\"Isolde. Though I doubt you’ll remember that name by morning.\"" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 1528 | | uniqueNames | 8 | | maxNameDensity | 1.57 | | worstName | "Rory" | | maxWindowNameDensity | 3 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Carter | 1 | | Heartstone | 2 | | Grove | 8 | | English | 1 | | Rory | 24 | | Silas | 1 |
| | persons | | 0 | "Carter" | | 1 | "Grove" | | 2 | "Rory" | | 3 | "Silas" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Heartstone" | | 3 | "English" |
| | globalScore | 0.715 | | windowScore | 0.667 | |
| 73.47% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 98 | | glossingSentenceCount | 3 | | matches | | 0 | "something between a sigh and a laugh, wet and g" | | 1 | "something like amusement" | | 2 | "coat that seemed to drink in the light, her gloved fingers resting on the hilt of a knife at her belt" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1619 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 172 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 55 | | mean | 29.44 | | std | 27.4 | | cv | 0.931 | | sampleLengths | | 0 | 130 | | 1 | 78 | | 2 | 5 | | 3 | 102 | | 4 | 69 | | 5 | 3 | | 6 | 15 | | 7 | 55 | | 8 | 34 | | 9 | 6 | | 10 | 39 | | 11 | 4 | | 12 | 2 | | 13 | 83 | | 14 | 30 | | 15 | 21 | | 16 | 14 | | 17 | 58 | | 18 | 40 | | 19 | 21 | | 20 | 42 | | 21 | 3 | | 22 | 27 | | 23 | 4 | | 24 | 52 | | 25 | 57 | | 26 | 16 | | 27 | 43 | | 28 | 2 | | 29 | 43 | | 30 | 29 | | 31 | 2 | | 32 | 23 | | 33 | 5 | | 34 | 31 | | 35 | 56 | | 36 | 3 | | 37 | 23 | | 38 | 23 | | 39 | 45 | | 40 | 2 | | 41 | 60 | | 42 | 38 | | 43 | 2 | | 44 | 19 | | 45 | 24 | | 46 | 2 | | 47 | 9 | | 48 | 2 | | 49 | 45 |
| |
| 96.71% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 164 | | matches | | 0 | "been twisted" | | 1 | "were rooted" | | 2 | "was gone" | | 3 | "were curled" |
| |
| 55.07% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 276 | | matches | | 0 | "was sitting" | | 1 | "was standing" | | 2 | "was breathing" | | 3 | "was doing" | | 4 | "wasn’t leaving" | | 5 | "was laughing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 14 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 172 | | ratio | 0.07 | | matches | | 0 | "Not after what she’d seen in the bar earlier—Silas’ face pale as he’d slid the map across the counter, his fingers trembling just enough to make the parchment ripple." | | 1 | "Rory had read enough to know the legends—hidden doorways, time that bent like wet paper, the occasional fool who wandered in and never came out." | | 2 | "There was no flash of light, no disorienting lurch—just a soft *shift*, like the air itself had exhaled." | | 3 | "The Grove stretched wider than she’d expected—no path, no sign of the park’s usual trails." | | 4 | "This time, it was a whisper—so faint she almost missed it." | | 5 | "It stood at the edge of the clearing, half-hidden by the trunk of an oak, its skin the color of bark, its eyes—if they were eyes—glowing faintly, like embers in a dying fire." | | 6 | "A sound escaped it—something between a sigh and a laugh, wet and guttural." | | 7 | "She could feel it now—the thing wasn’t just behind her." | | 8 | "A sound ahead—a rustle, a shift in the undergrowth." | | 9 | "She hit something soft—moss, maybe, or rotting leaves—and rolled, scrambling to her feet just as the thing lunged." | | 10 | "She needed—" | | 11 | "Because the woman was already moving, and the last thing Rory saw before the world went dark was the flash of the knife—and the way the Heartstone pendant went cold against her skin." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 101 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 1 | | adverbRatio | 0.009900990099009901 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 172 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 172 | | mean | 9.41 | | std | 7.06 | | cv | 0.751 | | sampleLengths | | 0 | 19 | | 1 | 20 | | 2 | 6 | | 3 | 2 | | 4 | 29 | | 5 | 19 | | 6 | 4 | | 7 | 31 | | 8 | 18 | | 9 | 2 | | 10 | 2 | | 11 | 25 | | 12 | 5 | | 13 | 6 | | 14 | 17 | | 15 | 3 | | 16 | 5 | | 17 | 5 | | 18 | 18 | | 19 | 21 | | 20 | 19 | | 21 | 19 | | 22 | 12 | | 23 | 6 | | 24 | 2 | | 25 | 15 | | 26 | 15 | | 27 | 11 | | 28 | 16 | | 29 | 2 | | 30 | 2 | | 31 | 8 | | 32 | 3 | | 33 | 2 | | 34 | 7 | | 35 | 6 | | 36 | 9 | | 37 | 8 | | 38 | 19 | | 39 | 11 | | 40 | 2 | | 41 | 2 | | 42 | 4 | | 43 | 2 | | 44 | 11 | | 45 | 21 | | 46 | 6 | | 47 | 3 | | 48 | 5 | | 49 | 19 |
| |
| 36.05% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 24 | | diversityRatio | 0.21511627906976744 | | totalSentences | 172 | | uniqueOpeners | 37 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 137 | | matches | | 0 | "Just open space, swallowed by" | | 1 | "Just the flowers, the trees," | | 2 | "Then she saw it." | | 3 | "Then she remembered the pendant." | | 4 | "Then the ground gave way." |
| | ratio | 0.036 | |
| 94.45% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 43 | | totalSentences | 137 | | matches | | 0 | "She shouldn’t have come here" | | 1 | "he’d asked, voice low, like" | | 2 | "She’d nodded, of course." | | 3 | "She always nodded when the" | | 4 | "She was here for a" | | 5 | "She stepped between the stones." | | 6 | "She turned slowly, her boots" | | 7 | "She could almost reach out" | | 8 | "It had come from *behind*" | | 9 | "She turned, heart hammering, but" | | 10 | "Her fingers twitched toward the" | | 11 | "She wasn’t sure which." | | 12 | "She spun, scanning the trees," | | 13 | "It stood at the edge" | | 14 | "It didn’t move toward her." | | 15 | "It didn’t need to." | | 16 | "She should run." | | 17 | "She should *run*." | | 18 | "She hadn’t been ready then" | | 19 | "She wasn’t ready now." |
| | ratio | 0.314 | |
| 54.89% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 111 | | totalSentences | 137 | | matches | | 0 | "The air in Richmond Park" | | 1 | "Rory Carter pulled her jacket" | | 2 | "She shouldn’t have come here" | | 3 | "he’d asked, voice low, like" | | 4 | "She’d nodded, of course." | | 5 | "She always nodded when the" | | 6 | "The standing stones loomed ahead," | | 7 | "Rory had read enough to" | | 8 | "She was here for a" | | 9 | "The pendant had been warm" | | 10 | "She stepped between the stones." | | 11 | "The world didn’t rip apart." | | 12 | "Wildflowers bloomed in riotous colors," | | 13 | "The air smelled of honey" | | 14 | "Rory’s breath fogged in front" | | 15 | "She turned slowly, her boots" | | 16 | "The Grove stretched wider than" | | 17 | "The sky above was the" | | 18 | "She could almost reach out" | | 19 | "A twig snapped." |
| | ratio | 0.81 | |
| 72.99% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 137 | | matches | | 0 | "If anything, it was warmer" | | 1 | "Because the woman was already" |
| | ratio | 0.015 | |
| 56.28% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 66 | | technicalSentenceCount | 8 | | matches | | 0 | "Rory Carter pulled her jacket tighter around herself, the collar turned up against the chill that seeped into her bones." | | 1 | "Rory had read enough to know the legends—hidden doorways, time that bent like wet paper, the occasional fool who wandered in and never came out." | | 2 | "Wildflowers bloomed in riotous colors, their petals too perfect, too *luminous*, as if backlit by something just beyond sight." | | 3 | "She turned slowly, her boots crunching on petals that shouldn’t have been so brittle underfoot." | | 4 | "The unknown benefactor who’d pressed it into her palm in the alley behind the bar, their gloved fingers cold, their voice a rasp." | | 5 | "The ground beneath Rory’s boots *shifted*, the petals beneath her feet wilting into dust as if something unseen was breathing on them." | | 6 | "The thing hissed, recoiling as if burned, its ember-eyes narrowing." | | 7 | "Paths that hadn’t been there before snaked between the trees, the standing stones now distant and shifting, as if the land itself was laughing at her." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 3 | | matches | | 0 | "she’d, his fingers trembling just enough to make the parchment ripple" | | 1 | "he’d, voice low, like the words themselves might draw something unwanted" | | 2 | "the thing said, its voice dripping with something like amusement" |
| |
| 7.14% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 2 | | fancyTags | | 0 | "he’d (would)" | | 1 | "Rory whispered (whisper)" |
| | dialogueSentences | 14 | | tagDensity | 0.286 | | leniency | 0.571 | | rawRatio | 0.5 | | effectiveRatio | 0.286 | |