| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 1 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 3 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 92.46% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1327 | | 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) | |
| 5.80% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1327 | | totalAiIsms | 25 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | | | 18 | |
| | highlights | | 0 | "loomed" | | 1 | "sentinels" | | 2 | "pulse" | | 3 | "footsteps" | | 4 | "grave" | | 5 | "stomach" | | 6 | "lurched" | | 7 | "pulsed" | | 8 | "silence" | | 9 | "weight" | | 10 | "whisper" | | 11 | "searing" | | 12 | "trembled" | | 13 | "etching" | | 14 | "warmth" | | 15 | "depths" | | 16 | "silk" | | 17 | "echo" | | 18 | "shimmered" |
| |
| 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 | 160 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 160 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 162 | | 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 | 7 | | markdownWords | 37 | | totalWords | 1315 | | ratio | 0.028 | | matches | | 0 | "Come alone. Three hours past midnight. The standing stones on Richmond Hill. Come alone or we're gone." | | 1 | "Betrayer." | | 2 | "Focus." | | 3 | "Stupid. Just adrenaline. Just the weight of the pendant making everything seem—" | | 4 | "thrumming" | | 5 | "Three hours." | | 6 | "Mal- phor-a. Mal-phor-a." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 7 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1307 | | uniqueNames | 10 | | maxNameDensity | 0.99 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Hill | 1 | | Evan | 5 | | Hel | 1 | | London | 1 | | Park | 1 | | Rory | 13 | | Laila | 1 | | Fae-touched | 1 | | Three | 4 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Hill" | | 2 | "Hel" | | 3 | "London" | | 4 | "Park" |
| | globalScore | 1 | | windowScore | 1 | |
| 66.67% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 90 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like old coins" | | 1 | "as if resonating to something deep beneath the ground" | | 2 | "sounded like wet clicking" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1315 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 162 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 59 | | mean | 22.29 | | std | 19.36 | | cv | 0.869 | | sampleLengths | | 0 | 54 | | 1 | 25 | | 2 | 53 | | 3 | 21 | | 4 | 5 | | 5 | 86 | | 6 | 56 | | 7 | 11 | | 8 | 54 | | 9 | 1 | | 10 | 35 | | 11 | 6 | | 12 | 26 | | 13 | 41 | | 14 | 1 | | 15 | 16 | | 16 | 2 | | 17 | 46 | | 18 | 9 | | 19 | 36 | | 20 | 4 | | 21 | 35 | | 22 | 5 | | 23 | 49 | | 24 | 18 | | 25 | 9 | | 26 | 3 | | 27 | 34 | | 28 | 3 | | 29 | 45 | | 30 | 4 | | 31 | 23 | | 32 | 34 | | 33 | 19 | | 34 | 12 | | 35 | 19 | | 36 | 7 | | 37 | 51 | | 38 | 10 | | 39 | 5 | | 40 | 31 | | 41 | 40 | | 42 | 29 | | 43 | 6 | | 44 | 9 | | 45 | 4 | | 46 | 59 | | 47 | 10 | | 48 | 15 | | 49 | 33 |
| |
| 98.68% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 160 | | matches | | 0 | "gone" | | 1 | "was littered" | | 2 | "were hollowed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 235 | | matches | | 0 | "were *thrumming" | | 1 | "weren't just standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 11 | | totalSentences | 162 | | ratio | 0.068 | | matches | | 0 | "The grass underfoot remained stubbornly green despite the lateness of the season, but the wildflowers weren't right—each petal layered like someone had crumpled too many colours together and smoothed them out crooked." | | 1 | "She'd come because she'd pressed her palm against the pendant that morning and seen—briefly—a pocket watch opening inward, gears spinning in reverse, and a date: 1983." | | 2 | "Not animal—not properly." | | 3 | "Just the weight of the pendant making everything seem—*" | | 4 | "The wildflowers here weren't just layered wrong—they were *thrumming*, their stems vibrating like plucked harp strings." | | 5 | "The imprints on her throat—three red marks in the shape of petals—itched furiously." | | 6 | "Something darker welled from the gash—thick, black liquid that reeked of rotting roses." | | 7 | "Rory turned, one hand going to her belt—uselessly, since she had no knife, no weapon at all except stubbornness." | | 8 | "Through the gaps in their arrangement, Rory caught flashes of colour that hurt her eyes—azure depths that didn't belong to this world, watching her with the patience of carrion birds." | | 9 | "The pendant's burn had spread to her left wrist—the one with the crescent scar." | | 10 | "It wore no face—just a blank stretch of skin that shimmered like oil on water." |
| |
| 98.71% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1326 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 55 | | adverbRatio | 0.04147812971342383 | | lyAdverbCount | 16 | | lyAdverbRatio | 0.012066365007541479 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 162 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 162 | | mean | 8.12 | | std | 6.18 | | cv | 0.761 | | sampleLengths | | 0 | 19 | | 1 | 17 | | 2 | 18 | | 3 | 2 | | 4 | 6 | | 5 | 2 | | 6 | 4 | | 7 | 6 | | 8 | 5 | | 9 | 13 | | 10 | 9 | | 11 | 7 | | 12 | 12 | | 13 | 12 | | 14 | 7 | | 15 | 14 | | 16 | 5 | | 17 | 14 | | 18 | 22 | | 19 | 32 | | 20 | 18 | | 21 | 4 | | 22 | 5 | | 23 | 4 | | 24 | 9 | | 25 | 26 | | 26 | 8 | | 27 | 9 | | 28 | 2 | | 29 | 7 | | 30 | 3 | | 31 | 20 | | 32 | 3 | | 33 | 14 | | 34 | 7 | | 35 | 1 | | 36 | 8 | | 37 | 7 | | 38 | 3 | | 39 | 10 | | 40 | 4 | | 41 | 3 | | 42 | 6 | | 43 | 2 | | 44 | 2 | | 45 | 8 | | 46 | 14 | | 47 | 3 | | 48 | 10 | | 49 | 1 |
| |
| 37.04% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 21 | | diversityRatio | 0.29012345679012347 | | totalSentences | 162 | | uniqueOpeners | 47 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 138 | | matches | | 0 | "Only one word scrawled in" | | 1 | "Just the weight of the" | | 2 | "Just a sound like dry" | | 3 | "More like the vibration of" | | 4 | "Then the whispers changed." | | 5 | "Just a rhythm: *Mal- phor-a." |
| | ratio | 0.043 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 138 | | matches | | 0 | "She'd nearly laughed when she" | | 1 | "She pushed between the stones." | | 2 | "She'd come because she'd pressed" | | 3 | "Her stomach lurched." | | 4 | "She crouched, stomach pressing against" | | 5 | "It crumbled to ash between" | | 6 | "She stood, brushing her palms" | | 7 | "It usually pulsed stronger when" | | 8 | "She strained to listen past" | | 9 | "She turned slowly, eyes sweeping" | | 10 | "Her breath came faster." | | 11 | "It came from her left." | | 12 | "She stepped forward." | | 13 | "Her breath misted for half" | | 14 | "She reached the birch." | | 15 | "It was wrong in every" | | 16 | "She hissed, jerking back." | | 17 | "She gasped, clawing at the" | | 18 | "It pooled on the ground," | | 19 | "They became words." |
| | ratio | 0.268 | |
| 97.68% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 100 | | totalSentences | 138 | | matches | | 0 | "The standing stones loomed like" | | 1 | "Rory's fingers brushed the bark," | | 2 | "The pendant at her throat" | | 3 | "That's all the message had" | | 4 | "The standing stones on Richmond" | | 5 | "She'd nearly laughed when she" | | 6 | "The envelope had contained no" | | 7 | "She pushed between the stones." | | 8 | "The air thickened immediately, like" | | 9 | "The pendant flared crimson against" | | 10 | "The grass underfoot remained stubbornly" | | 11 | "Rory forced herself forward." | | 12 | "This was why she'd come." | | 13 | "She'd come because she'd pressed" | | 14 | "The year Evan's first girlfriend" | | 15 | "Footsteps crunched on something that" | | 16 | "The ground was littered with" | | 17 | "Her stomach lurched." | | 18 | "She crouched, stomach pressing against" | | 19 | "It crumbled to ash between" |
| | ratio | 0.725 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 138 | | matches | (empty) | | ratio | 0 | |
| 74.18% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 5 | | matches | | 0 | "From the direction of the grove's centre, where the oldest oaks clustered around a sickly pale birch that hadn't been there when she'd last visited Richmond Par…" | | 1 | "The wildflowers here weren't just layered wrong—they were *thrumming*, their stems vibrating like plucked harp strings." | | 2 | "The pendant tugged toward the birch's roots, vibrating as if resonating to something deep beneath the ground." | | 3 | "Something darker welled from the gash—thick, black liquid that reeked of rotting roses." | | 4 | "Through the gaps in their arrangement, Rory caught flashes of colour that hurt her eyes—azure depths that didn't belong to this world, watching her with the pat…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 1 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | 0 | "she whispered (whisper)" |
| | dialogueSentences | 3 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 1 | | effectiveRatio | 0.667 | |