| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 1 | | adverbTags | | 0 | "she said quietly [quietly]" |
| | dialogueSentences | 7 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0.333 | | effectiveRatio | 0.286 | |
| 85.33% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1363 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 2 | "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) | |
| 44.97% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1363 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "warmth" | | 1 | "pulsed" | | 2 | "silence" | | 3 | "footsteps" | | 4 | "pulse" | | 5 | "sentinels" | | 6 | "stomach" | | 7 | "could feel" | | 8 | "weight" | | 9 | "comfortable" | | 10 | "familiar" |
| |
| 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 | 96 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 96 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 100 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 81 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1379 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1335 | | uniqueNames | 12 | | maxNameDensity | 0.75 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 4 | | Park | 3 | | Cambrian | 1 | | Road | 1 | | Eva | 3 | | February | 2 | | London | 3 | | Plough | 1 | | Aurora | 1 | | Rory | 10 | | Malphora | 1 | | Cardiff | 1 |
| | persons | | | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Cambrian" | | 3 | "Road" | | 4 | "London" | | 5 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 76.47% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like they'd been carved and set in" | | 1 | "felt like cold water, of the whole shap" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1379 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 100 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 37 | | mean | 37.27 | | std | 32.43 | | cv | 0.87 | | sampleLengths | | 0 | 68 | | 1 | 8 | | 2 | 114 | | 3 | 1 | | 4 | 111 | | 5 | 40 | | 6 | 7 | | 7 | 99 | | 8 | 23 | | 9 | 11 | | 10 | 7 | | 11 | 55 | | 12 | 26 | | 13 | 55 | | 14 | 4 | | 15 | 9 | | 16 | 37 | | 17 | 57 | | 18 | 96 | | 19 | 58 | | 20 | 3 | | 21 | 23 | | 22 | 57 | | 23 | 54 | | 24 | 9 | | 25 | 54 | | 26 | 8 | | 27 | 30 | | 28 | 6 | | 29 | 61 | | 30 | 18 | | 31 | 28 | | 32 | 7 | | 33 | 86 | | 34 | 9 | | 35 | 32 | | 36 | 8 |
| |
| 94.30% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 96 | | matches | | 0 | "been locked" | | 1 | "been carved" | | 2 | "was gone" |
| |
| 0.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 197 | | matches | | 0 | "was trying" | | 1 | "were rippling" | | 2 | "was beating" | | 3 | "was screaming" | | 4 | "weren't blooming" | | 5 | "were marking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 1 | | flaggedSentences | 12 | | totalSentences | 100 | | ratio | 0.12 | | matches | | 0 | "Not hot — never hot — just a low, steady heat against her sternum, like a coin held too long in a closed fist." | | 1 | "Rory remembered the standing stones — old oaks, Eva had insisted, not stones at all, though they looked like they'd been carved and set in a ring by hands with too many fingers." | | 2 | "Even at midnight, the distant wash of the A3 should have been there — that low, oceanic hum a city makes when it thinks no one is listening." | | 3 | "The path was gravel, and gravel crunches — that's the whole point of gravel, her father used to say, so you can hear someone coming up your drive." | | 4 | "The second crunch stopped too — a full second after hers, arriving like a guest who hasn't realised the host has turned around." | | 5 | "By day they'd been grey-green sentinels; now they were the colour of old teeth, and the wildflowers between them — the ones that bloomed year-round, that shouldn't have bloomed at all in a London February — gave off a light of their own." | | 6 | "Inside the ring, the grove opened up — the same clearing Eva had shown her, the wildflower sea, the moss soft as upholstery underfoot." | | 7 | "Not warmth now — heat, real heat, and a light that bled crimson through the weave of her vest." | | 8 | "She was aware, with a clarity that felt like cold water, of the whole shape of the clearing around her — every oak in the ring, every gap between them." | | 9 | "A sound she felt in the small hollows behind her jaw, a slow intake of air that went on far too long — three seconds, four, five — the lungs behind it too large, the chest too deep." | | 10 | "It said Malphora, in a voice like dry leaves folding over each other, and the word was so old and so familiar that for one horrifying second she felt herself begin to turn — her shoulders starting the rotation before her mind caught up and locked them, because that voice knew her, it had known her before Cardiff, before London, before she had any name at all, and some deep, unguarded part of her wanted to see the face that owned it." | | 11 | "All of them at once, all around the ring, a single coordinated ripple — and Rory understood, with the pendant hammering against her fingers, that the flowers weren't blooming year-round at all." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1325 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.033962264150943396 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.00830188679245283 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 100 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 100 | | mean | 13.79 | | std | 12.62 | | cv | 0.915 | | sampleLengths | | 0 | 11 | | 1 | 22 | | 2 | 19 | | 3 | 8 | | 4 | 8 | | 5 | 8 | | 6 | 24 | | 7 | 13 | | 8 | 33 | | 9 | 44 | | 10 | 1 | | 11 | 8 | | 12 | 31 | | 13 | 33 | | 14 | 7 | | 15 | 32 | | 16 | 27 | | 17 | 6 | | 18 | 1 | | 19 | 1 | | 20 | 5 | | 21 | 7 | | 22 | 8 | | 23 | 28 | | 24 | 12 | | 25 | 2 | | 26 | 15 | | 27 | 10 | | 28 | 5 | | 29 | 19 | | 30 | 14 | | 31 | 9 | | 32 | 4 | | 33 | 7 | | 34 | 7 | | 35 | 28 | | 36 | 3 | | 37 | 11 | | 38 | 1 | | 39 | 12 | | 40 | 3 | | 41 | 23 | | 42 | 13 | | 43 | 5 | | 44 | 19 | | 45 | 18 | | 46 | 4 | | 47 | 4 | | 48 | 5 | | 49 | 26 |
| |
| 59.00% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.42 | | totalSentences | 100 | | uniqueOpeners | 42 | |
| 78.43% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 85 | | matches | | 0 | "Instead she fixed her eyes" | | 1 | "Then, through the black, she" |
| | ratio | 0.024 | |
| 92.94% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 27 | | totalSentences | 85 | | matches | | 0 | "She told herself a council" | | 1 | "She told herself a lot" | | 2 | "She'd never been to the" | | 3 | "She'd been to the grove" | | 4 | "She remembered the wildflowers blooming" | | 5 | "She remembered thinking, briefly, that" | | 6 | "She stopped, and the silence" | | 7 | "It pressed on her eardrums." | | 8 | "She could hear the blood" | | 9 | "she said, because her voice" | | 10 | "She'd read that somewhere." | | 11 | "She hadn't read it about" | | 12 | "Her boots crunched." | | 13 | "She stopped walking." | | 14 | "She did not turn around." | | 15 | "She walked on, faster now," | | 16 | "She could see stars through" | | 17 | "she said quietly" | | 18 | "She could feel it rising" | | 19 | "She was aware, with a" |
| | ratio | 0.318 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 59 | | totalSentences | 85 | | matches | | 0 | "The gate to Richmond Park" | | 1 | "Rory had checked the council" | | 2 | "She told herself a council" | | 3 | "She told herself a lot" | | 4 | "The pendant had been warm" | | 5 | "Tonight, the third night, she'd" | | 6 | "She'd never been to the" | | 7 | "She'd been to the grove" | | 8 | "Rory remembered the standing stones" | | 9 | "She remembered the wildflowers blooming" | | 10 | "She remembered thinking, briefly, that" | | 11 | "The pendant pulsed against her" | | 12 | "The first wrong thing was" | | 13 | "Richmond Park sat in the" | | 14 | "Rory walked fifty yards into" | | 15 | "She stopped, and the silence" | | 16 | "It pressed on her eardrums." | | 17 | "She could hear the blood" | | 18 | "she said, because her voice" | | 19 | "She'd read that somewhere." |
| | ratio | 0.694 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 4 | | totalSentences | 85 | | matches | | 0 | "Now she followed the footpath" | | 1 | "Even at midnight, the distant" | | 2 | "As if the gravel there" | | 3 | "As if it had lifted" |
| | ratio | 0.047 | |
| 45.45% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 44 | | technicalSentenceCount | 6 | | matches | | 0 | "On the second, she'd taken the thing off and set it on her bedside table, and the warmth had stayed in her skin, a phantom imprint that kept her turning over un…" | | 1 | "Tonight, the third night, she'd woken at half past eleven with the stone glowing through her vest, a dull red ember in the dark of her room, and a word sitting …" | | 2 | "The path was gravel, and gravel crunches — that's the whole point of gravel, her father used to say, so you can hear someone coming up your drive." | | 3 | "By day they'd been grey-green sentinels; now they were the colour of old teeth, and the wildflowers between them — the ones that bloomed year-round, that should…" | | 4 | "She counted the gaps without turning her head, using the pendant's glow to pick out the pale trunks." | | 5 | "It said Malphora, in a voice like dry leaves folding over each other, and the word was so old and so familiar that for one horrifying second she felt herself be…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 1 | | matches | | 0 | "she said, because her voice was the only thing she could still control" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 7 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0 | | effectiveRatio | 0 | |