| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 2 | | adverbTags | | 0 | "Nyx said quietly [quietly]" | | 1 | "Isolde said simply [simply]" |
| | dialogueSentences | 42 | | tagDensity | 0.571 | | leniency | 1 | | rawRatio | 0.083 | | effectiveRatio | 0.083 | |
| 86.80% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1515 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "gently" | | 1 | "utterly" | | 2 | "slightly" | | 3 | "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) | |
| 83.50% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1515 | | totalAiIsms | 5 | | found | | | highlights | | 0 | "stomach" | | 1 | "warmth" | | 2 | "measured" | | 3 | "pulsed" | | 4 | "flicked" |
| |
| 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 | 83 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 83 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 101 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 48 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1495 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 21 | | unquotedAttributions | 0 | | matches | (empty) | |
| 33.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 45 | | wordCount | 1169 | | uniqueNames | 9 | | maxNameDensity | 1.71 | | worstName | "Rory" | | maxWindowNameDensity | 4 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 2 | | Nyx | 11 | | Cheung | 1 | | Rory | 20 | | Veil | 1 | | Isolde | 6 | | December | 1 | | Fae | 1 |
| | persons | | 0 | "Nyx" | | 1 | "Cheung" | | 2 | "Rory" | | 3 | "Isolde" | | 4 | "Fae" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "December" |
| | globalScore | 0.645 | | windowScore | 0.333 | |
| 8.49% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 53 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like a hole cut in the world" | | 1 | "something like rain on hot stone" | | 2 | "led by the Fae apparently felt exactly like b" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.669 | | wordCount | 1495 | | matches | | 0 | "no longer midnight but" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 101 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 41 | | mean | 36.46 | | std | 30.39 | | cv | 0.833 | | sampleLengths | | 0 | 25 | | 1 | 92 | | 2 | 41 | | 3 | 58 | | 4 | 14 | | 5 | 13 | | 6 | 53 | | 7 | 5 | | 8 | 36 | | 9 | 97 | | 10 | 12 | | 11 | 4 | | 12 | 80 | | 13 | 13 | | 14 | 104 | | 15 | 10 | | 16 | 17 | | 17 | 43 | | 18 | 4 | | 19 | 2 | | 20 | 55 | | 21 | 55 | | 22 | 90 | | 23 | 4 | | 24 | 27 | | 25 | 10 | | 26 | 76 | | 27 | 4 | | 28 | 36 | | 29 | 14 | | 30 | 69 | | 31 | 9 | | 32 | 13 | | 33 | 58 | | 34 | 45 | | 35 | 58 | | 36 | 10 | | 37 | 61 | | 38 | 4 | | 39 | 6 | | 40 | 68 |
| |
| 92.58% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 83 | | matches | | 0 | "been green" | | 1 | "being misled" | | 2 | "being answered" | | 3 | "been measured" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 200 | | matches | | 0 | "was standing" | | 1 | "was, walking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 19 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 101 | | ratio | 0.139 | | matches | | 0 | "The frost had taken Richmond Park by the throat, and Nyx moved through the killing field of white like a debt collector—unhurried, certain, and unwelcome." | | 1 | "\"There.\" Nyx's voice arrived the way wind arrives through a letterbox—thin, cold, and from somewhere it had no business being." | | 2 | "Someone—or something—had arranged them in a ring generations before anyone thought to write anything down." | | 3 | "Not the deep, furnace-beat it gave off near real trouble—this was a flutter, the way a bird goes still and then doesn't." | | 4 | "The gap between two of the oaks was barely wider than her shoulders, and beyond it the darkness looked wrong—denser, like the space on the other side had more darkness in it than the space she was standing in." | | 5 | "Just a single stride where the air changed temperature against her face, where the crunch of frost underfoot became the give of soft moss, and the smell of dead winter became—she inhaled, disbelieving—honeysuckle and warm earth and something like rain on hot stone." | | 6 | "Wildflowers ran to the treeline in every direction—violet and white and a blue so saturated it looked wet—and the light was wrong in the most beautiful way: a silver-green luminance with no visible source, as though the air itself had been gently lit from within." | | 7 | "Not slow, not fogged—stopped, the second hand twitching against the twelve like an insect on its back." | | 8 | "The flowers parted for them—not literally, though Rory watched a patch of white blossoms tilt their faces as Nyx passed, tracking the shadow the way sunflowers track the sun." | | 9 | "The pendant had gone from fluttering to a steady, low warmth, and the deeper they walked, the more she felt it—not pulling, exactly." | | 10 | "A woman stood at the pool's far edge—silver hair falling to her waist, pale lavender eyes that seemed to hold more light than the clearing did." | | 11 | "The seer glided—there was no other word—around the pool's edge until she stood before Rory, close enough that Rory could see her pupils were the color of dawn." | | 12 | "The pendant against her chest pulsed once—deep, deliberate—and went quiet, as if the two artifacts had acknowledged each other across the border of her body." | | 13 | "Then she followed Nyx between the stones, the blade's cold seeping through her jacket like a second heartbeat, and stepped out into a Richmond Park that was no longer midnight but grey, cold dawn—and the frost, she noticed, had melted only where she stood." |
| |
| 95.43% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1194 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 54 | | adverbRatio | 0.04522613065326633 | | lyAdverbCount | 18 | | lyAdverbRatio | 0.01507537688442211 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 101 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 101 | | mean | 14.8 | | std | 11.29 | | cv | 0.763 | | sampleLengths | | 0 | 25 | | 1 | 19 | | 2 | 7 | | 3 | 30 | | 4 | 36 | | 5 | 20 | | 6 | 19 | | 7 | 2 | | 8 | 4 | | 9 | 24 | | 10 | 15 | | 11 | 15 | | 12 | 5 | | 13 | 9 | | 14 | 7 | | 15 | 6 | | 16 | 9 | | 17 | 22 | | 18 | 22 | | 19 | 5 | | 20 | 22 | | 21 | 14 | | 22 | 6 | | 23 | 39 | | 24 | 19 | | 25 | 7 | | 26 | 8 | | 27 | 18 | | 28 | 12 | | 29 | 4 | | 30 | 6 | | 31 | 43 | | 32 | 3 | | 33 | 28 | | 34 | 13 | | 35 | 11 | | 36 | 45 | | 37 | 29 | | 38 | 11 | | 39 | 2 | | 40 | 6 | | 41 | 4 | | 42 | 6 | | 43 | 11 | | 44 | 6 | | 45 | 4 | | 46 | 17 | | 47 | 4 | | 48 | 18 | | 49 | 4 |
| |
| 61.72% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.43564356435643564 | | totalSentences | 101 | | uniqueOpeners | 44 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 69 | | matches | | 0 | "Just a single stride where" | | 1 | "Somewhere a bird sang three" | | 2 | "Then again, patient as a" | | 3 | "Then she followed Nyx between" |
| | ratio | 0.058 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 69 | | matches | | 0 | "Her breath came out in" | | 1 | "Her trainers crunched through rime-crusted" | | 2 | "They raised one elongated arm," | | 3 | "She pressed her palm flat" | | 4 | "She thought of the Veil," | | 5 | "she muttered, and stepped through" | | 6 | "Her ears popped." | | 7 | "They stood in a clearing" | | 8 | "She tapped the face." | | 9 | "They moved deeper." | | 10 | "She made herself stop checking." | | 11 | "She was small, ethereal, dressed" | | 12 | "She turned those lavender eyes" | | 13 | "She held it out across" | | 14 | "Her gaze flicked to Nyx," |
| | ratio | 0.217 | |
| 90.43% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 51 | | totalSentences | 69 | | matches | | 0 | "The frost had taken Richmond" | | 1 | "Rory followed the shadow's violet" | | 2 | "Her breath came out in" | | 3 | "Her trainers crunched through rime-crusted" | | 4 | "Nyx's voice arrived the way" | | 5 | "They raised one elongated arm," | | 6 | "Rory saw them then." | | 7 | "Someone—or something—had arranged them in" | | 8 | "Lichen glowed faintly along their" | | 9 | "The nearer she walked, the" | | 10 | "She pressed her palm flat" | | 11 | "The shadow had gone oddly" | | 12 | "Rory stopped at the ring's" | | 13 | "The gap between two of" | | 14 | "She thought of the Veil," | | 15 | "The winter solstice was nine" | | 16 | "The barrier between worlds was" | | 17 | "she muttered, and stepped through" | | 18 | "The world turned over." | | 19 | "Her ears popped." |
| | ratio | 0.739 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 69 | | matches | | 0 | "Now she had a pendant" | | 1 | "As if the ground had" |
| | ratio | 0.029 | |
| 20.41% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 35 | | technicalSentenceCount | 6 | | matches | | 0 | "Her trainers crunched through rime-crusted grass that had been green the last time she'd walked here, in some other lifetime when her biggest problem was a late…" | | 1 | "Wildflowers ran to the treeline in every direction—violet and white and a blue so saturated it looked wet—and the light was wrong in the most beautiful way: a s…" | | 2 | "At the clearing's heart the ground dipped into a shallow bowl where a pool lay black and utterly still, reflecting a sky that was not the one above them." | | 3 | "From the grey folds of her dress she drew a blade: slender, leaf-shaped, its metal drinking the clearing's light and giving back a faint luminescence, like moon…" | | 4 | "The pendant against her chest pulsed once—deep, deliberate—and went quiet, as if the two artifacts had acknowledged each other across the border of her body." | | 5 | "Then she followed Nyx between the stones, the blade's cold seeping through her jacket like a second heartbeat, and stepped out into a Richmond Park that was no …" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 78.57% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 3 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "she breathed (breathe)" | | 2 | "Isolde agreed (agree)" |
| | dialogueSentences | 42 | | tagDensity | 0.405 | | leniency | 0.81 | | rawRatio | 0.176 | | effectiveRatio | 0.143 | |