| 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 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1254 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 72.09% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1254 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "throb" | | 1 | "pulse" | | 2 | "footsteps" | | 3 | "echo" | | 4 | "measured" |
| |
| 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 | 82 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 82 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 86 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 49 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 8 | | totalWords | 1266 | | ratio | 0.006 | | matches | | 0 | "Midnight. The oaks in Richmond. Alone." | | 1 | "here." | | 2 | "out" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 12 | | wordCount | 1216 | | uniqueNames | 9 | | maxNameDensity | 0.16 | | worstName | "Richmond" | | maxWindowNameDensity | 1 | | worstWindowName | "Richmond" | | discoveredNames | | Tuesday | 1 | | Richmond | 2 | | London | 2 | | Park | 1 | | Heathrow | 1 | | Eva | 1 | | Rory | 1 | | November | 1 | | Three | 2 |
| | persons | | 0 | "Tuesday" | | 1 | "Eva" | | 2 | "Rory" | | 3 | "Three" |
| | places | | 0 | "Richmond" | | 1 | "London" | | 2 | "Park" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 55 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.79 | | wordCount | 1266 | | matches | | 0 | "not green or amber but flat" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 86 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 23 | | mean | 55.04 | | std | 37.26 | | cv | 0.677 | | sampleLengths | | 0 | 137 | | 1 | 101 | | 2 | 42 | | 3 | 94 | | 4 | 9 | | 5 | 68 | | 6 | 15 | | 7 | 94 | | 8 | 27 | | 9 | 28 | | 10 | 38 | | 11 | 134 | | 12 | 56 | | 13 | 22 | | 14 | 50 | | 15 | 4 | | 16 | 98 | | 17 | 52 | | 18 | 59 | | 19 | 28 | | 20 | 39 | | 21 | 53 | | 22 | 18 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 82 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 182 | | matches | | 0 | "was currently feeling" | | 1 | "were turning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 2 | | flaggedSentences | 11 | | totalSentences | 86 | | ratio | 0.128 | | matches | | 0 | "On the third night the pendant had woken her — the crimson stone hot against her sternum where she'd fallen asleep wearing it, glowing like a coal in the dark." | | 1 | "London never went quiet — there was always a plane stacked over Heathrow, always a siren threading some distant artery — but within a hundred yards of the stile she couldn't hear any of it." | | 2 | "Cold air, cold ground — and the pendant warm against her chest, warmer the further in she walked, a steady throb of heat that matched her pulse and then, she noticed, stopped matching it." | | 3 | "She'd startled deer in this park before; they bolted, white rumps flashing." | | 4 | "She walked faster, and didn't look back a second time, and heard — she was certain she heard, over the rasp of her own breathing — footsteps keeping pace with hers in the bracken to her left." | | 5 | "An echo repeats; this one chose." | | 6 | "Ancient oaks ringed it, and among them stood stones — not boulders, stones, upright and deliberate, grey slabs twice her height with moss in their crevices, set in a broken circle older than the park, older than the city, old as the fear she was currently feeling." | | 7 | "No longer bothering with her heartbeat at all — keeping time with something else now, something slow and enormous and near." | | 8 | "They came from behind the tallest stone, from the dark at its back — the same three knocks, the exact spacing of them, that had sounded on her door at half past three while she'd stood on the other side with a kitchen knife and her heart in her throat." | | 9 | "Movement at the corner of her eye — a figure between two stones at the far edge of the clearing, tall and grey as the slabs themselves." | | 10 | "The limb bent in more places than an arm should, and its hand — long, grey, patient — came up and knocked three times on the empty air in front of its face, and the sound that came out was the sound of knuckles on her own front door." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1208 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.03145695364238411 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.0033112582781456954 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 86 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 86 | | mean | 14.72 | | std | 13.13 | | cv | 0.892 | | sampleLengths | | 0 | 13 | | 1 | 6 | | 2 | 4 | | 3 | 9 | | 4 | 34 | | 5 | 30 | | 6 | 1 | | 7 | 1 | | 8 | 2 | | 9 | 37 | | 10 | 25 | | 11 | 11 | | 12 | 35 | | 13 | 2 | | 14 | 2 | | 15 | 26 | | 16 | 4 | | 17 | 19 | | 18 | 10 | | 19 | 9 | | 20 | 5 | | 21 | 36 | | 22 | 10 | | 23 | 34 | | 24 | 2 | | 25 | 7 | | 26 | 9 | | 27 | 21 | | 28 | 12 | | 29 | 3 | | 30 | 32 | | 31 | 5 | | 32 | 9 | | 33 | 1 | | 34 | 21 | | 35 | 10 | | 36 | 6 | | 37 | 37 | | 38 | 2 | | 39 | 1 | | 40 | 17 | | 41 | 27 | | 42 | 9 | | 43 | 9 | | 44 | 10 | | 45 | 15 | | 46 | 6 | | 47 | 17 | | 48 | 5 | | 49 | 32 |
| |
| 87.21% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 5 | | diversityRatio | 0.5581395348837209 | | totalSentences | 86 | | uniqueOpeners | 48 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 66 | | matches | | 0 | "No longer bothering with her" | | 1 | "Then 23:59, as if the" |
| | ratio | 0.03 | |
| 68.48% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 66 | | matches | | 0 | "She wanted the knocking to" | | 1 | "She checked her mobile." | | 2 | "She thumbed it off and" | | 3 | "Her breath went in front" | | 4 | "Hers, and the stone's, a" | | 5 | "She'd startled deer in this" | | 6 | "They faced her, all of" | | 7 | "Her voice landed oddly, padded" | | 8 | "She stepped off the path" | | 9 | "She hadn't heard a hoof" | | 10 | "She walked faster, and didn't" | | 11 | "They stopped when she stopped," | | 12 | "She stood still in the" | | 13 | "She aimed the torch at" | | 14 | "She ran the last stretch." | | 15 | "She hissed and pulled the" | | 16 | "Her mobile, when she checked" | | 17 | "She turned in a slow" | | 18 | "They came from behind the" | | 19 | "She understood then, with a" |
| | ratio | 0.379 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 46 | | totalSentences | 66 | | matches | | 0 | "The note came under her" | | 1 | "The oaks in Richmond." | | 2 | "She wanted the knocking to" | | 3 | "Richmond Park's gates stood chained," | | 4 | "The city fell away behind" | | 5 | "London never went quiet —" | | 6 | "She checked her mobile." | | 7 | "She thumbed it off and" | | 8 | "The beam came back thin," | | 9 | "The path she remembered from" | | 10 | "Her breath went in front" | | 11 | "Hers, and the stone's, a" | | 12 | "The deer stood in a" | | 13 | "A dozen of them, maybe" | | 14 | "She'd startled deer in this" | | 15 | "These didn't bolt." | | 16 | "They faced her, all of" | | 17 | "Her voice landed oddly, padded" | | 18 | "She stepped off the path" | | 19 | "All those heads, swung round" |
| | ratio | 0.697 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 66 | | matches | (empty) | | ratio | 0 | |
| 51.28% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 39 | | technicalSentenceCount | 5 | | matches | | 0 | "Frost cracked under her trainers and the sound carried far too well, as though the park had swallowed every other noise to make room for hers." | | 1 | "Cold air, cold ground — and the pendant warm against her chest, warmer the further in she walked, a steady throb of heat that matched her pulse and then, she no…" | | 2 | "A single word, in her mouth's shape, spoken by something that had heard her say it once." | | 3 | "Wildflowers, in November, nodding in a wind she couldn't feel: campion and cowslip and stuff that had no business blooming for another five months, their petals…" | | 4 | "They came from behind the tallest stone, from the dark at its back — the same three knocks, the exact spacing of them, that had sounded on her door at half past…" |
| |
| 0.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 4 | | uselessAdditionCount | 1 | | matches | | 0 | "She backed, and the pendant flared hot enough to make her gasp, its red glow spreading across the frost in a circle round her feet" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 8 | | tagDensity | 0.125 | | leniency | 0.25 | | rawRatio | 0 | | effectiveRatio | 0 | |