| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 11 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 61 | | tagDensity | 0.18 | | leniency | 0.361 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 97.11% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1730 | | 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) | |
| 68.21% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1730 | | totalAiIsms | 11 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | word | "carried the weight" | | count | 1 |
| | 6 | | | 7 | | | 8 | | | 9 | |
| | highlights | | 0 | "navigate" | | 1 | "methodical" | | 2 | "pulse" | | 3 | "throbbed" | | 4 | "weight" | | 5 | "carried the weight" | | 6 | "silence" | | 7 | "charm" | | 8 | "reminder" | | 9 | "charged" |
| |
| 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 | 110 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 110 | | filterMatches | (empty) | | hedgeMatches | | 0 | "started to" | | 1 | "seemed to" |
| |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 159 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 51 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1748 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 39 | | wordCount | 1236 | | uniqueNames | 11 | | maxNameDensity | 0.73 | | worstName | "Ptolemy" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 8 | | Moreau | 1 | | Tuesday | 1 | | Savile | 1 | | Row | 1 | | Ptolemy | 9 | | Eva | 4 | | Casual | 1 | | Bengali | 1 | | Rory | 9 | | Three | 3 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Ptolemy" | | 3 | "Eva" | | 4 | "Rory" |
| | places | | 0 | "Savile" | | 1 | "Bengali" | | 2 | "Three" |
| | globalScore | 1 | | windowScore | 1 | |
| 75.37% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 67 | | glossingSentenceCount | 2 | | matches | | 0 | "looked like he'd stepped out of a fitting" | | 1 | "felt like to be small and afraid" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1748 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 159 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 82 | | mean | 21.32 | | std | 20.71 | | cv | 0.972 | | sampleLengths | | 0 | 21 | | 1 | 96 | | 2 | 32 | | 3 | 1 | | 4 | 4 | | 5 | 37 | | 6 | 6 | | 7 | 16 | | 8 | 29 | | 9 | 55 | | 10 | 9 | | 11 | 87 | | 12 | 14 | | 13 | 6 | | 14 | 18 | | 15 | 51 | | 16 | 1 | | 17 | 9 | | 18 | 4 | | 19 | 5 | | 20 | 19 | | 21 | 4 | | 22 | 4 | | 23 | 41 | | 24 | 18 | | 25 | 43 | | 26 | 7 | | 27 | 9 | | 28 | 1 | | 29 | 8 | | 30 | 43 | | 31 | 4 | | 32 | 4 | | 33 | 5 | | 34 | 7 | | 35 | 33 | | 36 | 22 | | 37 | 17 | | 38 | 28 | | 39 | 30 | | 40 | 2 | | 41 | 50 | | 42 | 92 | | 43 | 6 | | 44 | 6 | | 45 | 5 | | 46 | 3 | | 47 | 23 | | 48 | 52 | | 49 | 14 |
| |
| 98.88% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 110 | | matches | | 0 | "being watched" | | 1 | "was tired" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 210 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 16 | | semicolonCount | 0 | | flaggedSentences | 12 | | totalSentences | 159 | | ratio | 0.075 | | matches | | 0 | "That was the infuriating thing about Lucien Moreau — even when he showed up uninvited at half past ten on a Tuesday night, he looked like he'd stepped out of a fitting at Savile Row." | | 1 | "His cane caught the frame — not forcefully, just enough." | | 2 | "His mismatched eyes — the amber one warm, the black one fathomless — held hers without blinking." | | 3 | "She checked his breathing next — even, controlled, not the shallow pattern she'd learned to associate with him running from something." | | 4 | "He moved through it all with the precise, practiced gait of someone used to stepping around obstacles — or over bodies — and settled himself against the edge of the kitchen counter." | | 5 | "Forearms corded with lean muscle, the skin there a shade darker than the rest of him — evidence of whatever blood ran from his father's side." | | 6 | "The audacity of a man eating a spring roll in her kitchen — Eva's kitchen — while she stood there with her pulse hammering in her throat." | | 7 | "It was like being watched by two different creatures at once — one of them patient, the other hungry." | | 8 | "Rory pushed off the door and moved through the maze of books until she stood close enough to see the faint network of scars along his forearms, close enough to smell bergamot and smoke and something underneath both that she'd never been able to name — something warm, something not entirely human." | | 9 | "Not a smile — he was too careful for that, too aware of how thin the ground was between them." | | 10 | "She'd seen him angry before — cold, surgical, channeled into precise and devastating action." | | 11 | "The sound of it in his accent — the soft roll of the R, the way he clipped the final vowel — did something to the air between them, thinned it, charged it." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1220 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 33 | | adverbRatio | 0.027049180327868853 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.009016393442622951 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 159 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 159 | | mean | 10.99 | | std | 10.18 | | cv | 0.926 | | sampleLengths | | 0 | 21 | | 1 | 25 | | 2 | 11 | | 3 | 5 | | 4 | 20 | | 5 | 35 | | 6 | 7 | | 7 | 25 | | 8 | 1 | | 9 | 4 | | 10 | 16 | | 11 | 10 | | 12 | 11 | | 13 | 6 | | 14 | 16 | | 15 | 17 | | 16 | 6 | | 17 | 6 | | 18 | 5 | | 19 | 22 | | 20 | 5 | | 21 | 2 | | 22 | 21 | | 23 | 9 | | 24 | 27 | | 25 | 9 | | 26 | 6 | | 27 | 13 | | 28 | 32 | | 29 | 14 | | 30 | 6 | | 31 | 5 | | 32 | 1 | | 33 | 12 | | 34 | 25 | | 35 | 26 | | 36 | 1 | | 37 | 9 | | 38 | 4 | | 39 | 5 | | 40 | 19 | | 41 | 4 | | 42 | 4 | | 43 | 12 | | 44 | 1 | | 45 | 1 | | 46 | 27 | | 47 | 10 | | 48 | 1 | | 49 | 7 |
| |
| 49.69% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 16 | | diversityRatio | 0.3584905660377358 | | totalSentences | 159 | | uniqueOpeners | 57 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 3 | | totalSentences | 91 | | matches | | 0 | "Then she turned and leaned" | | 1 | "Somewhere below, a door slammed" | | 2 | "Instead she said," |
| | ratio | 0.033 | |
| 70.55% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 91 | | matches | | 0 | "His platinum hair caught the" | | 1 | "He looked exactly the same." | | 2 | "She'd only opened it because" | | 3 | "She started to push the" | | 4 | "His cane caught the frame" | | 5 | "His mismatched eyes — the" | | 6 | "She checked his breathing next" | | 7 | "She stepped back and let" | | 8 | "He moved through it all" | | 9 | "She locked all three deadbolts." | | 10 | "He mirrored her tone exactly," | | 11 | "He pulled a spring roll" | | 12 | "Her left wrist throbbed." | | 13 | "He set the spring roll" | | 14 | "His black eye seemed to" | | 15 | "It was like being watched" | | 16 | "He picked up the spring" | | 17 | "She stared at him." | | 18 | "Her nails bit crescents into" | | 19 | "His voice was stripped bare" |
| | ratio | 0.374 | |
| 42.42% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 76 | | totalSentences | 91 | | matches | | 0 | "The door swung open and" | | 1 | "Lucien stood on the landing," | | 2 | "His platinum hair caught the" | | 3 | "He looked exactly the same." | | 4 | "Charcoal suit cut close to" | | 5 | "That was the infuriating thing" | | 6 | "Rory gripped the edge of" | | 7 | "She'd only opened it because" | | 8 | "She started to push the" | | 9 | "His cane caught the frame" | | 10 | "The ivory handle clicked against" | | 11 | "His mismatched eyes — the" | | 12 | "A muscle worked in his" | | 13 | "Rory looked at his hands." | | 14 | "She checked his breathing next" | | 15 | "She stepped back and let" | | 16 | "Lucien crossed the threshold and" | | 17 | "Stacks of books rose from" | | 18 | "Scrolls poked out of coffee" | | 19 | "He moved through it all" |
| | ratio | 0.835 | |
| 54.95% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 1 | | totalSentences | 91 | | matches | | 0 | "As though he were discussing" |
| | ratio | 0.011 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 41 | | technicalSentenceCount | 1 | | matches | | 0 | "The crescent scar there had nothing to do with the supernatural, but it ached all the same in moments like these, as though her body remembered what it felt lik…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 11 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | 0 | "Rory muttered (mutter)" |
| | dialogueSentences | 61 | | tagDensity | 0.131 | | leniency | 0.262 | | rawRatio | 0.125 | | effectiveRatio | 0.033 | |