| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 1 | | adverbTags | | 0 | "Isolde said around [around]" |
| | dialogueSentences | 54 | | tagDensity | 0.204 | | leniency | 0.407 | | rawRatio | 0.091 | | effectiveRatio | 0.037 | |
| 91.63% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1793 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "slowly" | | 1 | "quickly" | | 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) | |
| 77.69% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1793 | | totalAiIsms | 8 | | found | | | highlights | | 0 | "weight" | | 1 | "stomach" | | 2 | "marble" | | 3 | "flicked" | | 4 | "chilled" | | 5 | "warmth" | | 6 | "porcelain" | | 7 | "pulsed" |
| |
| 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 | 172 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 172 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 215 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 39 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1792 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 58.32% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 63 | | wordCount | 1527 | | uniqueNames | 11 | | maxNameDensity | 1.83 | | worstName | "Aurora" | | maxWindowNameDensity | 3 | | worstWindowName | "Aurora" | | discoveredNames | | Heartstone | 4 | | Aurora | 28 | | Golden | 1 | | Empress | 1 | | Nyx | 11 | | London | 2 | | Dymas | 1 | | Isolde | 9 | | Fae-forged | 1 | | Seer | 1 | | One | 4 |
| | persons | | 0 | "Heartstone" | | 1 | "Aurora" | | 2 | "Empress" | | 3 | "Nyx" | | 4 | "Isolde" | | 5 | "Seer" | | 6 | "One" |
| | places | | | globalScore | 0.583 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 119 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1792 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 215 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 132 | | mean | 13.58 | | std | 16.02 | | cv | 1.18 | | sampleLengths | | 0 | 15 | | 1 | 41 | | 2 | 10 | | 3 | 7 | | 4 | 5 | | 5 | 52 | | 6 | 38 | | 7 | 24 | | 8 | 8 | | 9 | 6 | | 10 | 5 | | 11 | 5 | | 12 | 6 | | 13 | 32 | | 14 | 4 | | 15 | 9 | | 16 | 96 | | 17 | 49 | | 18 | 6 | | 19 | 23 | | 20 | 4 | | 21 | 19 | | 22 | 18 | | 23 | 3 | | 24 | 6 | | 25 | 43 | | 26 | 3 | | 27 | 8 | | 28 | 11 | | 29 | 6 | | 30 | 4 | | 31 | 4 | | 32 | 12 | | 33 | 9 | | 34 | 8 | | 35 | 7 | | 36 | 7 | | 37 | 29 | | 38 | 5 | | 39 | 4 | | 40 | 3 | | 41 | 6 | | 42 | 5 | | 43 | 42 | | 44 | 40 | | 45 | 4 | | 46 | 9 | | 47 | 1 | | 48 | 9 | | 49 | 1 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 172 | | matches | | 0 | "been built" | | 1 | "been pressed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 260 | | matches | (empty) | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 215 | | ratio | 0.005 | | matches | | 0 | "Vines poured from them in ropes as thick as ship’s cables, bearing fruit in colours Aurora had no names for—blue pears with silver leaves, purple melons striped in gold, clusters of tiny red berries that glowed like coals." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1533 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.028049575994781473 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.002609262883235486 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 215 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 215 | | mean | 8.33 | | std | 5.3 | | cv | 0.636 | | sampleLengths | | 0 | 15 | | 1 | 8 | | 2 | 19 | | 3 | 14 | | 4 | 10 | | 5 | 7 | | 6 | 5 | | 7 | 19 | | 8 | 8 | | 9 | 3 | | 10 | 22 | | 11 | 12 | | 12 | 13 | | 13 | 13 | | 14 | 12 | | 15 | 12 | | 16 | 8 | | 17 | 6 | | 18 | 5 | | 19 | 5 | | 20 | 6 | | 21 | 25 | | 22 | 7 | | 23 | 4 | | 24 | 9 | | 25 | 8 | | 26 | 17 | | 27 | 18 | | 28 | 15 | | 29 | 38 | | 30 | 5 | | 31 | 17 | | 32 | 9 | | 33 | 18 | | 34 | 6 | | 35 | 9 | | 36 | 7 | | 37 | 7 | | 38 | 4 | | 39 | 13 | | 40 | 6 | | 41 | 11 | | 42 | 7 | | 43 | 3 | | 44 | 6 | | 45 | 12 | | 46 | 11 | | 47 | 10 | | 48 | 2 | | 49 | 2 |
| |
| 53.64% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.3581395348837209 | | totalSentences | 215 | | uniqueOpeners | 77 | |
| 63.69% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 157 | | matches | | 0 | "Then one of them turned" | | 1 | "Then one of the shapes" | | 2 | "Instead of statues, the fountain" |
| | ratio | 0.019 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 30 | | totalSentences | 157 | | matches | | 0 | "She stopped hard enough that" | | 1 | "Her boots sank a fraction" | | 2 | "She looked down." | | 3 | "Its rim shone with the" | | 4 | "Her pale dress trailed across" | | 5 | "Their violet eyes fixed on" | | 6 | "Its walls had been built" | | 7 | "Their rows rolled over low" | | 8 | "Its trees bore lantern-sized fruit," | | 9 | "It did not stop at" | | 10 | "It travelled through her teeth" | | 11 | "It looked recently poured, though" | | 12 | "They moved downhill, keeping the" | | 13 | "She tucked the Heartstone beneath" | | 14 | "Its round black eye met" | | 15 | "Her hand jerked back." | | 16 | "She stared at the fish." | | 17 | "It blinked once, then slipped" | | 18 | "Her throat tightened." | | 19 | "It whispered as Isolde held" |
| | ratio | 0.191 | |
| 33.25% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 134 | | totalSentences | 157 | | matches | | 0 | "The Heartstone thudded against Aurora’s" | | 1 | "London vanished without the courtesy" | | 2 | "The next, heat pressed over" | | 3 | "She stopped hard enough that" | | 4 | "Aurora had already drawn breath." | | 5 | "The air tasted of burnt" | | 6 | "Her boots sank a fraction" | | 7 | "She looked down." | | 8 | "The ground glittered with grains" | | 9 | "Its rim shone with the" | | 10 | "Rain dripped from the London" | | 11 | "Isolde stood two paces ahead," | | 12 | "Her pale dress trailed across" | | 13 | "Aurora glanced at the untouched" | | 14 | "Nyx had taken a solid" | | 15 | "Their violet eyes fixed on" | | 16 | "Aurora followed their gaze." | | 17 | "A city climbed from the" | | 18 | "Its walls had been built" | | 19 | "Bridges of pale stone arched" |
| | ratio | 0.854 | |
| 31.85% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 157 | | matches | | 0 | "Even under the amber sky," |
| | ratio | 0.006 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 66 | | technicalSentenceCount | 3 | | matches | | 0 | "The ground glittered with grains like ground spice: saffron yellow, black pepper dark, flakes of salt that flashed under the amber sky." | | 1 | "Nyx had taken a solid shape, though their edges kept shedding threads of darkness that curled around their long limbs before melting into the earth." | | 2 | "Vines poured from them in ropes as thick as ship’s cables, bearing fruit in colours Aurora had no names for—blue pears with silver leaves, purple melons striped…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 75.93% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 4 | | fancyTags | | 0 | "they whispered (whisper)" | | 1 | "she murmured (murmur)" | | 2 | "Aurora corrected (correct)" | | 3 | "they murmured (murmur)" |
| | dialogueSentences | 54 | | tagDensity | 0.167 | | leniency | 0.333 | | rawRatio | 0.444 | | effectiveRatio | 0.148 | |