| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 8 | | adverbTagCount | 1 | | adverbTags | | 0 | "She pulled back [back]" |
| | dialogueSentences | 87 | | tagDensity | 0.092 | | leniency | 0.184 | | rawRatio | 0.125 | | effectiveRatio | 0.023 | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1533 | | 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) | |
| 64.12% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1533 | | totalAiIsms | 11 | | found | | 0 | | | 1 | | word | "the last thing" | | count | 1 |
| | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | |
| | highlights | | 0 | "echoed" | | 1 | "the last thing" | | 2 | "fractured" | | 3 | "silence" | | 4 | "pulse" | | 5 | "could feel" | | 6 | "warmth" | | 7 | "footsteps" | | 8 | "traced" |
| |
| 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 | 80 | | matches | | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 80 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 158 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 68 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1521 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 89.11% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 26 | | wordCount | 739 | | uniqueNames | 8 | | maxNameDensity | 1.22 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 1 | | Moreau | 1 | | Golden | 1 | | Empress | 1 | | Lucien | 9 | | French | 1 | | Rory | 7 | | Ptolemy | 5 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Rory" | | 4 | "Ptolemy" |
| | places | (empty) | | globalScore | 0.891 | | windowScore | 1 | |
| 45.83% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 48 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like old paper and the curry from" | | 1 | "looked like it cost him something" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1521 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 158 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 107 | | mean | 14.21 | | std | 15.1 | | cv | 1.063 | | sampleLengths | | 0 | 17 | | 1 | 22 | | 2 | 49 | | 3 | 2 | | 4 | 4 | | 5 | 1 | | 6 | 24 | | 7 | 4 | | 8 | 7 | | 9 | 49 | | 10 | 4 | | 11 | 1 | | 12 | 10 | | 13 | 6 | | 14 | 16 | | 15 | 2 | | 16 | 52 | | 17 | 10 | | 18 | 6 | | 19 | 3 | | 20 | 4 | | 21 | 18 | | 22 | 6 | | 23 | 26 | | 24 | 7 | | 25 | 33 | | 26 | 9 | | 27 | 23 | | 28 | 3 | | 29 | 3 | | 30 | 27 | | 31 | 3 | | 32 | 21 | | 33 | 7 | | 34 | 7 | | 35 | 42 | | 36 | 31 | | 37 | 3 | | 38 | 29 | | 39 | 6 | | 40 | 21 | | 41 | 11 | | 42 | 25 | | 43 | 5 | | 44 | 2 | | 45 | 15 | | 46 | 4 | | 47 | 45 | | 48 | 4 | | 49 | 7 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 80 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 137 | | matches | | 0 | "was deafening" | | 1 | "wasn't looking" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 10 | | semicolonCount | 0 | | flaggedSentences | 8 | | totalSentences | 158 | | ratio | 0.051 | | matches | | 0 | "Rory pulled the door open and the words she'd prepared for Eva—about the takeaway she'd brought, about the rain—died in her throat." | | 1 | "His attention tracked down the length of her—damp hair from the rain, the Golden Empress jacket she hadn't bothered to remove, her bare feet on the cold linoleum." | | 2 | "The careful mask he wore—the one she'd spent weeks learning to read, months ago—slipped for just a moment." | | 3 | "The memory surfaced anyway—the blood on her hands, his blood, the way he'd shoved her behind him when the thing came through the summoning circle." | | 4 | "Lucien had closed the distance between them without her hearing him move, and now he stood close enough that she could smell his cologne—something expensive, something French, something she'd spent too many nights memorising." | | 5 | "His pulse jumped beneath her fingers—too fast for someone who made a living being unshakeable." | | 6 | "His mismatched eyes lifted to meet hers, and she saw something raw there—something she'd only caught glimpses of before, in moments when he thought she wasn't looking." | | 7 | "The smile that broke across his face was unlike anything she'd seen from him before—unguarded, relieved, almost young." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 750 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 26 | | adverbRatio | 0.034666666666666665 | | lyAdverbCount | 4 | | lyAdverbRatio | 0.005333333333333333 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 158 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 158 | | mean | 9.63 | | std | 10.14 | | cv | 1.053 | | sampleLengths | | 0 | 4 | | 1 | 3 | | 2 | 10 | | 3 | 22 | | 4 | 36 | | 5 | 9 | | 6 | 4 | | 7 | 2 | | 8 | 4 | | 9 | 1 | | 10 | 13 | | 11 | 11 | | 12 | 4 | | 13 | 7 | | 14 | 4 | | 15 | 28 | | 16 | 17 | | 17 | 4 | | 18 | 1 | | 19 | 10 | | 20 | 6 | | 21 | 7 | | 22 | 9 | | 23 | 2 | | 24 | 7 | | 25 | 3 | | 26 | 19 | | 27 | 5 | | 28 | 7 | | 29 | 11 | | 30 | 10 | | 31 | 6 | | 32 | 3 | | 33 | 4 | | 34 | 8 | | 35 | 10 | | 36 | 6 | | 37 | 5 | | 38 | 13 | | 39 | 8 | | 40 | 7 | | 41 | 24 | | 42 | 9 | | 43 | 9 | | 44 | 5 | | 45 | 18 | | 46 | 3 | | 47 | 3 | | 48 | 27 | | 49 | 3 |
| |
| 39.87% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.22151898734177214 | | totalSentences | 158 | | uniqueOpeners | 35 | |
| 45.66% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 73 | | matches | | | ratio | 0.014 | |
| 83.01% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 25 | | totalSentences | 73 | | matches | | 0 | "His amber eye caught the" | | 1 | "He didn't answer immediately." | | 2 | "His attention tracked down the" | | 3 | "He stepped forward without waiting" | | 4 | "She stepped back." | | 5 | "He was inside now, the" | | 6 | "He repeated the word like" | | 7 | "His hands curled into fists" | | 8 | "His voice dropped" | | 9 | "His voice fractured." | | 10 | "His shoulders rose and fell" | | 11 | "He reached for his cane." | | 12 | "His pulse jumped beneath her" | | 13 | "He stared at her hand" | | 14 | "She could feel the warmth" | | 15 | "His mismatched eyes lifted to" | | 16 | "His fingers brushed her jaw," | | 17 | "His thumb traced the line" | | 18 | "She felt the tremor in" | | 19 | "She could feel her own" |
| | ratio | 0.342 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 72 | | totalSentences | 73 | | matches | | 0 | "The first deadbolt thunked." | | 1 | "The second followed." | | 2 | "The third required more force," | | 3 | "Rory pulled the door open" | | 4 | "Lucien Moreau leaned against the" | | 5 | "His amber eye caught the" | | 6 | "The black one didn't." | | 7 | "Ptolemy wound between her ankles," | | 8 | "Lucien's gaze dropped to the" | | 9 | "He didn't answer immediately." | | 10 | "His attention tracked down the" | | 11 | "The scar on her left" | | 12 | "A laugh escaped him, short" | | 13 | "He stepped forward without waiting" | | 14 | "She stepped back." | | 15 | "He was inside now, the" | | 16 | "Books towered on every surface." | | 17 | "Scrolls peeked from beneath stacked" | | 18 | "The air smelled like old" | | 19 | "Lucien surveyed the chaos with" |
| | ratio | 0.986 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 73 | | matches | (empty) | | ratio | 0 | |
| 57.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 25 | | technicalSentenceCount | 3 | | matches | | 0 | "He was inside now, the door falling shut behind him with a click that echoed through the cramped flat." | | 1 | "His shoulders rose and fell with a breath that looked like it cost him something." | | 2 | "His pulse jumped beneath her fingers—too fast for someone who made a living being unshakeable." |
| |
| 62.50% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 8 | | uselessAdditionCount | 1 | | matches | | 0 | "Lucien set, the ivory handle catching the dim light" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 1 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 87 | | tagDensity | 0.011 | | leniency | 0.023 | | rawRatio | 1 | | effectiveRatio | 0.023 | |