| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 94.42% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 896 | | totalAiIsmAdverbs | 1 | | 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) | |
| 49.78% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 896 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "pulsed" | | 1 | "loomed" | | 2 | "searing" | | 3 | "silence" | | 4 | "stomach" | | 5 | "lurched" | | 6 | "whisper" | | 7 | "flickered" |
| |
| 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 | 111 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 111 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 118 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 46 | | ratio | 0 | | matches | (empty) | |
| 24.72% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 29 | | markdownWords | 78 | | totalWords | 890 | | ratio | 0.088 | | matches | | 0 | "Wrong. This is wrong." | | 1 | "Midnight. The standing stones. Bring the pendant." | | 2 | "Midnight. The standing stones. Bring the pendant." | | 3 | "One foot in front of the other." | | 4 | "had" | | 5 | "moving" | | 6 | "shifting" | | 7 | "Blood." | | 8 | "old" | | 9 | "Ancient" | | 10 | "Movement." | | 11 | "wrong" | | 12 | "Pathetic." | | 13 | "Inside her head." | | 14 | "“Laila.”" | | 15 | "“You’ve been a very bad girl, Laila.”" | | 16 | "wrong" | | 17 | "outside" | | 18 | "inside" | | 19 | "“Did you think you could hide from me?”" | | 20 | "smiling" | | 21 | "screamed" | | 22 | "twisted" | | 23 | "“You brought it back.”" | | 24 | "“After all this time, you brought it back.”" | | 25 | "moved" | | 26 | "ripped" | | 27 | "“Welcome home, Laila.”" | | 28 | "gave way" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 853 | | uniqueNames | 6 | | maxNameDensity | 1.29 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 11 | | Richmond | 1 | | Park | 1 | | Evan | 2 | | London | 1 | | Silence | 1 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Silence" |
| | globalScore | 0.855 | | windowScore | 0.833 | |
| 55.66% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like rust and wet leaves and the b" | | 1 | "looked like the mouth of something hungry" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 890 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 118 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 17.12 | | std | 18.18 | | cv | 1.062 | | sampleLengths | | 0 | 1 | | 1 | 6 | | 2 | 51 | | 3 | 13 | | 4 | 46 | | 5 | 45 | | 6 | 76 | | 7 | 32 | | 8 | 3 | | 9 | 50 | | 10 | 11 | | 11 | 14 | | 12 | 6 | | 13 | 6 | | 14 | 2 | | 15 | 32 | | 16 | 1 | | 17 | 43 | | 18 | 1 | | 19 | 48 | | 20 | 3 | | 21 | 4 | | 22 | 9 | | 23 | 1 | | 24 | 32 | | 25 | 10 | | 26 | 1 | | 27 | 2 | | 28 | 11 | | 29 | 1 | | 30 | 5 | | 31 | 13 | | 32 | 7 | | 33 | 26 | | 34 | 18 | | 35 | 8 | | 36 | 16 | | 37 | 6 | | 38 | 3 | | 39 | 46 | | 40 | 48 | | 41 | 26 | | 42 | 20 | | 43 | 4 | | 44 | 32 | | 45 | 2 | | 46 | 3 | | 47 | 32 | | 48 | 3 | | 49 | 6 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 111 | | matches | | |
| 64.86% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 148 | | matches | | 0 | "was, standing" | | 1 | "were *shifting" | | 2 | "was falling" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 118 | | ratio | 0.102 | | matches | | 0 | "The crimson gemstone pulsed once, twice—warm as a living thing." | | 1 | "And now here she was, standing at the edge of Richmond Park, the air thick with the scent of damp earth and something older—something that smelled like rust and wet leaves and the back of her own throat when she was about to be sick." | | 2 | "Not falling—no, that would’ve been too simple, too explainable." | | 3 | "They were *shifting*, their bark rippling like water, their branches stretching, elongating, reaching—" | | 4 | "She’d smelled blood before—Evan’s knuckles after a bad night, the metallic tang of her own when she’d bitten her lip to keep from screaming." | | 5 | "Just the—" | | 6 | "Then—a whisper." | | 7 | "Not since—" | | 8 | "She reached for it—" | | 9 | "—and the ground *moved*." | | 10 | "And then—" | | 11 | "—she was falling." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 860 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.037209302325581395 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0011627906976744186 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 118 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 118 | | mean | 7.53 | | std | 6.57 | | cv | 0.872 | | sampleLengths | | 0 | 6 | | 1 | 13 | | 2 | 10 | | 3 | 1 | | 4 | 18 | | 5 | 4 | | 6 | 3 | | 7 | 2 | | 8 | 7 | | 9 | 3 | | 10 | 3 | | 11 | 14 | | 12 | 11 | | 13 | 14 | | 14 | 1 | | 15 | 3 | | 16 | 3 | | 17 | 45 | | 18 | 13 | | 19 | 18 | | 20 | 23 | | 21 | 22 | | 22 | 11 | | 23 | 12 | | 24 | 5 | | 25 | 4 | | 26 | 3 | | 27 | 13 | | 28 | 1 | | 29 | 1 | | 30 | 4 | | 31 | 16 | | 32 | 15 | | 33 | 9 | | 34 | 2 | | 35 | 2 | | 36 | 4 | | 37 | 3 | | 38 | 5 | | 39 | 4 | | 40 | 2 | | 41 | 6 | | 42 | 2 | | 43 | 7 | | 44 | 3 | | 45 | 9 | | 46 | 13 | | 47 | 1 | | 48 | 9 | | 49 | 15 |
| |
| 43.22% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.3305084745762712 | | totalSentences | 118 | | uniqueOpeners | 39 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 92 | | matches | | 0 | "Just those words, glowing against" | | 1 | "Of course there wasn’t." | | 2 | "Just the trees." | | 3 | "Just the stones." |
| | ratio | 0.043 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 92 | | matches | | 0 | "She pressed a palm to" | | 1 | "She shouldn’t have come." | | 2 | "She’d deleted it immediately, but" | | 3 | "She could survive this." | | 4 | "She stepped forward." | | 5 | "she muttered, voice too loud" | | 6 | "She was alone." | | 7 | "She *had* to be alone." | | 8 | "She took another step." | | 9 | "They were *moving*." | | 10 | "They were *shifting*, their bark" | | 11 | "She stumbled back, her heel" | | 12 | "She’d smelled blood before—Evan’s knuckles" | | 13 | "Her breath hitched." | | 14 | "Her voice came out thinner" | | 15 | "It slithered through her mind," | | 16 | "It was *inside*." | | 17 | "She looked down." | | 18 | "Her shadow wasn’t moving with" | | 19 | "It was *smiling*." |
| | ratio | 0.261 | |
| 85.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 69 | | totalSentences | 92 | | matches | | 0 | "The pendant burned against Rory’s" | | 1 | "She pressed a palm to" | | 2 | "The crimson gemstone pulsed once," | | 3 | "This is wrong.* The thought" | | 4 | "She shouldn’t have come." | | 5 | "The standing stones." | | 6 | "The message had appeared on" | | 7 | "She’d deleted it immediately, but" | | 8 | "The standing stones." | | 9 | "The standing stones loomed ahead," | | 10 | "The grove was supposed to" | | 11 | "Rory exhaled through her nose," | | 12 | "That’s how she’d survived London." | | 13 | "She could survive this." | | 14 | "She stepped forward." | | 15 | "The moment her boot crossed" | | 16 | "The pendant flared, searing her" | | 17 | "The gemstone glowed now, a" | | 18 | "she muttered, voice too loud" | | 19 | "She was alone." |
| | ratio | 0.75 | |
| 54.35% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 92 | | matches | | 0 | "—and the ground *moved*." |
| | ratio | 0.011 | |
| 53.57% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 5 | | matches | | 0 | "And now here she was, standing at the edge of Richmond Park, the air thick with the scent of damp earth and something older—something that smelled like rust and…" | | 1 | "Ancient oaks, their bark blackened as if scorched by some long-ago fire, their branches twisting like skeletal fingers." | | 2 | "They were *shifting*, their bark rippling like water, their branches stretching, elongating, reaching—" | | 3 | "The pendant’s glow intensified, casting jagged shadows that danced across the ground like something alive." | | 4 | "It slithered through her mind, coiling around her thoughts, squeezing." |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 1 | | matches | | 0 | "she muttered, voice too loud in the silence" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 2 | | fancyCount | 2 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "women speaking (speak)" |
| | dialogueSentences | 10 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 1 | | effectiveRatio | 0.4 | |