| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 9 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 16 | | tagDensity | 0.563 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1276 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 52.98% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1276 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "throbbed" | | 1 | "pulse" | | 2 | "gloom" | | 3 | "glistening" | | 4 | "shimmered" | | 5 | "weight" | | 6 | "mechanical" | | 7 | "crystal" | | 8 | "grave" | | 9 | "gleaming" | | 10 | "echoed" |
| |
| 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 | 1 | | narrationSentences | 90 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 90 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 98 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 44 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1265 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 95.05% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 31 | | wordCount | 1092 | | uniqueNames | 7 | | maxNameDensity | 1.1 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Heartstone | 4 | | Aurora | 12 | | Rain | 1 | | London | 1 | | Isolde | 5 | | Nyx | 7 | | Fae | 1 |
| | persons | | 0 | "Heartstone" | | 1 | "Aurora" | | 2 | "Rain" | | 3 | "Isolde" | | 4 | "Nyx" |
| | places | | | globalScore | 0.951 | | windowScore | 1 | |
| 75.37% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 2 | | matches | | 0 | "wood that seemed to breathe, bark expanding and contracting in slow rhythms" | | 1 | "sounded like a blender full of wet gravel" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 2.372 | | wordCount | 1265 | | matches | | 0 | "Not with sound, but with absence" | | 1 | "not with water but with honey, golden" | | 2 | "not toward the peach, but past it, toward the center of the pavilion, a throne of bone" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 98 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 29 | | mean | 43.62 | | std | 24.22 | | cv | 0.555 | | sampleLengths | | 0 | 45 | | 1 | 30 | | 2 | 72 | | 3 | 18 | | 4 | 4 | | 5 | 36 | | 6 | 3 | | 7 | 57 | | 8 | 38 | | 9 | 74 | | 10 | 15 | | 11 | 28 | | 12 | 66 | | 13 | 82 | | 14 | 66 | | 15 | 64 | | 16 | 93 | | 17 | 8 | | 18 | 41 | | 19 | 50 | | 20 | 42 | | 21 | 43 | | 22 | 66 | | 23 | 14 | | 24 | 34 | | 25 | 45 | | 26 | 66 | | 27 | 10 | | 28 | 55 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 90 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 191 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 2 | | flaggedSentences | 10 | | totalSentences | 98 | | ratio | 0.102 | | matches | | 0 | "She did not touch the ground; her boots hovered half an inch above the wet concrete." | | 1 | "A jagged seam of amber light ripped across the alley wall, and heat poured through—dry, heavy, smelling of roasting meat and overripe peaches." | | 2 | "Between the rows, figures moved—chefs in stained whites, their faces blurred or oversized, carrying platters of food that steamed with visible heat." | | 3 | "The path wound through an orchard where trees bore fruit in impossible seasons—apples red as arterial blood next to oranges split open to reveal golden flesh, next to fruits Aurora did not have names for, pulsing with inner light like hearts." | | 4 | "Diners sat everywhere—dozens of them, hundreds—stuffing their mouths, cheeks bulging, eyes rolled back in ecstasy." | | 5 | "Judges sat at a high table—tall, thin figures with excessive joints, wearing crowns of bread." | | 6 | "The amber light cast no shadow for them; instead, Nyx cast a void, a hole in the world that drank the golden air." | | 7 | "But the Heartstone screamed against her skin, and she felt the pull—not toward the peach, but past it, toward the center of the pavilion, a throne of bone and crystal where a figure sat, crowned in grapes, watching with eyes like fermenting wine." | | 8 | "The Heartstone blazed, crimson light washing over the pavilion, and for a moment, she saw the truth—the diners were not eating." | | 9 | "She grabbed Nyx's hand—solid, cold—and pulled Isolde toward the entrance." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 155 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 3 | | adverbRatio | 0.01935483870967742 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 98 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 98 | | mean | 12.91 | | std | 8.4 | | cv | 0.651 | | sampleLengths | | 0 | 12 | | 1 | 19 | | 2 | 14 | | 3 | 12 | | 4 | 12 | | 5 | 6 | | 6 | 17 | | 7 | 16 | | 8 | 13 | | 9 | 19 | | 10 | 7 | | 11 | 7 | | 12 | 6 | | 13 | 5 | | 14 | 4 | | 15 | 6 | | 16 | 3 | | 17 | 4 | | 18 | 23 | | 19 | 3 | | 20 | 11 | | 21 | 14 | | 22 | 10 | | 23 | 3 | | 24 | 3 | | 25 | 16 | | 26 | 23 | | 27 | 4 | | 28 | 11 | | 29 | 10 | | 30 | 20 | | 31 | 10 | | 32 | 22 | | 33 | 5 | | 34 | 7 | | 35 | 4 | | 36 | 11 | | 37 | 8 | | 38 | 20 | | 39 | 3 | | 40 | 41 | | 41 | 22 | | 42 | 20 | | 43 | 4 | | 44 | 21 | | 45 | 15 | | 46 | 4 | | 47 | 4 | | 48 | 14 | | 49 | 6 |
| |
| 51.02% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3673469387755102 | | totalSentences | 98 | | uniqueOpeners | 36 | |
| 37.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 90 | | matches | | 0 | "Instead, it pooled at the" |
| | ratio | 0.011 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 90 | | matches | | 0 | "She stood at the edge" | | 1 | "Their voice carried on static" | | 2 | "She did not touch the" | | 3 | "Her lavender eyes fixed on" | | 4 | "They stepped through." | | 5 | "She stumbled, catching herself on" | | 6 | "It did not return." | | 7 | "They did not look up." | | 8 | "They walked in circles, harvesting" | | 9 | "They walked deeper." | | 10 | "They did not speak." | | 11 | "They did not blink." | | 12 | "They consumed, their hands moving" | | 13 | "They chopped, they seared, they" | | 14 | "They watched the chefs with" | | 15 | "It tasted of every sweet" | | 16 | "It was beautiful." | | 17 | "It was terrible." | | 18 | "It was a cathedral of" | | 19 | "She turned at the center" |
| | ratio | 0.289 | |
| 54.44% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 73 | | totalSentences | 90 | | matches | | 0 | "The Heartstone throbbed against Aurora's" | | 1 | "She stood at the edge" | | 2 | "Rain slicked the London pavement," | | 3 | "Nyx solidified from the corner's" | | 4 | "Their voice carried on static" | | 5 | "Isolde stepped from beneath the" | | 6 | "She did not touch the" | | 7 | "Wildflowers pushed through the cracks" | | 8 | "Her lavender eyes fixed on" | | 9 | "Aurora's fingers closed around the" | | 10 | "The scar on her wrist" | | 11 | "The air split open." | | 12 | "The rain stopped." | | 13 | "The traffic noise vanished." | | 14 | "A jagged seam of amber" | | 15 | "They stepped through." | | 16 | "The ground gave way to" | | 17 | "She stumbled, catching herself on" | | 18 | "The bruised, golden light pressed" | | 19 | "Nyx's shadow detached from their" |
| | ratio | 0.811 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 90 | | matches | (empty) | | ratio | 0 | |
| 51.67% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 6 | | matches | | 0 | "Between the rows, figures moved—chefs in stained whites, their faces blurred or oversized, carrying platters of food that steamed with visible heat." | | 1 | "A massive pavilion rose ahead, built from living wood that seemed to breathe, bark expanding and contracting in slow rhythms." | | 2 | "The pavilion doors were oak, but the wood wept sap that smelled of vanilla." | | 3 | "Isolde walked ahead, her silver hair floating as if underwater." | | 4 | "Nyx's shadow lashed out from the void at their feet, wrapping around the chef's arm, solidifying into chains of darkness." | | 5 | "At the bottom, something vast stirred in its sleep, tasting the air with a tongue that could lap the oceans dry, waiting for the course to be served." |
| |
| 13.89% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 9 | | uselessAdditionCount | 2 | | matches | | 0 | "Nyx drifted, their form flickering between solid and smoke" | | 1 | "Nyx's shadow pooled, trembling" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |