| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 20 | | adverbTagCount | 1 | | adverbTags | | 0 | "The cane tapped again [again]" |
| | dialogueSentences | 65 | | tagDensity | 0.308 | | leniency | 0.615 | | rawRatio | 0.05 | | effectiveRatio | 0.031 | |
| 85.11% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1679 | | totalAiIsmAdverbs | 5 | | found | | | highlights | | 0 | "carefully" | | 1 | "really" | | 2 | "very" | | 3 | "utterly" | | 4 | "slightly" |
| |
| 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) | |
| 55.33% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1679 | | totalAiIsms | 15 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | word | "the last thing" | | count | 1 |
| | 11 | | | 12 | | | 13 | |
| | highlights | | 0 | "stark" | | 1 | "pulse" | | 2 | "stomach" | | 3 | "jaw clenched" | | 4 | "trembled" | | 5 | "weight" | | 6 | "velvet" | | 7 | "whisper" | | 8 | "chaotic" | | 9 | "unreadable" | | 10 | "the last thing" | | 11 | "glint" | | 12 | "silence" | | 13 | "echoed" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "jaw/fists clenched" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 1 | | narrationSentences | 128 | | matches | | |
| 75.89% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 6 | | narrationSentences | 128 | | filterMatches | (empty) | | hedgeMatches | | 0 | "seemed to" | | 1 | "tried to" | | 2 | "began to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 168 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 34 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 2 | | markdownWords | 2 | | totalWords | 1679 | | ratio | 0.001 | | matches | | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 16 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 15 | | wordCount | 1114 | | uniqueNames | 7 | | maxNameDensity | 0.36 | | worstName | "Lucien" | | maxWindowNameDensity | 1 | | worstWindowName | "Cardiff" | | discoveredNames | | Rory | 3 | | Moreau | 1 | | Cardiff | 2 | | Ptolemy | 3 | | Eva | 1 | | Lucien | 4 | | London | 1 |
| | persons | | 0 | "Rory" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Eva" | | 4 | "Lucien" |
| | places | | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 85 | | glossingSentenceCount | 1 | | matches | | 0 | "patterns that seemed to move if you stared too long" |
| |
| 21.32% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 3 | | per1kWords | 1.787 | | wordCount | 1679 | | matches | | 0 | "not heavily, but with the casual ownership of a man who expected entry" | | 1 | "Not hard enough to bruise, but with a strength" | | 2 | "not to push him away, but to fist in the lapels of his expensive suit, anchoring herse" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 168 | | matches | | 0 | "heard that name" | | 1 | "chose that moment" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 72 | | mean | 23.32 | | std | 17.65 | | cv | 0.757 | | sampleLengths | | 0 | 15 | | 1 | 50 | | 2 | 9 | | 3 | 41 | | 4 | 18 | | 5 | 28 | | 6 | 34 | | 7 | 53 | | 8 | 12 | | 9 | 28 | | 10 | 17 | | 11 | 53 | | 12 | 3 | | 13 | 22 | | 14 | 37 | | 15 | 21 | | 16 | 20 | | 17 | 35 | | 18 | 1 | | 19 | 30 | | 20 | 21 | | 21 | 47 | | 22 | 4 | | 23 | 32 | | 24 | 9 | | 25 | 37 | | 26 | 14 | | 27 | 18 | | 28 | 16 | | 29 | 49 | | 30 | 23 | | 31 | 13 | | 32 | 40 | | 33 | 26 | | 34 | 24 | | 35 | 10 | | 36 | 70 | | 37 | 30 | | 38 | 12 | | 39 | 16 | | 40 | 15 | | 41 | 7 | | 42 | 53 | | 43 | 39 | | 44 | 6 | | 45 | 40 | | 46 | 12 | | 47 | 3 | | 48 | 74 | | 49 | 44 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 128 | | matches | | |
| 29.93% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 196 | | matches | | 0 | "was probably judging" | | 1 | "was already moving" | | 2 | "weren't saying" | | 3 | "was utterly immobilising" | | 4 | "was kissing" |
| |
| 100.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 0 | | semicolonCount | 0 | | flaggedSentences | 0 | | totalSentences | 168 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1117 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 28 | | adverbRatio | 0.025067144136078783 | | lyAdverbCount | 9 | | lyAdverbRatio | 0.008057296329453895 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 168 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 168 | | mean | 9.99 | | std | 7.25 | | cv | 0.725 | | sampleLengths | | 0 | 15 | | 1 | 19 | | 2 | 19 | | 3 | 8 | | 4 | 2 | | 5 | 2 | | 6 | 9 | | 7 | 7 | | 8 | 11 | | 9 | 23 | | 10 | 9 | | 11 | 9 | | 12 | 26 | | 13 | 2 | | 14 | 5 | | 15 | 14 | | 16 | 3 | | 17 | 12 | | 18 | 8 | | 19 | 22 | | 20 | 8 | | 21 | 15 | | 22 | 11 | | 23 | 1 | | 24 | 10 | | 25 | 7 | | 26 | 11 | | 27 | 4 | | 28 | 1 | | 29 | 2 | | 30 | 3 | | 31 | 7 | | 32 | 26 | | 33 | 20 | | 34 | 7 | | 35 | 3 | | 36 | 5 | | 37 | 5 | | 38 | 12 | | 39 | 3 | | 40 | 1 | | 41 | 10 | | 42 | 4 | | 43 | 1 | | 44 | 18 | | 45 | 18 | | 46 | 3 | | 47 | 8 | | 48 | 12 | | 49 | 5 |
| |
| 43.85% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 13 | | diversityRatio | 0.30952380952380953 | | totalSentences | 168 | | uniqueOpeners | 52 | |
| 28.74% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 116 | | matches | | 0 | "Then, the sharp, unmistakable sound" |
| | ratio | 0.009 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 65 | | totalSentences | 116 | | matches | | 0 | "He leaned on his ivory-handled" | | 1 | "Her name was a statement," | | 2 | "Her fingers tightened on the" | | 3 | "She hadn't seen him in" | | 4 | "Her voice stayed level, cool" | | 5 | "He nodded towards the stairwell" | | 6 | "It wasn't really a question." | | 7 | "He was already moving forward," | | 8 | "She stepped back." | | 9 | "He surveyed the chaos of" | | 10 | "His gaze was a physical" | | 11 | "It lingered on the single" | | 12 | "He turned, the movement fluid" | | 13 | "Her stomach tightened." | | 14 | "He took a slow step" | | 15 | "Her jaw clenched." | | 16 | "Her flight from Cardiff." | | 17 | "she said, the coolness in" | | 18 | "His heterochromatic eyes held hers" | | 19 | "She hadn't heard that name" |
| | ratio | 0.56 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 107 | | totalSentences | 116 | | matches | | 0 | "The third deadbolt gave a" | | 1 | "Lucien Moreau filled the frame," | | 2 | "He leaned on his ivory-handled" | | 3 | "Her name was a statement," | | 4 | "Her fingers tightened on the" | | 5 | "The small crescent scar on" | | 6 | "She hadn't seen him in" | | 7 | "Her voice stayed level, cool" | | 8 | "A Cardiff accent carefully filed" | | 9 | "He nodded towards the stairwell" | | 10 | "It wasn't really a question." | | 11 | "He was already moving forward," | | 12 | "She stepped back." | | 13 | "The door clicked shut behind" | | 14 | "The space felt smaller with" | | 15 | "He surveyed the chaos of" | | 16 | "His gaze was a physical" | | 17 | "It lingered on the single" | | 18 | "Rory said, as if that" | | 19 | "He turned, the movement fluid" |
| | ratio | 0.922 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 116 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 2 | | matches | | 0 | "He leaned on his ivory-handled cane, not heavily, but with the casual ownership of a man who expected entry." | | 1 | "The last thing she saw was the glint of his platinum hair in the weak light before the door swung shut, the three deadbolts clicking into place one by one, as i…" |
| |
| 25.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 20 | | uselessAdditionCount | 4 | | matches | | 0 | "Her voice stayed, cool" | | 1 | "Rory said, as if that explained her presence" | | 2 | "he murmured, his voice rough" | | 3 | "he said, the word scraping out of him," |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 7 | | fancyCount | 1 | | fancyTags | | | dialogueSentences | 65 | | tagDensity | 0.108 | | leniency | 0.215 | | rawRatio | 0.143 | | effectiveRatio | 0.031 | |