| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 14 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 36 | | tagDensity | 0.389 | | leniency | 0.778 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.61% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1065 | | 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) | |
| 48.36% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1065 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "comforting" | | 1 | "whisper" | | 2 | "pulse" | | 3 | "warmth" | | 4 | "flicked" | | 5 | "tracing" | | 6 | "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 | 45 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 45 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 67 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 1 | | markdownWords | 2 | | totalWords | 1074 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 58.98% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 33 | | wordCount | 824 | | uniqueNames | 10 | | maxNameDensity | 1.82 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Nyx | 10 | | Rory | 15 | | Eva | 1 | | Heartstone | 1 | | Pendant | 1 | | Hel | 1 | | Further | 1 | | Fae-forged | 1 | | Silver | 1 | | Seer | 1 |
| | persons | | 0 | "Nyx" | | 1 | "Rory" | | 2 | "Eva" | | 3 | "Pendant" | | 4 | "Seer" |
| | places | | | globalScore | 0.59 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 35 | | glossingSentenceCount | 6 | | matches | | 0 | "not quite violet, not quite blue, shifting depending on the angle she looked from" | | 1 | "not quite blue, shifting depending on the angle she looked from" | | 2 | "seemed wrong in a way that took Rory a moment to place — the bark spiralled the wrong direction, and where sunlight should have filtered through leaves in dappled patches, instead it pooled in silver puddles on the moss, like someone had spilled moonlight during the day" | | 3 | "looked like a spilled paintbox, blues ble" | | 4 | "sounded like her mother telling her not to" | | 5 | "looked like *go back*" | | 6 | "something like concern, though it was hard t" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 4 | | per1kWords | 3.724 | | wordCount | 1074 | | matches | | 0 | "not the deep pull it gave near a Hel portal, but something softer, curious almost, like it recognised the mag" | | 1 | "not the canopy above but a sky Rory didn't recognise" | | 2 | "no sound on the moss but" | | 3 | "not from above but from the ground itself, gathering into a shape" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 67 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 42 | | mean | 25.57 | | std | 22.13 | | cv | 0.865 | | sampleLengths | | 0 | 45 | | 1 | 14 | | 2 | 22 | | 3 | 1 | | 4 | 66 | | 5 | 11 | | 6 | 41 | | 7 | 11 | | 8 | 50 | | 9 | 29 | | 10 | 4 | | 11 | 23 | | 12 | 51 | | 13 | 20 | | 14 | 3 | | 15 | 2 | | 16 | 37 | | 17 | 53 | | 18 | 17 | | 19 | 4 | | 20 | 1 | | 21 | 63 | | 22 | 5 | | 23 | 20 | | 24 | 14 | | 25 | 8 | | 26 | 2 | | 27 | 88 | | 28 | 9 | | 29 | 33 | | 30 | 71 | | 31 | 9 | | 32 | 25 | | 33 | 21 | | 34 | 15 | | 35 | 2 | | 36 | 48 | | 37 | 24 | | 38 | 47 | | 39 | 13 | | 40 | 3 | | 41 | 49 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 45 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 136 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 67 | | ratio | 0.119 | | matches | | 0 | "Wildflowers carpeted the ground in colours Rory didn't have names for — not quite violet, not quite blue, shifting depending on the angle she looked from." | | 1 | "The trees themselves seemed wrong in a way that took Rory a moment to place — the bark spiralled the wrong direction, and where sunlight should have filtered through leaves in dappled patches, instead it pooled in silver puddles on the moss, like someone had spilled moonlight during the day." | | 2 | "The path — if it could be called that, since nothing marked it beyond a subtle absence of undergrowth — curved around an outcrop of pale stone veined with something that glinted like crushed starlight." | | 3 | "The Heartstone Pendant, tucked beneath her shirt, gave a faint pulse of warmth against her collarbone — not the deep pull it gave near a Hel portal, but something softer, curious almost, like it recognised the magic here as kin to something else entirely." | | 4 | "In the centre of the clearing sat a shallow pool, its surface undisturbed by any wind, reflecting not the canopy above but a sky Rory didn't recognise — swirled violets and greens, stars in patterns that made no sense against any constellation she knew." | | 5 | "Her own reflection stared back, but wrong — older, a thin white scar tracing her jaw that she didn't have, eyes duller than her own bright blue." | | 6 | "A rustle came from the tree line, deliberate, unhurried — footsteps that made no sound on the moss but disturbed the air all the same." | | 7 | "Silver light rippled at the clearing's far edge, not from above but from the ground itself, gathering into a shape that left no footprints as it approached — the swirl of pale hair the colour of moonlight on water, lavender eyes older than the trees around them." |
| |
| 94.30% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 817 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.046511627906976744 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.011015911872705019 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 67 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 67 | | mean | 16.03 | | std | 12.35 | | cv | 0.77 | | sampleLengths | | 0 | 16 | | 1 | 29 | | 2 | 6 | | 3 | 8 | | 4 | 12 | | 5 | 10 | | 6 | 1 | | 7 | 18 | | 8 | 26 | | 9 | 22 | | 10 | 9 | | 11 | 2 | | 12 | 16 | | 13 | 25 | | 14 | 11 | | 15 | 50 | | 16 | 16 | | 17 | 13 | | 18 | 4 | | 19 | 15 | | 20 | 8 | | 21 | 4 | | 22 | 34 | | 23 | 13 | | 24 | 20 | | 25 | 3 | | 26 | 2 | | 27 | 4 | | 28 | 33 | | 29 | 35 | | 30 | 18 | | 31 | 4 | | 32 | 13 | | 33 | 4 | | 34 | 1 | | 35 | 19 | | 36 | 44 | | 37 | 5 | | 38 | 7 | | 39 | 13 | | 40 | 14 | | 41 | 8 | | 42 | 2 | | 43 | 44 | | 44 | 44 | | 45 | 9 | | 46 | 29 | | 47 | 4 | | 48 | 26 | | 49 | 27 |
| |
| 95.52% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.582089552238806 | | totalSentences | 67 | | uniqueOpeners | 39 | |
| 85.47% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 39 | | matches | | 0 | "Further in, the trees thinned" |
| | ratio | 0.026 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 8 | | totalSentences | 39 | | matches | | 0 | "She crouched to touch one" | | 1 | "She turned toward it and" | | 2 | "They pressed further in." | | 3 | "She stopped once to watch" | | 4 | "She'd learned, in the months" | | 5 | "She pressed a hand flat" | | 6 | "Her own reflection stared back," | | 7 | "She flinched away from the" |
| | ratio | 0.205 | |
| 11.28% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 35 | | totalSentences | 39 | | matches | | 0 | "The oak stones marked the" | | 1 | "Rory counted seven of them" | | 2 | "Nyx moved beside her, more" | | 3 | "The grove opened around them" | | 4 | "Wildflowers carpeted the ground in" | | 5 | "She crouched to touch one" | | 6 | "Nyx's whisper drifted through the" | | 7 | "The trees themselves seemed wrong" | | 8 | "A sound reached her then," | | 9 | "She turned toward it and" | | 10 | "Nyx said, though the tilt" | | 11 | "They pressed further in." | | 12 | "The moss beneath Rory's boots" | | 13 | "She stopped once to watch" | | 14 | "Rory didn't ask further." | | 15 | "She'd learned, in the months" | | 16 | "The path — if it" | | 17 | "Rory reached out and Nyx's" | | 18 | "Rory withdrew her hand and" | | 19 | "The Heartstone Pendant, tucked beneath" |
| | ratio | 0.897 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 39 | | matches | (empty) | | ratio | 0 | |
| 5.49% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 26 | | technicalSentenceCount | 5 | | matches | | 0 | "The trees themselves seemed wrong in a way that took Rory a moment to place — the bark spiralled the wrong direction, and where sunlight should have filtered th…" | | 1 | "The path — if it could be called that, since nothing marked it beyond a subtle absence of undergrowth — curved around an outcrop of pale stone veined with somet…" | | 2 | "In the centre of the clearing sat a shallow pool, its surface undisturbed by any wind, reflecting not the canopy above but a sky Rory didn't recognise — swirled…" | | 3 | "Rory knelt at the edge anyway, curiosity winning out over the small voice that sounded like her mother telling her not to touch things in museums." | | 4 | "A rustle came from the tree line, deliberate, unhurried — footsteps that made no sound on the moss but disturbed the air all the same." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 14 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 94.44% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 2 | | fancyTags | | 0 | "She pressed (press)" | | 1 | "Rory pressed (press)" |
| | dialogueSentences | 36 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0.167 | | effectiveRatio | 0.111 | |