| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 85.65% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1394 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "slowly" | | 1 | "very" | | 2 | "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) | |
| 10.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1394 | | totalAiIsms | 25 | | found | | | highlights | | 0 | "weight" | | 1 | "pulse" | | 2 | "warmth" | | 3 | "silence" | | 4 | "whisper" | | 5 | "glistening" | | 6 | "echo" | | 7 | "profound" | | 8 | "resolved" | | 9 | "flicker" | | 10 | "chaotic" | | 11 | "stomach" | | 12 | "methodical" | | 13 | "pounding" | | 14 | "searing" | | 15 | "oppressive" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 1 | | found | | 0 | | label | "clenched jaw/fists" | | count | 2 |
|
| | highlights | | 0 | "clenched like fists" | | 1 | "clenched fist" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 128 | | matches | (empty) | |
| 75.89% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 4 | | narrationSentences | 128 | | filterMatches | | | hedgeMatches | | 0 | "seemed to" | | 1 | "tried to" | | 2 | "began to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 128 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 35 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 7 | | markdownWords | 16 | | totalWords | 1378 | | ratio | 0.012 | | matches | | 0 | "Observe. Catalogue." | | 1 | "shluck" | | 2 | "There" | | 3 | "There" | | 4 | "Paranoia. It’s just the isolation. The weird time dilation." | | 5 | "other" | | 6 | "shluck" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 1 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 1377 | | uniqueNames | 11 | | maxNameDensity | 0.44 | | worstName | "Grove" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Grove" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Carter | 1 | | Heartstone | 2 | | Fae | 1 | | Grove | 6 | | London | 1 | | Hel | 1 | | Silas | 1 | | Eva | 1 | | Evan | 1 |
| | persons | | 0 | "Carter" | | 1 | "Heartstone" | | 2 | "Grove" | | 3 | "Silas" | | 4 | "Eva" | | 5 | "Evan" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Fae" | | 3 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 91.86% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 86 | | glossingSentenceCount | 2 | | matches | | 0 | "shadows that seemed to stretch toward her" | | 1 | "seemed deeper every shape between the trees suggestive" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 2.903 | | wordCount | 1378 | | matches | | 0 | "not a pulse now but a steady, uncomfortable heat" | | 1 | "not eyes, but reflections from something slick" | | 2 | "not toward her, but toward the space she had been standing in moments before" | | 3 | "Not the first, oppressive silence, but a new, watchful one" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 128 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 38.28 | | std | 26.36 | | cv | 0.689 | | sampleLengths | | 0 | 84 | | 1 | 98 | | 2 | 8 | | 3 | 73 | | 4 | 51 | | 5 | 55 | | 6 | 6 | | 7 | 43 | | 8 | 51 | | 9 | 45 | | 10 | 18 | | 11 | 10 | | 12 | 82 | | 13 | 61 | | 14 | 64 | | 15 | 9 | | 16 | 35 | | 17 | 8 | | 18 | 92 | | 19 | 51 | | 20 | 35 | | 21 | 45 | | 22 | 5 | | 23 | 54 | | 24 | 40 | | 25 | 56 | | 26 | 34 | | 27 | 2 | | 28 | 37 | | 29 | 24 | | 30 | 16 | | 31 | 17 | | 32 | 24 | | 33 | 7 | | 34 | 30 | | 35 | 8 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 128 | | matches | | |
| 66.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 199 | | matches | | 0 | "was glistening" | | 1 | "was burning" | | 2 | "was throbbing" | | 3 | "was nosing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 2 | | flaggedSentences | 10 | | totalSentences | 128 | | ratio | 0.078 | | matches | | 0 | "The last time it had done that, she’d been within fifty feet of a flickering tear in the air that smelled of ozone and rotting honey—a Hel portal, according to Silas." | | 1 | "The last time she’d been here with Eva, the Grove had been alive with sound—the rustle of unseen creatures, the whisper of wind through impossible leaves, the distant trickle of water." | | 2 | "Her mind supplied the rational explanation—a fox, a badger, the normal inhabitants of the park bleeding through the boundary." | | 3 | "The moss wasn’t just damp; it was glistening, black in the moonlight, and it clung to her shoe with a sticky resistance." | | 4 | "A sound drifted from behind her—a long, sighing exhalation that was not her own." | | 5 | "The display cleared for a second—10:47 PM—then scrambled again into chaotic lines." | | 6 | "Time wasn’t just moving differently here; it was broken." | | 7 | "As it lifted its head, two points of refracted light caught the moon—not eyes, but reflections from something slick and dark where eyes should be." | | 8 | "Its movement was all wrong—a stutter, a blur, then it was three feet closer without seeming to cross the distance." | | 9 | "Pushing off from the tree, she sprinted, not for the standing stones—the thing was between her and them—but for the densest part of the tree line on the opposite side of the clearing." |
| |
| 82.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1393 | | adjectiveStacks | 3 | | stackExamples | | 0 | "absolute quiet pressed against her" | | 1 | "dull, angry red, like" | | 2 | "was right behind her" |
| | adverbCount | 40 | | adverbRatio | 0.028715003589375447 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.010050251256281407 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 128 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 128 | | mean | 10.77 | | std | 7.77 | | cv | 0.722 | | sampleLengths | | 0 | 16 | | 1 | 18 | | 2 | 12 | | 3 | 11 | | 4 | 27 | | 5 | 5 | | 6 | 31 | | 7 | 31 | | 8 | 9 | | 9 | 17 | | 10 | 5 | | 11 | 8 | | 12 | 31 | | 13 | 4 | | 14 | 7 | | 15 | 6 | | 16 | 23 | | 17 | 1 | | 18 | 1 | | 19 | 12 | | 20 | 8 | | 21 | 31 | | 22 | 12 | | 23 | 13 | | 24 | 13 | | 25 | 17 | | 26 | 6 | | 27 | 6 | | 28 | 1 | | 29 | 10 | | 30 | 19 | | 31 | 7 | | 32 | 4 | | 33 | 13 | | 34 | 3 | | 35 | 22 | | 36 | 9 | | 37 | 14 | | 38 | 18 | | 39 | 13 | | 40 | 10 | | 41 | 3 | | 42 | 5 | | 43 | 2 | | 44 | 8 | | 45 | 15 | | 46 | 10 | | 47 | 10 | | 48 | 13 | | 49 | 16 |
| |
| 38.02% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.3125 | | totalSentences | 128 | | uniqueOpeners | 40 | |
| 57.47% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 116 | | matches | | 0 | "Just the dense wall of" | | 1 | "Only the return of that" |
| | ratio | 0.017 | |
| 57.93% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 47 | | totalSentences | 116 | | matches | | 0 | "She’d come back for answers." | | 1 | "Her own breathing sounded obscenely" | | 2 | "She forced it to slow," | | 3 | "Their petals were closed tight," | | 4 | "She moved further into the" | | 5 | "She pulled it from under" | | 6 | "Its faint inner glow, usually" | | 7 | "Her mind supplied the rational" | | 8 | "She took another step." | | 9 | "She looked down." | | 10 | "She pulled her foot free" | | 11 | "It was the sound of" | | 12 | "It came from the direction" | | 13 | "Her voice was sharp, cutting" | | 14 | "It didn’t echo." | | 15 | "She turned in a full" | | 16 | "She blinked, and it resolved" | | 17 | "She spun, but only saw" | | 18 | "It’s just the isolation." | | 19 | "She checked her watch." |
| | ratio | 0.405 | |
| 37.59% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 98 | | totalSentences | 116 | | matches | | 0 | "The ancient oak standing stones" | | 1 | "Aurora Carter slipped between two" | | 2 | "The transition was instantaneous, a" | | 3 | "The air in the Fae" | | 4 | "She’d come back for answers." | | 5 | "The pendant, a thumb-sized crimson" | | 6 | "The last time it had" | | 7 | "The Grove was a pocket" | | 8 | "That was the theory, anyway." | | 9 | "The last time she’d been" | | 10 | "The absolute quiet pressed against" | | 11 | "Her own breathing sounded obscenely" | | 12 | "She forced it to slow," | | 13 | "The wildflowers, which normally glowed" | | 14 | "Their petals were closed tight," | | 15 | "The usual ambient light of" | | 16 | "She moved further into the" | | 17 | "The Heartstone’s warmth intensified, not" | | 18 | "She pulled it from under" | | 19 | "Its faint inner glow, usually" |
| | ratio | 0.845 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 116 | | matches | | 0 | "If a portal was going" | | 1 | "Now, there was nothing." | | 2 | "While she had a chance." |
| | ratio | 0.026 | |
| 44.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 58 | | technicalSentenceCount | 8 | | matches | | 0 | "The air in the Fae Grove was still and warm, thick with the perfume of night-blooming flowers that had no right to exist in a London winter." | | 1 | "The pendant, a thumb-sized crimson gem that had been a silent weight for weeks, had begun to pulse with a persistent, low-grade warmth this afternoon, a slow he…" | | 2 | "The last time it had done that, she’d been within fifty feet of a flickering tear in the air that smelled of ozone and rotting honey—a Hel portal, according to …" | | 3 | "She forced it to slow, falling back on the cold, analytical detachment that had gotten her through law tutorials and Evan’s worse moods." | | 4 | "The usual ambient light of the place was absent, leaving only the weak silver of a half-moon filtering through the canopy above, casting jagged shadows that see…" | | 5 | "A sound drifted from behind her—a long, sighing exhalation that was not her own." | | 6 | "The wrongness was a physical weight now, a cold knot in her stomach that had nothing to do with the warm air." | | 7 | "It was nosing at the ground, its head dipping, coming up with a mouthful of the glowing, clenched flowers." |
| |
| 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 | |