| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 19 | | adverbTagCount | 1 | | adverbTags | | 0 | "Isolde said quietly [quietly]" |
| | dialogueSentences | 35 | | tagDensity | 0.543 | | leniency | 1 | | rawRatio | 0.053 | | effectiveRatio | 0.053 | |
| 93.84% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1623 | | totalAiIsmAdverbs | 2 | | 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.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1623 | | totalAiIsms | 14 | | found | | | highlights | | 0 | "traced" | | 1 | "silence" | | 2 | "spectral" | | 3 | "weight" | | 4 | "pulsed" | | 5 | "warmth" | | 6 | "flickered" | | 7 | "tapestry" | | 8 | "stomach" | | 9 | "tenderness" |
| |
| 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 | 114 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 114 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 130 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 33 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1612 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 18 | | unquotedAttributions | 0 | | matches | (empty) | |
| 68.22% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 76 | | wordCount | 1345 | | uniqueNames | 24 | | maxNameDensity | 1.64 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Cardiff | 1 | | Richmond | 1 | | Park | 1 | | Grove | 2 | | London | 2 | | Half-Fae | 1 | | Rory | 22 | | Yu | 2 | | Fei | 2 | | Cheung | 1 | | Golden | 1 | | Empress | 1 | | Nyx | 10 | | Heartstone | 2 | | Pendant | 2 | | Hel | 1 | | Isolde | 13 | | Fae-forged | 2 | | Evan | 3 | | Euclidean | 1 | | Gluttony | 1 | | Veil | 1 | | Dymas | 2 | | Yu-Fei | 1 |
| | persons | | 0 | "Half-Fae" | | 1 | "Rory" | | 2 | "Fei" | | 3 | "Cheung" | | 4 | "Nyx" | | 5 | "Pendant" | | 6 | "Isolde" | | 7 | "Evan" | | 8 | "Veil" | | 9 | "Dymas" | | 10 | "Yu-Fei" |
| | places | | 0 | "Cardiff" | | 1 | "Richmond" | | 2 | "Park" | | 3 | "London" | | 4 | "Hel" |
| | globalScore | 0.682 | | windowScore | 0.833 | |
| 63.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 87 | | glossingSentenceCount | 3 | | matches | | 0 | "not quite walking, not quite gliding" | | 1 | "not quite gliding" | | 2 | "tasted like something trying to feed her" | | 3 | "seemed negative an absence of light rather than a liquid" |
| |
| 13.90% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.861 | | wordCount | 1612 | | matches | | 0 | "Not the muffled silence of snowfall, but a total erasure, as though the city had been unwritten" | | 1 | "not scattered, but dense, aggressive" | | 2 | "not from wind but from something pressing against its surface from the other s" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 130 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 39.32 | | std | 25.58 | | cv | 0.651 | | sampleLengths | | 0 | 73 | | 1 | 27 | | 2 | 65 | | 3 | 84 | | 4 | 73 | | 5 | 11 | | 6 | 9 | | 7 | 101 | | 8 | 48 | | 9 | 5 | | 10 | 77 | | 11 | 4 | | 12 | 16 | | 13 | 59 | | 14 | 68 | | 15 | 11 | | 16 | 82 | | 17 | 18 | | 18 | 6 | | 19 | 42 | | 20 | 61 | | 21 | 71 | | 22 | 17 | | 23 | 43 | | 24 | 39 | | 25 | 30 | | 26 | 27 | | 27 | 24 | | 28 | 36 | | 29 | 21 | | 30 | 59 | | 31 | 29 | | 32 | 7 | | 33 | 45 | | 34 | 38 | | 35 | 11 | | 36 | 50 | | 37 | 50 | | 38 | 40 | | 39 | 16 | | 40 | 19 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 114 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 236 | | matches | | 0 | "was rewriting" | | 1 | "was glowing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 10 | | totalSentences | 130 | | ratio | 0.077 | | matches | | 0 | "Instead, Rory checked her hip, where the leaf-shaped dagger rested in a makeshift sheath belted over her delivery jacket—Yu-Fei Cheung's Golden Empress logo faded but still visible above the hem." | | 1 | "Wildflowers erupted between her steps—not scattered, but dense, aggressive." | | 2 | "Rory checked her phone—a reflex burned in from too many delivery shifts, too many ticking clocks." | | 3 | "She refused to hurry; she knew traps often disguised themselves as shortcuts." | | 4 | "Through the gaps, the sky looked deeper than night, scattered with constellations Rory couldn't name—stars clustered in shapes that hurt to focus on, as though her brain refused to catalog them." | | 5 | "The silence gained texture—a susurrus that might have been breathing, or applause from hands too small to be human." | | 6 | "A city—or a realm." | | 7 | "Nyx's head tilted, violet eyes tracking a shimmering distortion that rippled above the pool—a seam in the world visible only to those with supernatural sight." | | 8 | "Nyx knelt—actually knelt, shadow-knees in the dirt—and hovered their hand over the pool." | | 9 | "The amber sky of Dymas flared in the reflection, and a shape rose—limbs of smoke and charred bone, a mouth that opened like a kitchen oven, all heat and endless appetite." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1371 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 45 | | adverbRatio | 0.03282275711159737 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.006564551422319475 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 130 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 130 | | mean | 12.4 | | std | 7.47 | | cv | 0.602 | | sampleLengths | | 0 | 19 | | 1 | 21 | | 2 | 22 | | 3 | 6 | | 4 | 5 | | 5 | 10 | | 6 | 17 | | 7 | 11 | | 8 | 16 | | 9 | 14 | | 10 | 13 | | 11 | 11 | | 12 | 6 | | 13 | 14 | | 14 | 30 | | 15 | 21 | | 16 | 2 | | 17 | 1 | | 18 | 10 | | 19 | 11 | | 20 | 24 | | 21 | 7 | | 22 | 18 | | 23 | 13 | | 24 | 11 | | 25 | 4 | | 26 | 5 | | 27 | 6 | | 28 | 16 | | 29 | 9 | | 30 | 16 | | 31 | 16 | | 32 | 22 | | 33 | 8 | | 34 | 8 | | 35 | 7 | | 36 | 18 | | 37 | 16 | | 38 | 5 | | 39 | 2 | | 40 | 5 | | 41 | 16 | | 42 | 17 | | 43 | 11 | | 44 | 33 | | 45 | 4 | | 46 | 8 | | 47 | 8 | | 48 | 3 | | 49 | 25 |
| |
| 63.85% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 7 | | diversityRatio | 0.4153846153846154 | | totalSentences | 130 | | uniqueOpeners | 54 | |
| 32.68% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 102 | | matches | | 0 | "Instead, Rory checked her hip," |
| | ratio | 0.01 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 19 | | totalSentences | 102 | | matches | | 0 | "They weren't true stone at" | | 1 | "She paused, turned, her pale" | | 2 | "It tasted like something trying" | | 3 | "She touched her chest through" | | 4 | "It usually pulsed with warmth" | | 5 | "She was certain they'd entered" | | 6 | "She scraped her straight black" | | 7 | "She refused to hurry; she" | | 8 | "Their form flickered, stretched, then" | | 9 | "they said, surprised into a" | | 10 | "They pressed deeper." | | 11 | "She'd fled to London to" | | 12 | "She kept her hand near" | | 13 | "It showed a reflection that" | | 14 | "She stood at the pool's" | | 15 | "They had thickened into full" | | 16 | "She drew the blade." | | 17 | "She never did, not in" | | 18 | "she said, her voice steady" |
| | ratio | 0.186 | |
| 48.24% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 84 | | totalSentences | 102 | | matches | | 0 | "Rory traced the crescent scar" | | 1 | "The pale mark, souvenir of" | | 2 | "They weren't true stone at" | | 3 | "The standing stones of Richmond" | | 4 | "The threshold of the Grove." | | 5 | "Isolde moved ahead, a wisp" | | 6 | "The Half-Fae left no indentation" | | 7 | "She paused, turned, her pale" | | 8 | "Isolde said, her voice thin" | | 9 | "Rory didn't ask what that" | | 10 | "Isolde couldn't lie, but she" | | 11 | "The moonsilver blade was always" | | 12 | "Nyx drifted at her elbow," | | 13 | "Here, though, those eyes dimmed" | | 14 | "Nyx whispered, their voice carrying" | | 15 | "Rory asked, keeping her voice" | | 16 | "The ground changed beneath her" | | 17 | "Wildflowers erupted between her steps—not" | | 18 | "Crimson and violet and gold," | | 19 | "Some turned their heads as" |
| | ratio | 0.824 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 102 | | matches | (empty) | | ratio | 0 | |
| 30.08% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 57 | | technicalSentenceCount | 9 | | matches | | 0 | "They weren't true stone at all, but something harder than oak, lighter than granite, veined with black grain that resembled petrified wood." | | 1 | "She paused, turned, her pale lavender eyes catching a glow that had no source." | | 2 | "Through the gaps, the sky looked deeper than night, scattered with constellations Rory couldn't name—stars clustered in shapes that hurt to focus on, as though …" | | 3 | "Moonlight filtered down in silver threads, and where it struck the Fae-forged blade, the metal sang softly, giving off a faint luminescence that painted the und…" | | 4 | "Nyx's head tilted, violet eyes tracking a shimmering distortion that rippled above the pool—a seam in the world visible only to those with supernatural sight." | | 5 | "Evan had loved rich food, sauces that drowned the plate, excess as a substitute for tenderness." | | 6 | "The moonsilver blazed in the alien moonlight, its leaf-shaped profile slicing the air with a whine that made her ears pop." | | 7 | "The amber sky of Dymas flared in the reflection, and a shape rose—limbs of smoke and charred bone, a mouth that opened like a kitchen oven, all heat and endless…" | | 8 | "But her mind leaped sideways, Evan's voice sneering in memory, her father's steady logic, Yu-Fei's kitchen discipline balancing heat and spice." |
| |
| 98.68% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 19 | | uselessAdditionCount | 1 | | matches | | 0 | "Isolde said, her voice thin and musical" |
| |
| 38.89% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 18 | | fancyCount | 4 | | fancyTags | | 0 | "Nyx whispered (whisper)" | | 1 | "Nyx murmured (murmur)" | | 2 | "Nyx corrected (correct)" | | 3 | "Rory muttered (mutter)" |
| | dialogueSentences | 35 | | tagDensity | 0.514 | | leniency | 1 | | rawRatio | 0.222 | | effectiveRatio | 0.222 | |