| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 30 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 83.42% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1508 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "truly" | | 1 | "perfectly" | | 2 | "very" |
| |
| 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) | |
| 43.63% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1508 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "pulse" | | 1 | "flicker" | | 2 | "comforting" | | 3 | "perfect" | | 4 | "shimmered" | | 5 | "unsettled" | | 6 | "whisper" | | 7 | "weight" | | 8 | "rhythmic" | | 9 | "warmth" | | 10 | "silence" | | 11 | "footsteps" |
| |
| 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 | 83 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 83 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 60 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1528 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 1180 | | uniqueNames | 12 | | maxNameDensity | 0.85 | | worstName | "Nyx" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Nyx" | | discoveredNames | | Rory | 7 | | London | 2 | | Heartstone | 2 | | Pen | 1 | | Ponds | 1 | | Richmond | 2 | | Hel | 2 | | Nyx | 10 | | Park | 1 | | Hel-pulse | 1 | | Seer | 1 | | Isolde | 2 |
| | persons | | 0 | "Rory" | | 1 | "Nyx" | | 2 | "Seer" | | 3 | "Isolde" |
| | places | | 0 | "London" | | 1 | "Richmond" | | 2 | "Park" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like ten seconds, and the first li" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1528 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 98 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 39 | | mean | 39.18 | | std | 31.99 | | cv | 0.817 | | sampleLengths | | 0 | 10 | | 1 | 95 | | 2 | 19 | | 3 | 15 | | 4 | 73 | | 5 | 2 | | 6 | 6 | | 7 | 81 | | 8 | 54 | | 9 | 21 | | 10 | 67 | | 11 | 4 | | 12 | 26 | | 13 | 31 | | 14 | 8 | | 15 | 87 | | 16 | 29 | | 17 | 26 | | 18 | 67 | | 19 | 45 | | 20 | 79 | | 21 | 6 | | 22 | 29 | | 23 | 38 | | 24 | 11 | | 25 | 67 | | 26 | 85 | | 27 | 4 | | 28 | 47 | | 29 | 25 | | 30 | 7 | | 31 | 59 | | 32 | 6 | | 33 | 93 | | 34 | 11 | | 35 | 21 | | 36 | 118 | | 37 | 1 | | 38 | 55 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 83 | | matches | | |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 197 | | matches | | 0 | "was opening" | | 1 | "was counting " | | 2 | "wasn't looking" | | 3 | "was pulling" | | 4 | "was erasing" | | 5 | "was glowing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 98 | | ratio | 0.153 | | matches | | 0 | "Not the steady pulse she'd come to dread — that heartbeat rhythm that meant a Hel door was opening somewhere nearby — but something slower." | | 1 | "Rory counted the oaks before she understood what she was counting — thirteen of them, grown in a perfect ring, each one vast and ancient in a way no tree in a London park had any right to be." | | 2 | "She felt the boundary before she crossed it — a shiver across her skin like stepping from one room into another, from a warm house out into snow." | | 3 | "The screen's glow looked wrong here — thin and papery, like light reflected off water." | | 4 | "Their silhouette had gone rigid, and where their shadow-form met the shadows of the oaks, the darkness was pulling at them — threads of black stretching from Nyx's shoulders toward the trees, like iron filings dragged toward a lodestone." | | 5 | "So was Richmond Park, so was the winter — the ground under her boots was soft and green, carpeted with wildflowers in colours she had no names for: blue as deep as a bruise, a violet that shimmered, small white blooms that gave off their own faint light, so that the whole meadow glimmered like a spill of stars." | | 6 | "Nyx was there — but flattened, wrong, their form smeared and indistinct, as if the grove's light was erasing them." | | 7 | "Not all at once, not with any snapping or rustling — they simply rotated on their stems, faces tracking her, the way a room full of people turns to watch a stranger walk in." | | 8 | "The soil was dark and rich, and it moved — a slow, rhythmic swell and settle, faint as a sleeper's breathing." | | 9 | "That was the only way she could describe it — a basin of perfectly still water, and in the water, stars." | | 10 | "Not the Hel-pulse — this was softer, a deep crimson bloom of light that rose and fell in time with the ground's breathing, in time with the pool's slow turning." | | 11 | "Under the silence — and it had been silence, she'd thought, total silence — there was a hum." | | 12 | "The voice had come from behind her, and there had been no footsteps, and there were no footprints — that was the second thing that truly unsettled her." | | 13 | "\"And you are exactly as I have seen you, Aurora Carter, though the seeing is not the same as the meeting, and the meeting is not the same as the knowing.\" Isolde tilted her head, and her gaze dropped to the pendant at Rory's throat, and something moved behind the lavender — recognition, or grief, or both wearing the same face." | | 14 | "\"I cannot lie, child. It is the one law my blood still keeps.\" Isolde drifted closer — drifted, her bare feet never quite seeming to commit to the ground." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1166 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 41 | | adverbRatio | 0.03516295025728988 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.006003430531732418 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 15.59 | | std | 13.55 | | cv | 0.869 | | sampleLengths | | 0 | 10 | | 1 | 5 | | 2 | 45 | | 3 | 25 | | 4 | 1 | | 5 | 19 | | 6 | 8 | | 7 | 11 | | 8 | 15 | | 9 | 48 | | 10 | 25 | | 11 | 2 | | 12 | 6 | | 13 | 6 | | 14 | 39 | | 15 | 36 | | 16 | 9 | | 17 | 28 | | 18 | 11 | | 19 | 2 | | 20 | 2 | | 21 | 2 | | 22 | 4 | | 23 | 2 | | 24 | 15 | | 25 | 10 | | 26 | 39 | | 27 | 18 | | 28 | 4 | | 29 | 21 | | 30 | 5 | | 31 | 4 | | 32 | 27 | | 33 | 8 | | 34 | 4 | | 35 | 59 | | 36 | 24 | | 37 | 9 | | 38 | 9 | | 39 | 11 | | 40 | 6 | | 41 | 20 | | 42 | 8 | | 43 | 41 | | 44 | 18 | | 45 | 21 | | 46 | 24 | | 47 | 2 | | 48 | 16 | | 49 | 34 |
| |
| 61.90% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.40816326530612246 | | totalSentences | 98 | | uniqueOpeners | 40 | |
| 98.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 68 | | matches | | 0 | "Of course it wasn't." | | 1 | "Then she counted again and" |
| | ratio | 0.029 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 68 | | matches | | 0 | "She'd been following the pendant." | | 1 | "She held the chain up" | | 2 | "Their trunks had twisted as" | | 3 | "She felt the boundary before" | | 4 | "She checked her phone." | | 5 | "Their silhouette had gone rigid," | | 6 | "She looked down at herself" | | 7 | "She unzipped her jacket and" | | 8 | "She pressed her palm flat" | | 9 | "She wiped her hand on" | | 10 | "Her phone said 11:47 still." | | 11 | "She watched the screen for" | | 12 | "She put the phone away." | | 13 | "You just needed to leave" | | 14 | "She went quiet." | | 15 | "Her eyes were pale lavender," |
| | ratio | 0.235 | |
| 85.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 51 | | totalSentences | 68 | | matches | | 0 | "The standing stones found them" | | 1 | "She'd been following the pendant." | | 2 | "A flicker of heat, then" | | 3 | "She held the chain up" | | 4 | "The gem's inner glow guttered" | | 5 | "Nyx poured themselves out of" | | 6 | "The bracken ended at a" | | 7 | "Rory counted the oaks before" | | 8 | "Their trunks had twisted as" | | 9 | "The air inside the ring" | | 10 | "She felt the boundary before" | | 11 | "She checked her phone." | | 12 | "The screen's glow looked wrong" | | 13 | "Nyx had stopped at the" | | 14 | "Their silhouette had gone rigid," | | 15 | "A pause, and the violet" | | 16 | "Rory filed that away with" | | 17 | "The world opened like a" | | 18 | "The hollow was gone." | | 19 | "That was the first thing" |
| | ratio | 0.75 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 68 | | matches | (empty) | | ratio | 0 | |
| 51.28% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 5 | | matches | | 0 | "Not the steady pulse she'd come to dread — that heartbeat rhythm that meant a Hel door was opening somewhere nearby — but something slower." | | 1 | "Their trunks had twisted as they grew, bark spiralling upward like frozen smoke, and carved into the wood, so faint she might have imagined it, were lines that …" | | 2 | "So was Richmond Park, so was the winter — the ground under her boots was soft and green, carpeted with wildflowers in colours she had no names for: blue as deep…" | | 3 | "There was no sun and no moon, only a pale amber radiance that came from everywhere and nowhere, sourceless, casting no shadows at all." | | 4 | "The voice had come from behind her, and there had been no footsteps, and there were no footprints — that was the second thing that truly unsettled her." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 16.67% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 4 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "Nyx whispered (whisper)" | | 2 | "Nyx breathed (breathe)" | | 3 | "she whispered (whisper)" |
| | dialogueSentences | 30 | | tagDensity | 0.133 | | leniency | 0.267 | | rawRatio | 1 | | effectiveRatio | 0.267 | |