| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 25 | | tagDensity | 0.52 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 90.97% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1662 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "softly" | | 1 | "perfectly" | | 2 | "slowly" |
| |
| 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) | |
| 72.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1662 | | totalAiIsms | 9 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | word | "the last thing" | | count | 1 |
|
| | highlights | | 0 | "pulse" | | 1 | "stomach" | | 2 | "rhythmic" | | 3 | "warmth" | | 4 | "could feel" | | 5 | "pulsed" | | 6 | "the last thing" |
| |
| 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 | 121 | | matches | (empty) | |
| 95.63% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 2 | | narrationSentences | 121 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 133 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 21 | | totalWords | 1645 | | ratio | 0.013 | | matches | | 0 | "You’ve got the key, love. The one that opens the cellar." | | 1 | "It’s been waiting for you," | | 2 | "Everything in Dymas waits, eventually." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1476 | | uniqueNames | 8 | | maxNameDensity | 1.15 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Lambeth | 1 | | Carter | 1 | | Heartstone | 1 | | Aurora | 17 | | London | 2 | | Shade | 4 | | Dymas | 3 | | Nyx | 9 |
| | persons | | 0 | "Carter" | | 1 | "Aurora" | | 2 | "Shade" | | 3 | "Dymas" | | 4 | "Nyx" |
| | places | | | globalScore | 0.924 | | windowScore | 0.833 | |
| 88.27% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 81 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like she was already tasting it" | | 1 | "looked like poured topaz" |
| |
| 78.42% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.216 | | wordCount | 1645 | | matches | | 0 | "not earth but loam the color of old wine" | | 1 | "Not the cold of the London night, but the deep, empty cold of a place" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 133 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 32.25 | | std | 24.27 | | cv | 0.752 | | sampleLengths | | 0 | 83 | | 1 | 46 | | 2 | 16 | | 3 | 64 | | 4 | 6 | | 5 | 3 | | 6 | 38 | | 7 | 41 | | 8 | 10 | | 9 | 51 | | 10 | 87 | | 11 | 7 | | 12 | 1 | | 13 | 55 | | 14 | 20 | | 15 | 60 | | 16 | 62 | | 17 | 58 | | 18 | 13 | | 19 | 45 | | 20 | 17 | | 21 | 34 | | 22 | 67 | | 23 | 17 | | 24 | 54 | | 25 | 41 | | 26 | 6 | | 27 | 8 | | 28 | 67 | | 29 | 9 | | 30 | 58 | | 31 | 37 | | 32 | 11 | | 33 | 10 | | 34 | 4 | | 35 | 62 | | 36 | 22 | | 37 | 39 | | 38 | 61 | | 39 | 9 | | 40 | 4 | | 41 | 16 | | 42 | 5 | | 43 | 40 | | 44 | 20 | | 45 | 7 | | 46 | 25 | | 47 | 22 | | 48 | 15 | | 49 | 16 |
| |
| 99.46% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 121 | | matches | | |
| 60.53% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 239 | | matches | | 0 | "was pulsing" | | 1 | "was standing" | | 2 | "was already tasting" | | 3 | "was pulsing" | | 4 | "was coming" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 133 | | ratio | 0.105 | | matches | | 0 | "Nyx waited at the end of the alley—or rested, the way shadow rests." | | 1 | "It was a fall into a heartbeat—quick, deep, and final." | | 2 | "She hadn’t realized it until that moment—hadn’t eaten since a stale pastry at dawn—but standing there in the golden air, the hunger quieted." | | 3 | "The vines were not like any vine she had seen—they ran along the ground and climbed trellises made of black iron, their trunks as thick as her waist, gnarled and ancient as old serpents." | | 4 | "They seemed to breathe—slow, rhythmic contractions that made the light inside them swim." | | 5 | "The trees bore fruit she had no names for—spirals that twisted out of their own stems, lantern-shaped things that glowed with a soft inner fire, spheres whose skin was a mirror reflecting her face back at her." | | 6 | "The spiral fruit had been so beautiful—curled and living, glowing like a question—and she could feel the shape of it still in her palm, even though she had never touched it." | | 7 | "She was washed out, the way old firelight is washed out—a figure of flat color, her apron gray, her face blank as a closed door." | | 8 | "Her lips moved, but the words arrived in Aurora’s skull the way a memory arrives—already finished, already certain." | | 9 | "It had been there all along, Aurora realized—she just hadn’t let herself see it." | | 10 | "Aurora heard it now—the clink of cups, the thunder of a thousand hungry mouths, a bass note thrumming up through the warm soil and into her teeth." | | 11 | "The ward sighed—a long, defeated exhale that smelled of wine and rot—and split." | | 12 | "Beyond the threshold, at the bottom of a short flight of stone steps, a single light pulsed—deep crimson, steady, patient." | | 13 | "Behind her, the Shade followed, and the door of the cellar swung shut on the realm of gluttony—on the breathing grapes, the golden stream, the woman with the burned hands." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1497 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 54 | | adverbRatio | 0.036072144288577156 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.007348029392117568 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 133 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 133 | | mean | 12.37 | | std | 8.76 | | cv | 0.709 | | sampleLengths | | 0 | 29 | | 1 | 16 | | 2 | 11 | | 3 | 3 | | 4 | 6 | | 5 | 18 | | 6 | 13 | | 7 | 17 | | 8 | 16 | | 9 | 14 | | 10 | 2 | | 11 | 29 | | 12 | 18 | | 13 | 4 | | 14 | 3 | | 15 | 10 | | 16 | 6 | | 17 | 3 | | 18 | 22 | | 19 | 16 | | 20 | 6 | | 21 | 10 | | 22 | 5 | | 23 | 3 | | 24 | 17 | | 25 | 10 | | 26 | 2 | | 27 | 2 | | 28 | 2 | | 29 | 20 | | 30 | 25 | | 31 | 15 | | 32 | 26 | | 33 | 3 | | 34 | 23 | | 35 | 20 | | 36 | 7 | | 37 | 1 | | 38 | 35 | | 39 | 20 | | 40 | 20 | | 41 | 8 | | 42 | 34 | | 43 | 12 | | 44 | 3 | | 45 | 3 | | 46 | 25 | | 47 | 13 | | 48 | 24 | | 49 | 11 |
| |
| 38.10% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.3007518796992481 | | totalSentences | 133 | | uniqueOpeners | 40 | |
| 61.73% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 108 | | matches | | 0 | "Instead, a vast dome of" | | 1 | "Then she thought it was" |
| | ratio | 0.019 | |
| 94.07% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 108 | | matches | | 0 | "It was warm." | | 1 | "It had been warm for" | | 2 | "Their silhouette drank the last" | | 3 | "Their violet eyes were the" | | 4 | "It was a fall into" | | 5 | "She came out staggering, catching" | | 6 | "She looked up, and forgot" | | 7 | "It was warm to the" | | 8 | "She was hungry." | | 9 | "She hadn’t realized it until" | | 10 | "They turned their shadowed face" | | 11 | "They hung in clusters the" | | 12 | "They seemed to breathe—slow, rhythmic" | | 13 | "She pulled it out from" | | 14 | "She had never seen it" | | 15 | "She had no idea what" | | 16 | "Their voice was brittle." | | 17 | "She followed the line of" | | 18 | "It pulled, faint but constant," | | 19 | "Her hand was halfway to" |
| | ratio | 0.315 | |
| 38.70% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 91 | | totalSentences | 108 | | matches | | 0 | "The night had turned bitter" | | 1 | "Aurora Carter stood in an" | | 2 | "It was warm." | | 3 | "It had been warm for" | | 4 | "Nyx waited at the end" | | 5 | "Their silhouette drank the last" | | 6 | "Their violet eyes were the" | | 7 | "Nyx whispered, and the word" | | 8 | "Aurora looked, squinted, and then" | | 9 | "The shimmer was vertical, roughly" | | 10 | "A slow, enormous pulse, like" | | 11 | "Aurora stepped through because the" | | 12 | "The crossing was not a" | | 13 | "It was a fall into" | | 14 | "The cold reversed into heat." | | 15 | "The alley dissolved." | | 16 | "She came out staggering, catching" | | 17 | "She looked up, and forgot" | | 18 | "The light poured from everywhere" | | 19 | "It was warm to the" |
| | ratio | 0.843 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 108 | | matches | (empty) | | ratio | 0 | |
| 95.24% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 60 | | technicalSentenceCount | 4 | | matches | | 0 | "She came out staggering, catching her balance on a stone rail that was warm as living skin." | | 1 | "The smell alone seemed to feed her, smoothing the sharp edges of her stomach, blurring the outlines of her thought." | | 2 | "The trees bore fruit she had no names for—spirals that twisted out of their own stems, lantern-shaped things that glowed with a soft inner fire, spheres whose s…" | | 3 | "It ran slow and thick, a ribbon of liquid gold that caught the amber light so perfectly it looked like poured topaz." |
| |
| 86.54% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 1 | | matches | | 0 | "Nyx whispered, and the word arrived across the wind rather than through it" |
| |
| 70.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 2 | | fancyTags | | 0 | "Nyx whispered (whisper)" | | 1 | "Nyx murmured (murmur)" |
| | dialogueSentences | 25 | | tagDensity | 0.44 | | leniency | 0.88 | | rawRatio | 0.182 | | effectiveRatio | 0.16 | |