| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 4 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 4 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 73.32% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1312 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "really" | | 1 | "perfectly" | | 2 | "slightly" | | 3 | "very" | | 4 | "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) | |
| 73.32% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1312 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "warmth" | | 1 | "echoed" | | 2 | "could feel" | | 3 | "echo" | | 4 | "flickered" | | 5 | "velvet" | | 6 | "absolutely" |
| |
| 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 | 84 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 84 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 85 | | 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 | 5 | | markdownWords | 11 | | totalWords | 1327 | | ratio | 0.008 | | matches | | 0 | "Don't speak to it." | | 1 | "Right." | | 2 | "Don't speak to it." | | 3 | "pressed" | | 4 | "Okay." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 22 | | wordCount | 1301 | | uniqueNames | 14 | | maxNameDensity | 0.54 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 1 | | Rory | 7 | | Sawyer | 1 | | Hill | 1 | | Half | 1 | | Thames | 1 | | Isolde | 2 | | September | 1 | | Golden | 1 | | Empress | 1 | | Tube | 1 | | Silas | 1 | | Twenty-five | 1 |
| | persons | | 0 | "Rory" | | 1 | "Sawyer" | | 2 | "Isolde" | | 3 | "Tube" | | 4 | "Silas" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Thames" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1327 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 85 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 38 | | mean | 34.92 | | std | 29.72 | | cv | 0.851 | | sampleLengths | | 0 | 19 | | 1 | 77 | | 2 | 68 | | 3 | 16 | | 4 | 119 | | 5 | 8 | | 6 | 41 | | 7 | 3 | | 8 | 78 | | 9 | 28 | | 10 | 16 | | 11 | 70 | | 12 | 25 | | 13 | 4 | | 14 | 35 | | 15 | 1 | | 16 | 66 | | 17 | 9 | | 18 | 41 | | 19 | 6 | | 20 | 6 | | 21 | 67 | | 22 | 56 | | 23 | 5 | | 24 | 36 | | 25 | 44 | | 26 | 22 | | 27 | 26 | | 28 | 2 | | 29 | 54 | | 30 | 4 | | 31 | 87 | | 32 | 7 | | 33 | 15 | | 34 | 68 | | 35 | 14 | | 36 | 70 | | 37 | 14 |
| |
| 92.73% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 84 | | matches | | 0 | "been told" | | 1 | "been photographed" | | 2 | "was meant" |
| |
| 63.95% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 196 | | matches | | 0 | "was walking" | | 1 | "was cropping" | | 2 | "was performing" | | 3 | "was standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 85 | | ratio | 0.106 | | matches | | 0 | "Somewhere behind her, a deer coughed — that awful barking noise they made, like an old man clearing his throat in an empty room — and she kept walking." | | 1 | "On the other side it was long and green and starred with wildflowers — cornflowers, ox-eye daisies, a spill of red campion — all of them open, all of them facing up, in the dark, in autumn." | | 2 | "The air was warmer, that was all — several degrees warmer, damp and green-smelling, the way a greenhouse smells in the evening." | | 3 | "There was wind — she could feel it moving her hair, cool at the back of her neck, coming from her left — but the long grass didn't lean and the oaks didn't rustle and the tall stems of the campion stood perfectly still, all of them, as though the whole grove had been photographed and she was walking around inside the print." | | 4 | "It was so ordinary that her chest loosened with relief — of course, deer, this was Richmond, there were nine hundred of the things — and then she looked at it properly and her relief curdled." | | 5 | "Torchlight caught its eyes and gave back nothing — not the green flash of tapetum, not even the wet gleam of an eye." | | 6 | "It was a very short sound and it came from low down, from grass level, somewhere off past the left arc of the ring — a child's laugh, or a bird doing a child's laugh, one syllable of it, cut off clean." | | 7 | "She turned her head slowly and swept the torch left, and in the moving beam she caught the grass in a long strip going flat — not blown, *pressed*, a line of it lying down as though something wide and low had passed through — and by the time the light got there the grass was standing up again and there was nothing in it at all." | | 8 | "At the edge of her vision, all around the inside of the ring, the standing oaks had split arms held up at head height, and she was fairly sure — she was very nearly certain, and she was absolutely not going to check — that when she'd come in there had been eight of them, and now, counting the shapes at the periphery where the torchlight died, there were nine." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 40 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 1 | | adverbRatio | 0.025 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 85 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 85 | | mean | 15.61 | | std | 17.13 | | cv | 1.097 | | sampleLengths | | 0 | 19 | | 1 | 40 | | 2 | 2 | | 3 | 6 | | 4 | 29 | | 5 | 7 | | 6 | 4 | | 7 | 57 | | 8 | 3 | | 9 | 10 | | 10 | 3 | | 11 | 4 | | 12 | 50 | | 13 | 12 | | 14 | 16 | | 15 | 37 | | 16 | 8 | | 17 | 6 | | 18 | 35 | | 19 | 3 | | 20 | 2 | | 21 | 13 | | 22 | 22 | | 23 | 41 | | 24 | 5 | | 25 | 1 | | 26 | 1 | | 27 | 21 | | 28 | 4 | | 29 | 12 | | 30 | 7 | | 31 | 63 | | 32 | 3 | | 33 | 9 | | 34 | 13 | | 35 | 4 | | 36 | 14 | | 37 | 3 | | 38 | 18 | | 39 | 1 | | 40 | 5 | | 41 | 61 | | 42 | 9 | | 43 | 2 | | 44 | 2 | | 45 | 37 | | 46 | 6 | | 47 | 6 | | 48 | 19 | | 49 | 12 |
| |
| 55.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.4117647058823529 | | totalSentences | 85 | | uniqueOpeners | 35 | |
| 46.95% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 71 | | matches | | 0 | "Somewhere behind her, a deer" |
| | ratio | 0.014 | |
| 67.89% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 71 | | matches | | 0 | "She left the moped chained" | | 1 | "It had been warm for" | | 2 | "Her voice sounded small and" | | 3 | "She'd known that from Isolde's" | | 4 | "They stood in a rough" | | 5 | "She'd been told what to" | | 6 | "She stepped through." | | 7 | "She let out a breath." | | 8 | "It took her about six" | | 9 | "She stopped again." | | 10 | "she said, and immediately regretted" | | 11 | "She stood very still and" | | 12 | "She hadn't asked which direction" | | 13 | "It stood just inside the" | | 14 | "It was so ordinary that" | | 15 | "It was cropping the flowers" | | 16 | "Its jaw worked." | | 17 | "Its head shifted." | | 18 | "It was performing eating in" | | 19 | "It looked at her." |
| | ratio | 0.38 | |
| 72.68% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 55 | | totalSentences | 71 | | matches | | 0 | "The satnav gave up at" | | 1 | "She left the moped chained" | | 2 | "The gates had closed hours" | | 3 | "The pendant sat cold against" | | 4 | "That was the point." | | 5 | "It had been warm for" | | 6 | "Her voice sounded small and" | | 7 | "The stones weren't stones." | | 8 | "She'd known that from Isolde's" | | 9 | "They stood in a rough" | | 10 | "Rory stopped with her toes" | | 11 | "She'd been told what to" | | 12 | "Isolde had drawn it for" | | 13 | "She stepped through." | | 14 | "The air was warmer, that" | | 15 | "The torchlight found the far" | | 16 | "She let out a breath." | | 17 | "The clearing was quiet." | | 18 | "It took her about six" | | 19 | "She stopped again." |
| | ratio | 0.775 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 71 | | matches | (empty) | | ratio | 0 | |
| 65.64% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 4 | | matches | | 0 | "There was wind — she could feel it moving her hair, cool at the back of her neck, coming from her left — but the long grass didn't lean and the oaks didn't rust…" | | 1 | "She stood very still and counted to five, and in the counting she catalogued what she knew: thirty paces to the rock, forty back to the boundary, no weapons exc…" | | 2 | "The grass parted around her shins without a sound, which was worse than sound, and she found herself lifting her feet higher than she needed to, the way you do …" | | 3 | "She turned her head slowly and swept the torch left, and in the moving beam she caught the grass in a long strip going flat — not blown, *pressed*, a line of it…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "she breathed, and the word came back from behind, patient, correcting her pronunciation" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 1 | | fancyTags | | 0 | "she breathed (breathe)" |
| | dialogueSentences | 4 | | tagDensity | 0.75 | | leniency | 1 | | rawRatio | 0.333 | | effectiveRatio | 0.333 | |