| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 95.35% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1075 | | 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) | |
| 53.49% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1075 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "pulsed" | | 1 | "warmth" | | 2 | "anticipation" | | 3 | "perfect" | | 4 | "pulse" | | 5 | "stomach" | | 6 | "resolved" | | 7 | "traced" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 120 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 2 | | narrationSentences | 120 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 123 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 36 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1066 | | ratio | 0 | | matches | (empty) | |
| 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 | 16 | | wordCount | 1061 | | uniqueNames | 12 | | maxNameDensity | 0.28 | | worstName | "You" | | maxWindowNameDensity | 1.5 | | worstWindowName | "You" | | discoveredNames | | Richmond | 1 | | Park | 1 | | Isolde | 1 | | Evan | 2 | | Yu-Fei | 1 | | London | 2 | | Kingston | 1 | | Road | 1 | | Heathrow | 1 | | Singing | 1 | | Eva | 1 | | You | 3 |
| | persons | | 0 | "Isolde" | | 1 | "Evan" | | 2 | "Yu-Fei" | | 3 | "Singing" | | 4 | "Eva" | | 5 | "You" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "London" | | 3 | "Kingston" | | 4 | "Road" | | 5 | "Heathrow" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | glossingSentenceCount | 1 | | matches | | 0 | "tasted like those silver petals looked—to" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1066 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 123 | | matches | | 0 | "screamed that she'd" | | 1 | "feeling that something" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 52 | | mean | 20.5 | | std | 20.02 | | cv | 0.977 | | sampleLengths | | 0 | 10 | | 1 | 77 | | 2 | 23 | | 3 | 65 | | 4 | 8 | | 5 | 69 | | 6 | 6 | | 7 | 11 | | 8 | 37 | | 9 | 6 | | 10 | 6 | | 11 | 65 | | 12 | 1 | | 13 | 28 | | 14 | 7 | | 15 | 35 | | 16 | 15 | | 17 | 31 | | 18 | 6 | | 19 | 44 | | 20 | 8 | | 21 | 47 | | 22 | 4 | | 23 | 8 | | 24 | 27 | | 25 | 6 | | 26 | 19 | | 27 | 21 | | 28 | 2 | | 29 | 25 | | 30 | 8 | | 31 | 1 | | 32 | 18 | | 33 | 2 | | 34 | 46 | | 35 | 9 | | 36 | 5 | | 37 | 34 | | 38 | 2 | | 39 | 55 | | 40 | 3 | | 41 | 45 | | 42 | 11 | | 43 | 2 | | 44 | 6 | | 45 | 33 | | 46 | 14 | | 47 | 3 | | 48 | 32 | | 49 | 6 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 120 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 186 | | matches | | 0 | "was pulling" | | 1 | "was sleeping" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 123 | | ratio | 0.098 | | matches | | 0 | "Aurora counted them as she passed—seven, eight, nine—each one twisted oak bark frozen into impossible angles, grain spiralling in directions that made her eyes sting if she followed it too long." | | 1 | "But the clearing ahead overflowed with colour—cornflowers and foxgloves and flowers she couldn't name, their petals luminous silver in the moonlight." | | 2 | "The lie tasted like those silver petals looked—too perfect, too sweet." | | 3 | "Not silent—quiet." | | 4 | "And beneath it all, like tinnitus at the edge of hearing—" | | 5 | "The pulse had rhythm now, matching something—her heartbeat or that not-singing, she couldn't tell which came first." | | 6 | "Not toward her—away." | | 7 | "The trees at the clearing's edge weren't trees anymore—they were suggestions of trees, charcoal smudges against a sky that held too many stars for London." | | 8 | "A text from Eva, timestamped three minutes ago, though that couldn't be right—" | | 9 | "That was— that was tonight." | | 10 | "The wildflowers didn't bend away this time—they reached for her, petals brushing her ankles, stems curling like fingers around her calves." | | 11 | "She kicked free, kept running, kept—" |
| |
| 98.58% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1081 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.041628122109158186 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0009250693802035153 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 123 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 123 | | mean | 8.67 | | std | 7.38 | | cv | 0.852 | | sampleLengths | | 0 | 10 | | 1 | 31 | | 2 | 22 | | 3 | 24 | | 4 | 23 | | 5 | 7 | | 6 | 20 | | 7 | 21 | | 8 | 5 | | 9 | 1 | | 10 | 1 | | 11 | 10 | | 12 | 8 | | 13 | 3 | | 14 | 35 | | 15 | 8 | | 16 | 23 | | 17 | 6 | | 18 | 11 | | 19 | 13 | | 20 | 8 | | 21 | 2 | | 22 | 14 | | 23 | 6 | | 24 | 6 | | 25 | 2 | | 26 | 22 | | 27 | 8 | | 28 | 4 | | 29 | 5 | | 30 | 13 | | 31 | 11 | | 32 | 1 | | 33 | 1 | | 34 | 2 | | 35 | 16 | | 36 | 9 | | 37 | 7 | | 38 | 18 | | 39 | 17 | | 40 | 8 | | 41 | 4 | | 42 | 3 | | 43 | 10 | | 44 | 11 | | 45 | 10 | | 46 | 6 | | 47 | 6 | | 48 | 3 | | 49 | 16 |
| |
| 46.61% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.35772357723577236 | | totalSentences | 123 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 5 | | totalSentences | 101 | | matches | | 0 | "Just more standing stones, more" | | 1 | "Almost a voice she almost" | | 2 | "Of course no signal." | | 3 | "Just the standing stones in" | | 4 | "So cold it burned." |
| | ratio | 0.05 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 101 | | matches | | 0 | "She'd followed that pull from" | | 1 | "She'd come because the pendant" | | 2 | "She'd told them she was" | | 3 | "She stepped between two standing" | | 4 | "Her own breathing, too loud." | | 5 | "She pressed her palm flat" | | 6 | "You came for a reason," | | 7 | "You followed the pull." | | 8 | "You wanted answers." | | 9 | "She walked deeper into the" | | 10 | "She let her hand fall" | | 11 | "Her phone buzzed in her" | | 12 | "She grabbed for it, desperate" | | 13 | "your boss called looking for" | | 14 | "Her stomach dropped." | | 15 | "She'd left the flat at" | | 16 | "She gasped, stumbled backward, and" | | 17 | "She fell hard, palms slapping" | | 18 | "She scrambled up, wiping her" | | 19 | "Her boots pounded warm grass." |
| | ratio | 0.257 | |
| 100.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 101 | | matches | | 0 | "The standing stones rose from" | | 1 | "Aurora counted them as she" | | 2 | "The pendant against her chest" | | 3 | "She'd followed that pull from" | | 4 | "The wildflowers should not have" | | 5 | "November had stripped the park" | | 6 | "The air tasted different here." | | 7 | "She'd come because the pendant" | | 8 | "Silas had noticed her distraction" | | 9 | "She'd told them she was" | | 10 | "The lie tasted like those" | | 11 | "Moonlight pooled in the clearing's" | | 12 | "An hour here could be" | | 13 | "The thought made her wrist" | | 14 | "She stepped between two standing" | | 15 | "The world behind her went" | | 16 | "The distant hum of London" | | 17 | "Her own breathing, too loud." | | 18 | "The crunch of her boots" | | 19 | "Something almost like singing, almost" |
| | ratio | 0.693 | |
| 99.01% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 101 | | matches | | 0 | "Now she stood at the" | | 1 | "Even Yu-Fei had pulled her" |
| | ratio | 0.02 | |
| 86.47% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 3 | | matches | | 0 | "Aurora counted them as she passed—seven, eight, nine—each one twisted oak bark frozen into impossible angles, grain spiralling in directions that made her eyes …" | | 1 | "The trees at the clearing's edge weren't trees anymore—they were suggestions of trees, charcoal smudges against a sky that held too many stars for London." | | 2 | "She fell hard, palms slapping against grass that was warm and soft in a way grass shouldn't be, in a way that reminded her of skin." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |