| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 89.83% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 983 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 59.31% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 983 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "grave" | | 1 | "echo" | | 2 | "pulsed" | | 3 | "warmth" | | 4 | "pulse" | | 5 | "weight" | | 6 | "silence" |
| |
| 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 | 71 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 71 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 77 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 75 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 11 | | totalWords | 995 | | ratio | 0.011 | | matches | | 0 | "Alone. After moonrise. Come." | | 1 | "Don't run. Don't run, they smell it." |
| |
| 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 | 29 | | wordCount | 961 | | uniqueNames | 10 | | maxNameDensity | 0.94 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 9 | | Richmond | 2 | | Park | 2 | | Grove | 4 | | Heartstone | 1 | | Hel | 2 | | Isolde | 4 | | July | 1 | | Carter | 1 | | Foxes | 3 |
| | persons | | 0 | "Rory" | | 1 | "Grove" | | 2 | "Heartstone" | | 3 | "Isolde" | | 4 | "Carter" | | 5 | "Foxes" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Hel" | | 3 | "July" |
| | globalScore | 1 | | windowScore | 1 | |
| 95.65% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 46 | | glossingSentenceCount | 1 | | matches | | 0 | "not quite pitched too high and stretched too long, the kind of laugh a throat made when it had learned the sound from somewhere else and gotten the shape almost right" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 995 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 77 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 32.1 | | std | 23.48 | | cv | 0.732 | | sampleLengths | | 0 | 36 | | 1 | 61 | | 2 | 31 | | 3 | 52 | | 4 | 1 | | 5 | 32 | | 6 | 39 | | 7 | 17 | | 8 | 12 | | 9 | 52 | | 10 | 82 | | 11 | 4 | | 12 | 63 | | 13 | 7 | | 14 | 42 | | 15 | 17 | | 16 | 50 | | 17 | 35 | | 18 | 7 | | 19 | 56 | | 20 | 8 | | 21 | 3 | | 22 | 53 | | 23 | 4 | | 24 | 29 | | 25 | 2 | | 26 | 52 | | 27 | 15 | | 28 | 51 | | 29 | 7 | | 30 | 75 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 71 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 167 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 12 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 77 | | ratio | 0.13 | | matches | | 0 | "That should've been the first sign something was wrong — the Grove didn't usually bother with appointments." | | 1 | "She noticed that first, stepping past the oaks — the whole clearing usually lit itself with a soft phosphorescence, buttercups and foxglove throwing their own gentle light regardless of the hour outside." | | 2 | "Off to her left, something rustled — too big for a rabbit, too quiet for a deer." | | 3 | "She couldn't say how at first — same oaks, same crooked branches she'd have picked out of a hundred like them — but the angles felt off, like a photograph slightly warped at the edges." | | 4 | "She took a step toward the centre of the Grove, where Isolde usually waited on the flat grey stone, and the grass beneath her boot made a sound like it shouldn't — a wet, chewing sound, gone the instant she lifted her foot." | | 5 | "Not a full shape — just a suggestion of one, there and gone in the space between blinks, low to the ground and too long in the body." | | 6 | "She felt it before she saw it again — a weight to the air on her left, a held breath that wasn't hers." | | 7 | "She spun in a full circle, pendant still held out like a talisman, and the clearing spun with her — trees, dark flowers, the too-still air — all of it wrong, all of it watching." | | 8 | "A laugh came from the tree line then — not human, not quite, pitched too high and stretched too long, the kind of laugh a throat made when it had learned the sound from somewhere else and gotten the shape almost right." | | 9 | "Not blocked — gone, hawthorn grown thick where there'd been open grass a minute before, the oaks at the entrance nowhere in sight." |
| |
| 83.48% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 951 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 56 | | adverbRatio | 0.058885383806519455 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.012618296529968454 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 77 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 77 | | mean | 12.92 | | std | 12.99 | | cv | 1.005 | | sampleLengths | | 0 | 36 | | 1 | 8 | | 2 | 17 | | 3 | 7 | | 4 | 25 | | 5 | 1 | | 6 | 2 | | 7 | 1 | | 8 | 7 | | 9 | 5 | | 10 | 19 | | 11 | 9 | | 12 | 32 | | 13 | 11 | | 14 | 1 | | 15 | 4 | | 16 | 3 | | 17 | 25 | | 18 | 3 | | 19 | 9 | | 20 | 17 | | 21 | 2 | | 22 | 8 | | 23 | 9 | | 24 | 8 | | 25 | 2 | | 26 | 7 | | 27 | 3 | | 28 | 3 | | 29 | 16 | | 30 | 33 | | 31 | 4 | | 32 | 35 | | 33 | 43 | | 34 | 4 | | 35 | 6 | | 36 | 28 | | 37 | 4 | | 38 | 7 | | 39 | 5 | | 40 | 13 | | 41 | 7 | | 42 | 23 | | 43 | 19 | | 44 | 13 | | 45 | 4 | | 46 | 10 | | 47 | 2 | | 48 | 17 | | 49 | 21 |
| |
| 57.58% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.4155844155844156 | | totalSentences | 77 | | uniqueOpeners | 32 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 62 | | matches | | 0 | "Just the stone, cold under" | | 1 | "Properly burned, enough that she" | | 2 | "Only grass, swaying though nothing" | | 3 | "Somewhere close, too close, breath" |
| | ratio | 0.065 | |
| 90.97% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 62 | | matches | | 0 | "It simply was, whenever Rory" | | 1 | "It always warmed near a" | | 2 | "She noticed that first, stepping" | | 3 | "Her voice didn't echo." | | 4 | "It should have." | | 5 | "She kept walking." | | 6 | "she said, louder this time" | | 7 | "She stopped walking." | | 8 | "It pulsed again." | | 9 | "She pressed her palm flat" | | 10 | "She couldn't say how at" | | 11 | "She took a step toward" | | 12 | "She told herself it was" | | 13 | "She felt it before she" | | 14 | "She turned fast enough to" | | 15 | "she said, to no one," | | 16 | "She spun in a full" | | 17 | "She looked down." | | 18 | "she said, and her voice" | | 19 | "She turned back toward the" |
| | ratio | 0.323 | |
| 64.84% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 49 | | totalSentences | 62 | | matches | | 0 | "The standing stones marked the" | | 1 | "Isolde had asked her to" | | 2 | "That should've been the first" | | 3 | "It simply was, whenever Rory" | | 4 | "The Heartstone sat cold against" | | 5 | "That was the second sign." | | 6 | "It always warmed near a" | | 7 | "The wildflowers didn't glow the" | | 8 | "She noticed that first, stepping" | | 9 | "Tonight the flowers hung heavy" | | 10 | "Her voice didn't echo." | | 11 | "It should have." | | 12 | "The Grove had a way" | | 13 | "She kept walking." | | 14 | "Grass brushed her calves, wet" | | 15 | "Nothing but the black shapes" | | 16 | "she said, louder this time" | | 17 | "The pendant pulsed, once, against" | | 18 | "She stopped walking." | | 19 | "It pulsed again." |
| | ratio | 0.79 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 62 | | matches | (empty) | | ratio | 0 | |
| 75.89% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 32 | | technicalSentenceCount | 3 | | matches | | 0 | "Properly burned, enough that she yanked the chain away from her skin and held it out at arm's length, staring at the crimson gem glowing like a coal against her…" | | 1 | "Rory's own breath came too fast, too loud, embarrassingly loud, and she made herself slow it, made herself stand still the way her da used to tell her to stand …" | | 2 | "Somewhere close, too close, breath rasped in again, long and slow and full of teeth it hadn't yet decided to show her, and Rory Carter stood very still in the d…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 3 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 3 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 9 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |