| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 7 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 25 | | tagDensity | 0.28 | | leniency | 0.56 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 86.98% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1152 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slowly" | | 1 | "slightly" | | 2 | "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) | |
| 0.00% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1152 | | totalAiIsms | 27 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | word | "carried the weight" | | count | 1 |
| | 14 | | | 15 | | | 16 | |
| | highlights | | 0 | "pulse" | | 1 | "tapestry" | | 2 | "weight" | | 3 | "silence" | | 4 | "stomach" | | 5 | "silk" | | 6 | "velvet" | | 7 | "flickered" | | 8 | "whisper" | | 9 | "echoed" | | 10 | "could feel" | | 11 | "pulsed" | | 12 | "beacon" | | 13 | "carried the weight" | | 14 | "searing" | | 15 | "wavering" | | 16 | "trembled" |
| |
| 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 | 96 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 96 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 112 | | 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 | 18 | | markdownWords | 19 | | totalWords | 1144 | | ratio | 0.017 | | matches | | 0 | "Dymas." | | 1 | "alive" | | 2 | "wrong" | | 3 | "gluttony" | | 4 | "my" | | 5 | "borrowed" | | 6 | "lean" | | 7 | "life" | | 8 | "hungers" | | 9 | "Hel" | | 10 | "take" | | 11 | "you" | | 12 | "pulled" | | 13 | "way out" | | 14 | "screamed" | | 15 | "wrong" | | 16 | "pulled" | | 17 | "pulled" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 5 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 43 | | wordCount | 1011 | | uniqueNames | 9 | | maxNameDensity | 1.29 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Carter | 1 | | Fae-forged | 3 | | London | 1 | | Aurora | 13 | | Hel | 2 | | Belphegor | 8 | | Heartstone | 3 | | Nyx | 8 | | Isolde | 4 |
| | persons | | 0 | "Carter" | | 1 | "Aurora" | | 2 | "Belphegor" | | 3 | "Nyx" | | 4 | "Isolde" |
| | places | | | globalScore | 0.857 | | windowScore | 0.833 | |
| 34.62% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 65 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like ripe peaches and something el" | | 1 | "looked like silk and shadow" | | 2 | "something like fear" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1144 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 112 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 35 | | mean | 32.69 | | std | 23.54 | | cv | 0.72 | | sampleLengths | | 0 | 90 | | 1 | 93 | | 2 | 36 | | 3 | 68 | | 4 | 52 | | 5 | 15 | | 6 | 15 | | 7 | 22 | | 8 | 24 | | 9 | 10 | | 10 | 26 | | 11 | 25 | | 12 | 20 | | 13 | 50 | | 14 | 33 | | 15 | 22 | | 16 | 8 | | 17 | 36 | | 18 | 16 | | 19 | 21 | | 20 | 5 | | 21 | 68 | | 22 | 13 | | 23 | 59 | | 24 | 54 | | 25 | 16 | | 26 | 35 | | 27 | 13 | | 28 | 58 | | 29 | 54 | | 30 | 40 | | 31 | 7 | | 32 | 34 | | 33 | 4 | | 34 | 2 |
| |
| 97.95% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 96 | | matches | | 0 | "been dipped" | | 1 | "was used" |
| |
| 48.48% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 4 | | totalVerbs | 176 | | matches | | 0 | "was already moving" | | 1 | "were coming" | | 2 | "was already running" | | 3 | "was still burning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 7 | | semicolonCount | 0 | | flaggedSentences | 7 | | totalSentences | 112 | | ratio | 0.063 | | matches | | 0 | "The air smelled like ripe peaches and something else—something warm and metallic, like blood left too long in the sun." | | 1 | "They didn’t speak, but Aurora felt the weight of their presence—the way the air seemed to ripple around them, as if even the world here knew they weren’t meant to be here." | | 2 | "She was too busy watching the way the vines twisted, their leaves not quite right—too smooth, too *alive*." | | 3 | "She’d seen Hel before, in fragments—hellfire, screaming souls, the stench of damnation." | | 4 | "The way his eyes flickered, the way the vines around them seemed to *lean* in, listening—it was enough." | | 5 | "But this—this was different." | | 6 | "She could taste it now—the sweet, sickly tang of decay beneath the fruit, the rot beneath the richness." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1022 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 38 | | adverbRatio | 0.03718199608610567 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.005870841487279843 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 112 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 112 | | mean | 10.21 | | std | 6.92 | | cv | 0.678 | | sampleLengths | | 0 | 20 | | 1 | 17 | | 2 | 14 | | 3 | 22 | | 4 | 17 | | 5 | 27 | | 6 | 18 | | 7 | 16 | | 8 | 32 | | 9 | 16 | | 10 | 14 | | 11 | 6 | | 12 | 3 | | 13 | 18 | | 14 | 12 | | 15 | 2 | | 16 | 2 | | 17 | 6 | | 18 | 3 | | 19 | 12 | | 20 | 2 | | 21 | 3 | | 22 | 5 | | 23 | 22 | | 24 | 7 | | 25 | 5 | | 26 | 12 | | 27 | 6 | | 28 | 9 | | 29 | 6 | | 30 | 7 | | 31 | 8 | | 32 | 9 | | 33 | 8 | | 34 | 5 | | 35 | 9 | | 36 | 10 | | 37 | 5 | | 38 | 8 | | 39 | 2 | | 40 | 22 | | 41 | 4 | | 42 | 3 | | 43 | 4 | | 44 | 18 | | 45 | 11 | | 46 | 9 | | 47 | 6 | | 48 | 36 | | 49 | 8 |
| |
| 41.96% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.25892857142857145 | | totalSentences | 112 | | uniqueOpeners | 29 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 91 | | matches | (empty) | | ratio | 0 | |
| 88.13% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 91 | | matches | | 0 | "They didn’t speak, but Aurora" | | 1 | "Her silver hair caught the" | | 2 | "She was too busy watching" | | 3 | "Her stomach twisted." | | 4 | "She’d seen Hel before, in" | | 5 | "His smile was slow, knowing." | | 6 | "His voice was deep, smooth," | | 7 | "He tilted his head, studying" | | 8 | "She didn’t answer." | | 9 | "She didn’t have to." | | 10 | "He gestured to the rows" | | 11 | "She could feel the weight" | | 12 | "It was a key." | | 13 | "She didn’t flinch." | | 14 | "She was used to danger." | | 15 | "She took a step forward," | | 16 | "She yanked her hand back," | | 17 | "It recoiled, hissing like steam" | | 18 | "She was too busy fighting" | | 19 | "She could taste it now—the" |
| | ratio | 0.33 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 86 | | totalSentences | 91 | | matches | | 0 | "The air smelled like ripe" | | 1 | "Aurora Carter exhaled slowly, her" | | 2 | "The pendant beneath her shirt" | | 3 | "*Dymas.* She’d heard the name" | | 4 | "The vineyards stretched before her" | | 5 | "The sky above was amber," | | 6 | "Nyx moved silently beside her," | | 7 | "They didn’t speak, but Aurora" | | 8 | "Isolde’s voice cut through the" | | 9 | "Her silver hair caught the" | | 10 | "Aurora didn’t answer." | | 11 | "She was too busy watching" | | 12 | "A gust of wind carried" | | 13 | "The faint, acrid tang of" | | 14 | "Her stomach twisted." | | 15 | "She’d seen Hel before, in" | | 16 | "this was different." | | 17 | "This was *gluttony* given form." | | 18 | "A figure emerged from between" | | 19 | "Prince Belphegor, ruler of this" |
| | ratio | 0.945 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 91 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 1 | | matches | | 0 | "She was too busy fighting the vine, too busy feeling the way it *pulled* at her, as if it could drag her into the earth itself." |
| |
| 53.57% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 7 | | uselessAdditionCount | 1 | | matches | | 0 | "Nyx said, their voice rough" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 25 | | tagDensity | 0.04 | | leniency | 0.08 | | rawRatio | 0 | | effectiveRatio | 0 | |