| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 92.18% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1278 | | 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) | |
| 17.84% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1278 | | totalAiIsms | 21 | | found | | | highlights | | 0 | "weight" | | 1 | "stark" | | 2 | "rhythmic" | | 3 | "echoing" | | 4 | "silence" | | 5 | "amidst" | | 6 | "scanning" | | 7 | "familiar" | | 8 | "whisper" | | 9 | "electric" | | 10 | "traced" | | 11 | "fragmented" | | 12 | "charged" | | 13 | "intensity" | | 14 | "silk" |
| |
| 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 | 82 | | matches | | |
| 20.91% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 3 | | hedgeCount | 4 | | narrationSentences | 82 | | 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 | 82 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 63 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1272 | | ratio | 0 | | matches | (empty) | |
| 11.36% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 11 | | unquotedAttributions | 5 | | matches | | 0 | "You look exhausted, Aurora, he said, his voice a low, melodic baritone that still managed to carry the slight, clipped c…" | | 1 | "The flat is small enough without a half-demon cluttering the air, she said, though her attempt at a sharp retort lacked …" | | 2 | "I stopped playing games, she corrected." | | 3 | "There is movement in the Avaros circles, Lucien said, his eyes scanning the titles of the books stacked on the floor." | | 4 | "I only ever wanted to keep you safe, he replied, his voice dropping to a near-whisper." |
| |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 41 | | wordCount | 1272 | | uniqueNames | 14 | | maxNameDensity | 0.71 | | worstName | "You" | | maxWindowNameDensity | 3.5 | | worstWindowName | "You" | | discoveredNames | | Eva | 3 | | Lucien | 8 | | Moreau | 1 | | Brick | 2 | | Lane | 2 | | Aurora | 3 | | Marseille | 1 | | Ptolemy | 1 | | Avaros | 1 | | Cardiff | 1 | | Luc | 1 | | London | 1 | | Rory | 7 | | You | 9 |
| | persons | | 0 | "Eva" | | 1 | "Lucien" | | 2 | "Moreau" | | 3 | "Luc" | | 4 | "Rory" | | 5 | "You" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Marseille" | | 3 | "Cardiff" | | 4 | "London" |
| | globalScore | 1 | | windowScore | 0.5 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 70 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.786 | | wordCount | 1272 | | matches | | 0 | "not with a strike, but with a slow, deliberate reach" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 82 | | matches | | |
| 94.96% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 26 | | mean | 48.92 | | std | 23.6 | | cv | 0.482 | | sampleLengths | | 0 | 65 | | 1 | 72 | | 2 | 25 | | 3 | 42 | | 4 | 23 | | 5 | 31 | | 6 | 31 | | 7 | 67 | | 8 | 36 | | 9 | 46 | | 10 | 59 | | 11 | 36 | | 12 | 23 | | 13 | 57 | | 14 | 67 | | 15 | 46 | | 16 | 70 | | 17 | 42 | | 18 | 28 | | 19 | 87 | | 20 | 62 | | 21 | 29 | | 22 | 11 | | 23 | 38 | | 24 | 57 | | 25 | 122 |
| |
| 88.15% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 4 | | totalSentences | 82 | | matches | | 0 | "was slicked" | | 1 | "was promised" | | 2 | "been whispered" | | 3 | "was gone" | | 4 | "was replaced" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 222 | | matches | | 0 | "was currently watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 2 | | flaggedSentences | 7 | | totalSentences | 82 | | ratio | 0.085 | | matches | | 0 | "His heterochromatic eyes—one sharp, golden amber, the other an abyss of solid, depthless black—locked onto hers." | | 1 | "Rory didn't move to hide her discomfort; she knew it was futile with him." | | 2 | "She didn't lean away, though every instinct shouted at her to flee—back to Cardiff, back home, back to the illusion of a normal life." | | 3 | "There were so many things left unsaid between them—the way he had lied about his connections, the way she had blamed him for her own fear when things got violent." | | 4 | "He wasn't the invincible broker tonight; he was simply a man, fragmented and reaching out for the only thing he couldn't control." | | 5 | "Rory placed her hand on his chest, feeling the steady thrum of his heartbeat—a rhythm that wasn't entirely human, but one she had learned to recognize as home." | | 6 | "It was desperate, frantic, and filled with a raw intensity that made her gasp into his mouth, her fingers tangling in the silk of his tie and pulling him down until the space between them was gone—until, for the first time since she’d come to London, the fear of the dark was replaced by something far more dangerous, and far more necessary." |
| |
| 88.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1284 | | adjectiveStacks | 2 | | stackExamples | | 0 | "small crescent-shaped scar" | | 1 | "familiar, terrifying electric hum" |
| | adverbCount | 50 | | adverbRatio | 0.03894080996884735 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.011682242990654205 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 82 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 82 | | mean | 15.51 | | std | 10.37 | | cv | 0.669 | | sampleLengths | | 0 | 19 | | 1 | 13 | | 2 | 33 | | 3 | 11 | | 4 | 21 | | 5 | 26 | | 6 | 14 | | 7 | 18 | | 8 | 7 | | 9 | 26 | | 10 | 16 | | 11 | 23 | | 12 | 3 | | 13 | 24 | | 14 | 4 | | 15 | 18 | | 16 | 7 | | 17 | 6 | | 18 | 6 | | 19 | 15 | | 20 | 46 | | 21 | 18 | | 22 | 4 | | 23 | 14 | | 24 | 15 | | 25 | 9 | | 26 | 22 | | 27 | 14 | | 28 | 21 | | 29 | 14 | | 30 | 10 | | 31 | 21 | | 32 | 3 | | 33 | 12 | | 34 | 6 | | 35 | 3 | | 36 | 3 | | 37 | 11 | | 38 | 15 | | 39 | 30 | | 40 | 12 | | 41 | 6 | | 42 | 5 | | 43 | 24 | | 44 | 9 | | 45 | 3 | | 46 | 8 | | 47 | 12 | | 48 | 8 | | 49 | 21 |
| |
| 34.15% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.2926829268292683 | | totalSentences | 82 | | uniqueOpeners | 24 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 48 | | totalSentences | 81 | | matches | | 0 | "She had been expecting Eva," | | 1 | "He looked as though he" | | 2 | "His charcoal suit was immaculate," | | 3 | "She didn't move to let" | | 4 | "His heterochromatic eyes—one sharp, golden" | | 5 | "You look exhausted, Aurora, he" | | 6 | "I’m working, Lucien." | | 7 | "He didn't move, yet he" | | 8 | "I was promised an audience" | | 9 | "You stopped answering the burner" | | 10 | "I stopped playing games, she" | | 11 | "She kept her grip on" | | 12 | "She stepped back, wide enough" | | 13 | "He entered with a grace" | | 14 | "He didn't touch anything, but" | | 15 | "He moved to the center" | | 16 | "He saw through the bravado," | | 17 | "Your name has been whispered" | | 18 | "I’m just a delivery driver," | | 19 | "I deliver noodles." |
| | ratio | 0.593 | |
| 40.25% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 68 | | totalSentences | 81 | | matches | | 0 | "The heavy iron of the" | | 1 | "Rory shifted her weight, her" | | 2 | "She had been expecting Eva," | | 3 | "He looked as though he" | | 4 | "His charcoal suit was immaculate," | | 5 | "The ivory handle of his" | | 6 | "Rory braced a hand against" | | 7 | "She didn't move to let" | | 8 | "Lucien’s gaze swept over her," | | 9 | "His heterochromatic eyes—one sharp, golden" | | 10 | "You look exhausted, Aurora, he" | | 11 | "I’m working, Lucien." | | 12 | "The flat is small enough" | | 13 | "He didn't move, yet he" | | 14 | "I was promised an audience" | | 15 | "You stopped answering the burner" | | 16 | "I stopped playing games, she" | | 17 | "She kept her grip on" | | 18 | "Eva was out, chasing some" | | 19 | "Lucien shifted the weight on" |
| | ratio | 0.84 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 81 | | matches | (empty) | | ratio | 0 | |
| 55.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 57 | | technicalSentenceCount | 7 | | matches | | 0 | "She had been expecting Eva, perhaps a landlord with a noise complaint, but she certainly hadn't expected the polished, suffocating scent of expensive sandalwood…" | | 1 | "He looked as though he had stepped out of a high-end photography spread and into the grimy reality of Brick Lane." | | 2 | "Eva was out, chasing some lead on the occult, leaving the flat to the smell of old paper and the soft, judging weight of Ptolemy the tabby cat, who was currentl…" | | 3 | "His touch sent a shockwave through her, a familiar, terrifying electric hum that left her breathless." | | 4 | "Rory placed her hand on his chest, feeling the steady thrum of his heartbeat—a rhythm that wasn't entirely human, but one she had learned to recognize as home." | | 5 | "The air between them was static-charged, humming with a magnetism that made her skin ache." | | 6 | "It was desperate, frantic, and filled with a raw intensity that made her gasp into his mouth, her fingers tangling in the silk of his tie and pulling him down u…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 0 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |