| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 24 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 63 | | tagDensity | 0.381 | | leniency | 0.762 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.50% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2308 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "really" | | 1 | "slowly" | | 2 | "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) | |
| 71.84% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2308 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "weight" | | 1 | "traced" | | 2 | "footsteps" | | 3 | "measured" | | 4 | "silence" | | 5 | "warmth" | | 6 | "stomach" | | 7 | "could feel" | | 8 | "charm" |
| |
| 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 | 124 | | matches | (empty) | |
| 96.77% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 124 | | filterMatches | | | hedgeMatches | | 0 | "managed to" | | 1 | "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 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 59 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 4 | | totalWords | 2284 | | ratio | 0.002 | | matches | | 0 | "you" | | 1 | "not thinking about." |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 1 | | matches | | 0 | "With her, he spoke the way he actually thought, which was fast and precise and in a register that seemed to bypass her e…" |
| |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 38 | | wordCount | 1764 | | uniqueNames | 13 | | maxNameDensity | 0.45 | | worstName | "Eva" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Eva" | | discoveredNames | | Eva | 8 | | Rory | 7 | | Brick | 2 | | Lane | 2 | | London | 3 | | English | 1 | | East | 1 | | Lucien | 3 | | Moreau | 1 | | Sauternes | 2 | | Ptolemy | 5 | | French | 2 | | Rain | 1 |
| | persons | | 0 | "Eva" | | 1 | "Rory" | | 2 | "Lucien" | | 3 | "Moreau" | | 4 | "Ptolemy" | | 5 | "Rain" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "London" | | 3 | "East" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 6 | | matches | | 0 | "towers that seemed to defy the laws of physics" | | 1 | "sounded like a complete sentence" | | 2 | "register that seemed to bypass her ears entirely and land somewhere behind her ribs" | | 3 | "quite a smile—a twitch at the corner, an acknowledgment of his own audacity" | | 4 | "felt like an afterthought now, a formal" | | 5 | "felt like the only thing that would kee" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 2284 | | 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 | 65 | | mean | 35.14 | | std | 38.61 | | cv | 1.099 | | sampleLengths | | 0 | 120 | | 1 | 126 | | 2 | 28 | | 3 | 5 | | 4 | 80 | | 5 | 3 | | 6 | 30 | | 7 | 88 | | 8 | 30 | | 9 | 5 | | 10 | 16 | | 11 | 7 | | 12 | 4 | | 13 | 69 | | 14 | 112 | | 15 | 6 | | 16 | 2 | | 17 | 7 | | 18 | 54 | | 19 | 33 | | 20 | 29 | | 21 | 6 | | 22 | 93 | | 23 | 56 | | 24 | 24 | | 25 | 68 | | 26 | 88 | | 27 | 13 | | 28 | 2 | | 29 | 108 | | 30 | 2 | | 31 | 5 | | 32 | 4 | | 33 | 106 | | 34 | 13 | | 35 | 2 | | 36 | 22 | | 37 | 39 | | 38 | 2 | | 39 | 6 | | 40 | 11 | | 41 | 7 | | 42 | 48 | | 43 | 6 | | 44 | 2 | | 45 | 53 | | 46 | 4 | | 47 | 2 | | 48 | 3 | | 49 | 138 |
| |
| 93.94% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 124 | | matches | | 0 | "been surprised" | | 1 | "were chipped" | | 2 | "been invaded" | | 3 | "was honeyed" |
| |
| 80.53% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 279 | | matches | | 0 | "was being" | | 1 | "was holding" | | 2 | "was doing" | | 3 | "was translating" | | 4 | "was beating" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 21 | | semicolonCount | 0 | | flaggedSentences | 15 | | totalSentences | 162 | | ratio | 0.093 | | matches | | 0 | "Aurora's fingers were stiff from hours hunched over Eva's research notes, and the second lock caught the way it always did—you had to lift while turning, a trick Eva had never bothered to explain, only demonstrated with an impatient flick of her wrist whenever Rory fumbled it." | | 1 | "Eva had asked her to watch the cat—just for the weekend, she'd said, which in Eva's vocabulary meant somewhere between four days and two weeks—and Rory had said yes because saying no to Eva had never been a skill she'd managed to acquire." | | 2 | "His heterochromatic eyes—one amber, one black—found hers with the precision of a man who had been planning this moment for longer than the walk up the stairs." | | 3 | "She became aware of it—the crescent scar on her left wrist catching the hallway light, her fingers white-knuckled on the frame." | | 4 | "He was good at that—waiting." | | 5 | "This was something rawer underneath, held in check by the same impeccable control he applied to everything—the suit, the cane with its concealed blade, the French accent that softened and sharpened depending on his audience." | | 6 | "His lips did something that wasn't quite a smile—a twitch at the corner, an acknowledgment of his own audacity." | | 7 | "He was not a large man—five-eleven, lean, built like a rapier—but he had a presence that bent rooms toward him, a gravity that had nothing to do with his half-demon heritage and everything to do with the way he occupied space." | | 8 | "He found the glasses without asking—the ones on the second shelf, not the first, because the first shelf glasses were chipped and he'd always been particular about stemware." | | 9 | "His black eye and his amber eye caught the light differently—one swallowed it, one reflected it back." | | 10 | "It was small—a loosening around the jaw, a fractional change in the architecture of his face." | | 11 | "And she knew what it meant when the mask slipped for half a second and she caught a glimpse of the thing underneath—something startled and unguarded and almost angry, as if her presence here had cracked something open that he'd spent considerable effort sealing shut." | | 12 | "She could see the way the fluorescent light above the stove carved shadows under his cheekbones, the way his hand rested on the ivory handle of his cane with a stillness that wasn't relaxed—it was controlled." | | 13 | "Both eyes, amber and black, focused and unblinking, and for a moment the control slipped again and she saw it—the wanting, plain and unadorned, naked in his face for exactly one second before he locked it away." | | 14 | "\"I'm here because I can't stop thinking about you, and it's become professionally embarrassing.\" He said it with the same tone he used to discuss information caches and supernatural territories and the price of favors in London's underworld—matter-of-fact, stripped of ornament, as if the admission of it required the same pragmatic clarity as any other transaction." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1790 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 55 | | adverbRatio | 0.030726256983240222 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.0067039106145251395 | |
| 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 | 14.1 | | std | 13.17 | | cv | 0.934 | | sampleLengths | | 0 | 9 | | 1 | 47 | | 2 | 30 | | 3 | 34 | | 4 | 7 | | 5 | 43 | | 6 | 5 | | 7 | 5 | | 8 | 31 | | 9 | 35 | | 10 | 4 | | 11 | 4 | | 12 | 20 | | 13 | 5 | | 14 | 46 | | 15 | 7 | | 16 | 27 | | 17 | 3 | | 18 | 3 | | 19 | 11 | | 20 | 16 | | 21 | 7 | | 22 | 21 | | 23 | 5 | | 24 | 2 | | 25 | 29 | | 26 | 4 | | 27 | 7 | | 28 | 13 | | 29 | 5 | | 30 | 25 | | 31 | 5 | | 32 | 8 | | 33 | 8 | | 34 | 7 | | 35 | 4 | | 36 | 11 | | 37 | 7 | | 38 | 25 | | 39 | 3 | | 40 | 23 | | 41 | 2 | | 42 | 5 | | 43 | 28 | | 44 | 6 | | 45 | 35 | | 46 | 5 | | 47 | 31 | | 48 | 6 | | 49 | 2 |
| |
| 41.98% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 27 | | diversityRatio | 0.35185185185185186 | | totalSentences | 162 | | uniqueOpeners | 57 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 4 | | totalSentences | 111 | | matches | | 0 | "Instead, she got Lucien Moreau." | | 1 | "Just her name." | | 2 | "Just his voice." | | 3 | "Just the man underneath all" |
| | ratio | 0.036 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 63 | | totalSentences | 111 | | matches | | 0 | "She shouldn't have been here" | | 1 | "It had been nine days." | | 2 | "She opened the door expecting" | | 3 | "He stood in the narrow" | | 4 | "His heterochromatic eyes—one amber, one" | | 5 | "Her hand was still on" | | 6 | "She became aware of it—the" | | 7 | "She should have been surprised." | | 8 | "She should close the door." | | 9 | "She should close the door" | | 10 | "He held up the bottle" | | 11 | "She hadn't thought." | | 12 | "She'd simply moved toward the" | | 13 | "He was good at that—waiting." | | 14 | "It was part of his" | | 15 | "He tilted his head" | | 16 | "She stared at him." | | 17 | "His lips did something that" | | 18 | "He knew exactly what he" | | 19 | "He always did." |
| | ratio | 0.568 | |
| 32.07% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 95 | | totalSentences | 111 | | matches | | 0 | "The triple deadbolt took longer" | | 1 | "Aurora's fingers were stiff from" | | 2 | "Ptolemy had been asleep on" | | 3 | "She shouldn't have been here" | | 4 | "Eva had asked her to" | | 5 | "It had been nine days." | | 6 | "The flat was even more" | | 7 | "Rory had carved out a" | | 8 | "The third lock turned." | | 9 | "The chain slid free." | | 10 | "She opened the door expecting" | | 11 | "He stood in the narrow" | | 12 | "Water traced the line of" | | 13 | "His heterochromatic eyes—one amber, one" | | 14 | "The way he said it," | | 15 | "Her hand was still on" | | 16 | "She became aware of it—the" | | 17 | "She should have been surprised." | | 18 | "Some part of her, the" | | 19 | "The elevator had dinged." |
| | ratio | 0.856 | |
| 45.05% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 111 | | matches | | 0 | "Because who had she thought" |
| | ratio | 0.009 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 51 | | technicalSentenceCount | 14 | | matches | | 0 | "The flat was even more cluttered than she remembered, every surface colonized by scrolls and journal pages and books stacked in precarious towers that seemed to…" | | 1 | "His heterochromatic eyes—one amber, one black—found hers with the precision of a man who had been planning this moment for longer than the walk up the stairs." | | 2 | "At three in the morning, in a flat that wasn't hers, with the triple deadbolts and the rain and the particular loneliness of borrowed spaces?" | | 3 | "It was part of his trade, the fixing, the information brokering, the careful art of sitting across from someone and letting silence do the work that questions c…" | | 4 | "This was something rawer underneath, held in check by the same impeccable control he applied to everything—the suit, the cane with its concealed blade, the Fren…" | | 5 | "With her, he spoke the way he actually thought, which was fast and precise and in a register that seemed to bypass her ears entirely and land somewhere behind h…" | | 6 | "His lips did something that wasn't quite a smile—a twitch at the corner, an acknowledgment of his own audacity." | | 7 | "He was not a large man—five-eleven, lean, built like a rapier—but he had a presence that bent rooms toward him, a gravity that had nothing to do with his half-d…" | | 8 | "Ptolemy, dislodged from his post, padded across the kitchen table with the insouciance of a cat who considered all territory his personal domain." | | 9 | "He wound between the scrolls and sniffed at Lucien's shoes, then looked up with the evaluative stare of a creature who had met enough supernatural beings to be …" | | 10 | "And she knew what it meant when the mask slipped for half a second and she caught a glimpse of the thing underneath—something startled and unguarded and almost …" | | 11 | "She could feel it pressing against the walls, filling the space between the towers of books and the sleeping cat and the two of them standing in a kitchen that …" | | 12 | "She could see the way the fluorescent light above the stove carved shadows under his cheekbones, the way his hand rested on the ivory handle of his cane with a …" | | 13 | "It was the thing that drew her in and the thing that drove her away, the way he held himself like a drawn blade, beautiful and always ready to cut." |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 24 | | uselessAdditionCount | 1 | | matches | | 0 | "he asked, and his voice was quiet now, stripped of the wry deflection, the French charm, the professional mask" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 0 | | fancyTags | (empty) | | dialogueSentences | 63 | | tagDensity | 0.19 | | leniency | 0.381 | | rawRatio | 0 | | effectiveRatio | 0 | |