| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 1 | | adverbTags | | 0 | "He gestured vaguely [vaguely]" |
| | dialogueSentences | 54 | | tagDensity | 0.315 | | leniency | 0.63 | | rawRatio | 0.059 | | effectiveRatio | 0.037 | |
| 88.19% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1694 | | totalAiIsmAdverbs | 4 | | 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) | |
| 46.87% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1694 | | totalAiIsms | 18 | | found | | | highlights | | 0 | "silk" | | 1 | "stomach" | | 2 | "lurched" | | 3 | "flicked" | | 4 | "firmly" | | 5 | "absolutely" | | 6 | "traced" | | 7 | "silence" | | 8 | "weight" | | 9 | "lilt" | | 10 | "flickered" | | 11 | "pulse" | | 12 | "resonated" | | 13 | "trembled" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "sent a shiver through" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 138 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 138 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 174 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 47 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1676 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 15 | | unquotedAttributions | 0 | | matches | (empty) | |
| 50.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 86 | | wordCount | 1386 | | uniqueNames | 15 | | maxNameDensity | 1.88 | | worstName | "Lucien" | | maxWindowNameDensity | 3.5 | | worstWindowName | "Lucien" | | discoveredNames | | Rory | 22 | | Parisian | 1 | | East | 2 | | End | 1 | | Moreau | 2 | | Eva | 15 | | Ptolemy | 3 | | Marseille | 2 | | London | 5 | | Wales | 1 | | Lucien | 26 | | Evan | 3 | | Brick | 1 | | Lane | 1 | | French | 1 |
| | persons | | 0 | "Rory" | | 1 | "Parisian" | | 2 | "Moreau" | | 3 | "Eva" | | 4 | "Ptolemy" | | 5 | "Lucien" | | 6 | "Evan" |
| | places | | 0 | "East" | | 1 | "End" | | 2 | "Marseille" | | 3 | "London" | | 4 | "Wales" | | 5 | "Brick" | | 6 | "Lane" |
| | globalScore | 0.562 | | windowScore | 0.5 | |
| 38.89% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 90 | | glossingSentenceCount | 4 | | matches | | 0 | "looked like primary school" | | 1 | "sounded like career suicide even for someo" | | 2 | "felt like a blade pressed to her throat" | | 3 | "Something like ozone and hot metal" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1676 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 174 | | matches | | 0 | "knew that accent" | | 1 | "worn that night" | | 2 | "carrying that French" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 76 | | mean | 22.05 | | std | 15.7 | | cv | 0.712 | | sampleLengths | | 0 | 4 | | 1 | 11 | | 2 | 18 | | 3 | 10 | | 4 | 18 | | 5 | 79 | | 6 | 20 | | 7 | 15 | | 8 | 42 | | 9 | 35 | | 10 | 24 | | 11 | 46 | | 12 | 16 | | 13 | 3 | | 14 | 18 | | 15 | 36 | | 16 | 9 | | 17 | 24 | | 18 | 4 | | 19 | 38 | | 20 | 31 | | 21 | 41 | | 22 | 4 | | 23 | 7 | | 24 | 31 | | 25 | 3 | | 26 | 62 | | 27 | 42 | | 28 | 3 | | 29 | 48 | | 30 | 43 | | 31 | 9 | | 32 | 57 | | 33 | 30 | | 34 | 10 | | 35 | 29 | | 36 | 2 | | 37 | 20 | | 38 | 21 | | 39 | 13 | | 40 | 3 | | 41 | 40 | | 42 | 10 | | 43 | 11 | | 44 | 24 | | 45 | 47 | | 46 | 23 | | 47 | 14 | | 48 | 4 | | 49 | 31 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 138 | | matches | | 0 | "been poured" | | 1 | "been taken" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 0 | | totalVerbs | 235 | | matches | (empty) | |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 17 | | totalSentences | 174 | | ratio | 0.098 | | matches | | 0 | "She knew that accent—polished Parisian edges sliding around East End vowels like oil on water." | | 1 | "And then there were his eyes—one amber, one black." | | 2 | "The scent hit her before his words fully registered—bergamot and wintergreen cologne, expensive as sin and twice as addictive." | | 3 | "The movement raised the sleeve of her hoodie, flashing the crescent scar on her wrist—old childhood damage flaring under his gaze like some kind of stupid signal." | | 4 | "The flat behind her smelled of old paper and curry spices—Eva's signature chaos." | | 5 | "A woman's voice floated up—someone bellowing for their parcel." | | 6 | "Rory's fingers twitched toward the knife sheathed against her spine—the one she kept there for situations exactly like this." | | 7 | "The flat hit her like a punch—walls bowed under bookshelves crammed with every kind of text you could imagine: brittle-looking tomes with gold lettering, spiral-bound notebooks bleeding loose pages, maps pinned with red string forming patterns Rory didn't dare interpret." | | 8 | "\"I could.\" He traced a finger along Eva's desk, leaving a smudge on photos she'd pinned there—Eva at various ages, grinning next to Rory in what looked like primary school." | | 9 | "Lucien swirled the wine—expensive burgundy judging by the dark stain clinging to the glass." | | 10 | "His gaze flicked to her hoodie again—around the neck, where the fabric gaped just enough to show the fresh scar on her collarbone." | | 11 | "Rory's vision tunnelled to the photo on Eva's desk—her and Eva, arms slung around each other, both grinning like they could take on the world." | | 12 | "Rory set her glass down, undone by the weight of him there—by the memories of his hands in her hair, his mouth on her skin, the promises tangled in the dark that had turned into ash once she'd seen the real him beneath the polished surface." | | 13 | "Not for the knife at her spine—no, something else." | | 14 | "No—wait." | | 15 | "The air between them crackled—literally." | | 16 | "And Lucien Moreau—complicated, dangerous Lucien—was here." |
| |
| 91.06% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1414 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 71 | | adverbRatio | 0.05021216407355021 | | lyAdverbCount | 28 | | lyAdverbRatio | 0.019801980198019802 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 174 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 174 | | mean | 9.63 | | std | 7.07 | | cv | 0.734 | | sampleLengths | | 0 | 4 | | 1 | 11 | | 2 | 3 | | 3 | 15 | | 4 | 10 | | 5 | 15 | | 6 | 3 | | 7 | 18 | | 8 | 13 | | 9 | 19 | | 10 | 29 | | 11 | 9 | | 12 | 11 | | 13 | 14 | | 14 | 1 | | 15 | 19 | | 16 | 3 | | 17 | 20 | | 18 | 8 | | 19 | 27 | | 20 | 7 | | 21 | 12 | | 22 | 5 | | 23 | 13 | | 24 | 19 | | 25 | 14 | | 26 | 11 | | 27 | 5 | | 28 | 3 | | 29 | 10 | | 30 | 8 | | 31 | 7 | | 32 | 4 | | 33 | 25 | | 34 | 9 | | 35 | 10 | | 36 | 14 | | 37 | 3 | | 38 | 1 | | 39 | 12 | | 40 | 13 | | 41 | 9 | | 42 | 4 | | 43 | 4 | | 44 | 6 | | 45 | 16 | | 46 | 5 | | 47 | 19 | | 48 | 22 | | 49 | 4 |
| |
| 50.38% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.3505747126436782 | | totalSentences | 174 | | uniqueOpeners | 61 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 130 | | matches | (empty) | | ratio | 0 | |
| 100.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 26 | | totalSentences | 130 | | matches | | 0 | "Her knuckles froze mid-knock." | | 1 | "She knew that accent—polished Parisian" | | 2 | "She pulled the door open" | | 3 | "His platinum-blond hair gleamed under" | | 4 | "His charcoal suit clung to" | | 5 | "He tilted his head, the" | | 6 | "she said, crossing her arms" | | 7 | "His expression didn't change, but" | | 8 | "She stepped aside instinctively, letting" | | 9 | "He gestured vaguely with his" | | 10 | "His gaze never left Rory's" | | 11 | "She was delivery staff by" | | 12 | "She moved aside." | | 13 | "He traced a finger along" | | 14 | "She grabbed a couple, slammed" | | 15 | "She crossed the room, handed" | | 16 | "Their fingers brushed." | | 17 | "He took a sip" | | 18 | "He didn't answer directly." | | 19 | "His gaze flicked to her" |
| | ratio | 0.2 | |
| 36.92% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 110 | | totalSentences | 130 | | matches | | 0 | "Her knuckles froze mid-knock." | | 1 | "The voice curled through the" | | 2 | "Rory's breath hitched." | | 3 | "She knew that accent—polished Parisian" | | 4 | "The bastard had either lost" | | 5 | "She pulled the door open" | | 6 | "Lucien Moreau leaned against the" | | 7 | "His platinum-blond hair gleamed under" | | 8 | "His charcoal suit clung to" | | 9 | "A trick of the light" | | 10 | "He tilted his head, the" | | 11 | "The scent hit her before" | | 12 | "Rory's stomach lurched." | | 13 | "she said, crossing her arms" | | 14 | "The movement raised the sleeve" | | 15 | "Lucien's gaze flicked to it," | | 16 | "His expression didn't change, but" | | 17 | "The flat behind her smelled" | | 18 | "The tabby cat, Ptolemy, chose" | | 19 | "She stepped aside instinctively, letting" |
| | ratio | 0.846 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 4 | | totalSentences | 130 | | matches | | 0 | "Before the Evan shitshow." | | 1 | "Before the London crawl." | | 2 | "Before the London crawl where" | | 3 | "Now it felt like a" |
| | ratio | 0.031 | |
| 100.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 58 | | technicalSentenceCount | 3 | | matches | | 0 | "The movement raised the sleeve of her hoodie, flashing the crescent scar on her wrist—old childhood damage flaring under his gaze like some kind of stupid signa…" | | 1 | "When she turned, he'd taken off his jacket, hanging it meticulously over Eva's second-hand dining chair." | | 2 | "Rory set her glass down, undone by the weight of him there—by the memories of his hands in her hair, his mouth on her skin, the promises tangled in the dark tha…" |
| |
| 95.59% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 1 | | matches | | 0 | "He tilted, the corner of his mouth lifting just slightly" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 2 | | fancyTags | | 0 | "His tone suggested (suggest)" | | 1 | "she whispered (whisper)" |
| | dialogueSentences | 54 | | tagDensity | 0.093 | | leniency | 0.185 | | rawRatio | 0.4 | | effectiveRatio | 0.074 | |