| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.385 | | leniency | 0.769 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 95.63% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1143 | | totalAiIsmAdverbs | 1 | | 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) | |
| 56.26% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1143 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "pulsed" | | 1 | "perfect" | | 2 | "weight" | | 3 | "silence" | | 4 | "pulse" | | 5 | "whisper" | | 6 | "warmth" |
| |
| 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 | 91 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 91 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 99 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 52 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1161 | | ratio | 0 | | matches | (empty) | |
| 62.50% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 4 | | unquotedAttributions | 1 | | matches | | 0 | "One more step, she told herself." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 21 | | wordCount | 1064 | | uniqueNames | 12 | | maxNameDensity | 0.47 | | worstName | "Rory" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Eva" | | discoveredNames | | November | 1 | | Heartstone | 2 | | Park | 1 | | London | 3 | | Heathrow | 1 | | Yu-Fei | 1 | | September | 1 | | Evan | 1 | | Cardiff | 1 | | Laughed | 1 | | Eva | 3 | | Rory | 5 |
| | persons | | 0 | "Heartstone" | | 1 | "Yu-Fei" | | 2 | "Evan" | | 3 | "Eva" | | 4 | "Rory" |
| | places | | 0 | "Park" | | 1 | "London" | | 2 | "Heathrow" | | 3 | "September" | | 4 | "Cardiff" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 59 | | 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.861 | | wordCount | 1161 | | matches | | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 99 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 36 | | mean | 32.25 | | std | 22.88 | | cv | 0.71 | | sampleLengths | | 0 | 24 | | 1 | 70 | | 2 | 38 | | 3 | 11 | | 4 | 67 | | 5 | 32 | | 6 | 1 | | 7 | 75 | | 8 | 17 | | 9 | 36 | | 10 | 3 | | 11 | 31 | | 12 | 55 | | 13 | 9 | | 14 | 15 | | 15 | 30 | | 16 | 32 | | 17 | 17 | | 18 | 35 | | 19 | 11 | | 20 | 54 | | 21 | 58 | | 22 | 31 | | 23 | 29 | | 24 | 61 | | 25 | 17 | | 26 | 31 | | 27 | 1 | | 28 | 63 | | 29 | 2 | | 30 | 90 | | 31 | 33 | | 32 | 11 | | 33 | 36 | | 34 | 3 | | 35 | 32 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 91 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 162 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 15 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 99 | | ratio | 0.101 | | matches | | 0 | "Wildflowers ran to her knees across the whole hollow — foxglove and something she didn't recognize, pale as bone — blooming fat and open in the middle of November." | | 1 | "Whoever had left it on Yu-Fei's counter — wrapped in brown paper, tied with string, no note but her name — had wanted her to follow it here." | | 2 | "At the tenth, it started again — three drops, evenly spaced, patient." | | 3 | "A single soft sound — grass compressing under weight — and then stillness, the way a person goes still when they realise they've given themselves away." | | 4 | "The blooms nearest her feet had turned — every one of them, every pale open face, angled toward her." | | 5 | "Her watch — a cheap thing, analogue, never wrong — said she'd been inside for nine minutes." | | 6 | "Not a pulse this time — a sustained burn, crimson light leaking through her fingers where she'd clutched it, and in that light she saw the edge of something at the border of her vision, between two of the standing oaks." | | 7 | "Eva's voice, but wrong — Eva's voice slowed down and stretched thin, like a recording played at half speed, like Eva's voice remembered second-hand by something that had only ever heard it through a wall." | | 8 | "The Heartstone blazed through her shirt, and its warmth spread outward, down her arm, into her ribs, and with it came a feeling she had no name for — a recognition, a rightness, the grove and the stone and the dark agreeing about something, and her name, her other name, in that agreement." | | 9 | "Then the humming stopped, and a voice she knew — her own voice, word for word, from minutes ago — said:" |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1052 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 32 | | adverbRatio | 0.030418250950570342 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.005703422053231939 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 99 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 99 | | mean | 11.73 | | std | 10.08 | | cv | 0.859 | | sampleLengths | | 0 | 24 | | 1 | 18 | | 2 | 8 | | 3 | 29 | | 4 | 15 | | 5 | 15 | | 6 | 23 | | 7 | 5 | | 8 | 4 | | 9 | 2 | | 10 | 10 | | 11 | 21 | | 12 | 3 | | 13 | 33 | | 14 | 5 | | 15 | 4 | | 16 | 8 | | 17 | 1 | | 18 | 14 | | 19 | 1 | | 20 | 23 | | 21 | 7 | | 22 | 28 | | 23 | 1 | | 24 | 3 | | 25 | 13 | | 26 | 6 | | 27 | 11 | | 28 | 7 | | 29 | 24 | | 30 | 5 | | 31 | 3 | | 32 | 11 | | 33 | 12 | | 34 | 3 | | 35 | 1 | | 36 | 4 | | 37 | 19 | | 38 | 9 | | 39 | 27 | | 40 | 6 | | 41 | 3 | | 42 | 15 | | 43 | 2 | | 44 | 2 | | 45 | 26 | | 46 | 8 | | 47 | 8 | | 48 | 16 | | 49 | 3 |
| |
| 48.98% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 12 | | diversityRatio | 0.3673469387755102 | | totalSentences | 98 | | uniqueOpeners | 36 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 78 | | matches | | 0 | "Then it moved." | | 1 | "Then you leave." | | 2 | "Somewhere in it, faint as" | | 3 | "Only one living person called" | | 4 | "Then the humming stopped, and" |
| | ratio | 0.064 | |
| 66.15% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 78 | | matches | | 0 | "She said it out loud" | | 1 | "It did something worse." | | 2 | "She should have heard the" | | 3 | "Her boots pressed into the" | | 4 | "She pulled out her phone." | | 5 | "She thumbed the screen dark," | | 6 | "She pocketed the phone and" | | 7 | "She'd followed it." | | 8 | "She was a big believer" | | 9 | "She'd been here in daylight," | | 10 | "She turned toward the sound." | | 11 | "She stood in the dark" | | 12 | "She took the step, and" | | 13 | "Her voice cracked on the" | | 14 | "She cleared her throat and" | | 15 | "Her mother used to hum" | | 16 | "She had never told anyone" | | 17 | "It came from the flowers." | | 18 | "She looked down." | | 19 | "She lifted her left foot" |
| | ratio | 0.385 | |
| 62.56% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 62 | | totalSentences | 78 | | matches | | 0 | "Rory ducked under the low" | | 1 | "The clearing opened in front" | | 2 | "Wildflowers ran to her knees" | | 3 | "The Heartstone pulsed against her" | | 4 | "She said it out loud" | | 5 | "The grove did not answer." | | 6 | "It did something worse." | | 7 | "Richmond Park sat inside London," | | 8 | "She should have heard the" | | 9 | "Nothing reached her." | | 10 | "Her boots pressed into the" | | 11 | "She pulled out her phone." | | 12 | "She thumbed the screen dark," | | 13 | "The battery icon read full," | | 14 | "She pocketed the phone and" | | 15 | "The pendant burned hotter with" | | 16 | "She'd followed it." | | 17 | "She was a big believer" | | 18 | "Something dripped, off to her" | | 19 | "A slow, deliberate drip, like" |
| | ratio | 0.795 | |
| 64.10% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 78 | | matches | | 0 | "Whoever had left it on" |
| | ratio | 0.013 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 2 | | matches | | 0 | "Eva's voice, but wrong — Eva's voice slowed down and stretched thin, like a recording played at half speed, like Eva's voice remembered second-hand by something…" | | 1 | "The flowers turned faster than she could move, a wave of pale faces sweeping ahead of her, marking her path as though the grove had already decided where the pa…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 13 | | tagDensity | 0.077 | | leniency | 0.154 | | rawRatio | 0 | | effectiveRatio | 0 | |