| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 17 | | adverbTagCount | 0 | | adverbTags | (empty) | | dialogueSentences | 84 | | tagDensity | 0.202 | | leniency | 0.405 | | rawRatio | 0 | | effectiveRatio | 0 | |
| 73.07% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1857 | | totalAiIsmAdverbs | 10 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 2 | "really" | | 3 | "suddenly" | | 4 | "softly" |
| |
| 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) | |
| 56.92% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1857 | | totalAiIsms | 16 | | found | | | highlights | | 0 | "pulse" | | 1 | "flickered" | | 2 | "intensity" | | 3 | "silence" | | 4 | "flicked" | | 5 | "stomach" | | 6 | "traced" | | 7 | "raced" | | 8 | "eyebrow" | | 9 | "trembled" | | 10 | "unreadable" | | 11 | "charged" | | 12 | "tracing" | | 13 | "reminder" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 1 | | maxInWindow | 1 | | found | | 0 | | label | "stomach dropped/sank" | | count | 1 |
|
| | highlights | | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 129 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 2 | | narrationSentences | 129 | | filterMatches | (empty) | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 192 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 37 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 13 | | markdownWords | 19 | | totalWords | 1846 | | ratio | 0.01 | | matches | | 0 | "showed up" | | 1 | "tell" | | 2 | "left" | | 3 | "you" | | 4 | "both" | | 5 | "called" | | 6 | "meant" | | 7 | "us" | | 8 | "know" | | 9 | "not" | | 10 | "not" | | 11 | "mention" | | 12 | "For When the Usual Doesn’t Work" |
| |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 22 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 29 | | wordCount | 1327 | | uniqueNames | 8 | | maxNameDensity | 0.98 | | worstName | "Rory" | | maxWindowNameDensity | 2 | | worstWindowName | "Rory" | | discoveredNames | | Rory | 13 | | Eva | 3 | | Moreau | 1 | | Lucien | 7 | | Luc | 1 | | God | 2 | | Usual | 1 | | Doesn | 1 |
| | persons | | 0 | "Rory" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Luc" |
| | places | (empty) | | globalScore | 1 | | windowScore | 1 | |
| 100.00% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 89 | | glossingSentenceCount | 1 | | matches | | |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1846 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 1 | | totalSentences | 192 | | matches | | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 82 | | mean | 22.51 | | std | 15.84 | | cv | 0.704 | | sampleLengths | | 0 | 62 | | 1 | 68 | | 2 | 65 | | 3 | 13 | | 4 | 23 | | 5 | 12 | | 6 | 23 | | 7 | 42 | | 8 | 14 | | 9 | 32 | | 10 | 49 | | 11 | 2 | | 12 | 9 | | 13 | 14 | | 14 | 11 | | 15 | 30 | | 16 | 20 | | 17 | 13 | | 18 | 49 | | 19 | 7 | | 20 | 34 | | 21 | 36 | | 22 | 4 | | 23 | 36 | | 24 | 15 | | 25 | 34 | | 26 | 5 | | 27 | 39 | | 28 | 26 | | 29 | 34 | | 30 | 30 | | 31 | 18 | | 32 | 16 | | 33 | 11 | | 34 | 23 | | 35 | 40 | | 36 | 20 | | 37 | 14 | | 38 | 28 | | 39 | 57 | | 40 | 5 | | 41 | 10 | | 42 | 13 | | 43 | 22 | | 44 | 30 | | 45 | 46 | | 46 | 4 | | 47 | 2 | | 48 | 44 | | 49 | 1 |
| |
| 99.82% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 129 | | matches | | 0 | "was gone" | | 1 | "was strained" |
| |
| 17.71% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 7 | | totalVerbs | 256 | | matches | | 0 | "was wiping" | | 1 | "was fiddling" | | 2 | "weren’t saying" | | 3 | "was talking" | | 4 | "was looking" | | 5 | "was looking" | | 6 | "was watching" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 13 | | semicolonCount | 0 | | flaggedSentences | 10 | | totalSentences | 192 | | ratio | 0.052 | | matches | | 0 | "Another knock, sharper this time, followed by the faint jingle of metal against wood—someone was fiddling with the deadbolts." | | 1 | "Rain glistened on the shoulders of his coat, and his heterochromatic eyes—one amber, one black—flickered over her with an intensity that made her skin prickle." | | 2 | "His presence had always been like that—impossible to ignore." | | 3 | "She’d never asked about his past—never pushed, even when she’d wanted to." | | 4 | "That job had been a mess—someone had double-crossed them, and the fallout had been brutal." | | 5 | "But the way he was looking at her—like she was the only thing in the world worth coming back for—made it hard to remember why she’d built those walls in the first place." | | 6 | "His amber eye was warm, the black one unreadable, but the way he was looking at her—like she was the only thing keeping him anchored—made her throat tighten." | | 7 | "Should remind him that they weren’t this—that whatever they’d been, it was over." | | 8 | "But the wound on his arm was a reminder of what he was—of the world he lived in." | | 9 | "She grabbed the antiseptic, the bandages, and a small bottle of something stronger—something Eva had labeled *For When the Usual Doesn’t Work*." |
| |
| 99.90% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1346 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 54 | | adverbRatio | 0.04011887072808321 | | lyAdverbCount | 15 | | lyAdverbRatio | 0.011144130757800892 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 192 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 192 | | mean | 9.61 | | std | 7.17 | | cv | 0.745 | | sampleLengths | | 0 | 17 | | 1 | 11 | | 2 | 15 | | 3 | 19 | | 4 | 3 | | 5 | 9 | | 6 | 10 | | 7 | 32 | | 8 | 14 | | 9 | 24 | | 10 | 25 | | 11 | 14 | | 12 | 2 | | 13 | 13 | | 14 | 5 | | 15 | 18 | | 16 | 12 | | 17 | 8 | | 18 | 3 | | 19 | 7 | | 20 | 5 | | 21 | 18 | | 22 | 8 | | 23 | 9 | | 24 | 7 | | 25 | 7 | | 26 | 7 | | 27 | 27 | | 28 | 5 | | 29 | 9 | | 30 | 21 | | 31 | 14 | | 32 | 5 | | 33 | 2 | | 34 | 6 | | 35 | 3 | | 36 | 9 | | 37 | 5 | | 38 | 8 | | 39 | 2 | | 40 | 1 | | 41 | 9 | | 42 | 8 | | 43 | 13 | | 44 | 5 | | 45 | 12 | | 46 | 3 | | 47 | 9 | | 48 | 4 | | 49 | 12 |
| |
| 46.88% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 6 | | diversityRatio | 0.2760416666666667 | | totalSentences | 192 | | uniqueOpeners | 53 | |
| 54.64% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 122 | | matches | | 0 | "Of course he’d notice the" | | 1 | "Then, with a slow exhale," |
| | ratio | 0.016 | |
| 29.84% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 58 | | totalSentences | 122 | | matches | | 0 | "She froze, the dishcloth still" | | 1 | "She set the cloth down" | | 2 | "He leaned slightly on his" | | 3 | "she said, her voice steadier" | | 4 | "She should’ve known." | | 5 | "He stepped inside without waiting" | | 6 | "His presence had always been" | | 7 | "She crossed her arms" | | 8 | "His gaze dropped to her" | | 9 | "She grabbed it and scraped" | | 10 | "His voice was low, almost" | | 11 | "His jaw tightened" | | 12 | "She barked out a laugh," | | 13 | "His expression darkened." | | 14 | "She took a step toward" | | 15 | "She cut herself off, shaking" | | 16 | "He was close enough now" | | 17 | "His voice was rough, the" | | 18 | "She hadn’t known that." | | 19 | "His free hand lifted, as" |
| | ratio | 0.475 | |
| 50.16% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 100 | | totalSentences | 122 | | matches | | 0 | "The first knock came just" | | 1 | "She froze, the dishcloth still" | | 2 | "Ptolemy, the tabby cat, lifted" | | 3 | "Another knock, sharper this time," | | 4 | "Rory’s pulse jumped." | | 5 | "She set the cloth down" | | 6 | "The third deadbolt clicked, and" | | 7 | "Lucien Moreau stood in the" | | 8 | "Rain glistened on the shoulders" | | 9 | "He leaned slightly on his" | | 10 | "she said, her voice steadier" | | 11 | "Lucien’s lips quirked, just barely." | | 12 | "Ptolemy let out a low," | | 13 | "Rory exhaled through her nose," | | 14 | "She should’ve known." | | 15 | "He stepped inside without waiting" | | 16 | "The flat suddenly felt smaller," | | 17 | "His presence had always been" | | 18 | "She crossed her arms" | | 19 | "His gaze dropped to her" |
| | ratio | 0.82 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 122 | | matches | (empty) | | ratio | 0 | |
| 87.91% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 52 | | technicalSentenceCount | 4 | | matches | | 0 | "She set the cloth down and moved silently across the cluttered floor, stepping over a stack of books on occult symbolism and a half-unrolled scroll that had bee…" | | 1 | "Rain glistened on the shoulders of his coat, and his heterochromatic eyes—one amber, one black—flickered over her with an intensity that made her skin prickle." | | 2 | "His gaze dropped to her wrists, lingering for a fraction of a second on the crescent-shaped scar on her left one before lifting back to her face." | | 3 | "Lucien’s gaze flicked to the ceiling, as if he could see through it to the storm clouds gathering above." |
| |
| 36.76% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 17 | | uselessAdditionCount | 3 | | matches | | 0 | "she said, her voice steadier than she felt" | | 1 | "free hand lifted, as if he might reach for her, but then it fell back to his side" | | 2 | "he murmured, his thumb tracing the line of her jaw" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 5 | | fancyCount | 3 | | fancyTags | | 0 | "she muttered (mutter)" | | 1 | "he murmured (murmur)" | | 2 | "she whispered (whisper)" |
| | dialogueSentences | 84 | | tagDensity | 0.06 | | leniency | 0.119 | | rawRatio | 0.6 | | effectiveRatio | 0.071 | |