| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 13 | | adverbTagCount | 1 | | adverbTags | | 0 | "Lucien said softly [softly]" |
| | dialogueSentences | 31 | | tagDensity | 0.419 | | leniency | 0.839 | | rawRatio | 0.077 | | effectiveRatio | 0.065 | |
| 89.41% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1417 | | totalAiIsmAdverbs | 3 | | found | | | highlights | | 0 | "precisely" | | 1 | "loosely" | | 2 | "softly" |
| |
| 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) | |
| 29.43% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1417 | | totalAiIsms | 20 | | found | | | highlights | | 0 | "rhythmic" | | 1 | "chaotic" | | 2 | "silence" | | 3 | "dancing" | | 4 | "vibrated" | | 5 | "chill" | | 6 | "whisper" | | 7 | "fractured" | | 8 | "weight" | | 9 | "measured" | | 10 | "magnetic" | | 11 | "could feel" | | 12 | "tracing" | | 13 | "ensure" | | 14 | "charged" | | 15 | "reminder" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 100 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 3 | | narrationSentences | 100 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 118 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 40 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1416 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 13 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 1177 | | uniqueNames | 11 | | maxNameDensity | 0.93 | | worstName | "Lucien" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Lucien" | | discoveredNames | | Ptolemy | 3 | | London | 3 | | Bricks | 1 | | Lane | 1 | | Moreau | 1 | | East | 2 | | End | 1 | | Marseille | 1 | | Soho | 1 | | Lucien | 11 | | Aurora | 10 |
| | persons | | 0 | "Ptolemy" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Aurora" |
| | places | | 0 | "London" | | 1 | "Bricks" | | 2 | "Lane" | | 3 | "East" | | 4 | "End" | | 5 | "Marseille" | | 6 | "Soho" |
| | globalScore | 1 | | windowScore | 0.833 | |
| 80.56% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 72 | | glossingSentenceCount | 2 | | matches | | 0 | "felt like an intrusion on a frequency o" | | 1 | "quite extinguish" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1416 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 118 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 43 | | mean | 32.93 | | std | 21.52 | | cv | 0.654 | | sampleLengths | | 0 | 63 | | 1 | 49 | | 2 | 57 | | 3 | 59 | | 4 | 16 | | 5 | 68 | | 6 | 18 | | 7 | 20 | | 8 | 9 | | 9 | 6 | | 10 | 3 | | 11 | 7 | | 12 | 63 | | 13 | 29 | | 14 | 44 | | 15 | 26 | | 16 | 31 | | 17 | 31 | | 18 | 71 | | 19 | 8 | | 20 | 43 | | 21 | 7 | | 22 | 6 | | 23 | 31 | | 24 | 48 | | 25 | 18 | | 26 | 19 | | 27 | 32 | | 28 | 18 | | 29 | 51 | | 30 | 63 | | 31 | 63 | | 32 | 51 | | 33 | 14 | | 34 | 9 | | 35 | 43 | | 36 | 6 | | 37 | 24 | | 38 | 41 | | 39 | 28 | | 40 | 31 | | 41 | 11 | | 42 | 81 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 100 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 195 | | matches | | |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 1 | | semicolonCount | 0 | | flaggedSentences | 1 | | totalSentences | 118 | | ratio | 0.008 | | matches | | 0 | "He stopped where she could feel the heat radiating off him, the smell of expensive tobacco and something darker—ozone and sulfur." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1180 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 43 | | adverbRatio | 0.036440677966101696 | | lyAdverbCount | 14 | | lyAdverbRatio | 0.011864406779661017 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 118 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 118 | | mean | 12 | | std | 8 | | cv | 0.666 | | sampleLengths | | 0 | 9 | | 1 | 18 | | 2 | 16 | | 3 | 20 | | 4 | 4 | | 5 | 14 | | 6 | 2 | | 7 | 29 | | 8 | 17 | | 9 | 5 | | 10 | 12 | | 11 | 23 | | 12 | 12 | | 13 | 14 | | 14 | 21 | | 15 | 12 | | 16 | 16 | | 17 | 7 | | 18 | 14 | | 19 | 16 | | 20 | 31 | | 21 | 3 | | 22 | 15 | | 23 | 3 | | 24 | 17 | | 25 | 4 | | 26 | 4 | | 27 | 1 | | 28 | 6 | | 29 | 3 | | 30 | 7 | | 31 | 6 | | 32 | 19 | | 33 | 12 | | 34 | 26 | | 35 | 9 | | 36 | 4 | | 37 | 13 | | 38 | 3 | | 39 | 15 | | 40 | 17 | | 41 | 7 | | 42 | 5 | | 43 | 20 | | 44 | 6 | | 45 | 9 | | 46 | 10 | | 47 | 4 | | 48 | 8 | | 49 | 13 |
| |
| 42.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 9 | | diversityRatio | 0.2796610169491525 | | totalSentences | 118 | | uniqueOpeners | 33 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 91 | | matches | (empty) | | ratio | 0 | |
| 35.38% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 42 | | totalSentences | 91 | | matches | | 0 | "It was sharp, rhythmic, and" | | 1 | "She didn’t move immediately." | | 2 | "It felt like an intrusion" | | 3 | "She dried her hands on" | | 4 | "Her left wrist caught the" | | 5 | "She kept her expression schooled," | | 6 | "Her bright blue gaze reflected" | | 7 | "She cracked the door open," | | 8 | "He hadn’t changed." | | 9 | "His voice was smooth, low," | | 10 | "She didn’t step back." | | 11 | "She didn’t welcome him." | | 12 | "He hadn’t been seen in" | | 13 | "She thought about the deadbolts" | | 14 | "She engaged them now, sliding" | | 15 | "He only stared at her." | | 16 | "She moved to the kitchen" | | 17 | "She didn’t bite it." | | 18 | "She swallowed, the fruit dry" | | 19 | "She remembered how they had" |
| | ratio | 0.462 | |
| 9.45% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 82 | | totalSentences | 91 | | matches | | 0 | "The knock came at precisely" | | 1 | "It was sharp, rhythmic, and" | | 2 | "Aurora stood in the center" | | 3 | "The kitchen counter behind her" | | 4 | "She didn’t move immediately." | | 5 | "The silence stretched, heavy and" | | 6 | "The sound of Ptolemy’s slow" | | 7 | "Aurora knew the rhythm of" | | 8 | "It felt like an intrusion" | | 9 | "She dried her hands on" | | 10 | "Her left wrist caught the" | | 11 | "The crescent scar, thin and" | | 12 | "She kept her expression schooled," | | 13 | "Her bright blue gaze reflected" | | 14 | "She cracked the door open," | | 15 | "Lucien Moreau leaned against the" | | 16 | "The streetlamp across the alley" | | 17 | "He hadn’t changed." | | 18 | "The platinum blond hair was" | | 19 | "His voice was smooth, low," |
| | ratio | 0.901 | |
| 54.95% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 91 | | matches | | 0 | "Now he was here, looking" |
| | ratio | 0.011 | |
| 75.47% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 53 | | technicalSentenceCount | 5 | | matches | | 0 | "Aurora knew the rhythm of London, the city’s heartbeat that vibrated through the brickwork of Bricks Lane." | | 1 | "The distance between them was a measured threat, a magnetic pull that had nothing to do with the supernatural forces humming in the basement." | | 2 | "He was an ally, a half-breed fixer, and a man who had walked away at the worst possible moment." | | 3 | "But she saw the fatigue in the set of his shoulders, the line of his jaw, the way he held himself as if the burden was heavier today than it had been yesterday." | | 4 | "It was a small, private expression that softened the sharp edge of his demon heritage for just a moment." |
| |
| 48.08% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 13 | | uselessAdditionCount | 2 | | matches | | 0 | "she said, her voice low, dangerous" | | 1 | "she said, her voice quiet" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 12 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 31 | | tagDensity | 0.387 | | leniency | 0.774 | | rawRatio | 0.083 | | effectiveRatio | 0.065 | |