| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 2 | | adverbTags | | 0 | "she gestured vaguely [vaguely]" | | 1 | "she said quietly [quietly]" |
| | dialogueSentences | 43 | | tagDensity | 0.512 | | leniency | 1 | | rawRatio | 0.091 | | effectiveRatio | 0.091 | |
| 78.75% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1647 | | totalAiIsmAdverbs | 7 | | found | | | highlights | | 0 | "suddenly" | | 1 | "slightly" | | 2 | "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) | |
| 69.64% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1647 | | totalAiIsms | 10 | | found | | | highlights | | 0 | "pulsed" | | 1 | "weight" | | 2 | "chaotic" | | 3 | "flickered" | | 4 | "intensity" | | 5 | "could feel" | | 6 | "tenderness" | | 7 | "pulse" | | 8 | "silence" | | 9 | "traced" |
| |
| 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 | 1 | | narrationSentences | 86 | | matches | | |
| 59.80% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 3 | | narrationSentences | 86 | | filterMatches | | | hedgeMatches | | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 107 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 67 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1622 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 1 | | matches | | 0 | "Her hands shook slightly—caffeine withdrawal, she told herself, not him." |
| |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 27 | | wordCount | 1200 | | uniqueNames | 11 | | maxNameDensity | 0.67 | | worstName | "Rory" | | maxWindowNameDensity | 1 | | worstWindowName | "Eva" | | discoveredNames | | Silas | 1 | | Eva | 6 | | Cardiff | 1 | | University | 1 | | Brick | 2 | | Lane | 2 | | Moreau | 1 | | Marseille-bred | 1 | | Lucien | 3 | | Rory | 8 | | Bengali | 1 |
| | persons | | 0 | "Silas" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Lucien" | | 4 | "Rory" |
| | places | | 0 | "Cardiff" | | 1 | "Brick" | | 2 | "Lane" | | 3 | "Marseille-bred" | | 4 | "Bengali" |
| | globalScore | 1 | | windowScore | 1 | |
| 66.67% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 60 | | glossingSentenceCount | 2 | | matches | | 0 | "akups, and now apparently this" | | 1 | "not quite touching" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1622 | | matches | (empty) | |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 107 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 55 | | mean | 29.49 | | std | 26.73 | | cv | 0.906 | | sampleLengths | | 0 | 122 | | 1 | 11 | | 2 | 8 | | 3 | 80 | | 4 | 3 | | 5 | 3 | | 6 | 17 | | 7 | 49 | | 8 | 74 | | 9 | 6 | | 10 | 40 | | 11 | 4 | | 12 | 9 | | 13 | 42 | | 14 | 10 | | 15 | 44 | | 16 | 48 | | 17 | 59 | | 18 | 38 | | 19 | 76 | | 20 | 40 | | 21 | 26 | | 22 | 37 | | 23 | 16 | | 24 | 7 | | 25 | 1 | | 26 | 1 | | 27 | 50 | | 28 | 7 | | 29 | 8 | | 30 | 66 | | 31 | 31 | | 32 | 4 | | 33 | 51 | | 34 | 59 | | 35 | 6 | | 36 | 31 | | 37 | 1 | | 38 | 55 | | 39 | 21 | | 40 | 5 | | 41 | 43 | | 42 | 45 | | 43 | 5 | | 44 | 3 | | 45 | 5 | | 46 | 84 | | 47 | 46 | | 48 | 16 | | 49 | 8 |
| |
| 97.10% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 86 | | matches | | 0 | "been told" | | 1 | "being pushed" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 215 | | matches | | 0 | "was letting" | | 1 | "was opening" | | 2 | "was wearing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 22 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 107 | | ratio | 0.131 | | matches | | 0 | "Rory had been awake for thirty-six hours straight, and her body was letting her know about it with every heartbeat that pulsed behind her eyes, so when the knock came—three sharp, impatient raps against the flat’s dented front door—she assumed it was Silas with another crate of expired ale, or possibly the delivery boy from the curry house downstairs complaining about the stairwell smell." | | 1 | "The hallway outside Eva’s flat was dim—Brick Lane’s perpetual curry-scented haze filtering up through the floorboards—but he was unmistakable even in shadow." | | 2 | "She stood there for three heartbeats, her palm still flat against the door, her wrist—bearing its small crescent scar—resting on the frame." | | 3 | "The flat was exactly as cramped and chaotic as she’d expected—books stacked on books, scrolls unfurled across the kitchen table, research notes pinned to every available wall with Eva’s brass tacks—but Lucien seemed to take it in with one sweeping glance of his mismatched eyes, cataloging, assessing." | | 4 | "Her hands shook slightly—caffeine withdrawal, she told herself, not him." | | 5 | "She should have pointed to the deadbolts—three of them, Eva had insisted, though Rory rarely used more than one—and asked him to reverse his steps through them." | | 6 | "She was angry—she could feel it coiling in her chest, hot and defensive." | | 7 | "“Because I finished it. The estate is settled. The enemies are dead or paid off.” He took a step closer, close enough that she could smell him—cedarwood and something darker, like smoke and winter." | | 8 | "She was aware of every inch of space between them—maybe eighteen inches, maybe less." | | 9 | "His fingers were long, elegant, capable of violence or tenderness—she’d seen both." | | 10 | "Rory looked up at him—she was only 5'6\" to his 5'11\", and she had to tilt her head back—and she saw it." | | 11 | "He made a sound—low, surprised, hungry—and his hands came up to her waist, anchoring her, holding her like she might vanish." | | 12 | "Rory pulled back, looking up at him with her bright blue eyes—eyes he’d said could see through lies." | | 13 | "Then she took his hand—the one that usually rested on that deadly cane—and pulled him toward the bedroom that was technically Eva’s, with its piles of research and single narrow bed." |
| |
| 91.95% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1228 | | adjectiveStacks | 1 | | stackExamples | | 0 | "perpetual curry-scented haze" |
| | adverbCount | 52 | | adverbRatio | 0.04234527687296417 | | lyAdverbCount | 17 | | lyAdverbRatio | 0.013843648208469055 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 107 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 107 | | mean | 15.16 | | std | 13.35 | | cv | 0.881 | | sampleLengths | | 0 | 64 | | 1 | 58 | | 2 | 6 | | 3 | 5 | | 4 | 8 | | 5 | 22 | | 6 | 31 | | 7 | 15 | | 8 | 4 | | 9 | 8 | | 10 | 3 | | 11 | 3 | | 12 | 14 | | 13 | 3 | | 14 | 22 | | 15 | 27 | | 16 | 17 | | 17 | 47 | | 18 | 10 | | 19 | 6 | | 20 | 34 | | 21 | 6 | | 22 | 4 | | 23 | 9 | | 24 | 22 | | 25 | 10 | | 26 | 10 | | 27 | 10 | | 28 | 9 | | 29 | 13 | | 30 | 13 | | 31 | 9 | | 32 | 27 | | 33 | 17 | | 34 | 4 | | 35 | 7 | | 36 | 27 | | 37 | 25 | | 38 | 13 | | 39 | 25 | | 40 | 22 | | 41 | 10 | | 42 | 44 | | 43 | 5 | | 44 | 35 | | 45 | 26 | | 46 | 20 | | 47 | 12 | | 48 | 5 | | 49 | 12 |
| |
| 59.50% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.40186915887850466 | | totalSentences | 107 | | uniqueOpeners | 43 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 6 | | totalSentences | 75 | | matches | | 0 | "Then she stepped back, not" | | 1 | "Instead she found herself studying" | | 2 | "Then he exhaled, long and" | | 3 | "Just Lucien, bare and afraid," | | 4 | "Then she stepped into him," | | 5 | "Then she took his hand—the" |
| | ratio | 0.08 | |
| 6.67% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 75 | | matches | | 0 | "She dragged herself from the" | | 1 | "She did not check the" | | 2 | "His cane rested in his" | | 3 | "His voice was smooth, Marseille-bred," | | 4 | "She stood there for three" | | 5 | "He entered with the confidence" | | 6 | "His gaze landed on her," | | 7 | "She pulled her hoodie tighter," | | 8 | "Her hands shook slightly—caffeine withdrawal," | | 9 | "She turned back, leaning against" | | 10 | "She stopped, her throat working" | | 11 | "He set his cane down" | | 12 | "She should have told him" | | 13 | "She should have pointed to" | | 14 | "she said, her voice lower" | | 15 | "His amber eye burned with" | | 16 | "She laughed, brittle and quiet." | | 17 | "She stopped herself, color rising" | | 18 | "He said it softly, not" | | 19 | "she gestured vaguely at his" |
| | ratio | 0.533 | |
| 46.67% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 62 | | totalSentences | 75 | | matches | | 0 | "Rory had been awake for" | | 1 | "She dragged herself from the" | | 2 | "She did not check the" | | 3 | "That was her second mistake." | | 4 | "The first was opening the" | | 5 | "The hallway outside Eva’s flat" | | 6 | "Lucien Moreau filled the narrow" | | 7 | "His cane rested in his" | | 8 | "The other was black as" | | 9 | "Rory’s breath caught." | | 10 | "His voice was smooth, Marseille-bred," | | 11 | "She stood there for three" | | 12 | "He entered with the confidence" | | 13 | "The flat was exactly as" | | 14 | "His gaze landed on her," | | 15 | "She pulled her hoodie tighter," | | 16 | "The words hung in the" | | 17 | "Rory turned away, walking toward" | | 18 | "Her hands shook slightly—caffeine withdrawal," | | 19 | "She turned back, leaning against" |
| | ratio | 0.827 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 75 | | matches | (empty) | | ratio | 0 | |
| 30.08% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 38 | | technicalSentenceCount | 6 | | matches | | 0 | "She dragged herself from the sagging sofa where she’d collapsed with one of Eva’s arcane texts spread open across her chest, shoved her black hair out of her fa…" | | 1 | "Just Lucien, bare and afraid, his heterochromatic eyes fixed on hers with a desperation that undid her." | | 2 | "She reached out, her fingers finding his wrist, feeling his pulse rapid and strong beneath her thumb." | | 3 | "She kissed him with three months of anger and longing, her hands fisting in the lapel of his charcoal suit, pulling him down to her height." | | 4 | "He made a sound—low, surprised, hungry—and his hands came up to her waist, anchoring her, holding her like she might vanish." | | 5 | "Then she took his hand—the one that usually rested on that deadly cane—and pulled him toward the bedroom that was technically Eva’s, with its piles of research …" |
| |
| 11.36% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 5 | | matches | | 0 | "she said, her voice lower now, huskier" | | 1 | "he continued, his voice steady" | | 2 | "He stopped, his jaw tightening" | | 3 | "she said, her voice muffled" | | 4 | "he replied, his fingers threading through her black hair" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 11 | | fancyCount | 2 | | fancyTags | | 0 | "he continued (continue)" | | 1 | "she whispered (whisper)" |
| | dialogueSentences | 43 | | tagDensity | 0.256 | | leniency | 0.512 | | rawRatio | 0.182 | | effectiveRatio | 0.093 | |