| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 12 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 26 | | tagDensity | 0.462 | | leniency | 0.923 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1370 | | 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) | |
| 56.20% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1370 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "shimmered" | | 1 | "pulsed" | | 2 | "whisper" | | 3 | "footfall" | | 4 | "resolved" | | 5 | "silence" | | 6 | "weight" | | 7 | "stomach" |
| |
| 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 | 79 | | matches | (empty) | |
| 70.52% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 4 | | narrationSentences | 79 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 93 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 57 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1352 | | ratio | 0 | | matches | (empty) | |
| 98.68% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 19 | | unquotedAttributions | 2 | | matches | | 0 | "The delivery driver—no, Rory corrected herself—she was not just that anymore." | | 1 | "Before her fingers made contact, Isolde spoke." |
| |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 71 | | wordCount | 1002 | | uniqueNames | 27 | | maxNameDensity | 1.9 | | worstName | "Rory" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Rory" | | discoveredNames | | Richmond | 2 | | Park | 2 | | December | 1 | | Heartstone | 2 | | Pendant | 1 | | Rory | 19 | | Half-Fae | 2 | | Dymas | 2 | | Yu-Fei | 1 | | Cheung | 1 | | Golden | 2 | | Empress | 2 | | Fae | 5 | | Isolde | 9 | | Hel | 2 | | Fae-touched | 1 | | Jennifer | 1 | | Carter | 1 | | Welsh | 1 | | Irish | 1 | | Cardiff | 1 | | Evan | 1 | | London | 1 | | Nyx | 5 | | Fae-forged | 1 | | Veil | 1 | | Eva | 3 |
| | persons | | 0 | "Rory" | | 1 | "Half-Fae" | | 2 | "Yu-Fei" | | 3 | "Cheung" | | 4 | "Fae" | | 5 | "Isolde" | | 6 | "Jennifer" | | 7 | "Carter" | | 8 | "Evan" | | 9 | "Nyx" | | 10 | "Veil" | | 11 | "Eva" |
| | places | | 0 | "Richmond" | | 1 | "Park" | | 2 | "Dymas" | | 3 | "Hel" | | 4 | "Cardiff" | | 5 | "London" |
| | globalScore | 0.552 | | windowScore | 0.5 | |
| 63.79% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 58 | | glossingSentenceCount | 2 | | matches | | 0 | "something like sorrow" | | 1 | "wind that seemed to come from all directions at once" |
| |
| 52.07% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.479 | | wordCount | 1352 | | matches | | 0 | "not of sweetness but of roast meat" | | 1 | "not the Veil's gentle distortion, but something denser, a tear being forced open" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 93 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 31 | | mean | 43.61 | | std | 31.05 | | cv | 0.712 | | sampleLengths | | 0 | 97 | | 1 | 56 | | 2 | 59 | | 3 | 94 | | 4 | 100 | | 5 | 3 | | 6 | 47 | | 7 | 14 | | 8 | 5 | | 9 | 6 | | 10 | 94 | | 11 | 22 | | 12 | 19 | | 13 | 65 | | 14 | 51 | | 15 | 72 | | 16 | 9 | | 17 | 49 | | 18 | 73 | | 19 | 64 | | 20 | 74 | | 21 | 23 | | 22 | 8 | | 23 | 3 | | 24 | 64 | | 25 | 29 | | 26 | 57 | | 27 | 8 | | 28 | 55 | | 29 | 11 | | 30 | 21 |
| |
| 91.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 3 | | totalSentences | 79 | | matches | | 0 | "been banished" | | 1 | "was borrowed" | | 2 | "being forced" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 162 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 9 | | totalSentences | 93 | | ratio | 0.097 | | matches | | 0 | "It pulsed, faint and warm, a crimson heartbeat against her sternum—thumbnail-sized, hung on silver chain, given to her by hands she never saw." | | 1 | "Wildflowers bloomed year-round in defiance of the calendar—bluebells and foxglove, wild garlic and something that smelled of cinnamon and smoke." | | 2 | "The delivery driver—no, Rory corrected herself—she was not just that anymore." | | 3 | "The sound came first as a hum, then resolved into music—no instruments, only tones that seemed to originate from the air itself, vibrating in Rory's teeth." | | 4 | "The standing stones of oak gave way to an inner ring of trees, their bark silver and smooth, leaves that chimed like glass when a breeze—impossible, this deep in stillness—moved through them." | | 5 | "In the grass, faint depressions led in a spiral toward the center of the grove, where a single stone altar stood, covered in moss that bloomed with tiny crimson flowers—the same color as the Heartstone." | | 6 | "And Isolde's gift—the blade, the vision, the truth spoken in riddles—had taught her that power was never given without cost." | | 7 | "Rory recognized the scent from the codex descriptions, from whispered stories of Hel's gluttony realm—sprawling vineyards, orchards that bore fruit out of season, master chefs who were souls bound by contract." | | 8 | "She turned to face the center of the grove, where the air had begun to shimmer with a different quality—not the Veil's gentle distortion, but something denser, a tear being forced open." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 575 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 16 | | adverbRatio | 0.02782608695652174 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.010434782608695653 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 93 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 93 | | mean | 14.54 | | std | 11.43 | | cv | 0.786 | | sampleLengths | | 0 | 33 | | 1 | 7 | | 2 | 20 | | 3 | 14 | | 4 | 23 | | 5 | 5 | | 6 | 23 | | 7 | 8 | | 8 | 20 | | 9 | 3 | | 10 | 20 | | 11 | 20 | | 12 | 5 | | 13 | 11 | | 14 | 5 | | 15 | 20 | | 16 | 30 | | 17 | 5 | | 18 | 15 | | 19 | 19 | | 20 | 15 | | 21 | 11 | | 22 | 40 | | 23 | 25 | | 24 | 6 | | 25 | 3 | | 26 | 3 | | 27 | 26 | | 28 | 12 | | 29 | 9 | | 30 | 7 | | 31 | 7 | | 32 | 5 | | 33 | 5 | | 34 | 1 | | 35 | 38 | | 36 | 56 | | 37 | 9 | | 38 | 8 | | 39 | 5 | | 40 | 14 | | 41 | 5 | | 42 | 3 | | 43 | 32 | | 44 | 8 | | 45 | 22 | | 46 | 11 | | 47 | 14 | | 48 | 26 | | 49 | 4 |
| |
| 60.22% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 4 | | diversityRatio | 0.3870967741935484 | | totalSentences | 93 | | uniqueOpeners | 36 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 71 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 14 | | totalSentences | 71 | | matches | | 0 | "She pulled her coat tighter," | | 1 | "It pulsed, faint and warm," | | 2 | "She stood at Rory's shoulder," | | 3 | "They moved between solid and" | | 4 | "It was more than a" | | 5 | "It was permission." | | 6 | "They moved deeper." | | 7 | "they said, their wind-whisper voice" | | 8 | "Her mother Jennifer Carter's voice" | | 9 | "She stepped toward the altar." | | 10 | "It did not force." | | 11 | "She placed her hand on" | | 12 | "It was slender, beautiful, and" | | 13 | "She turned to face the" |
| | ratio | 0.197 | |
| 65.63% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 56 | | totalSentences | 71 | | matches | | 0 | "The standing stones did not" | | 1 | "Rory paused before them, her" | | 2 | "She pulled her coat tighter," | | 3 | "It pulsed, faint and warm," | | 4 | "She stood at Rory's shoulder," | | 5 | "The Half-Fae left no footprints" | | 6 | "Rory stepped through." | | 7 | "Nyx followed, a silhouette of" | | 8 | "They moved between solid and" | | 9 | "Wildflowers bloomed year-round in defiance" | | 10 | "The sky above the clearing" | | 11 | "Rory tilted her head back." | | 12 | "Here, the color was borrowed," | | 13 | "Eva walked behind them, her" | | 14 | "The delivery driver—no, Rory corrected" | | 15 | "Rory was a part-time messenger" | | 16 | "It was more than a" | | 17 | "It was permission." | | 18 | "The sound came first as" | | 19 | "The wildflowers swayed in patterns" |
| | ratio | 0.789 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 71 | | matches | | 0 | "Before her fingers made contact," | | 1 | "Even through leather, she felt" |
| | ratio | 0.028 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 35 | | technicalSentenceCount | 7 | | matches | | 0 | "Wildflowers bloomed year-round in defiance of the calendar—bluebells and foxglove, wild garlic and something that smelled of cinnamon and smoke." | | 1 | "The sky above the clearing was wrong, a dome of deep amber rather than black, as though they had stepped into a room with a vaulted ceiling painted in sunset." | | 2 | "The standing stones of oak gave way to an inner ring of trees, their bark silver and smooth, leaves that chimed like glass when a breeze—impossible, this deep i…" | | 3 | "The crescent scar on her left wrist, a childhood accident she barely remembered, itched faintly, as if the air recognized old wounds." | | 4 | "In the grass, faint depressions led in a spiral toward the center of the grove, where a single stone altar stood, covered in moss that bloomed with tiny crimson…" | | 5 | "Nyx moved with her, their form shifting, solid enough to block a path if needed, incorporeal enough to slip through walls that were not walls at all." | | 6 | "Rory recognized the scent from the codex descriptions, from whispered stories of Hel's gluttony realm—sprawling vineyards, orchards that bore fruit out of seaso…" |
| |
| 83.33% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 12 | | uselessAdditionCount | 1 | | matches | | 0 | "Isolde turned, her ageless face serene and terrible" |
| |
| 73.08% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 2 | | fancyTags | | 0 | "Nyx whispered (whisper)" | | 1 | "Isolde corrected (correct)" |
| | dialogueSentences | 26 | | tagDensity | 0.423 | | leniency | 0.846 | | rawRatio | 0.182 | | effectiveRatio | 0.154 | |