| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said aloud [aloud]" | | 1 | "she said again [again]" |
| | dialogueSentences | 4 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0.5 | | effectiveRatio | 0.5 | |
| 93.21% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1473 | | totalAiIsmAdverbs | 2 | | found | | 0 | | | 1 | | adverb | "deliberately" | | count | 1 |
|
| | 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) | |
| 42.29% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1473 | | totalAiIsms | 17 | | found | | | highlights | | 0 | "pulse" | | 1 | "silence" | | 2 | "familiar" | | 3 | "pulsed" | | 4 | "throb" | | 5 | "unravel" | | 6 | "sense of" | | 7 | "resolved" | | 8 | "rhythmic" | | 9 | "wavering" | | 10 | "resolving" | | 11 | "dancing" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "let out a breath" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 125 | | matches | | |
| 74.29% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 3 | | narrationSentences | 125 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 125 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 38 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1456 | | ratio | 0 | | matches | (empty) | |
| 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 | 17 | | wordCount | 1437 | | uniqueNames | 7 | | maxNameDensity | 0.35 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 3 | | Park | 3 | | Rory | 5 | | Roehampton | 2 | | Lane | 2 | | Eva | 1 | | November | 1 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Roehampton" | | 3 | "Lane" |
| | globalScore | 1 | | windowScore | 1 | |
| 59.64% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 83 | | glossingSentenceCount | 3 | | matches | | 0 | "appeared sooner than they should have" | | 1 | "blooms that seemed to have no stems, as if they were floating just above the ground" | | 2 | "as if making up for lost time" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.687 | | wordCount | 1456 | | matches | | 0 | "Not louder in volume, but deeper, as if something beneath the clearing had woken up" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 125 | | matches | | 0 | "saw that the" | | 1 | "saw that the" |
| |
| 35.66% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 22 | | mean | 66.18 | | std | 18.19 | | cv | 0.275 | | sampleLengths | | 0 | 68 | | 1 | 82 | | 2 | 85 | | 3 | 59 | | 4 | 71 | | 5 | 33 | | 6 | 66 | | 7 | 46 | | 8 | 84 | | 9 | 72 | | 10 | 83 | | 11 | 51 | | 12 | 81 | | 13 | 36 | | 14 | 48 | | 15 | 46 | | 16 | 78 | | 17 | 50 | | 18 | 102 | | 19 | 89 | | 20 | 71 | | 21 | 55 |
| |
| 94.04% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 125 | | matches | | 0 | "was locked" | | 1 | "were gone" | | 2 | "was gone" | | 3 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 8 | | totalVerbs | 240 | | matches | | 0 | "was starting" | | 1 | "were floating" | | 2 | "was hammering" | | 3 | "was stretching" | | 4 | "was throwing" | | 5 | "was looking" | | 6 | "was pulsing" | | 7 | "was walking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 125 | | ratio | 0.08 | | matches | | 0 | "The gate to Richmond Park was locked at dusk, as it always was, but Rory knew the gap in the hedge near the Roehampton Lane entrance—a place where the hawthorn had thinned just enough to squeeze through." | | 1 | "She’d expected the muffled hush of a park at night—distant traffic, the hum of streetlamps, the occasional siren." | | 2 | "Because three nights ago it had pulsed—once, twice, a third time—each throb timed to a direction." | | 3 | "Not watched, exactly—that implied eyes." | | 4 | "The stones—ancient oaks, though they looked petrified, their bark gray and smooth as granite—formed a rough ring around a clearing that should not have existed in Richmond Park." | | 5 | "It was warmer inside, humid, carrying a scent she couldn’t place—not flowers, not earth, something older, like the inside of a church." | | 6 | "The torch beam swung across the clearing, and for a moment—just a moment—she thought she saw a shape at the far edge, where the trees crowded close." | | 7 | "Not by much—maybe a foot each—but the gap between the nearest stone and the next was smaller than it had been when she entered." | | 8 | "And then—slowly, deliberately—the clearing began to shrink." | | 9 | "It raised a hand—a long, pale thing with too many joints—and the pendant flared so bright that Rory saw her own shadow thrown sharp against the mist." |
| |
| 76.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1457 | | adjectiveStacks | 4 | | stackExamples | | 0 | "lay warm against her" | | 1 | "warmer inside, humid, carrying" | | 2 | "Pale, star-shaped blooms" | | 3 | "against oak-hard bark," |
| | adverbCount | 53 | | adverbRatio | 0.0363761153054221 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.004804392587508579 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 125 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 125 | | mean | 11.65 | | std | 8.22 | | cv | 0.706 | | sampleLengths | | 0 | 37 | | 1 | 13 | | 2 | 18 | | 3 | 16 | | 4 | 6 | | 5 | 18 | | 6 | 13 | | 7 | 2 | | 8 | 16 | | 9 | 11 | | 10 | 5 | | 11 | 26 | | 12 | 6 | | 13 | 16 | | 14 | 6 | | 15 | 4 | | 16 | 4 | | 17 | 18 | | 18 | 12 | | 19 | 5 | | 20 | 22 | | 21 | 7 | | 22 | 13 | | 23 | 8 | | 24 | 5 | | 25 | 23 | | 26 | 2 | | 27 | 5 | | 28 | 22 | | 29 | 6 | | 30 | 14 | | 31 | 4 | | 32 | 10 | | 33 | 5 | | 34 | 9 | | 35 | 8 | | 36 | 7 | | 37 | 28 | | 38 | 7 | | 39 | 2 | | 40 | 2 | | 41 | 3 | | 42 | 14 | | 43 | 14 | | 44 | 13 | | 45 | 5 | | 46 | 3 | | 47 | 22 | | 48 | 20 | | 49 | 18 |
| |
| 35.60% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.264 | | totalSentences | 125 | | uniqueOpeners | 33 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 112 | | matches | | 0 | "Instead there was a completeness" | | 1 | "Just dense woodland." | | 2 | "Then she heard the sound." | | 3 | "Just the mist, and the" |
| | ratio | 0.036 | |
| 37.86% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 51 | | totalSentences | 112 | | matches | | 0 | "She’d found it two nights" | | 1 | "She stepped through the gap," | | 2 | "She’d expected the muffled hush" | | 3 | "She clicked on her torch." | | 4 | "She’d come because of the" | | 5 | "She hadn’t told Eva." | | 6 | "She hadn’t told anyone." | | 7 | "She told herself it was" | | 8 | "They clustered at the base" | | 9 | "She crouched and touched one." | | 10 | "It was cold and soft," | | 11 | "She wiped it on her" | | 12 | "she said aloud, because the" | | 13 | "Her voice didn’t carry." | | 14 | "It fell flat, absorbed by" | | 15 | "She stood and kept walking." | | 16 | "She’d estimated a twenty-minute walk" | | 17 | "Her watch said seven minutes" | | 18 | "She pressed her palm to" | | 19 | "She stepped into the ring." |
| | ratio | 0.455 | |
| 62.68% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 89 | | totalSentences | 112 | | matches | | 0 | "The gate to Richmond Park" | | 1 | "She’d found it two nights" | | 2 | "She stepped through the gap," | | 3 | "That was the first wrong" | | 4 | "She’d expected the muffled hush" | | 5 | "The air tasted thick, mineral," | | 6 | "She clicked on her torch." | | 7 | "The beam cut a narrow" | | 8 | "She’d come because of the" | | 9 | "She hadn’t told Eva." | | 10 | "She hadn’t told anyone." | | 11 | "The pendant was hers, given" | | 12 | "This was subtler, a sense" | | 13 | "She told herself it was" | | 14 | "The human brain, left alone" | | 15 | "The wildflowers started a few" | | 16 | "Bluebells, though it was November." | | 17 | "They clustered at the base" | | 18 | "She crouched and touched one." | | 19 | "It was cold and soft," |
| | ratio | 0.795 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 112 | | matches | | 0 | "Now the crimson stone lay" | | 1 | "Because three nights ago it" | | 2 | "Now it was five." |
| | ratio | 0.027 | |
| 44.33% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 58 | | technicalSentenceCount | 8 | | matches | | 0 | "Now the crimson stone lay warm against her sternum, a second heartbeat that did not match her own." | | 1 | "This was subtler, a sense of spatial awareness stretched too thin, as though the trees themselves had turned their attention toward her." | | 2 | "They clustered at the base of the oaks in unnatural patches, their petals catching her torchlight and throwing back a faint, iridescent shimmer." | | 3 | "The pendant pulsed again, harder this time, a sharp throb that made her gasp." | | 4 | "Pale, star-shaped blooms that seemed to have no stems, as if they were floating just above the ground." | | 5 | "Not louder in volume, but deeper, as if something beneath the clearing had woken up and was stretching." | | 6 | "She just picked the widest gap between two stones and bolted for it, torch beam dancing wildly, feet catching on the star-shaped flowers that curled away from h…" | | 7 | "She didn’t stop until she was through the gap and standing on Roehampton Lane, her hands on her knees, breathing in the exhaust and the streetlamp sodium like a…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "she said aloud, because the silence was starting to feel like a presence" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "Rory whispered (whisper)" |
| | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |