| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 92.01% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1252 | | 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) | |
| 52.08% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1252 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "loomed" | | 1 | "pulsed" | | 2 | "pulse" | | 3 | "echo" | | 4 | "silence" | | 5 | "weight" | | 6 | "footsteps" | | 7 | "stomach" | | 8 | "whisper" |
| |
| 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 | 104 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 104 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 54 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1239 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 0 | | matches | (empty) | |
| 93.46% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1238 | | uniqueNames | 14 | | maxNameDensity | 1.13 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Fae | 3 | | Grove | 9 | | Heartstone | 2 | | Eva | 4 | | Rory | 14 | | November | 1 | | Isolde | 2 | | Earth | 1 | | Faerie | 1 | | December | 1 | | October | 1 | | Hel | 1 | | Richmond | 1 | | Park | 1 |
| | persons | | 0 | "Eva" | | 1 | "Rory" | | 2 | "Isolde" | | 3 | "Earth" |
| | places | | 0 | "Fae" | | 1 | "Grove" | | 2 | "December" | | 3 | "October" | | 4 | "Hel" | | 5 | "Richmond" | | 6 | "Park" |
| | globalScore | 0.935 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 75 | | glossingSentenceCount | 1 | | matches | | 0 | "Not visibly—nothing so overt as" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1239 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 105 | | matches | | 0 | "touched, that time" | | 1 | "knew that smell" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 44 | | mean | 28.16 | | std | 25.57 | | cv | 0.908 | | sampleLengths | | 0 | 11 | | 1 | 59 | | 2 | 44 | | 3 | 4 | | 4 | 60 | | 5 | 7 | | 6 | 48 | | 7 | 58 | | 8 | 7 | | 9 | 46 | | 10 | 4 | | 11 | 88 | | 12 | 9 | | 13 | 9 | | 14 | 53 | | 15 | 1 | | 16 | 62 | | 17 | 5 | | 18 | 61 | | 19 | 11 | | 20 | 1 | | 21 | 77 | | 22 | 31 | | 23 | 3 | | 24 | 40 | | 25 | 5 | | 26 | 49 | | 27 | 3 | | 28 | 55 | | 29 | 14 | | 30 | 19 | | 31 | 65 | | 32 | 3 | | 33 | 8 | | 34 | 55 | | 35 | 21 | | 36 | 52 | | 37 | 7 | | 38 | 5 | | 39 | 3 | | 40 | 12 | | 41 | 54 | | 42 | 6 | | 43 | 4 |
| |
| 95.14% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 104 | | matches | | 0 | "was supposed" | | 1 | "was supposed" | | 2 | "was littered" |
| |
| 72.41% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 209 | | matches | | 0 | "was breathing" | | 1 | "were straining" | | 2 | "was being" | | 3 | "was breathing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 105 | | ratio | 0.124 | | matches | | 0 | "The ancient oaks that marked the boundary loomed like black teeth against a sky that held no stars—only a bruised purple smear where the moon should have been." | | 1 | "The grass beneath Rory’s trainers felt wrong—too soft, too wet, as though the ground had been crying." | | 2 | "That was the whole point of the place—a pocket between worlds, Isolde had called it once." | | 3 | "Isolde had shown her once—bluebells in December, roses in October, things that shouldn’t grow together tangled in impossible color." | | 4 | "Not dead—black." | | 5 | "It didn’t echo—it just died in the mist, swallowed whole, and the silence that rushed in to fill the space was worse than any sound could have been." | | 6 | "Rory’s head snapped toward it, and there was nothing—just the same black oaks, the same coiled mist." | | 7 | "They stood closer together than they had been—close enough that Rory would have to turn sideways to pass through." | | 8 | "It beaded and ran in thin rivulets down the carved surface, and Rory’s stomach turned because she knew that smell—copper and salt, the metallic tang of blood that had not yet cooled." | | 9 | "Not visibly—nothing so overt as a chest rising and falling." | | 10 | "Small bones—the delicate architecture of bird skeletons, the curved ribs of something rabbit-sized, the tiny knuckles of fingers that might have been human." | | 11 | "Not words—just breath, shaped by a throat that wasn’t meant to produce human sounds." | | 12 | "They came from everywhere at once—the soft pad of bare feet on damp earth, circling her, moving in a pattern she couldn’t track." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1259 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 44 | | adverbRatio | 0.03494837172359015 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.004765687053216839 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 11.8 | | std | 9.01 | | cv | 0.763 | | sampleLengths | | 0 | 11 | | 1 | 31 | | 2 | 28 | | 3 | 7 | | 4 | 23 | | 5 | 6 | | 6 | 6 | | 7 | 2 | | 8 | 4 | | 9 | 17 | | 10 | 15 | | 11 | 7 | | 12 | 21 | | 13 | 7 | | 14 | 5 | | 15 | 10 | | 16 | 9 | | 17 | 10 | | 18 | 14 | | 19 | 10 | | 20 | 17 | | 21 | 16 | | 22 | 15 | | 23 | 7 | | 24 | 12 | | 25 | 34 | | 26 | 4 | | 27 | 14 | | 28 | 19 | | 29 | 6 | | 30 | 2 | | 31 | 14 | | 32 | 9 | | 33 | 24 | | 34 | 9 | | 35 | 7 | | 36 | 2 | | 37 | 9 | | 38 | 3 | | 39 | 23 | | 40 | 7 | | 41 | 11 | | 42 | 1 | | 43 | 6 | | 44 | 28 | | 45 | 6 | | 46 | 12 | | 47 | 10 | | 48 | 5 | | 49 | 17 |
| |
| 44.44% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3238095238095238 | | totalSentences | 105 | | uniqueOpeners | 34 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 98 | | matches | | 0 | "Just once, at the corner" | | 1 | "Just the wet weight of" | | 2 | "Just movement, and then stillness," |
| | ratio | 0.031 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 17 | | totalSentences | 98 | | matches | | 0 | "She’d come here because Eva" | | 1 | "She jerked her hand back" | | 2 | "She told herself it was" | | 3 | "Her fingers found the Heartstone" | | 4 | "Her voice came out too" | | 5 | "It didn’t echo—it just died" | | 6 | "She turned a slow circle," | | 7 | "They stood closer together than" | | 8 | "She didn’t want to look" | | 9 | "Her skin crawled with the" | | 10 | "She looked anyway." | | 11 | "It beaded and ran in" | | 12 | "She looked down." | | 13 | "They were scattered like dropped" | | 14 | "She heard footsteps." | | 15 | "They came from everywhere at" | | 16 | "They stretched across the grass" |
| | ratio | 0.173 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 66 | | totalSentences | 98 | | matches | | 0 | "The Fae Grove was never" | | 1 | "Aurora knew that now, standing" | | 2 | "The ancient oaks that marked" | | 3 | "She’d come here because Eva" | | 4 | "The old ring of standing" | | 5 | "The grass beneath Rory’s trainers" | | 6 | "A mist coiled between the" | | 7 | "That was the first thing" | | 8 | "The mist drifted sideways while" | | 9 | "Rory stepped past the first" | | 10 | "The boundary stone was warm." | | 11 | "She jerked her hand back" | | 12 | "She told herself it was" | | 13 | "That was the whole point" | | 14 | "A place where the membrane" | | 15 | "Rory’s breath fogged in front" | | 16 | "The mist wrapped around her" | | 17 | "The flowers were wrong." | | 18 | "The Grove was supposed to" | | 19 | "Isolde had shown her once—bluebells" |
| | ratio | 0.673 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 98 | | matches | | 0 | "Because Eva had said urgent," | | 1 | "Now it was full of" |
| | ratio | 0.02 | |
| 19.23% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 9 | | matches | | 0 | "The ancient oaks that marked the boundary loomed like black teeth against a sky that held no stars—only a bruised purple smear where the moon should have been." | | 1 | "The grass beneath Rory’s trainers felt wrong—too soft, too wet, as though the ground had been crying." | | 2 | "Isolde had shown her once—bluebells in December, roses in October, things that shouldn’t grow together tangled in impossible color." | | 3 | "And every single bloom faced away from the center of the circle, as though they were straining to look at something Rory couldn’t see." | | 4 | "Rory took a step back and her heel came down on something that crunched." | | 5 | "Small bones—the delicate architecture of bird skeletons, the curved ribs of something rabbit-sized, the tiny knuckles of fingers that might have been human." | | 6 | "Rory turned in place, her trainers crunching through the carpet of bone, and she saw something that made her throat close." | | 7 | "Things that crawled in silhouette, pouring from the bases of the standing stones like ink from an overturned bottle." | | 8 | "Rory stood alone in the center of the Grove, surrounded by a ring of stones that should not have been that close, standing on a carpet of bone that should not h…" |
| |
| 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 | |