| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 85.04% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1003 | | totalAiIsmAdverbs | 3 | | 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) | |
| 0.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1003 | | totalAiIsms | 23 | | found | | | highlights | | 0 | "whisper" | | 1 | "weight" | | 2 | "loomed" | | 3 | "sentinels" | | 4 | "pulse" | | 5 | "flickered" | | 6 | "gloom" | | 7 | "pulsed" | | 8 | "quickened" | | 9 | "scanning" | | 10 | "rhythmic" | | 11 | "shimmered" | | 12 | "stomach" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "The air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 122 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 122 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 122 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 21 | | markdownWords | 28 | | totalWords | 997 | | ratio | 0.028 | | matches | | 0 | "tap-tap-tap" | | 1 | "changed" | | 2 | "inside" | | 3 | "shimmered" | | 4 | "wrong" | | 5 | "alive" | | 6 | "there" | | 7 | "between" | | 8 | "else" | | 9 | "moved" | | 10 | "pull" | | 11 | "voice" | | 12 | "twisted" | | 13 | "shifted" | | 14 | "wrong in a way that didn’t make sense" | | 15 | "darkness" | | 16 | "moved" | | 17 | "laugh" | | 18 | "wrong" | | 19 | "look" | | 20 | "hungry" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 79.79% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 23 | | wordCount | 997 | | uniqueNames | 9 | | maxNameDensity | 1.4 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Carter | 1 | | Fae | 2 | | Grove | 1 | | Heartstone | 1 | | London | 1 | | Hel | 1 | | Aurora | 14 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Fae" | | 3 | "Grove" | | 4 | "London" |
| | globalScore | 0.798 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | glossingSentenceCount | 4 | | matches | | 0 | "quite fit" | | 1 | "as if trying to *pull* her closer" | | 2 | "quite human" | | 3 | "quite human" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 997 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 122 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 25.56 | | std | 27.04 | | cv | 1.058 | | sampleLengths | | 0 | 82 | | 1 | 72 | | 2 | 8 | | 3 | 57 | | 4 | 50 | | 5 | 6 | | 6 | 55 | | 7 | 3 | | 8 | 63 | | 9 | 2 | | 10 | 7 | | 11 | 75 | | 12 | 5 | | 13 | 2 | | 14 | 77 | | 15 | 57 | | 16 | 2 | | 17 | 5 | | 18 | 19 | | 19 | 53 | | 20 | 2 | | 21 | 51 | | 22 | 35 | | 23 | 2 | | 24 | 46 | | 25 | 4 | | 26 | 2 | | 27 | 2 | | 28 | 5 | | 29 | 8 | | 30 | 32 | | 31 | 4 | | 32 | 56 | | 33 | 2 | | 34 | 29 | | 35 | 3 | | 36 | 5 | | 37 | 4 | | 38 | 5 |
| |
| 99.51% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 122 | | matches | | 0 | "been smoothed" | | 1 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 163 | | matches | | 0 | "was watching" | | 1 | "was bleeding" | | 2 | "was breathing" | | 3 | "was standing" | | 4 | "were watching" | | 5 | "was happening" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 122 | | ratio | 0.066 | | matches | | 0 | "The Fae Grove loomed ahead—a pocket of the world where time bent, where the wildflowers bloomed without season, where the standing stones stood as silent sentinels." | | 1 | "She exhaled slowly, fingers still wrapped around the pendant, though she didn’t need it to see the way the light caught the edges of her vision—like something was watching her from the dark." | | 2 | "The pendant’s glow flared again, and this time, the light didn’t just pulse—it *shimmered*, like liquid fire." | | 3 | "The flowers—wildflowers, she’d read—were *wrong*." | | 4 | "The grove wasn’t just wrong—it was *wrong in a way that didn’t make sense*." | | 5 | "The torch flickered, and for a second, she saw something else—something that wasn’t there before." | | 6 | "And then—" | | 7 | "And the standing stones—" |
| |
| 94.95% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1005 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 46 | | adverbRatio | 0.045771144278606964 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.003980099502487562 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 122 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 122 | | mean | 8.17 | | std | 6.92 | | cv | 0.847 | | sampleLengths | | 0 | 25 | | 1 | 21 | | 2 | 26 | | 3 | 7 | | 4 | 3 | | 5 | 18 | | 6 | 28 | | 7 | 3 | | 8 | 6 | | 9 | 10 | | 10 | 5 | | 11 | 2 | | 12 | 8 | | 13 | 2 | | 14 | 3 | | 15 | 3 | | 16 | 16 | | 17 | 33 | | 18 | 13 | | 19 | 12 | | 20 | 5 | | 21 | 4 | | 22 | 8 | | 23 | 4 | | 24 | 4 | | 25 | 2 | | 26 | 4 | | 27 | 3 | | 28 | 15 | | 29 | 3 | | 30 | 13 | | 31 | 2 | | 32 | 2 | | 33 | 17 | | 34 | 3 | | 35 | 4 | | 36 | 10 | | 37 | 11 | | 38 | 10 | | 39 | 2 | | 40 | 26 | | 41 | 2 | | 42 | 4 | | 43 | 3 | | 44 | 3 | | 45 | 12 | | 46 | 9 | | 47 | 17 | | 48 | 14 | | 49 | 4 |
| |
| 36.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 17 | | diversityRatio | 0.20491803278688525 | | totalSentences | 122 | | uniqueOpeners | 25 | |
| 68.03% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 98 | | matches | | 0 | "Just the whisper of the" | | 1 | "Too many voices in one" |
| | ratio | 0.02 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 98 | | matches | | 0 | "She had come here for" | | 1 | "She had to." | | 2 | "Her fingers tightened around the" | | 3 | "She’d known it would be" | | 4 | "She exhaled slowly, fingers still" | | 5 | "She had read the legends." | | 6 | "They marked the boundary." | | 7 | "She hadn’t heard it." | | 8 | "She turned slowly, scanning the" | | 9 | "She stepped forward." | | 10 | "Her ribs ached." | | 11 | "She swallowed hard, forcing her" | | 12 | "Their petals stretched too wide," | | 13 | "Her face was a mask" | | 14 | "She turned back toward the" | | 15 | "She raised the torch higher," | | 16 | "They were watching her." | | 17 | "She reached for it, but" | | 18 | "She turned slowly, her torch" | | 19 | "She didn’t move." |
| | ratio | 0.224 | |
| 77.35% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 98 | | matches | | 0 | "The air in Richmond Park" | | 1 | "Aurora Carter stepped from the" | | 2 | "The Fae Grove loomed ahead—a" | | 3 | "She had come here for" | | 4 | "She had to." | | 5 | "Her fingers tightened around the" | | 6 | "The pulse of its glow" | | 7 | "A Hel portal." | | 8 | "She’d known it would be" | | 9 | "The maps had shown it," | | 10 | "The first sound came before" | | 11 | "Something moved in the shadows" | | 12 | "She exhaled slowly, fingers still" | | 13 | "Aurora adjusted her grip on" | | 14 | "The standing stones loomed, their" | | 15 | "She had read the legends." | | 16 | "They marked the boundary." | | 17 | "The place where the veil" | | 18 | "She hadn’t heard it." | | 19 | "The torch flickered." |
| | ratio | 0.765 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 98 | | matches | (empty) | | ratio | 0 | |
| 26.58% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 7 | | matches | | 0 | "The air in Richmond Park was thick with the scent of damp earth and something older, something that clung to the trees like a whisper." | | 1 | "The pendant’s glow pulsed again, brighter this time, as if in response to something unseen." | | 2 | "The crimson gemstone inside the pendant shifted, deepening to a dark, unnatural red, as if the light inside it was bleeding into the world around her." | | 3 | "The trees seemed to lean in, their branches brushing against her shoulders as if trying to *pull* her closer." | | 4 | "The voice came again, closer this time, and the trees *twisted*, their branches twisting around her legs, their roots digging into the gravel beneath her feet." | | 5 | "The standing stones loomed taller, their carvings clearer, their faces watching her with eyes that weren’t quite human." | | 6 | "The pendant’s glow dimmed, then flared again, and the woman in the dark *moved*, her form shifting, her face twisting into something that wasn’t quite human." |
| |
| 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 | |