| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | |
| 96.43% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1402 | | totalAiIsmAdverbs | 1 | | 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) | |
| 64.34% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1402 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "weight" | | 1 | "flicked" | | 2 | "measured" | | 3 | "porcelain" | | 4 | "silence" | | 5 | "chill" | | 6 | "pulse" | | 7 | "electric" | | 8 | "tracing" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "eyes widened/narrowed" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 53 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 0 | | narrationSentences | 53 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 107 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1401 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 9 | | unquotedAttributions | 0 | | matches | (empty) | |
| 87.50% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 880 | | uniqueNames | 11 | | maxNameDensity | 1.25 | | worstName | "Aurora" | | maxWindowNameDensity | 2 | | worstWindowName | "Aurora" | | discoveredNames | | Carter | 1 | | Moreau | 1 | | East | 1 | | London | 2 | | Eva | 1 | | Lucien | 8 | | French | 1 | | Brick | 1 | | Lane | 1 | | Avaros | 1 | | Aurora | 11 |
| | persons | | 0 | "Carter" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Lucien" | | 4 | "Aurora" |
| | places | | 0 | "East" | | 1 | "London" | | 2 | "Brick" | | 3 | "Lane" |
| | globalScore | 0.875 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 51 | | glossingSentenceCount | 0 | | matches | (empty) | |
| 57.24% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 1.428 | | wordCount | 1401 | | matches | | 0 | "not out of deference, but to keep clear of his reach" | | 1 | "not flinch, but her breath hitched in her throat" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 107 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 83 | | mean | 16.88 | | std | 16.64 | | cv | 0.986 | | sampleLengths | | 0 | 10 | | 1 | 25 | | 2 | 76 | | 3 | 6 | | 4 | 56 | | 5 | 7 | | 6 | 4 | | 7 | 3 | | 8 | 11 | | 9 | 26 | | 10 | 2 | | 11 | 8 | | 12 | 67 | | 13 | 35 | | 14 | 18 | | 15 | 5 | | 16 | 36 | | 17 | 6 | | 18 | 8 | | 19 | 8 | | 20 | 57 | | 21 | 17 | | 22 | 2 | | 23 | 2 | | 24 | 2 | | 25 | 7 | | 26 | 33 | | 27 | 32 | | 28 | 13 | | 29 | 8 | | 30 | 6 | | 31 | 14 | | 32 | 23 | | 33 | 11 | | 34 | 22 | | 35 | 31 | | 36 | 4 | | 37 | 19 | | 38 | 9 | | 39 | 6 | | 40 | 14 | | 41 | 4 | | 42 | 4 | | 43 | 5 | | 44 | 42 | | 45 | 38 | | 46 | 11 | | 47 | 1 | | 48 | 9 | | 49 | 21 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 0 | | totalSentences | 53 | | matches | (empty) | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 126 | | matches | (empty) | |
| 89.45% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 1 | | flaggedSentences | 2 | | totalSentences | 107 | | ratio | 0.019 | | matches | | 0 | "One eye shone pale amber in the dim light; the other remained bottomless, pitch-black demon ink drowning the iris." | | 1 | "Her gaze tracked the line of his jaw, the faint shadow of stubble breaking through the pale perfection of his skin—a rare lapse in his grooming that spoke volumes more than the document in his hand." |
| |
| 82.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 890 | | adjectiveStacks | 3 | | stackExamples | | 0 | "bottomless, pitch-black demon" | | 1 | "sharp, high-boned shadows" | | 2 | "steady, furnace-warm radiation" |
| | adverbCount | 19 | | adverbRatio | 0.021348314606741574 | | lyAdverbCount | 7 | | lyAdverbRatio | 0.007865168539325843 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 107 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 107 | | mean | 13.09 | | std | 8.86 | | cv | 0.677 | | sampleLengths | | 0 | 10 | | 1 | 25 | | 2 | 6 | | 3 | 22 | | 4 | 17 | | 5 | 31 | | 6 | 6 | | 7 | 12 | | 8 | 25 | | 9 | 19 | | 10 | 7 | | 11 | 4 | | 12 | 3 | | 13 | 11 | | 14 | 26 | | 15 | 2 | | 16 | 8 | | 17 | 14 | | 18 | 8 | | 19 | 15 | | 20 | 30 | | 21 | 20 | | 22 | 15 | | 23 | 18 | | 24 | 5 | | 25 | 4 | | 26 | 14 | | 27 | 18 | | 28 | 6 | | 29 | 8 | | 30 | 8 | | 31 | 17 | | 32 | 18 | | 33 | 22 | | 34 | 17 | | 35 | 2 | | 36 | 2 | | 37 | 2 | | 38 | 7 | | 39 | 33 | | 40 | 9 | | 41 | 23 | | 42 | 13 | | 43 | 8 | | 44 | 6 | | 45 | 14 | | 46 | 23 | | 47 | 11 | | 48 | 22 | | 49 | 31 |
| |
| 66.67% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 2 | | diversityRatio | 0.411214953271028 | | totalSentences | 107 | | uniqueOpeners | 44 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 99.25% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 16 | | totalSentences | 53 | | matches | | 0 | "His platinum hair remained brushed" | | 1 | "He rested both gloved hands" | | 2 | "Her bright blue eyes flicked" | | 3 | "He tapped the ferrule of" | | 4 | "He glanced at the waist-high" | | 5 | "She shoved home all three" | | 6 | "He rested the cane against" | | 7 | "He stood five inches taller" | | 8 | "He showed no haste, moving" | | 9 | "His fingers dropped, but he" | | 10 | "He stared down at her," | | 11 | "He held it between two" | | 12 | "Her gaze tracked the line" | | 13 | "He set the paper on" | | 14 | "Her pulse hammered against the" | | 15 | "His hand lifted, the back" |
| | ratio | 0.302 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 50 | | totalSentences | 53 | | matches | | 0 | "The third deadbolt gave way" | | 1 | "Aurora Carter pulled the heavy" | | 2 | "Lucien Moreau stood on the" | | 3 | "Rain gleamed on the shoulders" | | 4 | "His platinum hair remained brushed" | | 5 | "He rested both gloved hands" | | 6 | "Aurora gripped the edge of" | | 7 | "Her bright blue eyes flicked" | | 8 | "He tapped the ferrule of" | | 9 | "Aurora stepped back, not out" | | 10 | "The space inside the flat" | | 11 | "Stacks of leather-bound folios, unrolled" | | 12 | "Ptolemy, Eva’s battered grey tabby," | | 13 | "Lucien crossed the threshold with" | | 14 | "He glanced at the waist-high" | | 15 | "Aurora shut the door." | | 16 | "She shoved home all three" | | 17 | "He rested the cane against" | | 18 | "The amber eye caught the" | | 19 | "He stood five inches taller" |
| | ratio | 0.943 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 53 | | matches | (empty) | | ratio | 0 | |
| 74.83% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 42 | | technicalSentenceCount | 4 | | matches | | 0 | "He showed no haste, moving with the maddening economy of motion that used to drive her wild in the quiet hours before dawn." | | 1 | "The heat coming off his skin was unnatural, a steady, furnace-warm radiation that belonged to the realm of Avaros rather than the sodden streets of London." | | 2 | "The half-demon broker, the man who traded in blood-tithes and royal secrets across four languages without blinking, looked entirely stripped of his leverage." | | 3 | "His hand lifted, the back of his fingers grazing the soft skin beneath her ear, tracing down to the crescent mark on her wrist where her pulse leaped wildly und…" |
| |
| 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 | |