| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 23 | | adverbTagCount | 1 | | adverbTags | | 0 | "he said softly [softly]" |
| | dialogueSentences | 77 | | tagDensity | 0.299 | | leniency | 0.597 | | rawRatio | 0.043 | | effectiveRatio | 0.026 | |
| 87.62% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1615 | | totalAiIsmAdverbs | 4 | | found | | | highlights | | 0 | "sharply" | | 1 | "suddenly" | | 2 | "softly" | | 3 | "gently" |
| |
| 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) | |
| 62.85% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1615 | | totalAiIsms | 12 | | found | | | highlights | | 0 | "vibrated" | | 1 | "amidst" | | 2 | "scanning" | | 3 | "charged" | | 4 | "porcelain" | | 5 | "silence" | | 6 | "velvet" | | 7 | "pulse" | | 8 | "familiar" | | 9 | "gleaming" | | 10 | "etched" | | 11 | "echoing" |
| |
| 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 | 101 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 101 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 154 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 35 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 2 | | totalWords | 1600 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 78.23% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 1045 | | uniqueNames | 9 | | maxNameDensity | 1.44 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 5 | | Lucien | 15 | | Brick | 1 | | Lane | 1 | | Fast | 1 | | Golden | 1 | | Empress | 1 | | Greek | 1 | | Evan | 2 |
| | persons | | | places | | | globalScore | 0.782 | | windowScore | 0.833 | |
| 51.32% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 76 | | glossingSentenceCount | 3 | | matches | | 0 | "looked like he’d been cut from a differen" | | 1 | "looked like a reverse Greek sigma, twisti" | | 2 | "looked like a man, but whose limbs were t" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1600 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 154 | | matches | | 0 | "knew that cane" | | 1 | "hated that I" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 73 | | mean | 21.92 | | std | 16.47 | | cv | 0.751 | | sampleLengths | | 0 | 61 | | 1 | 14 | | 2 | 18 | | 3 | 25 | | 4 | 4 | | 5 | 42 | | 6 | 1 | | 7 | 49 | | 8 | 16 | | 9 | 1 | | 10 | 63 | | 11 | 20 | | 12 | 39 | | 13 | 5 | | 14 | 31 | | 15 | 3 | | 16 | 31 | | 17 | 2 | | 18 | 44 | | 19 | 37 | | 20 | 5 | | 21 | 5 | | 22 | 34 | | 23 | 33 | | 24 | 11 | | 25 | 49 | | 26 | 12 | | 27 | 39 | | 28 | 3 | | 29 | 29 | | 30 | 22 | | 31 | 11 | | 32 | 57 | | 33 | 24 | | 34 | 13 | | 35 | 46 | | 36 | 19 | | 37 | 24 | | 38 | 41 | | 39 | 8 | | 40 | 4 | | 41 | 3 | | 42 | 18 | | 43 | 4 | | 44 | 34 | | 45 | 3 | | 46 | 7 | | 47 | 24 | | 48 | 28 | | 49 | 47 |
| |
| 98.32% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 101 | | matches | | 0 | "been burned" | | 1 | "was thrown" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 185 | | matches | | |
| 68.65% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 5 | | semicolonCount | 0 | | flaggedSentences | 4 | | totalSentences | 154 | | ratio | 0.026 | | matches | | 0 | "I knew the hand holding it—pale, manicured, lethal." | | 1 | "\"Eva is currently in Morocco chasing a djinn rumor. We both know that.\" He surveyed the room, his heterochromatic eyes—one endless black, one piercing amber—scanning the clutter with disdain." | | 2 | "\"You need to breathe to have air. You won't be doing much breathing if Evan finds you.\" He checked his watch—a platinum piece that likely cost more than this entire building." | | 3 | "A dark shape pulled itself over the windowsill—something that looked like a man, but whose limbs were too long, too disjointed." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1059 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 30 | | adverbRatio | 0.028328611898016998 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.010387157695939566 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 154 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 154 | | mean | 10.39 | | std | 7.57 | | cv | 0.728 | | sampleLengths | | 0 | 10 | | 1 | 16 | | 2 | 35 | | 3 | 6 | | 4 | 8 | | 5 | 18 | | 6 | 7 | | 7 | 18 | | 8 | 4 | | 9 | 16 | | 10 | 14 | | 11 | 4 | | 12 | 8 | | 13 | 1 | | 14 | 12 | | 15 | 6 | | 16 | 20 | | 17 | 11 | | 18 | 11 | | 19 | 1 | | 20 | 1 | | 21 | 1 | | 22 | 2 | | 23 | 1 | | 24 | 16 | | 25 | 9 | | 26 | 15 | | 27 | 23 | | 28 | 15 | | 29 | 5 | | 30 | 29 | | 31 | 10 | | 32 | 5 | | 33 | 17 | | 34 | 14 | | 35 | 3 | | 36 | 9 | | 37 | 17 | | 38 | 5 | | 39 | 2 | | 40 | 29 | | 41 | 15 | | 42 | 16 | | 43 | 3 | | 44 | 3 | | 45 | 15 | | 46 | 5 | | 47 | 5 | | 48 | 8 | | 49 | 14 |
| |
| 48.70% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 15 | | diversityRatio | 0.35064935064935066 | | totalSentences | 154 | | uniqueOpeners | 54 | |
| 37.04% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 90 | | matches | | 0 | "Instead of hissing, the traitorous" |
| | ratio | 0.011 | |
| 6.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 48 | | totalSentences | 90 | | matches | | 0 | "My grip tightened on the" | | 1 | "It wasn't exactly a magical" | | 2 | "I didn't ask who was" | | 3 | "I yanked the door open," | | 4 | "My heart hammered a frantic" | | 5 | "I knew that cane." | | 6 | "I knew the hand holding" | | 7 | "He lowered the cane, effectively" | | 8 | "He didn't wait for an" | | 9 | "He stepped past me, the" | | 10 | "I slammed the door and" | | 11 | "He stood in the center" | | 12 | "I snapped, lowering the skillet" | | 13 | "He surveyed the room, his" | | 14 | "He turned, the silver tip" | | 15 | "He took a step toward" | | 16 | "His jaw tightened, a rare" | | 17 | "I moved to the kitchenette," | | 18 | "It felt safer." | | 19 | "He trailed a finger along" |
| | ratio | 0.533 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 85 | | totalSentences | 90 | | matches | | 0 | "Steel grated against steel as" | | 1 | "My grip tightened on the" | | 2 | "It wasn't exactly a magical" | | 3 | "I didn't ask who was" | | 4 | "Anyone I wanted to see" | | 5 | "I yanked the door open," | | 6 | "An ivory-handled cane blocked the" | | 7 | "The iron rang out, a" | | 8 | "The voice was smooth, dark," | | 9 | "My heart hammered a frantic" | | 10 | "I knew that cane." | | 11 | "I knew the hand holding" | | 12 | "He lowered the cane, effectively" | | 13 | "He didn't wait for an" | | 14 | "He stepped past me, the" | | 15 | "I slammed the door and" | | 16 | "He stood in the center" | | 17 | "Eva’s flat was a disaster" | | 18 | "Stacks of leather-bound grimoires teetered" | | 19 | "Lucien, in his tailored charcoal" |
| | ratio | 0.944 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 90 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 1 | | matches | | 0 | "A dark shape pulled itself over the windowsill—something that looked like a man, but whose limbs were too long, too disjointed." |
| |
| 38.04% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 23 | | uselessAdditionCount | 4 | | matches | | 0 | "Lucien said, his voice hard" | | 1 | "he cut in, his voice rasping with suppressed anger" | | 2 | "Lucien commanded, his voice devoid of all boredom now" | | 3 | "Lucien roared, magic crackling off his shoulders in waves of shadow" |
| |
| 72.08% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 6 | | fancyTags | | 0 | "I snapped (snap)" | | 1 | "I whispered (whisper)" | | 2 | "Lucien sneered (sneer)" | | 3 | "Lucien muttered (mutter)" | | 4 | "Lucien roared (roar)" | | 5 | "I gasped (gasp)" |
| | dialogueSentences | 77 | | tagDensity | 0.104 | | leniency | 0.208 | | rawRatio | 0.75 | | effectiveRatio | 0.156 | |