| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 2 | | adverbTags | | 0 | "Nyx's head turned slowly [slowly]" | | 1 | "she said slowly [slowly]" |
| | dialogueSentences | 46 | | tagDensity | 0.413 | | leniency | 0.826 | | rawRatio | 0.105 | | effectiveRatio | 0.087 | |
| 86.10% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1798 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slowly" | | 1 | "perfectly" | | 2 | "precisely" |
| |
| 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) | |
| 47.16% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1798 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "furrowed" | | 1 | "silk" | | 2 | "whisper" | | 3 | "pulsed" | | 4 | "warmth" | | 5 | "pulse" | | 6 | "quickened" | | 7 | "comforting" | | 8 | "could feel" | | 9 | "weight" | | 10 | "tension" | | 11 | "depths" | | 12 | "trembled" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 2 | | narrationSentences | 110 | | matches | | 0 | "d with warmth" | | 1 | "was grateful" |
| |
| 90.91% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 110 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 137 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 10 | | totalWords | 1781 | | ratio | 0.006 | | matches | | 0 | "Wards and walls, child. The hungry things will be hungry." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 17 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 71 | | wordCount | 1379 | | uniqueNames | 14 | | maxNameDensity | 1.74 | | worstName | "Aurora" | | maxWindowNameDensity | 4 | | worstWindowName | "Aurora" | | discoveredNames | | Isolde | 14 | | Richmond | 1 | | Park | 1 | | London | 2 | | Shade | 3 | | Aurora | 24 | | Nyx | 13 | | Seer | 6 | | Golden | 1 | | Empress | 1 | | Veil | 1 | | Heartstone | 2 | | Fae-forged | 1 | | Ahead | 1 |
| | persons | | 0 | "Isolde" | | 1 | "Shade" | | 2 | "Aurora" | | 3 | "Nyx" | | 4 | "Seer" | | 5 | "Empress" | | 6 | "Veil" | | 7 | "Heartstone" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" |
| | globalScore | 0.63 | | windowScore | 0.333 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 80 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1781 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 137 | | matches | | 0 | "learned that Nyx's" | | 1 | "saw that the" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 67 | | mean | 26.58 | | std | 22.08 | | cv | 0.831 | | sampleLengths | | 0 | 4 | | 1 | 74 | | 2 | 6 | | 3 | 46 | | 4 | 51 | | 5 | 7 | | 6 | 31 | | 7 | 61 | | 8 | 45 | | 9 | 8 | | 10 | 5 | | 11 | 28 | | 12 | 3 | | 13 | 56 | | 14 | 10 | | 15 | 79 | | 16 | 45 | | 17 | 19 | | 18 | 28 | | 19 | 18 | | 20 | 65 | | 21 | 4 | | 22 | 2 | | 23 | 36 | | 24 | 33 | | 25 | 1 | | 26 | 5 | | 27 | 51 | | 28 | 75 | | 29 | 14 | | 30 | 49 | | 31 | 11 | | 32 | 24 | | 33 | 51 | | 34 | 32 | | 35 | 18 | | 36 | 33 | | 37 | 12 | | 38 | 9 | | 39 | 34 | | 40 | 2 | | 41 | 60 | | 42 | 12 | | 43 | 2 | | 44 | 50 | | 45 | 3 | | 46 | 8 | | 47 | 9 | | 48 | 1 | | 49 | 27 |
| |
| 95.69% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 110 | | matches | | 0 | "was gone" | | 1 | "was woven" | | 2 | "were fixed" |
| |
| 31.22% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 237 | | matches | | 0 | "was learning" | | 1 | "was locking" | | 2 | "was approaching" | | 3 | "was listening" | | 4 | "was humming" | | 5 | "were turning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 137 | | ratio | 0.102 | | matches | | 0 | "Through the gap between two stones, she could see the ordinary London afternoon—grey clouds, distant traffic noise, a jogger on the path who would see nothing but trees if they looked this way." | | 1 | "The Seer's voice had carried through the pendant one evening as Aurora was locking up the Golden Empress's delivery scooter—a whisper that slid into her skull like honey, speaking of gifts and debts and the turning of seasons." | | 2 | "The Shade didn't laugh, but something shifted in the shadows around their edges—amusement, maybe." | | 3 | "Wildflowers covered the ground in a riot of colours that shouldn't have existed together—deep indigos beside blazing oranges, soft lavenders tangled with crimsons so rich they seemed to drink the light." | | 4 | "And the light—it came from everywhere and nowhere." | | 5 | "\"I can feel it.\" Aurora's voice sounded strange in the grove's acoustics—muffled, as though the air itself was too thick to carry sound properly." | | 6 | "But the trees beyond them—the ones within the grove proper—they were something else." | | 7 | "The path through the wildflowers was subtle—a faint depression in the earth, barely visible, as though the grove didn't want to admit it had a route at all." | | 8 | "The Seer looked exactly as she had the first time Aurora met her—ageless, impossible, her silver hair pooling around her like spilled moonlight." | | 9 | "The light shifted—deepened—and the flowers at her feet turned their heads to watch her." | | 10 | "\"Time has a different arithmetic here, child. What was true when you entered may not be true when you leave. That is the nature of places that exist in the spaces between.\" Isolde rose from her root-throne, her robes—if they were robes, if they weren't simply part of the grove's ambient light given form—trailing behind her." | | 11 | "\"To Dymas. To the realm of Gluttony itself.\" Isolde stepped closer, and Aurora saw that the Seer's feet didn't touch the ground—they hovered a finger's width above the earth, leaving no trace in the wildflowers." | | 12 | "\"You will go.\" The Seer's voice softened, and for a moment Aurora caught a glimpse of something beneath the riddles and the centuries—a thread of genuine concern, worn thin as old silk." | | 13 | "Aurora wanted to argue—wanted to demand answers, explanations, something more concrete than riddles and warnings." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1404 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 40 | | adverbRatio | 0.02849002849002849 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.01282051282051282 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 137 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 137 | | mean | 13 | | std | 9.95 | | cv | 0.765 | | sampleLengths | | 0 | 4 | | 1 | 18 | | 2 | 18 | | 3 | 38 | | 4 | 6 | | 5 | 33 | | 6 | 13 | | 7 | 10 | | 8 | 23 | | 9 | 18 | | 10 | 7 | | 11 | 11 | | 12 | 20 | | 13 | 6 | | 14 | 38 | | 15 | 10 | | 16 | 7 | | 17 | 8 | | 18 | 12 | | 19 | 25 | | 20 | 8 | | 21 | 5 | | 22 | 14 | | 23 | 14 | | 24 | 3 | | 25 | 21 | | 26 | 23 | | 27 | 12 | | 28 | 10 | | 29 | 31 | | 30 | 21 | | 31 | 27 | | 32 | 8 | | 33 | 20 | | 34 | 17 | | 35 | 16 | | 36 | 3 | | 37 | 24 | | 38 | 4 | | 39 | 12 | | 40 | 6 | | 41 | 6 | | 42 | 22 | | 43 | 13 | | 44 | 4 | | 45 | 20 | | 46 | 1 | | 47 | 3 | | 48 | 2 | | 49 | 10 |
| |
| 52.55% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.35036496350364965 | | totalSentences | 137 | | uniqueOpeners | 48 | |
| 34.01% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 98 | | matches | | 0 | "Even the amber light seemed" |
| | ratio | 0.01 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 22 | | totalSentences | 98 | | matches | | 0 | "She paused at the edge" | | 1 | "Their faintly violet eyes studied" | | 2 | "She touched the Heartstone pendant" | | 3 | "It pulsed with warmth against" | | 4 | "She stepped through." | | 5 | "It passed through her, through" | | 6 | "They bloomed in defiance of" | | 7 | "It pooled in the hollows" | | 8 | "She looked at the nearest" | | 9 | "Their bark wasn't rough." | | 10 | "It was smooth, almost polished," | | 11 | "She took a step back" | | 12 | "She hadn't asked which hungry" | | 13 | "She'd learned not to ask" | | 14 | "Her pale lavender eyes were" | | 15 | "Her voice didn't sound muffled." | | 16 | "It cut through the grove's" | | 17 | "Their petals rotated on invisible" | | 18 | "She pulled it from beneath" | | 19 | "It was warm in her" |
| | ratio | 0.224 | |
| 41.63% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 82 | | totalSentences | 98 | | matches | | 0 | "The air changed first." | | 1 | "Aurora felt it against her" | | 2 | "She paused at the edge" | | 3 | "The ancient oaks that marked" | | 4 | "Nyx murmured beside her" | | 5 | "The Shade had condensed into" | | 6 | "Their faintly violet eyes studied" | | 7 | "Nyx tilted their head, listening" | | 8 | "Isolde had told them to" | | 9 | "The Seer's voice had carried" | | 10 | "The winter solstice was approaching," | | 11 | "She touched the Heartstone pendant" | | 12 | "It pulsed with warmth against" | | 13 | "That pulse had quickened when" | | 14 | "The Shade didn't laugh, but" | | 15 | "Aurora had learned that Nyx's" | | 16 | "She stepped through." | | 17 | "The sensation was exactly as" | | 18 | "It passed through her, through" | | 19 | "The Heartstone flared hot, then" |
| | ratio | 0.837 | |
| 51.02% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 98 | | matches | | 0 | "If anyone could read the" |
| | ratio | 0.01 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 50 | | technicalSentenceCount | 11 | | matches | | 0 | "The ancient oaks that marked the boundary of Isolde's grove rose in a rough circle, their bark furrowed with age, their roots gripping the earth of Richmond Par…" | | 1 | "Through the gap between two stones, she could see the ordinary London afternoon—grey clouds, distant traffic noise, a jogger on the path who would see nothing b…" | | 2 | "The Shade had condensed into solid form for the crossing, their silhouette dark against the amber-tinted light that spilled from the grove's interior." | | 3 | "The Seer's voice had carried through the pendant one evening as Aurora was locking up the Golden Empress's delivery scooter—a whisper that slid into her skull l…" | | 4 | "It passed through her, through muscle and bone and the soft places between thoughts, leaving behind a tingling residue that made her shiver." | | 5 | "Wildflowers covered the ground in a riot of colours that shouldn't have existed together—deep indigos beside blazing oranges, soft lavenders tangled with crimso…" | | 6 | "They bloomed in defiance of season and sense, stretching toward an amber sky that had no business being amber at all." | | 7 | "The canopy above was woven from branches that moved without wind, twisting and untwisting in patterns that made Aurora's eyes ache if she tried to follow them." | | 8 | "The path through the wildflowers was subtle—a faint depression in the earth, barely visible, as though the grove didn't want to admit it had a route at all." | | 9 | "The wildflowers gave way to ferns that grew taller than Aurora, their fronds unfurling with soft creaking sounds like old joints waking." | | 10 | "But the grove was humming now, a low vibration that trembled through the earth and into her bones, and the flowers were turning back to face the centre of the c…" |
| |
| 46.05% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 3 | | matches | | 0 | "Aurora's voice sounded, as though the air itself was too thick to carry sound properly" | | 1 | "Nyx said, their whisper-voice carrying despite the muffled air" | | 2 | "Nyx said, their voice barely a breath against her ear" |
| |
| 84.78% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 3 | | fancyTags | | 0 | "Nyx murmured (murmur)" | | 1 | "Isolde spoke (speak)" | | 2 | "the Seer repeated (repeat)" |
| | dialogueSentences | 46 | | tagDensity | 0.239 | | leniency | 0.478 | | rawRatio | 0.273 | | effectiveRatio | 0.13 | |