| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 15 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 28 | | tagDensity | 0.536 | | leniency | 1 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 93.69% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1584 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 30.56% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1584 | | totalAiIsms | 22 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "pounding" | | 1 | "rhythmic" | | 2 | "measured" | | 3 | "warmth" | | 4 | "velvet" | | 5 | "racing" | | 6 | "reminder" | | 7 | "weight" | | 8 | "unspoken" | | 9 | "familiar" | | 10 | "silence" | | 11 | "palpable" | | 12 | "tension" | | 13 | "could feel" | | 14 | "navigate" | | 15 | "fleeting" | | 16 | "electric" | | 17 | "sense of" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "air was thick with" | | count | 1 |
|
| | highlights | | 0 | "the air was thick with" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 74 | | matches | (empty) | |
| 65.64% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 74 | | filterMatches | | | hedgeMatches | | |
| 95.52% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 87 | | gibberishSentences | 1 | | adjustedGibberishSentences | 1 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 1 | | maxSentenceWordsSeen | 78 | | ratio | 0.011 | | matches | | 0 | "\"I am driven by appetites that are not entirely human. But when I think of you, I do not think of leverage. I do not think of information. I think of the way the light hits the bla…" |
| |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 3 | | markdownWords | 3 | | totalWords | 1577 | | ratio | 0.002 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 17 | | wordCount | 1069 | | uniqueNames | 7 | | maxNameDensity | 0.56 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Lucien" | | discoveredNames | | Golden | 1 | | Empress | 1 | | Moreau | 2 | | East | 1 | | London | 2 | | Lucien | 4 | | Rory | 6 |
| | persons | | 0 | "Empress" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Rory" |
| | places | | 0 | "Golden" | | 1 | "East" | | 2 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | glossingSentenceCount | 1 | | matches | | 0 | "velvet that seemed to vibrate in the small space between them" |
| |
| 73.18% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.268 | | wordCount | 1577 | | matches | | 0 | "not touching, but the heat radiating from him was palpable" | | 1 | "Not the tiredness of a long day, but the tiredness of a soul" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 87 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 35 | | mean | 45.06 | | std | 23.47 | | cv | 0.521 | | sampleLengths | | 0 | 78 | | 1 | 29 | | 2 | 70 | | 3 | 31 | | 4 | 20 | | 5 | 49 | | 6 | 32 | | 7 | 81 | | 8 | 28 | | 9 | 32 | | 10 | 76 | | 11 | 18 | | 12 | 38 | | 13 | 53 | | 14 | 27 | | 15 | 62 | | 16 | 34 | | 17 | 51 | | 18 | 54 | | 19 | 55 | | 20 | 3 | | 21 | 79 | | 22 | 66 | | 23 | 57 | | 24 | 54 | | 25 | 19 | | 26 | 25 | | 27 | 94 | | 28 | 57 | | 29 | 24 | | 30 | 4 | | 31 | 10 | | 32 | 41 | | 33 | 46 | | 34 | 80 |
| |
| 95.78% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 74 | | matches | | 0 | "was swept" | | 1 | "being burned" |
| |
| 93.05% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 187 | | matches | | 0 | "were deciding" | | 1 | "was standing" | | 2 | "was destroying" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 1 | | flaggedSentences | 5 | | totalSentences | 87 | | ratio | 0.057 | | matches | | 0 | "But it was his eyes that stopped her breath—that jarring, beautiful asymmetry." | | 1 | "They had ended in a blur of unspoken accusations and the suffocating realization that their worlds—the mundane struggle of her survival and the shadowed complexities of his trade—were fundamentally incompatible." | | 2 | "Even after the silence, even after the way he had looked at her the night she left—as if he were deciding whether to hold her or break her—the sight of him was a physical blow." | | 3 | "The sounds of the city—the muffled bass from Silas' bar downstairs, the hiss of tires on wet asphalt—seemed to fade, leaving only the sound of his breathing." | | 4 | "It wasn't a gentle movement; it was hungry, desperate, a collision of two people who had spent too long pretending they didn't need the very thing that was destroying them." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 907 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small, crescent-shaped scar" |
| | adverbCount | 23 | | adverbRatio | 0.025358324145534728 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.007717750826901874 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 87 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 87 | | mean | 18.13 | | std | 12.24 | | cv | 0.675 | | sampleLengths | | 0 | 16 | | 1 | 30 | | 2 | 15 | | 3 | 17 | | 4 | 23 | | 5 | 6 | | 6 | 30 | | 7 | 14 | | 8 | 26 | | 9 | 12 | | 10 | 19 | | 11 | 3 | | 12 | 17 | | 13 | 13 | | 14 | 19 | | 15 | 17 | | 16 | 10 | | 17 | 10 | | 18 | 12 | | 19 | 13 | | 20 | 30 | | 21 | 38 | | 22 | 28 | | 23 | 7 | | 24 | 15 | | 25 | 10 | | 26 | 9 | | 27 | 35 | | 28 | 32 | | 29 | 14 | | 30 | 4 | | 31 | 12 | | 32 | 10 | | 33 | 16 | | 34 | 30 | | 35 | 23 | | 36 | 11 | | 37 | 16 | | 38 | 10 | | 39 | 20 | | 40 | 32 | | 41 | 18 | | 42 | 16 | | 43 | 24 | | 44 | 27 | | 45 | 7 | | 46 | 5 | | 47 | 12 | | 48 | 30 | | 49 | 7 |
| |
| 42.15% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3218390804597701 | | totalSentences | 87 | | uniqueOpeners | 28 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 66 | | matches | | 0 | "Then, the floorboards creaked." | | 1 | "Instead, she leaned into the" |
| | ratio | 0.03 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 37 | | totalSentences | 66 | | matches | | 0 | "It wasn't the frantic pounding" | | 1 | "It was three precise, measured" | | 2 | "She had pulled the door" | | 3 | "His charcoal suit was impeccable," | | 4 | "His platinum blond hair was" | | 5 | "His voice was a low," | | 6 | "she said, her voice steadier" | | 7 | "She gripped the edge of" | | 8 | "It was a nervous habit," | | 9 | "He didn't move to enter," | | 10 | "He leaned slightly on his" | | 11 | "They had ended in a" | | 12 | "She had walked away from" | | 13 | "She hated how much she" | | 14 | "she demanded, stepping back just" | | 15 | "He brought with him a" | | 16 | "He paused, his gaze dropping" | | 17 | "He reached out, his gloved" | | 18 | "she snapped, though the sting" | | 19 | "She turned her back on" |
| | ratio | 0.561 | |
| 28.18% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 57 | | totalSentences | 66 | | matches | | 0 | "The heavy oak door creaked" | | 1 | "Aurora had been halfway through" | | 2 | "It wasn't the frantic pounding" | | 3 | "It was three precise, measured" | | 4 | "She had pulled the door" | | 5 | "The words died in her" | | 6 | "Lucien Moreau stood in the" | | 7 | "His charcoal suit was impeccable," | | 8 | "His platinum blond hair was" | | 9 | "The amber eye glowed with" | | 10 | "His voice was a low," | | 11 | "she said, her voice steadier" | | 12 | "She gripped the edge of" | | 13 | "It was a nervous habit," | | 14 | "He didn't move to enter," | | 15 | "He leaned slightly on his" | | 16 | "The air between them curdled" | | 17 | "They had ended in a" | | 18 | "She had walked away from" | | 19 | "The shadow of a smile" |
| | ratio | 0.864 | |
| 75.76% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 66 | | matches | | 0 | "Even after the silence, even" |
| | ratio | 0.015 | |
| 31.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 7 | | matches | | 0 | "Lucien Moreau stood in the dim, amber glow of the landing, looking as though he had stepped directly out of a high-fashion editorial and into the grime of East …" | | 1 | "His platinum blond hair was swept back, not a single strand out of place despite the drizzling rain that had begun to slick the cobblestones outside." | | 2 | "But it was his eyes that stopped her breath—that jarring, beautiful asymmetry." | | 3 | "She had walked away from the heat of him, from the dangerous magnetism of a man who brokered secrets for demons, because she had spent too much of her life bein…" | | 4 | "She felt small in her worn sweatshirt and leggings, a far cry from the woman who had dared to challenge a half-demon in his own territory." | | 5 | "In the dim light, the distinction between his two eyes seemed to blur, creating a sense of depth that was dizzying." | | 6 | "It wasn't a gentle movement; it was hungry, desperate, a collision of two people who had spent too long pretending they didn't need the very thing that was dest…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 15 | | uselessAdditionCount | 3 | | matches | | 0 | "she said, her voice steadier than her racing heart" | | 1 | "he roared, the sudden volume startling her" | | 2 | "he said, his voice dropping to a low, wounded murmur" |
| |
| 0.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 6 | | fancyTags | | 0 | "she demanded (demand)" | | 1 | "she snapped (snap)" | | 2 | "he whispered (whisper)" | | 3 | "he roared (roar)" | | 4 | "she whispered (whisper)" | | 5 | "he admitted (admit)" |
| | dialogueSentences | 28 | | tagDensity | 0.429 | | leniency | 0.857 | | rawRatio | 0.5 | | effectiveRatio | 0.429 | |