| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 10 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 30 | | tagDensity | 0.333 | | leniency | 0.667 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1324 | | 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) | |
| 54.68% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1324 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "shattered" | | 1 | "sense of" | | 2 | "racing" | | 3 | "lilt" | | 4 | "reminder" | | 5 | "silence" | | 6 | "raced" | | 7 | "scanned" | | 8 | "glinting" | | 9 | "charged" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 3 | | maxInWindow | 2 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
| | 1 | | label | "jaw/fists clenched" | | count | 2 |
|
| | highlights | | 0 | "eyes narrowed" | | 1 | "fist clenched" | | 2 | "fists clenched" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 50 | | matches | | |
| 85.71% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 50 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 70 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 53 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1300 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 14 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 47 | | wordCount | 919 | | uniqueNames | 11 | | maxNameDensity | 1.31 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 4 | | Lucien | 12 | | London | 1 | | Cardiff | 7 | | Ptolemy | 3 | | Rory | 12 | | French | 1 | | Evan | 4 | | Golden | 1 | | Empress | 1 | | Avaros | 1 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Ptolemy" | | 3 | "Rory" | | 4 | "Evan" |
| | places | | 0 | "London" | | 1 | "Cardiff" | | 2 | "Golden" |
| | globalScore | 0.847 | | windowScore | 0.833 | |
| 89.02% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 41 | | glossingSentenceCount | 1 | | matches | | 0 | "sounded like they came from a realm far aw" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1300 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 70 | | matches | | |
| 76.19% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 19 | | mean | 68.42 | | std | 28.51 | | cv | 0.417 | | sampleLengths | | 0 | 54 | | 1 | 71 | | 2 | 26 | | 3 | 60 | | 4 | 78 | | 5 | 165 | | 6 | 78 | | 7 | 84 | | 8 | 62 | | 9 | 57 | | 10 | 77 | | 11 | 79 | | 12 | 28 | | 13 | 64 | | 14 | 76 | | 15 | 50 | | 16 | 91 | | 17 | 48 | | 18 | 52 |
| |
| 91.23% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 50 | | matches | | 0 | "was trapped" | | 1 | "was blocked" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 146 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 70 | | ratio | 0.114 | | matches | | 0 | "He rested one hand on his ivory-handled cane, the other tucked into his suit pocket, and his heterochromatic eyes—one amber, one black—locked on hers." | | 1 | "The door clicked shut behind him, and she reached for the nearest scroll knife—its handle wrapped in worn red thread, Eva’s old gift—resting on a side table." | | 2 | "“Evan made a deal with them,” Lucien said, his voice low and precise—his French accent peeking through when he was tense." | | 3 | "She caught it, her fingers brushing the cold, rain-smudged paper—it was a delivery receipt from Golden Empress restaurant, her workplace, with a note scrawled in Evan’s messy handwriting: I’m watching you." | | 4 | "Rory’s breath caught—she’d been reading that scroll that morning, trying to make sense of Eva’s notes about demon deals that trapped humans in eternal servitude." | | 5 | "Rory glanced at the door, her heart racing—she’d locked all three deadbolts when Lucien came in, but the bangs made the frame creak." | | 6 | "The paper dust in the air made her eyes water, and she blinked away tears as she scanned the room for an exit—only to see the fire escape was blocked by a stack of books twice her height." | | 7 | "Lucien drew his cane’s blade—thin, silver, glinting in the streetlight—and stepped toward the window, his voice low: “Stay back.”" |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 938 | | adjectiveStacks | 2 | | stackExamples | | 0 | "old rectangular brown leather" | | 1 | "cold, rain-smudged paper—" |
| | adverbCount | 13 | | adverbRatio | 0.013859275053304905 | | lyAdverbCount | 1 | | lyAdverbRatio | 0.0010660980810234541 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 70 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 70 | | mean | 18.57 | | std | 11.37 | | cv | 0.612 | | sampleLengths | | 0 | 11 | | 1 | 24 | | 2 | 19 | | 3 | 18 | | 4 | 24 | | 5 | 29 | | 6 | 4 | | 7 | 1 | | 8 | 5 | | 9 | 10 | | 10 | 1 | | 11 | 5 | | 12 | 14 | | 13 | 19 | | 14 | 27 | | 15 | 45 | | 16 | 14 | | 17 | 19 | | 18 | 21 | | 19 | 15 | | 20 | 8 | | 21 | 28 | | 22 | 8 | | 23 | 16 | | 24 | 20 | | 25 | 4 | | 26 | 45 | | 27 | 5 | | 28 | 53 | | 29 | 20 | | 30 | 4 | | 31 | 6 | | 32 | 31 | | 33 | 9 | | 34 | 34 | | 35 | 16 | | 36 | 31 | | 37 | 15 | | 38 | 6 | | 39 | 20 | | 40 | 6 | | 41 | 25 | | 42 | 18 | | 43 | 34 | | 44 | 25 | | 45 | 14 | | 46 | 15 | | 47 | 23 | | 48 | 27 | | 49 | 5 |
| |
| 62.38% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 3 | | diversityRatio | 0.4 | | totalSentences | 70 | | uniqueOpeners | 28 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 44 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 9 | | totalSentences | 44 | | matches | | 0 | "She’d been fumbling with the" | | 1 | "His slicked-back platinum blond hair" | | 2 | "He rested one hand on" | | 3 | "She stepped back, but Lucien" | | 4 | "He rested his hand on" | | 5 | "She’d spent months ignoring the" | | 6 | "She’d written them off as" | | 7 | "She caught it, her fingers" | | 8 | "She’d fled Cardiff to escape" |
| | ratio | 0.205 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 43 | | totalSentences | 44 | | matches | | 0 | "Rory wrenched the third deadbolt" | | 1 | "She’d been fumbling with the" | | 2 | "Curry fumes from the basement" | | 3 | "His slicked-back platinum blond hair" | | 4 | "He rested one hand on" | | 5 | "Sandalwood and bergamot cologne cut" | | 6 | "Rory’s fist clenched, the crescent" | | 7 | "She stepped back, but Lucien" | | 8 | "The door clicked shut behind" | | 9 | "Eva’s flat crammed around them:" | | 10 | "Paper dust tickled Rory’s throat," | | 11 | "The curry fumes grew thicker," | | 12 | "Lucien said, his voice low" | | 13 | "He rested his hand on" | | 14 | "Rory’s bright blue eyes narrowed." | | 15 | "She’d spent months ignoring the" | | 16 | "She’d written them off as" | | 17 | "Lucien pulled a crumpled piece" | | 18 | "She caught it, her fingers" | | 19 | "The ink smudged where rain" |
| | ratio | 0.977 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 44 | | matches | (empty) | | ratio | 0 | |
| 65.64% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 4 | | matches | | 0 | "She’d spent months ignoring the odd occurrences: Evan’s sudden bursts of inhuman strength that left bruises on her arms that wouldn’t fade for weeks, the shadow…" | | 1 | "She caught it, her fingers brushing the cold, rain-smudged paper—it was a delivery receipt from Golden Empress restaurant, her workplace, with a note scrawled i…" | | 2 | "The vase shattered on the floor, its shards scattering over the research notes, and the ink spilled onto a scroll about Avaros demons, making the black symbols …" | | 3 | "She’d fled Cardiff to escape Evan’s fists, but now she was trapped in a cramped flat above a curry house, with a half-demon she didn’t trust and goons who wante…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 10 | | uselessAdditionCount | 2 | | matches | | 0 | "A rough voice yelled, its Cardiff lilt sharp with malice:" | | 1 | "Rory said, her voice tight with frustration" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 1 | | fancyTags | | 0 | "A rough voice yelled (yell)" |
| | dialogueSentences | 30 | | tagDensity | 0.3 | | leniency | 0.6 | | rawRatio | 0.111 | | effectiveRatio | 0.067 | |