| 0.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 3 | | adverbTagCount | 2 | | adverbTags | | 0 | "she said aloud [aloud]" | | 1 | "she said quietly [quietly]" |
| | dialogueSentences | 6 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0.667 | | effectiveRatio | 0.667 | |
| 81.45% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1887 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "suddenly" | | 1 | "slowly" | | 2 | "slightly" | | 3 | "precisely" | | 4 | "gently" | | 5 | "very" |
| |
| 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) | |
| 49.66% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1887 | | totalAiIsms | 19 | | found | | | highlights | | 0 | "warmth" | | 1 | "rhythmic" | | 2 | "pulse" | | 3 | "could feel" | | 4 | "silence" | | 5 | "comfortable" | | 6 | "whisper" | | 7 | "pulsed" | | 8 | "echo" | | 9 | "etched" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 163 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 163 | | filterMatches | (empty) | | hedgeMatches | | 0 | "began to" | | 1 | "seemed to" | | 2 | "tried to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 166 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1905 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 6 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 32 | | wordCount | 1888 | | uniqueNames | 17 | | maxNameDensity | 0.42 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Hel" | | discoveredNames | | Rory | 8 | | Richmond | 2 | | Park | 2 | | London | 2 | | Isolde | 1 | | Heartstone | 2 | | January | 1 | | June | 1 | | Earth | 1 | | Fae | 1 | | Golden | 1 | | Empress | 1 | | Yu-Fei | 1 | | Brendan | 1 | | Carter | 2 | | Evan | 2 | | Hel | 3 |
| | persons | | 0 | "Rory" | | 1 | "Isolde" | | 2 | "Heartstone" | | 3 | "Earth" | | 4 | "Yu-Fei" | | 5 | "Brendan" | | 6 | "Carter" | | 7 | "Evan" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "January" | | 4 | "Hel" |
| | globalScore | 1 | | windowScore | 1 | |
| 96.81% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 94 | | glossingSentenceCount | 2 | | matches | | 0 | "something like incense left burning in an em" | | 1 | "tone that seemed to come from the ground itself" |
| |
| 95.01% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.05 | | wordCount | 1905 | | matches | | 0 | "Not the comfortable silence of a quiet room, but the pressurized silence of deep water" | | 1 | "Not just warmth now but genuine heat, burning through her shirt" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 166 | | matches | | 0 | "was that whatever" | | 1 | "was that time" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 46.46 | | std | 30.04 | | cv | 0.646 | | sampleLengths | | 0 | 76 | | 1 | 79 | | 2 | 44 | | 3 | 27 | | 4 | 84 | | 5 | 91 | | 6 | 8 | | 7 | 3 | | 8 | 78 | | 9 | 34 | | 10 | 37 | | 11 | 43 | | 12 | 22 | | 13 | 96 | | 14 | 65 | | 15 | 63 | | 16 | 2 | | 17 | 64 | | 18 | 64 | | 19 | 4 | | 20 | 54 | | 21 | 65 | | 22 | 10 | | 23 | 80 | | 24 | 56 | | 25 | 3 | | 26 | 81 | | 27 | 26 | | 28 | 35 | | 29 | 32 | | 30 | 7 | | 31 | 86 | | 32 | 48 | | 33 | 52 | | 34 | 5 | | 35 | 72 | | 36 | 21 | | 37 | 107 | | 38 | 50 | | 39 | 11 | | 40 | 20 |
| |
| 96.65% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 163 | | matches | | 0 | "was locked" | | 1 | "been told" | | 2 | "been meant" | | 3 | "been told" |
| |
| 88.52% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 299 | | matches | | 0 | "were holding" | | 1 | "were following" | | 2 | "was screaming" | | 3 | "was coming" | | 4 | "was listening" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 16 | | totalSentences | 166 | | ratio | 0.096 | | matches | | 0 | "The park stretched before her in a vast dark emptiness, the kind of dark that London wasn't supposed to have — no streetlamps, no glow from shop fronts, nothing but the faint smear of clouds over a half-moon." | | 1 | "The crimson stone gave off no visible glow tonight — or if it did, the fabric hid it." | | 2 | "The air was different here — thicker, sweeter, carrying a faint vibration she could feel in her back teeth." | | 3 | "Her ears adjusted slowly, and she began to pick up smaller sounds — the creak of the standing stones, the whisper of the wildflowers shifting in a wind she couldn't feel." | | 4 | "A faint residue clung to her fingertips — dark, slightly viscous." | | 5 | "Not all of them — just the one directly behind her." | | 6 | "She made herself stand still and count to ten, the way she'd learned to do in the months after Evan — when panic was a beast that lived in her ribcage and came out at the sound of a raised voice or a closed door." | | 7 | "The silver chain bit cold into the back of her neck, but the stone itself was almost hot — a deep, insistent heat, the crimson gem pulsing so fast now that the individual beats blurred together into a continuous thrum." | | 8 | "The stones were right there, the boundary only ten paces in any direction, and the rational part of her mind — the part that had survived Evan, survived the flight to London, survived every terrible thing by knowing when to run — was screaming at her to move." | | 9 | "It hung in the air like smoke, but smoke didn't behave like this — it didn't hold its shape, didn't coalesce with such slow, purposeful intent into a form that was almost, almost recognizable." | | 10 | "Not just still — rigid." | | 11 | "It rose — a subtle swelling, as if the earth had taken a breath and held it, and now the topsoil shifted under her boots and the wildflowers shuddered and the standing stones gave a collective groan so deep she felt it in her spine." | | 12 | "Not just warmth now but genuine heat, burning through her shirt, and when she looked down she could see it — a faint crimson glow seeping through the fabric, painting her jacket in the color of old blood." | | 13 | "Not closer — it was simply in a different place now, three stones to the left, without any indication that it had crossed the intervening space." | | 14 | "Two more, perhaps three — it was hard to tell where shadow ended and figure began." | | 15 | "The second was that time in the grove moved differently — an hour inside could be minutes or days outside — and no one knew she was here, and no one was coming, and midnight had passed into something older and darker, and the figures at the boundary had all the time in any world." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1875 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 67 | | adverbRatio | 0.03573333333333333 | | lyAdverbCount | 26 | | lyAdverbRatio | 0.013866666666666666 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 166 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 166 | | mean | 11.48 | | std | 10.93 | | cv | 0.952 | | sampleLengths | | 0 | 14 | | 1 | 24 | | 2 | 38 | | 3 | 4 | | 4 | 5 | | 5 | 32 | | 6 | 6 | | 7 | 8 | | 8 | 24 | | 9 | 8 | | 10 | 19 | | 11 | 3 | | 12 | 14 | | 13 | 6 | | 14 | 18 | | 15 | 3 | | 16 | 18 | | 17 | 17 | | 18 | 16 | | 19 | 14 | | 20 | 19 | | 21 | 5 | | 22 | 19 | | 23 | 35 | | 24 | 6 | | 25 | 7 | | 26 | 19 | | 27 | 3 | | 28 | 5 | | 29 | 3 | | 30 | 4 | | 31 | 24 | | 32 | 4 | | 33 | 15 | | 34 | 31 | | 35 | 3 | | 36 | 19 | | 37 | 12 | | 38 | 10 | | 39 | 3 | | 40 | 6 | | 41 | 18 | | 42 | 11 | | 43 | 11 | | 44 | 13 | | 45 | 4 | | 46 | 2 | | 47 | 2 | | 48 | 4 | | 49 | 4 |
| |
| 39.96% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 22 | | diversityRatio | 0.3192771084337349 | | totalSentences | 166 | | uniqueOpeners | 53 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 143 | | matches | | 0 | "Instead she'd photographed it on" | | 1 | "Just the unmarked counter, as" | | 2 | "Only the feeling that had" | | 3 | "Only there was no sun." | | 4 | "Then the ground beneath Rory's" |
| | ratio | 0.035 | |
| 74.55% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 52 | | totalSentences | 143 | | matches | | 0 | "She'd had to climb the" | | 1 | "She knew the way." | | 2 | "She'd only been to the" | | 3 | "She touched it through her" | | 4 | "She kept walking." | | 5 | "They formed an imperfect ring" | | 6 | "She'd been told once that" | | 7 | "It pooled rather than scattered," | | 8 | "She was alone." | | 9 | "She was certain of that." | | 10 | "She stepped inside." | | 11 | "Her ears adjusted slowly, and" | | 12 | "It was warm." | | 13 | "She pulled her hand back" | | 14 | "She couldn't see the color" | | 15 | "she said aloud" | | 16 | "Her voice sounded wrong." | | 17 | "She'd come here because of" | | 18 | "She should have ignored it." | | 19 | "She should have shown it" |
| | ratio | 0.364 | |
| 96.36% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 104 | | totalSentences | 143 | | matches | | 0 | "The last bus had dropped" | | 1 | "She'd had to climb the" | | 2 | "The park stretched before her" | | 3 | "She knew the way." | | 4 | "That was the unsettling part." | | 5 | "She'd only been to the" | | 6 | "The Heartstone pendant was warm" | | 7 | "This was deliberate." | | 8 | "A slow, rhythmic pulse, as" | | 9 | "She touched it through her" | | 10 | "The crimson stone gave off" | | 11 | "She kept walking." | | 12 | "The standing stones appeared the" | | 13 | "They formed an imperfect ring" | | 14 | "Wildflowers grew between them, pale" | | 15 | "Snowdrops and foxglove side by" | | 16 | "Rory stopped at the boundary." | | 17 | "The air was different here" | | 18 | "She'd been told once that" | | 19 | "The moonlight fell differently inside" |
| | ratio | 0.727 | |
| 69.93% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 143 | | matches | | 0 | "As if the grove had" | | 1 | "Because the shadows between the" |
| | ratio | 0.014 | |
| 60.04% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 69 | | technicalSentenceCount | 8 | | matches | | 0 | "Through the gap between two fallen oaks that smelled of wet rot and something older, something like incense left burning in an empty room." | | 1 | "Snowdrops and foxglove side by side, which was botanically impossible, but the grove had never much cared about botany." | | 2 | "It pooled rather than scattered, gathering in the spaces between the stones as if something were holding it there." | | 3 | "Tall, dark, the petrified bark etched with grooves that might have been natural and might have been something else entirely." | | 4 | "The stones were right there, the boundary only ten paces in any direction, and the rational part of her mind — the part that had survived Evan, survived the fli…" | | 5 | "It hung in the air like smoke, but smoke didn't behave like this — it didn't hold its shape, didn't coalesce with such slow, purposeful intent into a form that …" | | 6 | "It rose — a subtle swelling, as if the earth had taken a breath and held it, and now the topsoil shifted under her boots and the wildflowers shuddered and the s…" | | 7 | "And in the silence that followed, Rory Carter stood very still in the center of a ring of ancient stones, surrounded by wildflowers that watched her with their …" |
| |
| 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 | 6 | | tagDensity | 0.5 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |