| 14.81% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 5 | | adverbTags | | 0 | "His accent wrapped around [around]" | | 1 | "she said quietly [quietly]" | | 2 | "She gestured vaguely [vaguely]" | | 3 | "He stood close [close]" | | 4 | "she said finally [finally]" |
| | dialogueSentences | 54 | | tagDensity | 0.407 | | leniency | 0.815 | | rawRatio | 0.227 | | effectiveRatio | 0.185 | |
| 94.07% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1685 | | 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) | |
| 55.49% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1685 | | totalAiIsms | 15 | | found | | | highlights | | 0 | "navigated" | | 1 | "familiar" | | 2 | "unreadable" | | 3 | "disrupted" | | 4 | "warmth" | | 5 | "flickered" | | 6 | "intensity" | | 7 | "weight" | | 8 | "stomach" | | 9 | "comfortable" | | 10 | "silence" | | 11 | "tension" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "hung in the air" | | count | 1 |
| | 1 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | 0 | "hung in the air" | | 1 | "sent a jolt through" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 101 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 1 | | hedgeCount | 1 | | narrationSentences | 101 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 132 | | 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 | 1667 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 20 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 40 | | wordCount | 1303 | | uniqueNames | 13 | | maxNameDensity | 0.84 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Ptolemy | 5 | | Eva | 3 | | Moreau | 2 | | French | 1 | | Rory | 11 | | Traitor | 1 | | Brick | 2 | | Lane | 2 | | Lucien | 7 | | London | 1 | | Whitechapel | 1 | | Embankment | 1 | | Six | 3 |
| | persons | | 0 | "Ptolemy" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Rory" | | 4 | "Lucien" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "London" | | 3 | "Whitechapel" | | 4 | "Embankment" | | 5 | "Six" |
| | globalScore | 1 | | windowScore | 1 | |
| 76.47% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 68 | | glossingSentenceCount | 2 | | matches | | 0 | "something like genuine warmth flickered acro" | | 1 | "something between amusement and longing, or per" | | 2 | "quite read—something between amusement and longing, or perhaps she was simply projecting" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1667 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 2 | | totalSentences | 132 | | matches | | 0 | "chose that moment" | | 1 | "mention that your" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 62 | | mean | 26.89 | | std | 23.06 | | cv | 0.857 | | sampleLengths | | 0 | 70 | | 1 | 4 | | 2 | 76 | | 3 | 16 | | 4 | 5 | | 5 | 77 | | 6 | 1 | | 7 | 41 | | 8 | 4 | | 9 | 18 | | 10 | 1 | | 11 | 41 | | 12 | 23 | | 13 | 22 | | 14 | 48 | | 15 | 10 | | 16 | 8 | | 17 | 36 | | 18 | 77 | | 19 | 10 | | 20 | 58 | | 21 | 16 | | 22 | 6 | | 23 | 46 | | 24 | 5 | | 25 | 9 | | 26 | 9 | | 27 | 18 | | 28 | 3 | | 29 | 47 | | 30 | 41 | | 31 | 6 | | 32 | 35 | | 33 | 4 | | 34 | 2 | | 35 | 28 | | 36 | 44 | | 37 | 5 | | 38 | 2 | | 39 | 3 | | 40 | 1 | | 41 | 30 | | 42 | 94 | | 43 | 20 | | 44 | 37 | | 45 | 45 | | 46 | 21 | | 47 | 44 | | 48 | 33 | | 49 | 8 |
| |
| 98.32% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 101 | | matches | | 0 | "been disrupted" | | 1 | "been brought" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 1 | | totalVerbs | 231 | | matches | | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 17 | | semicolonCount | 0 | | flaggedSentences | 13 | | totalSentences | 132 | | ratio | 0.098 | | matches | | 0 | "Rory set down her tea, her gaze flicking to the deadbolts—one, two, three—before she crossed the cramped sitting room." | | 1 | "But something in the rhythm of those knuckles against wood—the particular tempo she'd once found so irritating and now found so unsettlingly recognizable—made her hand close around the lock before she could think better of it." | | 2 | "He looked as though he'd stepped from the pages of one of Eva's fashion magazines—tailored charcoal suit, crisp white shirt open at the collar, that ivory-handled cane hanging from his left hand." | | 3 | "Her name in his mouth sounded different than it had six months ago—softer, perhaps, or maybe she'd simply forgotten how he could strip a single word down to its marrow." | | 4 | "Lucien's gaze dropped to the tabby, and for a moment—just a moment—something like genuine warmth flickered across his features." | | 5 | "\"—I should mention that your employer has already agreed. She's the one who sent me.\"" | | 6 | "She moved to the kitchen—such as it was, a two-burner stove wedged between a rusted sink and an overstuffed bookshelf—and busied herself with the kettle." | | 7 | "When she finally turned, cup in hand, she found him watching her with an expression she couldn't quite read—something between amusement and longing, or perhaps she was simply projecting." | | 8 | "The crescent scar on her wrist ached in the way old wounds sometimes did when the weather shifted—or when old ghosts refused to stay buried." | | 9 | "Then he reached into his jacket and withdrew a small card, black with silver lettering—a name, a number, nothing more." | | 10 | "She looked at the card, then at him—this impossible man with his impossible eyes and his impossible confession." | | 11 | "Lucien's expression didn't change, but something behind his eyes kindled—warmth, perhaps, or hope." | | 12 | "And after that—who knew." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 692 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 18 | | adverbRatio | 0.02601156069364162 | | lyAdverbCount | 6 | | lyAdverbRatio | 0.008670520231213872 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 132 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 132 | | mean | 12.63 | | std | 9.99 | | cv | 0.791 | | sampleLengths | | 0 | 25 | | 1 | 19 | | 2 | 26 | | 3 | 2 | | 4 | 1 | | 5 | 1 | | 6 | 4 | | 7 | 36 | | 8 | 36 | | 9 | 4 | | 10 | 3 | | 11 | 9 | | 12 | 5 | | 13 | 27 | | 14 | 32 | | 15 | 18 | | 16 | 1 | | 17 | 30 | | 18 | 11 | | 19 | 4 | | 20 | 14 | | 21 | 4 | | 22 | 1 | | 23 | 22 | | 24 | 19 | | 25 | 20 | | 26 | 1 | | 27 | 2 | | 28 | 17 | | 29 | 5 | | 30 | 15 | | 31 | 31 | | 32 | 2 | | 33 | 6 | | 34 | 4 | | 35 | 4 | | 36 | 4 | | 37 | 21 | | 38 | 15 | | 39 | 4 | | 40 | 24 | | 41 | 5 | | 42 | 12 | | 43 | 32 | | 44 | 6 | | 45 | 4 | | 46 | 8 | | 47 | 28 | | 48 | 22 | | 49 | 16 |
| |
| 54.29% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 10 | | diversityRatio | 0.3712121212121212 | | totalSentences | 132 | | uniqueOpeners | 49 | |
| 37.45% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 1 | | totalSentences | 89 | | matches | | 0 | "Then he reached into his" |
| | ratio | 0.011 | |
| 67.19% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 34 | | totalSentences | 89 | | matches | | 0 | "She shouldn't open it." | | 1 | "She pulled the door open." | | 2 | "He looked as though he'd" | | 3 | "His amber eye caught the" | | 4 | "Her name in his mouth" | | 5 | "She gripped the doorframe, her" | | 6 | "His accent wrapped around the" | | 7 | "He crouched, extending his free" | | 8 | "He straightened, his attention returning" | | 9 | "He held up a hand" | | 10 | "His laugh, rare and sharp," | | 11 | "she heard herself say" | | 12 | "He moved through the space" | | 13 | "He paused at the window," | | 14 | "She moved to the kitchen—such" | | 15 | "She didn't turn around" | | 16 | "She crossed the room and" | | 17 | "Their fingers brushed as he" | | 18 | "He took a sip of" | | 19 | "she said quietly" |
| | ratio | 0.382 | |
| 44.27% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 74 | | totalSentences | 89 | | matches | | 0 | "The knock came at half" | | 1 | "Rory set down her tea," | | 2 | "Books shifted under her feet" | | 3 | "She shouldn't open it." | | 4 | "Every instinct she had honed" | | 5 | "The first deadbolt groaned." | | 6 | "The second clicked." | | 7 | "The third, stiff from disuse," | | 8 | "She pulled the door open." | | 9 | "Lucien Moreau stood in the" | | 10 | "He looked as though he'd" | | 11 | "His amber eye caught the" | | 12 | "Her name in his mouth" | | 13 | "She gripped the doorframe, her" | | 14 | "His accent wrapped around the" | | 15 | "Ptolemy chose that moment to" | | 16 | "Lucien's gaze dropped to the" | | 17 | "He crouched, extending his free" | | 18 | "Rory's voice came out flatter" | | 19 | "He straightened, his attention returning" |
| | ratio | 0.831 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 89 | | matches | (empty) | | ratio | 0 | |
| 31.75% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 45 | | technicalSentenceCount | 7 | | matches | | 0 | "The knock came at half past eleven, three sharp raps against weathered wood that sent Ptolemy bolting from his perch atop a stack of grimoires." | | 1 | "He looked as though he'd stepped from the pages of one of Eva's fashion magazines—tailored charcoal suit, crisp white shirt open at the collar, that ivory-handl…" | | 2 | "He straightened, his attention returning to her with an intensity that made her skin prickle." | | 3 | "Six months should have been enough time to forget the particular weight of his gaze, the way he looked at her as though he could catalogue every thought behind …" | | 4 | "The scent of sandalwood and cigarette smoke drifted from his clothes, a combination that dragged memories she'd spent half a year trying to bury." | | 5 | "His laugh, rare and sharp, when she'd said something that surprised him." | | 6 | "He moved through the space with the deliberate grace she remembered, stepping over piles of research without disturbing a single page, his cane tapping softly a…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 0 | | matches | (empty) | |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 8 | | fancyCount | 1 | | fancyTags | | 0 | "Rory repeated (repeat)" |
| | dialogueSentences | 54 | | tagDensity | 0.148 | | leniency | 0.296 | | rawRatio | 0.125 | | effectiveRatio | 0.037 | |