| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 2 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 69.25% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1626 | | totalAiIsmAdverbs | 10 | | found | | | highlights | | 0 | "completely" | | 1 | "slowly" | | 2 | "very" | | 3 | "perfectly" | | 4 | "softly" | | 5 | "gently" |
| |
| 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.32% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1626 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "warmth" | | 1 | "pulsed" | | 2 | "echo" | | 3 | "weight" | | 4 | "could feel" | | 5 | "rhythmic" | | 6 | "pulse" | | 7 | "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 | 1 | | narrationSentences | 139 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 139 | | filterMatches | (empty) | | hedgeMatches | | 0 | "managed to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 139 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1645 | | ratio | 0 | | matches | (empty) | |
| 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 | 29 | | wordCount | 1633 | | uniqueNames | 10 | | maxNameDensity | 0.8 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 1 | | Heartstone | 2 | | Eva | 2 | | Silas | 1 | | November | 3 | | May | 1 | | Rory | 13 | | Time | 1 | | Warm | 3 |
| | persons | | 0 | "Heartstone" | | 1 | "Eva" | | 2 | "Silas" | | 3 | "Rory" | | 4 | "Time" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "November" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 90 | | glossingSentenceCount | 1 | | matches | | 0 | "something like granite, arranged in a rough" |
| |
| 78.42% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.216 | | wordCount | 1645 | | matches | | 0 | "not toward the sky but toward the centre of the clearing, all of them, like a crowd" | | 1 | "not colder air, but a colder kind of cold, the sort" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 139 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 45 | | mean | 36.56 | | std | 26.52 | | cv | 0.725 | | sampleLengths | | 0 | 15 | | 1 | 69 | | 2 | 19 | | 3 | 24 | | 4 | 96 | | 5 | 52 | | 6 | 10 | | 7 | 15 | | 8 | 54 | | 9 | 20 | | 10 | 62 | | 11 | 59 | | 12 | 50 | | 13 | 4 | | 14 | 33 | | 15 | 36 | | 16 | 50 | | 17 | 7 | | 18 | 68 | | 19 | 36 | | 20 | 29 | | 21 | 43 | | 22 | 14 | | 23 | 45 | | 24 | 8 | | 25 | 61 | | 26 | 45 | | 27 | 3 | | 28 | 62 | | 29 | 3 | | 30 | 71 | | 31 | 19 | | 32 | 19 | | 33 | 22 | | 34 | 82 | | 35 | 5 | | 36 | 61 | | 37 | 3 | | 38 | 52 | | 39 | 7 | | 40 | 94 | | 41 | 8 | | 42 | 76 | | 43 | 29 | | 44 | 5 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 139 | | matches | | |
| 43.14% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 6 | | totalVerbs | 255 | | matches | | 0 | "was coming" | | 1 | "was pulsing" | | 2 | "was standing" | | 3 | "was going" | | 4 | "wasn't looking" | | 5 | "was standing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 17 | | totalSentences | 139 | | ratio | 0.122 | | matches | | 0 | "She'd told herself she was coming because of the warmth — because the Heartstone only did this, according to the few things she'd managed to learn, when it was near a portal." | | 1 | "The trees thickened ahead, and then — there was no other way to describe it — the park simply ended." | | 2 | "They were oaks, or had been once — vast trunks petrified into grey pillars, bark gone to something like granite, arranged in a rough circle around a clearing that glowed faintly in the dark." | | 3 | "Not an echo — the clearing swallowed it, flattened it, handed it back to her smaller than she'd sent it out, as if the air in there were thicker, reluctant to carry sound at all." | | 4 | "The cold hit her first — not colder air, but a colder kind of cold, the sort that lived in church crypts and deep water." | | 5 | "That was the part she couldn't explain later — that she never turned the torch on." | | 6 | "It came from everywhere and nowhere — from the ground, she decided, after a long moment." | | 7 | "But it looked wrong somehow — too still, like a photograph of a park rather than a park." | | 8 | "She'd counted them when she arrived — eleven pillars, a gap in the ring where she'd entered." | | 9 | "And the gap — her gap, her way out — was narrower by the width of one great grey trunk, as though the ring had closed a door behind her while she wasn't looking." | | 10 | "A voice — no, not a voice, the shape of a voice, the cadence of speech without any words in it, coming from the tree at the clearing's heart." | | 11 | "The pendant was hot now, genuinely hot, and the crimson stone had begun to glow — a faint ember-light that she'd never seen it produce before, throwing the smallest red circle onto the moss at her feet." | | 12 | "From the branches above came a soft sound — a shifting, a resettling of weight, the creak of an enormous limb adjusting itself." | | 13 | "It was simply there, the way the stones had rearranged themselves — as if it had always been there and she had only now been permitted to see it." | | 14 | "But the cadence had changed — it was no longer the murmur of sleep." | | 15 | "The pendant flared against her chest, hot enough to hurt, and the door in the tree swung open a crack, and light came through it — not moonlight, not lamplight, something grey and sourceless, like the first hour before dawn, like the light of a world where the sun had never risen." | | 16 | "Every sound, every shifted trunk, every held breath — all of it steering her here, to this door, to this voice calling her name in a voice she almost recognised." |
| |
| 92.73% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 621 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 30 | | adverbRatio | 0.04830917874396135 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.017713365539452495 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 139 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 139 | | mean | 11.83 | | std | 10.87 | | cv | 0.919 | | sampleLengths | | 0 | 15 | | 1 | 17 | | 2 | 32 | | 3 | 10 | | 4 | 6 | | 5 | 1 | | 6 | 3 | | 7 | 12 | | 8 | 5 | | 9 | 2 | | 10 | 17 | | 11 | 2 | | 12 | 2 | | 13 | 3 | | 14 | 20 | | 15 | 38 | | 16 | 4 | | 17 | 34 | | 18 | 1 | | 19 | 15 | | 20 | 2 | | 21 | 34 | | 22 | 10 | | 23 | 6 | | 24 | 1 | | 25 | 1 | | 26 | 1 | | 27 | 6 | | 28 | 19 | | 29 | 35 | | 30 | 4 | | 31 | 1 | | 32 | 5 | | 33 | 10 | | 34 | 25 | | 35 | 22 | | 36 | 15 | | 37 | 7 | | 38 | 25 | | 39 | 27 | | 40 | 9 | | 41 | 16 | | 42 | 13 | | 43 | 12 | | 44 | 4 | | 45 | 4 | | 46 | 1 | | 47 | 1 | | 48 | 16 | | 49 | 11 |
| |
| 49.28% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 22 | | diversityRatio | 0.391304347826087 | | totalSentences | 138 | | uniqueOpeners | 54 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 8 | | totalSentences | 112 | | matches | | 0 | "Especially not them." | | 1 | "Everywhere, wildflowers, white and pale" | | 2 | "Then the smell: green and" | | 3 | "Perhaps the stone had been" | | 4 | "Then, beneath it, a new" | | 5 | "So quiet she almost missed" | | 6 | "Even the breathing of the" | | 7 | "Just a door-shaped absence in" |
| | ratio | 0.071 | |
| 98.57% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 112 | | matches | | 0 | "She'd told herself she was" | | 1 | "They weren't stones, exactly." | | 2 | "They were oaks, or had" | | 3 | "she called, and immediately felt" | | 4 | "She checked her phone." | | 5 | "She pocketed it and stepped" | | 6 | "Her boots sank into moss" | | 7 | "She crossed toward the tree," | | 8 | "It took her a moment" | | 9 | "She stood perfectly still and" | | 10 | "It came from everywhere and" | | 11 | "She'd said it like a" | | 12 | "She could see the dark" | | 13 | "She watched it for a" | | 14 | "She turned back toward the" | | 15 | "She was certain." | | 16 | "She'd counted them when she" | | 17 | "Her heart was going hard" | | 18 | "It's the light, she told" | | 19 | "She turned her head slowly," |
| | ratio | 0.304 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 75 | | totalSentences | 112 | | matches | | 0 | "The pendant had been warm" | | 1 | "Rory pushed through the undergrowth" | | 2 | "She'd told herself she was" | | 3 | "The answer was simple and" | | 4 | "The trees thickened ahead, and" | | 5 | "They weren't stones, exactly." | | 6 | "They were oaks, or had" | | 7 | "Rory stood at the boundary" | | 8 | "The pendant pulsed against her" | | 9 | "she called, and immediately felt" | | 10 | "She checked her phone." | | 11 | "She pocketed it and stepped" | | 12 | "The cold hit her first" | | 13 | "Her boots sank into moss" | | 14 | "The clearing was perhaps forty" | | 15 | "She crossed toward the tree," | | 16 | "That was the part she" | | 17 | "Some deep animal part of" | | 18 | "That it was better, here," | | 19 | "Halfway across, she stopped." |
| | ratio | 0.67 | |
| 44.64% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 112 | | matches | | 0 | "Now there were twelve, and" |
| | ratio | 0.009 | |
| 70.22% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 59 | | technicalSentenceCount | 6 | | matches | | 0 | "Not an echo — the clearing swallowed it, flattened it, handed it back to her smaller than she'd sent it out, as if the air in there were thicker, reluctant to c…" | | 1 | "The cold hit her first — not colder air, but a colder kind of cold, the sort that lived in church crypts and deep water." | | 2 | "And the gap — her gap, her way out — was narrower by the width of one great grey trunk, as though the ring had closed a door behind her while she wasn't looking…" | | 3 | "Even the breathing of the ground had paused, mid-inhale, like a sleeper who has just woken and is lying very still, listening." | | 4 | "She looked instead at her own feet, at the little red circle of light on the moss, and she watched, with a detachment that felt almost calm, as a shadow moved t…" | | 5 | "She understood, with the same animal certainty that had kept her torch off, that whatever had been moving at the edge of her vision all this time had stopped pr…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 2 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 1 | | tagDensity | 1 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |