| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 1 | | adverbTags | | 0 | "she tried again [again]" |
| | dialogueSentences | 10 | | tagDensity | 0.2 | | leniency | 0.4 | | rawRatio | 0.5 | | effectiveRatio | 0.2 | |
| 80.93% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1049 | | totalAiIsmAdverbs | 4 | | found | | 0 | | | 1 | | adverb | "deliberately" | | count | 1 |
| | 2 | | | 3 | |
| | highlights | | 0 | "quickly" | | 1 | "deliberately" | | 2 | "very" | | 3 | "suddenly" |
| |
| 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) | |
| 61.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1049 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "pulse" | | 1 | "pulsed" | | 2 | "firmly" | | 3 | "flicker" | | 4 | "footsteps" | | 5 | "warmth" |
| |
| 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 | 97 | | matches | (empty) | |
| 98.67% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 97 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 105 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 41 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1058 | | ratio | 0 | | matches | (empty) | |
| 62.50% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 1 | | matches | | 0 | "That was a trick of the eye, she told herself." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 30 | | wordCount | 1028 | | uniqueNames | 12 | | maxNameDensity | 0.88 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Tube | 1 | | Rory | 9 | | Richmond | 1 | | Grove | 5 | | Hel | 1 | | Heartstone | 1 | | Queen | 1 | | Road | 1 | | Eva | 1 | | Sheen | 1 | | Gate | 1 | | Isolde | 7 |
| | persons | | 0 | "Tube" | | 1 | "Rory" | | 2 | "Heartstone" | | 3 | "Queen" | | 4 | "Road" | | 5 | "Eva" | | 6 | "Isolde" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 1 | | matches | | |
| 10.96% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.89 | | wordCount | 1058 | | matches | | 0 | "Not between the trunks but under them, low to the ground, the shape of something" | | 1 | "not behind her, that would have been simpler, but around her, the way a room breathes" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 105 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 25.8 | | std | 22.84 | | cv | 0.885 | | sampleLengths | | 0 | 67 | | 1 | 6 | | 2 | 72 | | 3 | 49 | | 4 | 44 | | 5 | 5 | | 6 | 1 | | 7 | 18 | | 8 | 3 | | 9 | 72 | | 10 | 8 | | 11 | 55 | | 12 | 10 | | 13 | 9 | | 14 | 58 | | 15 | 22 | | 16 | 1 | | 17 | 10 | | 18 | 11 | | 19 | 33 | | 20 | 7 | | 21 | 7 | | 22 | 3 | | 23 | 67 | | 24 | 56 | | 25 | 33 | | 26 | 12 | | 27 | 5 | | 28 | 6 | | 29 | 34 | | 30 | 7 | | 31 | 52 | | 32 | 51 | | 33 | 6 | | 34 | 43 | | 35 | 10 | | 36 | 35 | | 37 | 3 | | 38 | 15 | | 39 | 39 | | 40 | 13 |
| |
| 94.41% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 97 | | matches | | 0 | "were locked" | | 1 | "being held" | | 2 | "was held" | | 3 | "was gone" |
| |
| 31.22% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 158 | | matches | | 0 | "were pressing" | | 1 | "was waiting" | | 2 | "was still walking" | | 3 | "was breathing " |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 9 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 105 | | ratio | 0.086 | | matches | | 0 | "She knew the way by the feel of it — a tug under the ribs, the same pull she'd felt the first time Isolde had brought her here." | | 1 | "Four of them, black against a sky that had forgotten how to be black — too pale, too close, as though someone had stretched a grey sheet six feet above the treetops." | | 2 | "The temperature changed on the inside of the stones, the way it did crossing a threshold into a warm house, except the Grove wasn't warm — it was merely different." | | 3 | "Isolde kept her own hours, and the Grove bent time the way a lens bent light — Rory might have arrived early by days, or late by the same." | | 4 | "Isolde had explained it once — something about the air here being held, the way water was held in a bowl." | | 5 | "When she did, she caught the movement at the edge of her vision — a flicker, pale, between two of the farther trunks." | | 6 | "The pendant at her throat had gone from warm to hot — a small, insistent burn, as though someone were pressing the pad of a thumb against her sternum and leaning in." | | 7 | "The Grove was small — twenty paces across, no more." | | 8 | "Something was breathing — not behind her, that would have been simpler, but around her, the way a room breathes when you've been alone in it too long and suddenly realise you haven't been." |
| |
| 97.25% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1020 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 44 | | adverbRatio | 0.043137254901960784 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.010784313725490196 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 105 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 105 | | mean | 10.08 | | std | 9.29 | | cv | 0.922 | | sampleLengths | | 0 | 31 | | 1 | 7 | | 2 | 6 | | 3 | 23 | | 4 | 2 | | 5 | 4 | | 6 | 41 | | 7 | 8 | | 8 | 23 | | 9 | 12 | | 10 | 28 | | 11 | 5 | | 12 | 4 | | 13 | 12 | | 14 | 32 | | 15 | 5 | | 16 | 1 | | 17 | 4 | | 18 | 14 | | 19 | 3 | | 20 | 30 | | 21 | 5 | | 22 | 21 | | 23 | 16 | | 24 | 8 | | 25 | 2 | | 26 | 5 | | 27 | 29 | | 28 | 11 | | 29 | 8 | | 30 | 6 | | 31 | 4 | | 32 | 3 | | 33 | 6 | | 34 | 12 | | 35 | 21 | | 36 | 18 | | 37 | 3 | | 38 | 4 | | 39 | 2 | | 40 | 8 | | 41 | 12 | | 42 | 1 | | 43 | 4 | | 44 | 2 | | 45 | 4 | | 46 | 11 | | 47 | 23 | | 48 | 10 | | 49 | 7 |
| |
| 58.10% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.4 | | totalSentences | 105 | | uniqueOpeners | 42 | |
| 78.43% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 85 | | matches | | 0 | "Just the soft, inoffensive give" | | 1 | "Only the vowels sat wrong" |
| | ratio | 0.024 | |
| 97.65% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 85 | | matches | | 0 | "It wasn't supposed to do" | | 1 | "She'd had worse ideas." | | 2 | "Her torch she kept pointed" | | 3 | "She knew the way by" | | 4 | "Her voice didn't carry." | | 5 | "It went two feet from" | | 6 | "She stepped through." | | 7 | "Her breath no longer ghosted." | | 8 | "She found the flat stone" | | 9 | "She curled her fingers around" | | 10 | "It shouldn't have moved, because" | | 11 | "She waited a full minute" | | 12 | "She turned and the clearing" | | 13 | "She tried to remember what" | | 14 | "You'll be safe inside the" | | 15 | "She started toward the stones." | | 16 | "Her own footsteps made no" | | 17 | "She didn't turn." | | 18 | "She knew, with a certainty" | | 19 | "She had walked into it" |
| | ratio | 0.306 | |
| 65.88% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 85 | | matches | | 0 | "The Tube had stopped running" | | 1 | "It wasn't supposed to do" | | 2 | "The Grove was no Hel" | | 3 | "She'd had worse ideas." | | 4 | "The park gates were locked," | | 5 | "Her torch she kept pointed" | | 6 | "Deer moved in the dark" | | 7 | "The path beyond the bracken" | | 8 | "She knew the way by" | | 9 | "Tonight the pull was stronger." | | 10 | "Tonight it wanted her." | | 11 | "The oak stones rose out" | | 12 | "Rory stopped at the boundary." | | 13 | "Her voice didn't carry." | | 14 | "It went two feet from" | | 15 | "She stepped through." | | 16 | "The temperature changed on the" | | 17 | "Her breath no longer ghosted." | | 18 | "The wildflowers were out, as" | | 19 | "Moonlight lay across the clearing" |
| | ratio | 0.788 | |
| 58.82% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 85 | | matches | | | ratio | 0.012 | |
| 43.65% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 36 | | technicalSentenceCount | 5 | | matches | | 0 | "The park gates were locked, of course, but Eva had shown her the gap in the railings near Sheen Gate the week before, and Rory slipped through with the easy pra…" | | 1 | "Four of them, black against a sky that had forgotten how to be black — too pale, too close, as though someone had stretched a grey sheet six feet above the tree…" | | 2 | "The pendant at her throat had gone from warm to hot — a small, insistent burn, as though someone were pressing the pad of a thumb against her sternum and leanin…" | | 3 | "Put it down deliberately on dry leaf-litter that should have crackled like a bonfire." | | 4 | "Something was breathing — not behind her, that would have been simpler, but around her, the way a room breathes when you've been alone in it too long and sudden…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 10 | | tagDensity | 0.1 | | leniency | 0.2 | | rawRatio | 0 | | effectiveRatio | 0 | |