| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 100.00% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1497 | | totalAiIsmAdverbs | 0 | | found | (empty) | | highlights | (empty) | |
| 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) | |
| 56.58% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1497 | | totalAiIsms | 13 | | found | | | highlights | | 0 | "weight" | | 1 | "tracing" | | 2 | "tinged" | | 3 | "marble" | | 4 | "throbbed" | | 5 | "pulse" | | 6 | "shattered" | | 7 | "silk" | | 8 | "racing" | | 9 | "silence" | | 10 | "unspoken" | | 11 | "magnetic" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "weight of words/silence" | | count | 1 |
|
| | highlights | | 0 | "the weight of his words" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 64 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 64 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 116 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 39 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1493 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 10 | | unquotedAttributions | 0 | | matches | (empty) | |
| 66.67% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 28 | | wordCount | 974 | | uniqueNames | 7 | | maxNameDensity | 1.33 | | worstName | "Lucien" | | maxWindowNameDensity | 3 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 13 | | Moreau | 2 | | London | 1 | | Ptolemy | 2 | | Brick | 1 | | Lane | 1 | | Aurora | 8 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Aurora" |
| | places | | | globalScore | 0.833 | | windowScore | 0.667 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 62 | | 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 | 1493 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 116 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 86 | | mean | 17.36 | | std | 14.29 | | cv | 0.823 | | sampleLengths | | 0 | 27 | | 1 | 10 | | 2 | 50 | | 3 | 15 | | 4 | 7 | | 5 | 22 | | 6 | 8 | | 7 | 4 | | 8 | 17 | | 9 | 26 | | 10 | 27 | | 11 | 33 | | 12 | 42 | | 13 | 6 | | 14 | 12 | | 15 | 44 | | 16 | 5 | | 17 | 6 | | 18 | 44 | | 19 | 16 | | 20 | 10 | | 21 | 66 | | 22 | 14 | | 23 | 12 | | 24 | 36 | | 25 | 4 | | 26 | 15 | | 27 | 26 | | 28 | 6 | | 29 | 56 | | 30 | 14 | | 31 | 2 | | 32 | 7 | | 33 | 20 | | 34 | 15 | | 35 | 4 | | 36 | 12 | | 37 | 34 | | 38 | 17 | | 39 | 6 | | 40 | 20 | | 41 | 47 | | 42 | 6 | | 43 | 5 | | 44 | 20 | | 45 | 13 | | 46 | 4 | | 47 | 23 | | 48 | 33 | | 49 | 19 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 64 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 142 | | matches | (empty) | |
| 68.97% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 4 | | semicolonCount | 0 | | flaggedSentences | 3 | | totalSentences | 116 | | ratio | 0.026 | | matches | | 0 | "He tipped his head, heterochromatic eyes—one golden amber, the other absolute pitch—tracing the line of her jaw." | | 1 | "He peeled off his lambskin gloves, finger by finger, revealing pale hands with black-tinged nails—the mark of his demon lineage besides the abyss of his left eye." | | 2 | "The scar on her wrist throbbed with phantom heat—a remnant of the night they had barely survived together in the winter frost, when he had pressed his own blood against her torn flesh to seal the wound." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 985 | | adjectiveStacks | 1 | | stackExamples | | 0 | "damp, mustard-yellow light" |
| | adverbCount | 14 | | adverbRatio | 0.014213197969543147 | | lyAdverbCount | 3 | | lyAdverbRatio | 0.003045685279187817 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 116 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 116 | | mean | 12.87 | | std | 7.42 | | cv | 0.576 | | sampleLengths | | 0 | 10 | | 1 | 17 | | 2 | 10 | | 3 | 15 | | 4 | 18 | | 5 | 17 | | 6 | 15 | | 7 | 7 | | 8 | 13 | | 9 | 9 | | 10 | 8 | | 11 | 4 | | 12 | 17 | | 13 | 26 | | 14 | 8 | | 15 | 12 | | 16 | 7 | | 17 | 8 | | 18 | 15 | | 19 | 10 | | 20 | 13 | | 21 | 16 | | 22 | 13 | | 23 | 6 | | 24 | 12 | | 25 | 19 | | 26 | 12 | | 27 | 13 | | 28 | 5 | | 29 | 6 | | 30 | 17 | | 31 | 27 | | 32 | 16 | | 33 | 10 | | 34 | 14 | | 35 | 29 | | 36 | 7 | | 37 | 16 | | 38 | 14 | | 39 | 12 | | 40 | 15 | | 41 | 3 | | 42 | 18 | | 43 | 4 | | 44 | 15 | | 45 | 13 | | 46 | 13 | | 47 | 6 | | 48 | 19 | | 49 | 37 |
| |
| 45.11% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.3017241379310345 | | totalSentences | 116 | | uniqueOpeners | 35 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 64 | | matches | (empty) | | ratio | 0 | |
| 26.25% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 31 | | totalSentences | 64 | | matches | | 0 | "His charcoal suit showed no" | | 1 | "He tipped his head, heterochromatic" | | 2 | "She made to swing the" | | 3 | "Her left wrist twitched, pulling" | | 4 | "She retreated two steps into" | | 5 | "His cane clicked against the" | | 6 | "His gloved thumb threw all" | | 7 | "She retreated toward the small" | | 8 | "He peeled off his lambskin" | | 9 | "She snatched a copper kettle" | | 10 | "Her bright blue eyes stayed" | | 11 | "He didn't rush." | | 12 | "He reached out, his bare" | | 13 | "His tone dropped, dark as" | | 14 | "She let out a harsh" | | 15 | "He closed the remaining space." | | 16 | "His chest nearly brushed hers," | | 17 | "His hand moved the final" | | 18 | "His skin burned warm, a" | | 19 | "She hated how her pulse" |
| | ratio | 0.484 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 64 | | matches | | 0 | "The third deadbolt slid back" | | 1 | "Aurora pulled the oak door" | | 2 | "Lucien rested his weight onto" | | 3 | "His charcoal suit showed no" | | 4 | "He tipped his head, heterochromatic" | | 5 | "She made to swing the" | | 6 | "The ivory knob of his" | | 7 | "Leather gloves gripped the wood" | | 8 | "Lucien leaned into the opening," | | 9 | "Aurora tightened her fingers around" | | 10 | "Her left wrist twitched, pulling" | | 11 | "She retreated two steps into" | | 12 | "Lucien crossed the threshold with" | | 13 | "His cane clicked against the" | | 14 | "His gloved thumb threw all" | | 15 | "Ptolemy pushed out from beneath" | | 16 | "The tabby cat strode toward" | | 17 | "Lucien did not look down," | | 18 | "She retreated toward the small" | | 19 | "The radiator hissed, releasing a" |
| | ratio | 0.984 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 64 | | matches | (empty) | | ratio | 0 | |
| 72.83% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 51 | | technicalSentenceCount | 5 | | matches | | 0 | "She reached up, grabbing his linen tie in her fist, twisting the silk until he had to bow his head down toward her." | | 1 | "Aurora stared up at him, her mind racing through the implications, searching for the catch, the broker's cut, the hidden price tag that accompanied Lucien Morea…" | | 2 | "Lucien lowered his hand, his thumb catching the curve of her lower lip, pressing until her breath hitched again." | | 3 | "The silence stretched between them, heavy with years of unspoken words, unresolved touches, and the magnetic pull that had drawn them together in the first plac…" | | 4 | "Aurora looked down at the letter opener in her hand, then across at the half-demon standing in her cramped living room, stripped of his power, looking at her as…" |
| |
| 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 | |