| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 8 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 73.96% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1344 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "really" | | 1 | "perfectly" | | 2 | "very" | | 3 | "slowly" |
| |
| 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.24% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1344 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "silence" | | 1 | "warmth" | | 2 | "pulse" | | 3 | "comforting" | | 4 | "echo" |
| |
| 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 | 1 | | narrationSentences | 94 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 94 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 97 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 60 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 9 | | markdownWords | 34 | | totalWords | 1355 | | ratio | 0.025 | | matches | | 0 | "Fine," | | 1 | "It's late. Everything's asleep." | | 2 | "Moonrise. The stones. Alone. Bring it." | | 3 | "Something is doing that," | | 4 | "Something's making the noises it thinks I want to hear." | | 5 | "Rory." | | 6 | "Rory, I'm here." | | 7 | "Turn around," | | 8 | "It's only me." |
| |
| 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 | 31 | | wordCount | 1335 | | uniqueNames | 17 | | maxNameDensity | 0.75 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Eva" | | discoveredNames | | Sheen | 1 | | Rory | 10 | | Richmond | 2 | | Park | 2 | | London | 1 | | Kingston | 1 | | Welsh | 1 | | Golden | 1 | | Empress | 1 | | Yu-Fei | 1 | | October | 1 | | Hel | 1 | | Aurora | 1 | | Carter | 1 | | Heartstone | 1 | | Eva | 4 | | Peckham | 1 |
| | persons | | 0 | "Rory" | | 1 | "Yu-Fei" | | 2 | "Aurora" | | 3 | "Carter" | | 4 | "Eva" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Kingston" | | 4 | "Welsh" | | 5 | "Hel" | | 6 | "Peckham" |
| | globalScore | 1 | | windowScore | 1 | |
| 74.24% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 66 | | glossingSentenceCount | 2 | | matches | | 0 | "sounded like" | | 1 | "looked like teeth in a jaw that had rotte" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.738 | | wordCount | 1355 | | matches | | 0 | "not the voice, but her own throat rising towards it" |
| |
| 29.21% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 4 | | totalSentences | 97 | | matches | | 0 | "know that nothing" | | 1 | "was that the" | | 2 | "laughing, that it" | | 3 | "doing that,* she" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 35.66 | | std | 26.7 | | cv | 0.749 | | sampleLengths | | 0 | 45 | | 1 | 78 | | 2 | 24 | | 3 | 25 | | 4 | 62 | | 5 | 51 | | 6 | 31 | | 7 | 71 | | 8 | 5 | | 9 | 80 | | 10 | 9 | | 11 | 9 | | 12 | 62 | | 13 | 30 | | 14 | 72 | | 15 | 3 | | 16 | 26 | | 17 | 31 | | 18 | 12 | | 19 | 89 | | 20 | 28 | | 21 | 9 | | 22 | 37 | | 23 | 2 | | 24 | 77 | | 25 | 15 | | 26 | 50 | | 27 | 34 | | 28 | 13 | | 29 | 79 | | 30 | 3 | | 31 | 76 | | 32 | 8 | | 33 | 39 | | 34 | 17 | | 35 | 12 | | 36 | 8 | | 37 | 33 |
| |
| 94.06% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 94 | | matches | | 0 | "been locked" | | 1 | "is supposed" | | 2 | "been between" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 209 | | matches | | 0 | "were arriving" | | 1 | "was working" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 2 | | flaggedSentences | 9 | | totalSentences | 97 | | ratio | 0.093 | | matches | | 0 | "Somewhere far off behind her, London hummed — the A307, the last buses, a siren threading through Kingston like a wire." | | 1 | "She counted her steps for the first hundred and then stopped, because counting made the quiet worse — it gave the quiet something to keep time with." | | 2 | "The grove had its own weather; she remembered that." | | 3 | "They were the sounds a night is supposed to have — a bird shifting on a branch, a dry crackle in the undergrowth, the far-off double bark of a fox — but they were arriving one at a time, spaced out, like someone was working through a list." | | 4 | "It sawed for two seconds, then made a sound no cricket had ever made — a click, and then a wet noise, like a tongue coming unstuck from a palate." | | 5 | "That was the horror of it; not the voice, but her own throat rising towards it." | | 6 | "Somewhere at the outer limit of what her eyes could catch, the gap in the foxgloves grew wider — wide enough for two now — and the crescent scar on her left wrist began to ache the way it hadn't ached since she was nine years old and hadn't yet learned to keep her hands out of places she couldn't see into." | | 7 | "Rory looked at the ring of stones behind her — eight of them, and the gap she'd walked in through, which she was fairly sure had been between the second and the third — and counted, and found nine." | | 8 | "And in the silence that followed — a real silence, at last, one with no borrowed crickets in it — she heard something inhale, very slowly, and settle in for the long wait." |
| |
| 82.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1335 | | adjectiveStacks | 3 | | stackExamples | | 0 | "far off behind her," | | 1 | "usual faint inner glow," | | 2 | "far-off double bark" |
| | adverbCount | 51 | | adverbRatio | 0.038202247191011236 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.008988764044943821 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 97 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 97 | | mean | 13.97 | | std | 12.53 | | cv | 0.897 | | sampleLengths | | 0 | 45 | | 1 | 7 | | 2 | 21 | | 3 | 4 | | 4 | 3 | | 5 | 24 | | 6 | 1 | | 7 | 10 | | 8 | 8 | | 9 | 5 | | 10 | 19 | | 11 | 3 | | 12 | 2 | | 13 | 8 | | 14 | 12 | | 15 | 26 | | 16 | 2 | | 17 | 1 | | 18 | 22 | | 19 | 11 | | 20 | 10 | | 21 | 41 | | 22 | 4 | | 23 | 27 | | 24 | 26 | | 25 | 23 | | 26 | 9 | | 27 | 13 | | 28 | 5 | | 29 | 23 | | 30 | 6 | | 31 | 4 | | 32 | 47 | | 33 | 4 | | 34 | 5 | | 35 | 9 | | 36 | 18 | | 37 | 9 | | 38 | 23 | | 39 | 12 | | 40 | 30 | | 41 | 9 | | 42 | 19 | | 43 | 2 | | 44 | 2 | | 45 | 40 | | 46 | 3 | | 47 | 22 | | 48 | 2 | | 49 | 2 |
| |
| 53.95% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.3917525773195876 | | totalSentences | 97 | | uniqueOpeners | 38 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 82 | | matches | | 0 | "Somewhere far off behind her," | | 1 | "Then a woman's voice, small" | | 2 | "Somewhere at the outer limit" |
| | ratio | 0.037 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 21 | | totalSentences | 82 | | matches | | 0 | "She waited there a moment," | | 1 | "She got none of it." | | 2 | "She pressed two fingers to" | | 3 | "It took twenty minutes." | | 4 | "She counted her steps for" | | 5 | "They didn't look like stones" | | 6 | "They looked like teeth in" | | 7 | "It was always summer." | | 8 | "She stood there for a" | | 9 | "Her voice went out of" | | 10 | "She stepped over the boundary" | | 11 | "She'd come this far, and" | | 12 | "They were the sounds a" | | 13 | "She kept very still and" | | 14 | "She could see all of" | | 15 | "She turned back." | | 16 | "She was proud of that" | | 17 | "She stood in the warm" | | 18 | "It sawed for two seconds," | | 19 | "Her whole body wanted to" |
| | ratio | 0.256 | |
| 75.85% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 82 | | matches | | 0 | "The gate at Sheen had" | | 1 | "She waited there a moment," | | 2 | "Rory had grown up on" | | 3 | "The tick and rustle of" | | 4 | "She got none of it." | | 5 | "The park lay in front" | | 6 | "Everything's asleep.* But she'd delivered" | | 7 | "curries across this city to" | | 8 | "The instructions had been six" | | 9 | "Rory had spent the whole" | | 10 | "The pendant lay against her" | | 11 | "She pressed two fingers to" | | 12 | "It took twenty minutes." | | 13 | "She counted her steps for" | | 14 | "The standing stones came up" | | 15 | "They didn't look like stones" | | 16 | "They looked like teeth in" | | 17 | "Rory stopped at the boundary" | | 18 | "It was always summer." | | 19 | "Foxgloves stood shoulder to shoulder" |
| | ratio | 0.768 | |
| 60.98% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 82 | | matches | | 0 | "Because it was Eva's voice." |
| | ratio | 0.012 | |
| 61.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 5 | | matches | | 0 | "The gate at Sheen had been locked since dusk, so Rory went over the wall where the ivy had pulled the mortar loose, and dropped into Richmond Park with her boot…" | | 1 | "Bring it.* Yu-Fei had found it under the till and handed it over without comment, which was its own kind of comment." | | 2 | "The standing stones came up out of the dark the way they always did: all at once, as though they'd been somewhere else a second earlier." | | 3 | "A person-shaped absence, a place where the flowers leaned out and away as if something had been standing there long enough to press them back." | | 4 | "Eva who had never in her life come out to Richmond Park after dark, and who, Rory knew with total certainty, could not be standing behind her in a grove where n…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 25.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 4 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 8 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.25 | | effectiveRatio | 0.25 | |