| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 18 | | adverbTagCount | 1 | | adverbTags | | 0 | "she asked finally [finally]" |
| | dialogueSentences | 35 | | tagDensity | 0.514 | | leniency | 1 | | rawRatio | 0.056 | | effectiveRatio | 0.056 | |
| 95.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2063 | | totalAiIsmAdverbs | 2 | | 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) | |
| 73.34% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2063 | | totalAiIsms | 11 | | found | | | highlights | | 0 | "silk" | | 1 | "glint" | | 2 | "pulse" | | 3 | "perfect" | | 4 | "silence" | | 5 | "measured" | | 6 | "wavered" | | 7 | "warmth" | | 8 | "constructed" | | 9 | "flickered" | | 10 | "tracing" |
| |
| 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 | 103 | | matches | (empty) | |
| 87.38% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 3 | | narrationSentences | 103 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 120 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 57 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 2044 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 33 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 42 | | wordCount | 1572 | | uniqueNames | 15 | | maxNameDensity | 0.7 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Lucien | 11 | | Moreau | 1 | | Lucien-specific | 1 | | French | 1 | | Brick | 2 | | Lane | 2 | | Eva | 6 | | Ptolemy | 5 | | Aurora | 7 | | Heat | 1 | | Golden | 1 | | Empress | 1 | | Spanish | 1 | | Silas | 1 | | Relief | 1 |
| | persons | | 0 | "Lucien" | | 1 | "Moreau" | | 2 | "Eva" | | 3 | "Ptolemy" | | 4 | "Aurora" | | 5 | "Heat" | | 6 | "Empress" | | 7 | "Silas" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "Golden" | | 3 | "Spanish" |
| | globalScore | 1 | | windowScore | 1 | |
| 0.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 84 | | glossingSentenceCount | 6 | | matches | | 0 | "looked like trouble wrapped in silk" | | 1 | "as if gauging whether she would throw the door closed or let him taste the corridor's stale heat" | | 2 | "sounded like both a promise and a threat t" | | 3 | "something like regret and calculation" | | 4 | "felt like" | | 5 | "something like the clean intake of breath be" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 2 | | per1kWords | 0.978 | | wordCount | 2044 | | matches | | 0 | "Not a request for permission, exactly, but an invitation to choose" | | 1 | "not to claim but to steady" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 120 | | matches | (empty) | |
| 57.13% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 33 | | mean | 61.94 | | std | 21.68 | | cv | 0.35 | | sampleLengths | | 0 | 97 | | 1 | 21 | | 2 | 67 | | 3 | 54 | | 4 | 52 | | 5 | 27 | | 6 | 68 | | 7 | 92 | | 8 | 74 | | 9 | 59 | | 10 | 69 | | 11 | 27 | | 12 | 86 | | 13 | 85 | | 14 | 77 | | 15 | 80 | | 16 | 76 | | 17 | 87 | | 18 | 101 | | 19 | 49 | | 20 | 58 | | 21 | 76 | | 22 | 42 | | 23 | 66 | | 24 | 67 | | 25 | 28 | | 26 | 46 | | 27 | 78 | | 28 | 34 | | 29 | 37 | | 30 | 60 | | 31 | 33 | | 32 | 71 |
| |
| 98.45% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 103 | | matches | | 0 | "being asked" | | 1 | "been drunken" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 280 | | matches | | 0 | "was testing" | | 1 | "were savoring" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 2 | | flaggedSentences | 12 | | totalSentences | 120 | | ratio | 0.1 | | matches | | 0 | "On the threshold, under the narrow landing lamp that threw everything in harsh flats and brighter shadows, stood Lucien Moreau like an arresting photograph—tailored charcoal suit, slicked-back platinum hair catching the hallway light, ivory handle of a cane tucked under his arm." | | 1 | "He smelled faintly of smoke and something sharp—bergamot, maybe, or a cleaner she associated with Lucien-specific stores of danger." | | 2 | "There were things to say—accusations, a list of the better words for abandonment—and a long, knotted history behind the door she’d only half latched against the world." | | 3 | "Standing there, in the narrow space between Brick Lane’s damp stairwell and Eva's flat, he looked absurdly out of place—too clean, too controlled for the cluttered little box of a home that Eva kept." | | 4 | "She thought of the last words they'd said—sharp, brutal, final—and of the way he'd turned away." | | 5 | "He kept his hands where she could see them; the cane angling like punctuation against his leg." | | 6 | "\"Because something trailed me,\" he said, and for the first time his voice dropped—no theatrics, no polish." | | 7 | "She had learned to arrange her life around the hole he left—less because she wanted to punish him than because she did not know how to reconcile the man who had protected her and the man who had walked away without a backward glance." | | 8 | "She felt a prick at the base of her throat and, absurdly, remembered the rain the night he left—how it had made the lamplight swim and how she had watched his coat swallow him and then close on him like a book." | | 9 | "Ptolemy leapt up onto the chair after him and circled his calf, blinking once at her as if to say: humans are complicated; nap instead." | | 10 | "There was still a pull—a gravity that wasn't all blame or hurt: the easy tilt of laughter across bad coffee, the way he'd translated street signs in Spanish on a night they'd been drunken and reckless, the way his hand had fit the curve of her wrist once, not to claim but to steady." | | 11 | "Relief and something else—something like the clean intake of breath before kissing—flickered across his face." |
| |
| 94.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1589 | | adjectiveStacks | 1 | | stackExamples | | 0 | "small crescent-shaped scar" |
| | adverbCount | 45 | | adverbRatio | 0.028319697923222153 | | lyAdverbCount | 11 | | lyAdverbRatio | 0.006922592825676526 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 120 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 120 | | mean | 17.03 | | std | 12.02 | | cv | 0.706 | | sampleLengths | | 0 | 27 | | 1 | 9 | | 2 | 42 | | 3 | 12 | | 4 | 7 | | 5 | 8 | | 6 | 12 | | 7 | 1 | | 8 | 4 | | 9 | 25 | | 10 | 19 | | 11 | 11 | | 12 | 8 | | 13 | 12 | | 14 | 27 | | 15 | 14 | | 16 | 1 | | 17 | 27 | | 18 | 5 | | 19 | 8 | | 20 | 12 | | 21 | 7 | | 22 | 13 | | 23 | 7 | | 24 | 29 | | 25 | 24 | | 26 | 15 | | 27 | 6 | | 28 | 11 | | 29 | 34 | | 30 | 41 | | 31 | 6 | | 32 | 28 | | 33 | 24 | | 34 | 16 | | 35 | 14 | | 36 | 3 | | 37 | 24 | | 38 | 18 | | 39 | 18 | | 40 | 17 | | 41 | 17 | | 42 | 12 | | 43 | 5 | | 44 | 13 | | 45 | 11 | | 46 | 3 | | 47 | 28 | | 48 | 9 | | 49 | 16 |
| |
| 40.83% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.2833333333333333 | | totalSentences | 120 | | uniqueOpeners | 34 | |
| 36.63% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 91 | | matches | | 0 | "Instead she unlocked the first" |
| | ratio | 0.011 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 51 | | totalSentences | 91 | | matches | | 0 | "He looked like trouble wrapped" | | 1 | "Her mouth formed his name" | | 2 | "He did not move." | | 3 | "He smelled faintly of smoke" | | 4 | "He was five years older" | | 5 | "He had always been good" | | 6 | "He said it like a" | | 7 | "His voice slid up and" | | 8 | "He folded his gloved hand" | | 9 | "She had not expected him." | | 10 | "He had promised he would" | | 11 | "She had told herself she" | | 12 | "she asked finally" | | 13 | "She heard fingers along the" | | 14 | "Her voice was steadier than" | | 15 | "He had tried to touch" | | 16 | "He watched the movement now" | | 17 | "He had the kind of" | | 18 | "She could have stepped back," | | 19 | "She thought of every night" |
| | ratio | 0.56 | |
| 31.43% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 78 | | totalSentences | 91 | | matches | | 0 | "The door swung inward on" | | 1 | "Aurora froze with her hand" | | 2 | "He looked like trouble wrapped" | | 3 | "Her mouth formed his name" | | 4 | "He did not move." | | 5 | "The corner of his mouth" | | 6 | "He smelled faintly of smoke" | | 7 | "He was five years older" | | 8 | "He had always been good" | | 9 | "He said it like a" | | 10 | "His voice slid up and" | | 11 | "He folded his gloved hand" | | 12 | "She had not expected him." | | 13 | "He had promised he would" | | 14 | "She had told herself she" | | 15 | "she asked finally" | | 16 | "She heard fingers along the" | | 17 | "Her voice was steadier than" | | 18 | "Lucien's amber eye slid to" | | 19 | "He had tried to touch" |
| | ratio | 0.857 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 91 | | matches | (empty) | | ratio | 0 | |
| 18.14% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 63 | | technicalSentenceCount | 11 | | matches | | 0 | "On the threshold, under the narrow landing lamp that threw everything in harsh flats and brighter shadows, stood Lucien Moreau like an arresting photograph—tail…" | | 1 | "The corner of his mouth tilted, carefully, as if gauging whether she would throw the door closed or let him taste the corridor's stale heat." | | 2 | "He had the kind of improbability that made him look as if he'd been cut from a different life seam and pasted into hers, a man who belonged to the lanes of the …" | | 3 | "Lucien took a slow step over the threshold as if the threshold were a rope he was testing." | | 4 | "He sank into the overstuffed chair near the window without being asked, folding his legs with the pigeon-toed grace of someone who was always polite about takin…" | | 5 | "Lucien watched her over Ptolemy's back as though he were savoring her reaction." | | 6 | "She had learned to arrange her life around the hole he left—less because she wanted to punish him than because she did not know how to reconcile the man who had…" | | 7 | "She crossed the room to the kitchenette, boiling an overfull kettle as if water could wash away complications." | | 8 | "He moved with a grace that made the air hold its breath." | | 9 | "There was still a pull—a gravity that wasn't all blame or hurt: the easy tilt of laughter across bad coffee, the way he'd translated street signs in Spanish on …" | | 10 | "In that small room above Brick Lane, with curry drifting up and old papers whispering on the shelves, they sat like two things forced back into orbit, and Auror…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 18 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 92.86% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 2 | | fancyTags | | 0 | "she repeated (repeat)" | | 1 | "he agreed (agree)" |
| | dialogueSentences | 35 | | tagDensity | 0.486 | | leniency | 0.971 | | rawRatio | 0.118 | | effectiveRatio | 0.114 | |