| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.87% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1212 | | totalAiIsmAdverbs | 1 | | 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) | |
| 54.62% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1212 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "warmth" | | 1 | "shimmered" | | 2 | "pulsed" | | 3 | "silence" | | 4 | "echo" | | 5 | "footsteps" | | 6 | "pulse" |
| |
| 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 | 110 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 110 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1219 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 2 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 8 | | wordCount | 1174 | | uniqueNames | 5 | | maxNameDensity | 0.34 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Eva | 1 | | Sundays | 1 | | Rory | 4 |
| | persons | | | places | | | globalScore | 1 | | windowScore | 1 | |
| 41.30% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 69 | | glossingSentenceCount | 3 | | matches | | 0 | "as if holding its breath" | | 1 | "appeared all at once" | | 2 | "felt like giving it permission to follo" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.82 | | wordCount | 1219 | | matches | | 0 | "Not a smell, exactly, but the quality of it" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 33.86 | | std | 25.38 | | cv | 0.749 | | sampleLengths | | 0 | 45 | | 1 | 83 | | 2 | 9 | | 3 | 67 | | 4 | 57 | | 5 | 87 | | 6 | 16 | | 7 | 62 | | 8 | 48 | | 9 | 9 | | 10 | 6 | | 11 | 51 | | 12 | 34 | | 13 | 32 | | 14 | 1 | | 15 | 69 | | 16 | 2 | | 17 | 14 | | 18 | 68 | | 19 | 11 | | 20 | 6 | | 21 | 45 | | 22 | 7 | | 23 | 3 | | 24 | 37 | | 25 | 48 | | 26 | 25 | | 27 | 16 | | 28 | 13 | | 29 | 55 | | 30 | 2 | | 31 | 66 | | 32 | 27 | | 33 | 7 | | 34 | 45 | | 35 | 46 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 110 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 183 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 112 | | ratio | 0.063 | | matches | | 0 | "The moonlight here was wrong — too close to daylight, silvered at the edges, laying shadows that didn't match the trees." | | 1 | "Beyond the circle, the ground opened into a clearing where wildflowers bloomed in defiance of the season — bluebells and cow parsley and something small and white she didn't have a name for, all swaying in a wind she couldn't feel." | | 2 | "Not a smell, exactly, but the quality of it — heavier, older, as if she'd walked through a doorway into a room sealed for centuries." | | 3 | "And stopped, and she felt something — a pressure at the back of her neck, a gaze made physical, the heat you feel before you know the flames are there." | | 4 | "Not the whole plant — just the blooms, the small white ones, rotating on their stems." | | 5 | "The air slammed back into her lungs, thick with the smell of grass and city, and the night returned in a rush — a fox crying somewhere, a distant plane droning, the hum of traffic from the road she'd parked on." | | 6 | "No stones, no flowers, no clearing — just darkness that had nothing to do with night." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 114 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 1 | | adverbRatio | 0.008771929824561403 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 10.88 | | std | 9.14 | | cv | 0.84 | | sampleLengths | | 0 | 7 | | 1 | 6 | | 2 | 21 | | 3 | 11 | | 4 | 12 | | 5 | 20 | | 6 | 27 | | 7 | 9 | | 8 | 15 | | 9 | 5 | | 10 | 4 | | 11 | 22 | | 12 | 6 | | 13 | 39 | | 14 | 4 | | 15 | 22 | | 16 | 10 | | 17 | 21 | | 18 | 6 | | 19 | 13 | | 20 | 3 | | 21 | 24 | | 22 | 41 | | 23 | 5 | | 24 | 11 | | 25 | 6 | | 26 | 30 | | 27 | 21 | | 28 | 5 | | 29 | 3 | | 30 | 25 | | 31 | 5 | | 32 | 2 | | 33 | 2 | | 34 | 7 | | 35 | 4 | | 36 | 9 | | 37 | 6 | | 38 | 5 | | 39 | 29 | | 40 | 8 | | 41 | 6 | | 42 | 3 | | 43 | 19 | | 44 | 2 | | 45 | 3 | | 46 | 10 | | 47 | 4 | | 48 | 21 | | 49 | 7 |
| |
| 44.35% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.33035714285714285 | | totalSentences | 112 | | uniqueOpeners | 37 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 95 | | matches | | 0 | "Just the flowers, swaying in" | | 1 | "Only the stones in their" | | 2 | "Only when the engine turned" |
| | ratio | 0.032 | |
| 93.68% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 95 | | matches | | 0 | "She climbed the iron railings" | | 1 | "She kept to the deer" | | 2 | "She'd laughed at the time." | | 3 | "It had never done that" | | 4 | "She found the trail." | | 5 | "It was narrower than she" | | 6 | "It stood, blade for blade," | | 7 | "They were oak." | | 8 | "She should have gone home" | | 9 | "She told herself later she" | | 10 | "She stepped between two stones." | | 11 | "She took three steps into" | | 12 | "Her head snapped toward it." | | 13 | "She watched for a long" | | 14 | "It didn't carry." | | 15 | "It stopped, as if the" | | 16 | "Her body went tight, every" | | 17 | "She turned fast, ready for" | | 18 | "Her heart hammered against her" | | 19 | "She took a step backward." |
| | ratio | 0.316 | |
| 75.79% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 95 | | matches | | 0 | "The gate to Richmond Park" | | 1 | "Rory had known it would" | | 2 | "She climbed the iron railings" | | 3 | "The pendant swung against her" | | 4 | "The park at night was" | | 5 | "The wide paths she'd walked" | | 6 | "She kept to the deer" | | 7 | "She'd laughed at the time." | | 8 | "A mistake, in hindsight." | | 9 | "The pendant's warmth had been" | | 10 | "It had never done that" | | 11 | "She found the trail." | | 12 | "It was narrower than she" | | 13 | "It stood, blade for blade," | | 14 | "The moonlight here was wrong" | | 15 | "The stones appeared all at" | | 16 | "They were oak." | | 17 | "Rory stopped at the threshold." | | 18 | "The pendant pulsed hard, once," | | 19 | "She should have gone home" |
| | ratio | 0.768 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 95 | | matches | (empty) | | ratio | 0 | |
| 76.41% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 43 | | technicalSentenceCount | 4 | | matches | | 0 | "Not at the flat, not in the restaurant kitchen, not even on the night it appeared in her coat pocket at the bar, wrapped in brown paper with her name written in…" | | 1 | "It stood, blade for blade, as if holding its breath." | | 2 | "The moonlight here was wrong — too close to daylight, silvered at the edges, laying shadows that didn't match the trees." | | 3 | "The white blooms lifted, as if lifted by hands unseen, pointing their faces at her like thirty small accusations." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |