| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 5 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 14 | | tagDensity | 0.357 | | leniency | 0.714 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 88.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 862 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 100.00% | AI-ism character names | Target: 0 AI-default names (16 tracked, −20% each) | | codexExemptions | | | found | (empty) | |
| 100.00% | AI-ism location names | Target: 0 AI-default location names (33 tracked, −20% each) | | codexExemptions | (empty) | | found | (empty) | |
| 47.80% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 862 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "unspoken" | | 1 | "familiar" | | 2 | "reminder" | | 3 | "glinting" | | 4 | "silence" | | 5 | "pulse" | | 6 | "flickered" |
| |
| 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 | 39 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 1 | | narrationSentences | 39 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 52 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 62 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 842 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 3 | | unquotedAttributions | 0 | | matches | (empty) | |
| 83.33% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 644 | | uniqueNames | 12 | | maxNameDensity | 1.24 | | worstName | "Rory" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Evan" | | discoveredNames | | Golden | 1 | | Empress | 1 | | Nest | 1 | | Cardiff | 2 | | Silas | 4 | | Rory | 8 | | Evan | 6 | | Laila | 1 | | Yu-Fei | 1 | | Soho | 2 | | Vauxhall | 1 | | London | 1 |
| | persons | | 0 | "Silas" | | 1 | "Rory" | | 2 | "Evan" | | 3 | "Laila" |
| | places | | 0 | "Cardiff" | | 1 | "Yu-Fei" | | 2 | "Soho" | | 3 | "Vauxhall" | | 4 | "London" |
| | globalScore | 0.879 | | windowScore | 0.833 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 31 | | 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 | 842 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 52 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 16 | | mean | 52.63 | | std | 32.19 | | cv | 0.612 | | sampleLengths | | 0 | 106 | | 1 | 77 | | 2 | 41 | | 3 | 23 | | 4 | 66 | | 5 | 44 | | 6 | 27 | | 7 | 78 | | 8 | 3 | | 9 | 53 | | 10 | 5 | | 11 | 45 | | 12 | 12 | | 13 | 72 | | 14 | 104 | | 15 | 86 |
| |
| 96.27% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 39 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 105 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 6 | | semicolonCount | 0 | | flaggedSentences | 6 | | totalSentences | 52 | | ratio | 0.115 | | matches | | 0 | "Copper from the bar’s polished taps stung her nostrils, mixed with the faint, musty scent of old maps plastered to the walls—maps she’d never bothered to study in her month living above the Nest." | | 1 | "The pieces clicked—her father’s sudden silence about his “old acquaintance,” the way Silas’ quiet authority had felt familiar from the start, the secret back room she’d spotted through the bookshelf one night when he’d left the door ajar." | | 2 | "Her left wrist tingled, the crescent scar from her childhood bike accident throbbing in time with her pulse— a reminder of the chaos she’d fled: the abusive ex Evan who’d grabbed her wrist until the skin split, the father who’d forced her into pre-law against her will, the mother who’d looked the other way when Evan showed up at their door drunk." | | 3 | "The handwriting on the front was Evan’s—sharp, slanted, a style he’d used to scrawl threats on her textbook covers when she’d tried to leave him." | | 4 | "His eyes locked with hers—bright blue, the same as hers, a detail she’d always hated." | | 5 | "He tapped the photo twice, then nodded at the bar’s entrance, his grin widening as a second figure stepped out of the car—her mother, bound and gagged, a bruise blooming on her cheek." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 135 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 2 | | adverbRatio | 0.014814814814814815 | | lyAdverbCount | 0 | | lyAdverbRatio | 0 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 52 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 52 | | mean | 16.19 | | std | 12.51 | | cv | 0.773 | | sampleLengths | | 0 | 16 | | 1 | 29 | | 2 | 27 | | 3 | 34 | | 4 | 7 | | 5 | 5 | | 6 | 11 | | 7 | 4 | | 8 | 29 | | 9 | 21 | | 10 | 12 | | 11 | 23 | | 12 | 6 | | 13 | 10 | | 14 | 4 | | 15 | 9 | | 16 | 41 | | 17 | 11 | | 18 | 14 | | 19 | 4 | | 20 | 38 | | 21 | 2 | | 22 | 3 | | 23 | 24 | | 24 | 16 | | 25 | 62 | | 26 | 3 | | 27 | 21 | | 28 | 3 | | 29 | 29 | | 30 | 5 | | 31 | 11 | | 32 | 25 | | 33 | 9 | | 34 | 4 | | 35 | 7 | | 36 | 1 | | 37 | 34 | | 38 | 11 | | 39 | 15 | | 40 | 12 | | 41 | 5 | | 42 | 11 | | 43 | 9 | | 44 | 5 | | 45 | 31 | | 46 | 28 | | 47 | 15 | | 48 | 14 | | 49 | 27 |
| |
| 68.59% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 1 | | diversityRatio | 0.4230769230769231 | | totalSentences | 52 | | uniqueOpeners | 22 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 39 | | matches | (empty) | | ratio | 0 | |
| 66.15% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 15 | | totalSentences | 39 | | matches | | 0 | "She’d spotted it that morning," | | 1 | "She wore her Golden Empress" | | 2 | "She flipped the lid open." | | 3 | "She picked it up." | | 4 | "His left leg dragged slightly," | | 5 | "She didn’t look up." | | 6 | "He nodded at the stack" | | 7 | "Her left wrist tingled, the" | | 8 | "She’d changed her name to" | | 9 | "She grabbed the envelope, her" | | 10 | "He paused, glancing through the" | | 11 | "He wore a faded denim" | | 12 | "His eyes locked with hers—bright" | | 13 | "She raised it, ready to" | | 14 | "He tapped the photo twice," |
| | ratio | 0.385 | |
| 0.00% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 38 | | totalSentences | 39 | | matches | | 0 | "Rory jammed a flathead screwdriver" | | 1 | "She’d spotted it that morning," | | 2 | "She wore her Golden Empress" | | 3 | "Copper from the bar’s polished" | | 4 | "The lock gave with a" | | 5 | "She flipped the lid open." | | 6 | "A black-and-white photo slid out" | | 7 | "She picked it up." | | 8 | "The man’s right hand wore" | | 9 | "His left leg dragged slightly," | | 10 | "Rory’s fingers tightened around the" | | 11 | "She didn’t look up." | | 12 | "Silas leaned against the bar," | | 13 | "He nodded at the stack" | | 14 | "Rory’s head snapped up." | | 15 | "The pieces clicked—her father’s sudden" | | 16 | "Rory tucked the photo into" | | 17 | "Her left wrist tingled, the" | | 18 | "The words hung in the" | | 19 | "Rory’s breath caught." |
| | ratio | 0.974 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 39 | | matches | (empty) | | ratio | 0 | |
| 49.69% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 23 | | technicalSentenceCount | 3 | | matches | | 0 | "Ten-year-old her stood outside her father’s Cardiff barrister office, grinning next to a younger man with auburn hair (no grey streaks then) and a straight-back…" | | 1 | "Her left wrist tingled, the crescent scar from her childhood bike accident throbbing in time with her pulse— a reminder of the chaos she’d fled: the abusive ex …" | | 2 | "He tapped the photo twice, then nodded at the bar’s entrance, his grin widening as a second figure stepped out of the car—her mother, bound and gagged, a bruise…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 5 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | |