| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 20 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 81.47% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1349 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "very" | | 1 | "slowly" | | 2 | "perfectly" | | 3 | "slightly" |
| |
| 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) | |
| 70.35% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1349 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "echo" | | 1 | "echoes" | | 2 | "measured" | | 3 | "resolved" | | 4 | "pulse" | | 5 | "weight" | | 6 | "throb" |
| |
| 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 | 102 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 102 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 113 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 68 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1362 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 1268 | | uniqueNames | 14 | | maxNameDensity | 0.79 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Sheen | 2 | | Cross | 2 | | Rory | 10 | | Richmond | 3 | | Silas | 3 | | Isolde | 1 | | Eva | 1 | | Park | 1 | | October | 1 | | Upper | 1 | | Road | 1 | | Barnes | 1 | | January | 1 | | Dymas | 1 |
| | persons | | 0 | "Rory" | | 1 | "Silas" | | 2 | "Isolde" | | 3 | "Eva" | | 4 | "Barnes" | | 5 | "January" | | 6 | "Dymas" |
| | places | | 0 | "Sheen" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "October" | | 4 | "Upper" | | 5 | "Road" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 1 | | matches | | 0 | "felt like manners, felt like something" | | 1 | "felt like something being polite in a w" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.734 | | wordCount | 1362 | | matches | | 0 | "Not stone at all, but seven trunks with the bark stripped" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 113 | | matches | | 0 | "understood that the be — that she'd" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 26.71 | | std | 22.52 | | cv | 0.843 | | sampleLengths | | 0 | 13 | | 1 | 43 | | 2 | 4 | | 3 | 75 | | 4 | 16 | | 5 | 75 | | 6 | 7 | | 7 | 62 | | 8 | 14 | | 9 | 26 | | 10 | 59 | | 11 | 11 | | 12 | 33 | | 13 | 11 | | 14 | 17 | | 15 | 64 | | 16 | 60 | | 17 | 13 | | 18 | 59 | | 19 | 18 | | 20 | 8 | | 21 | 17 | | 22 | 18 | | 23 | 40 | | 24 | 9 | | 25 | 10 | | 26 | 31 | | 27 | 67 | | 28 | 4 | | 29 | 22 | | 30 | 10 | | 31 | 50 | | 32 | 5 | | 33 | 44 | | 34 | 22 | | 35 | 41 | | 36 | 15 | | 37 | 68 | | 38 | 11 | | 39 | 32 | | 40 | 9 | | 41 | 6 | | 42 | 3 | | 43 | 24 | | 44 | 6 | | 45 | 3 | | 46 | 5 | | 47 | 2 | | 48 | 69 | | 49 | 13 |
| |
| 98.38% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 102 | | matches | | 0 | "was chained" | | 1 | "been bedded" |
| |
| 97.96% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 196 | | matches | | 0 | "was standing" | | 1 | "was standing" | | 2 | "were rising" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 113 | | ratio | 0.071 | | matches | | 0 | "Her boots hit wet grass and the sound came back wrong — flat, close, like she'd landed in a room instead of a park." | | 1 | "She'd checked it three times on the bus from Richmond station and three times it had stayed cold, which was the point, which was the reason she'd come — Silas had said the grove was clean, said Isolde hadn't opened anything in a hundred years, and Rory wanted to see the crimson stone stay dark in the one place on the map everyone kept circling with red pen." | | 2 | "Somewhere behind her, out past the plantation, a plane went over — a long tearing sound above the cloud, red light blinking through the murk." | | 3 | "She knew the distance — four hundred metres from the fence break, she'd measured it on the satellite view with her thumb and forefinger on her phone screen — and she'd walked maybe a hundred and fifty when the first trunk resolved in front of her, grey-black, wider than a car." | | 4 | "She heard it land in the frozen bracken — one clear crunch, the whole weight of something on one foot — and then nothing." | | 5 | "She looked slightly to the left of it, the way you look at a faint star, and it came back — a long pale absence, and at the top of it something that might have been the underside of a jaw." | | 6 | "Then, from inside the ring — from the warm grass, from the middle of the flowers, from the empty air three feet above the ground — a woman's voice said, quite kindly:" | | 7 | "She got eight strides before she understood that the plantation fence wasn't where it should be — that she'd come four hundred metres from it, that she'd been walking away from it, and yet the pale trunks of the standing stones were rising in front of her again, seven of them, the gaps between them wide enough to walk through, the warm grass beyond, the flowers standing perfectly still." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 860 | | adjectiveStacks | 1 | | stackExamples | | | adverbCount | 30 | | adverbRatio | 0.03488372093023256 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.004651162790697674 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 113 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 113 | | mean | 12.05 | | std | 13.84 | | cv | 1.148 | | sampleLengths | | 0 | 13 | | 1 | 24 | | 2 | 19 | | 3 | 3 | | 4 | 1 | | 5 | 7 | | 6 | 68 | | 7 | 3 | | 8 | 1 | | 9 | 1 | | 10 | 11 | | 11 | 18 | | 12 | 4 | | 13 | 26 | | 14 | 2 | | 15 | 1 | | 16 | 24 | | 17 | 5 | | 18 | 2 | | 19 | 7 | | 20 | 28 | | 21 | 27 | | 22 | 14 | | 23 | 13 | | 24 | 13 | | 25 | 25 | | 26 | 10 | | 27 | 1 | | 28 | 1 | | 29 | 22 | | 30 | 4 | | 31 | 7 | | 32 | 3 | | 33 | 2 | | 34 | 28 | | 35 | 7 | | 36 | 4 | | 37 | 3 | | 38 | 14 | | 39 | 13 | | 40 | 51 | | 41 | 6 | | 42 | 7 | | 43 | 33 | | 44 | 14 | | 45 | 13 | | 46 | 6 | | 47 | 40 | | 48 | 6 | | 49 | 7 |
| |
| 77.58% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.5132743362831859 | | totalSentences | 113 | | uniqueOpeners | 58 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 74 | | matches | | 0 | "Somewhere behind her, out past" | | 1 | "Just fern-tops and a hawthorn" | | 2 | "Then, from inside the ring" | | 3 | "Just warm, the way a" |
| | ratio | 0.054 | |
| 90.27% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 24 | | totalSentences | 74 | | matches | | 0 | "Her boots hit wet grass" | | 1 | "She'd checked it three times" | | 2 | "She found the fence." | | 3 | "She counted posts because counting" | | 4 | "She'd walked here in October" | | 5 | "she said, aloud, because her" | | 6 | "She looked up and felt" | | 7 | "She counted those, too." | | 8 | "She knew the distance —" | | 9 | "She could see her own" | | 10 | "She could not see the" | | 11 | "She pulled the chain out" | | 12 | "It crossed maybe two metres" | | 13 | "She kept the pendant in" | | 14 | "Her voice came out thin." | | 15 | "She heard it land in" | | 16 | "She looked at it directly" | | 17 | "She looked slightly to the" | | 18 | "Her mouth had gone dry" | | 19 | "She stepped sideways, keeping the" |
| | ratio | 0.324 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 52 | | totalSentences | 74 | | matches | | 0 | "The gate at Sheen Cross" | | 1 | "Her boots hit wet grass" | | 2 | "The pendant lay cold against" | | 3 | "She'd checked it three times" | | 4 | "That was the deal she'd" | | 5 | "The path she wanted ran" | | 6 | "She found the fence." | | 7 | "She counted posts because counting" | | 8 | "That was the first thing." | | 9 | "Richmond Park held six hundred" | | 10 | "She'd walked here in October" | | 11 | "Rory put her hand flat" | | 12 | "she said, aloud, because her" | | 13 | "She looked up and felt" | | 14 | "The plane's noise faded." | | 15 | "This one held its level," | | 16 | "Rory stood very still for" | | 17 | "She counted those, too." | | 18 | "The oaks came up out" | | 19 | "She knew the distance —" |
| | ratio | 0.703 | |
| 67.57% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 74 | | matches | | 0 | "Now the bracken sat empty" |
| | ratio | 0.014 | |
| 89.29% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 40 | | technicalSentenceCount | 3 | | matches | | 0 | "She'd checked it three times on the bus from Richmond station and three times it had stayed cold, which was the point, which was the reason she'd come — Silas h…" | | 1 | "At eighty-two the fence stopped and the bracken began, waist-high and black, and the deer that should have been bedded down in it weren't." | | 2 | "She looked slightly to the left of it, the way you look at a faint star, and it came back — a long pale absence, and at the top of it something that might have …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 50.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 2 | | fancyTags | | 0 | "she whispered (whisper)" | | 1 | "she whispered (whisper)" |
| | dialogueSentences | 20 | | tagDensity | 0.45 | | leniency | 0.9 | | rawRatio | 0.222 | | effectiveRatio | 0.2 | |