| 97.44% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 25 | | adverbTagCount | 4 | | adverbTags | | 0 | "she said slowly [slowly]" | | 1 | "His voice cracked just [just]" | | 2 | "he said quietly [quietly]" | | 3 | "She glanced back [back]" |
| | dialogueSentences | 78 | | tagDensity | 0.321 | | leniency | 0.641 | | rawRatio | 0.16 | | effectiveRatio | 0.103 | |
| 85.62% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1739 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "slowly" | | 1 | "very" | | 2 | "slightly" |
| |
| 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) | |
| 79.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1739 | | totalAiIsms | 7 | | found | | | highlights | | 0 | "normalcy" | | 1 | "silence" | | 2 | "pounding" | | 3 | "traced" | | 4 | "charm" | | 5 | "could feel" | | 6 | "warmth" |
| |
| 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 | 110 | | matches | (empty) | |
| 77.92% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 4 | | narrationSentences | 110 | | filterMatches | | | hedgeMatches | | 0 | "tended to" | | 1 | "tried to" | | 2 | "began to" | | 3 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 162 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 45 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1725 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 28 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 951 | | uniqueNames | 8 | | maxNameDensity | 0.95 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Rory" | | discoveredNames | | Ptolemy | 4 | | Rory | 9 | | Lucien | 7 | | One | 1 | | Golden | 1 | | Empress | 1 | | Eva | 3 | | Tired | 3 |
| | persons | | 0 | "Ptolemy" | | 1 | "Rory" | | 2 | "Lucien" | | 3 | "Eva" |
| | places | (empty) | | globalScore | 1 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1725 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 162 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 84 | | mean | 20.54 | | std | 16.89 | | cv | 0.822 | | sampleLengths | | 0 | 8 | | 1 | 20 | | 2 | 43 | | 3 | 1 | | 4 | 1 | | 5 | 20 | | 6 | 70 | | 7 | 25 | | 8 | 9 | | 9 | 50 | | 10 | 28 | | 11 | 3 | | 12 | 32 | | 13 | 4 | | 14 | 3 | | 15 | 9 | | 16 | 39 | | 17 | 7 | | 18 | 19 | | 19 | 33 | | 20 | 5 | | 21 | 4 | | 22 | 7 | | 23 | 46 | | 24 | 6 | | 25 | 15 | | 26 | 21 | | 27 | 13 | | 28 | 6 | | 29 | 38 | | 30 | 11 | | 31 | 29 | | 32 | 8 | | 33 | 14 | | 34 | 21 | | 35 | 23 | | 36 | 16 | | 37 | 8 | | 38 | 44 | | 39 | 5 | | 40 | 5 | | 41 | 27 | | 42 | 31 | | 43 | 1 | | 44 | 50 | | 45 | 33 | | 46 | 4 | | 47 | 9 | | 48 | 54 | | 49 | 4 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 110 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 194 | | matches | | 0 | "was already stepping" | | 1 | "was pounding" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 11 | | semicolonCount | 1 | | flaggedSentences | 11 | | totalSentences | 162 | | ratio | 0.068 | | matches | | 0 | "Then the eyes—one amber, one black—watching her through the gap left by the chain on the door." | | 1 | "Plenty of fish in the sea, plenty of half-demons with ivory-handled canes and impeccable suits and that particular way of looking at a person—like they were a puzzle he intended to solve, piece by piece, whether she cooperated or not." | | 2 | "It always was—books stacked on every surface, scrolls pinned to the walls, research notes scattered across the kitchen table like fallen leaves." | | 3 | "That was Lucien—always watching, always learning, always three moves ahead of everyone else in the room." | | 4 | "His eyes met hers—amber and black, impossible and unbearably human." | | 5 | "\"Because whoever took her is someone you're connected to. Someone who knows your history.\" Lucien moved closer, and she could smell him—something expensive, something faintly dangerous, something that had haunted her dreams for months." | | 6 | "Even Ptolemy seemed to sense the shift; he sat down hard on the carpet, staring up at them with luminous cat eyes." | | 7 | "He had made decisions for her, kept her in the dark, left without explanation—all that infuriating, protective, half-demon nonsense that she could have lived her whole life without experiencing." | | 8 | "\"You don't know yet. But you will.\" He took her hand, and his skin was warm—warmer than a human's, she remembered." | | 9 | "He laughed—actually laughed, a surprised, delighted sound." | | 10 | "There was just this—two people, standing in a cramped flat above a curry house, ready to face whatever came next." |
| |
| 96.05% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 966 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.044513457556935816 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.011387163561076604 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 162 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 162 | | mean | 10.65 | | std | 9.52 | | cv | 0.894 | | sampleLengths | | 0 | 8 | | 1 | 3 | | 2 | 17 | | 3 | 6 | | 4 | 6 | | 5 | 3 | | 6 | 28 | | 7 | 1 | | 8 | 1 | | 9 | 10 | | 10 | 10 | | 11 | 6 | | 12 | 16 | | 13 | 5 | | 14 | 3 | | 15 | 40 | | 16 | 6 | | 17 | 19 | | 18 | 9 | | 19 | 4 | | 20 | 22 | | 21 | 24 | | 22 | 9 | | 23 | 1 | | 24 | 2 | | 25 | 16 | | 26 | 3 | | 27 | 12 | | 28 | 20 | | 29 | 4 | | 30 | 3 | | 31 | 3 | | 32 | 6 | | 33 | 25 | | 34 | 14 | | 35 | 7 | | 36 | 10 | | 37 | 9 | | 38 | 3 | | 39 | 14 | | 40 | 13 | | 41 | 2 | | 42 | 1 | | 43 | 5 | | 44 | 4 | | 45 | 3 | | 46 | 4 | | 47 | 4 | | 48 | 42 | | 49 | 6 |
| |
| 54.73% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 18 | | diversityRatio | 0.3950617283950617 | | totalSentences | 162 | | uniqueOpeners | 64 | |
| 75.76% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 88 | | matches | | 0 | "Then the suit." | | 1 | "Then the eyes—one amber, one" |
| | ratio | 0.023 | |
| 47.27% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 38 | | totalSentences | 88 | | matches | | 0 | "She should have checked the" | | 1 | "She knew better." | | 2 | "He said her full name" | | 3 | "She should have shut the" | | 4 | "Her body was already stepping" | | 5 | "He pushed inside before she" | | 6 | "It always was—books stacked on" | | 7 | "His eyes met hers—amber and" | | 8 | "She turned away." | | 9 | "She went to the kitchen," | | 10 | "She turned back around." | | 11 | "she said slowly" | | 12 | "She felt the color drain" | | 13 | "She tried to think back." | | 14 | "Her hands were steady." | | 15 | "She held up a hand" | | 16 | "She hadn't meant to say" | | 17 | "She stepped closer, close enough" | | 18 | "He said it simply, like" | | 19 | "She could hear it in" |
| | ratio | 0.432 | |
| 79.32% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 67 | | totalSentences | 88 | | matches | | 0 | "The first thing she noticed" | | 1 | "Rory's hand tightened on the" | | 2 | "She should have checked the" | | 3 | "She knew better." | | 4 | "He said her full name" | | 5 | "She should have shut the" | | 6 | "London was a big city." | | 7 | "Plenty of fish in the" | | 8 | "Her body was already stepping" | | 9 | "He pushed inside before she" | | 10 | "The flat was chaos." | | 11 | "It always was—books stacked on" | | 12 | "Eva's handwriting was everywhere, that" | | 13 | "Lucien looked around with the" | | 14 | "That was Lucien—always watching, always" | | 15 | "The cat had wound between" | | 16 | "The tabby's fur stood on" | | 17 | "Rory's throat tightened." | | 18 | "Lucien let Ptolemy sniff his" | | 19 | "His eyes met hers—amber and" |
| | ratio | 0.761 | |
| 56.82% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 88 | | matches | | 0 | "Even Ptolemy seemed to sense" |
| | ratio | 0.011 | |
| 93.60% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 29 | | technicalSentenceCount | 2 | | matches | | 0 | "Eva's handwriting was everywhere, that cramped scrawl Rory had known since childhood, mapping sigils and symbols and half-translated phrases from languages that…" | | 1 | "Tired of the dreams that featured amber and black eyes and whispered words in languages she didn't understand." |
| |
| 85.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 25 | | uselessAdditionCount | 2 | | matches | | 0 | "Lucien let, the cat's aggression slowly dissolving into grudging acceptance" | | 1 | "He took, and his skin was warm—warmer than a human's, she remembered" |
| |
| 85.90% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 14 | | fancyCount | 5 | | fancyTags | | 0 | "Lucien let (let)" | | 1 | "she repeated (repeat)" | | 2 | "she whispered (whisper)" | | 3 | "She faltered (falter)" | | 4 | "she admitted (admit)" |
| | dialogueSentences | 78 | | tagDensity | 0.179 | | leniency | 0.359 | | rawRatio | 0.357 | | effectiveRatio | 0.128 | |