Run: 2026-05-01-01KQHQYNN0CT9DT80RCHQCNZDN

Run Details

Duration:
1m 3s
Cost:
$0.012644
Provider:
xAI

Model input

System
You are an expert novelist with a gift for vivid, immersive prose. You write in tight third-person limited point of view with a strong narrative voice. Your prose is clean, precise, and engaging — you favor strong verbs, concrete details, and natural-sounding dialogue. You will be given a story bible (codex) containing canonical details about characters, locations, items, and lore. Use these details to ground your writing in the established world. Stay consistent with the codex. Write only the prose of the scene. Do not include titles, chapter headings, markdown formatting, or any commentary before or after the scene.
User/Human
<codex> <character id="4412" name="Aurora Carter" aliases="Rory, Laila, Aurora, Carter, Malphora" pronouns="she/her" species="Human" storyRole="Protagonist"> <eyeColor>bright blue</eyeColor> <hair>straight shoulder-length black</hair> <height>5'6"</height> <age>25</age> <scar>small crescent-shaped scar on her left wrist from a childhood accident</scar> <description>Aurora, referred to by her friends as Rory, is cool-headed, intelligent, and known for quick out-of-the-box thinking.</description> <backstory>Born in Cardiff to an Irish barrister father (Brendan Carter) and Welsh teacher mother (Jennifer Carter née Ellis), Rory reluctantly pursued Pre-Law at Cardiff University. She fled to London at the behest of her childhood friend Eva after leaving an abusive ex named Evan. By day, Rory works part-time as a delivery person for Yu-Fei Cheung's Golden Empress restaurant. She lives in a flat above Silas' bar.</backstory> </character> <character id="4415" name="Lucien Moreau" aliases="Lucien, Luc, the Frenchman" pronouns="he/him" species="Half-Demon" storyRole="Ally"> <eyeColor>heterochromatic — one amber, one black</eyeColor> <hair>slicked-back platinum blond</hair> <height>5'11"</height> <age>32</age> <cane>ivory-handled cane that conceals a thin blade</cane> <dress>tailored charcoal suits</dress> <description>An impeccably dressed fixer and information broker in London's supernatural underworld. He speaks four languages fluently.</description> <backstory>Born in Marseille to a human mother and a demon father from the realm of Avaros.</backstory> </character> <location id="858" name="Eva's Flat" aliases="Eva's place, the flat on Brick Lane" realm="Earth"> <cat>tabby cat named Ptolemy</cat> <security>three deadbolts on the front door</security> <description>A cramped one-bedroom flat above a curry house on Brick Lane, East London. Every surface is covered with books, scrolls, and research notes.</description> </location> </codex> Write a fully fleshed out scene of at least 1000 words in the romance genre. Two people who parted on complicated terms are forced together again when one shows up unannounced at the other's flat. There's history between them — attraction, hurt, and things left unsaid. Write the scene from the moment the door opens. Use the codex entries above as your world reference for characters and setting. Only include the prose of the scene without any markdown or commentary.

Model response

AI
The three deadbolts rasped open one after another, the last one sticking the way it always did until Aurora gave it an impatient shove with the heel of her hand. She yanked the door inward, expecting Eva returning early from the archive with another armful of dusty grimoires. Instead the doorway filled with tailored charcoal wool, ivory-handled cane, and the unmistakable scent of bergamot and smoke that had once clung to her sheets for weeks. Lucien Moreau stood on the narrow landing as though he belonged there, though every line of him looked too expensive for the curry-scented stairwell. Platinum hair swept back from his temples, sharp enough to cut glass. One amber eye, one black, fixed on her with the lazy precision of a man who had already catalogued every exit, every weapon, every unsteady beat of her pulse. The sight of him punched the air from her lungs before she could school her face. For a moment neither of them spoke. The silence stretched, tight as a bowstring, while the distant clatter of pans rose from the restaurant below and Ptolemy wound between her ankles like a living question mark. “Rory,” Lucien said at last. His voice was low, that faint Marseille accent curling around her childhood nickname the way it always had, intimate and impossible. “You look… well.” She laughed once, sharp and humorless. “That’s the line you’re opening with? After six months of nothing?” Her fingers tightened on the edge of the door until the wood bit into the crescent scar on her wrist. The small white arc still itched sometimes when the weather turned, a souvenir from the night she’d shattered a glass trying to get away from Evan. She’d told Lucien that story once, curled against him in the dark above Silas’s bar, his fingertips tracing the mark like a promise he had never kept. His mismatched gaze dropped to her wrist, then away again. Good. Let him remember. “I didn’t come here to trade pleasantries,” he said. The cane tapped once against the threshold, a quiet request. “May I?” Every instinct screamed to slam the door, to throw the deadbolts and pretend the sight of him hadn’t already loosened something vital behind her ribs. Instead she stepped back, because Aurora Carter did not run from inconvenient truths anymore. Not since London. Not since him. “Eva’s not here,” she said, turning away so he wouldn’t see the tremor in her shoulders. “If you’re looking for research on whatever underworld mess you’re currently neck-deep in, you’ll have to come back later.” She heard the soft click of the door closing, the measured tap of his cane across the warped floorboards. The flat seemed smaller with him in it, every surface already drowning under Eva’s obsessions: towers of leather-bound volumes, unfurled scrolls weighted down by coffee mugs, sticky notes fluttering like trapped moths. Ptolemy promptly abandoned her to investigate the newcomer, traitor that he was, rubbing his tabby cheek against the fine wool of Lucien’s trouser leg. Lucien bent slightly, offering the back of two fingers. The cat accepted the courtesy with a rumbling purr. “At least someone here is pleased to see me.” “Don’t flatter yourself. He likes everyone who smells like dinner.” Aurora busied her hands stacking a precarious ziggurat of books so she wouldn’t have to look at him. Her heart hammered against her ribs with humiliating force. She could still feel the ghost of his mouth on the underside of her jaw, the way he’d whispered her name like a secret between languages he spoke fluently. French, English, demonic dialects, and the particular dialect of want they had invented together in the dark. She hated how easily the memory surfaced. “You’re staying here now?” he asked, voice neutral in a way that set her teeth on edge. He leaned the cane against the arm of Eva’s sagging sofa and unbuttoned his suit jacket with economical grace. The movement revealed the crisp white shirt beneath, the faint outline of ink at his collarbone that she knew continued downward in looping infernal sigils. “Temporary,” she answered. “My flat above the bar had a plumbing incident. Eva offered the sofa. I’ve been helping her index the newer acquisitions.” The lie came easily. In truth she’d come here because the quiet above Silas’s had grown too loud with memories of Lucien’s laugh drifting up from the bar, of nights he’d lingered after closing just to watch her move through the crowd like she was the only fixed point in a chaotic room. He didn’t call her on it. Instead he crossed to the tiny kitchenette and filled the kettle without asking. The domesticity of it stung. “Six months,” she said to his back. The words scraped out raw. “Six months of radio silence after you told me your world was too dangerous for someone like me. Then you show up on my friend’s doorstep looking like you stepped out of a bloody boardroom. What changed, Luc?” His shoulders tightened at the old nickname. When he turned, steam curled around his face like summoned fog. Those eyes—God, those eyes—held hers until she felt stripped bare. “I thought I was protecting you.” The admission sounded like it cost him. “After what happened with the Hollow Court, after they learned your name, I thought distance would keep their attention elsewhere. I was… wrong.” Aurora’s breath hitched. She remembered the Hollow Court all too well: the night he’d pulled her out of an ambush behind the restaurant where she made deliveries, his cane flashing into a blade faster than thought, black ichor sizzling where it met the steel. She’d seen the demon flicker behind his human mask that night, the brief flare of obsidian veins beneath his skin. It hadn’t frightened her. What frightened her was how much she hadn’t cared. How much she’d wanted him anyway. “You didn’t even say goodbye.” Her voice cracked despite her best efforts. Cool-headed, she reminded herself. Intelligent. Not the sort of woman who let a half-demon information broker reduce her to shaking hands and aching memories. “You just vanished. I thought—” She swallowed. “I thought I’d imagined everything between us.” Lucien set the kettle down with a soft click. In two strides he was across the cramped room, close enough that she could see the faint scar through his left eyebrow, the way the black iris of his right eye seemed to drink the light. He didn’t touch her. He never did unless she invited it, a courtesy that felt like both mercy and torment. “You didn’t imagine it,” he said quietly. “Every night, every touch, every ridiculous argument about whether pineapple belongs on pizza—none of it was imagined. I left because the thought of you being hurt because of what I am was unbearable. But these past months have proven something rather inconvenient.” His mouth curved, rueful. “Staying away from you is more unbearable.” The words landed like stones in still water. Aurora searched his face for the calculated charm he wielded so well in London’s supernatural underbelly. She found only raw honesty and something darker, hungrier. The same look he’d given her the night they’d almost crossed every line in her tiny flat above the bar, his hands fisted in her dark hair, her back against the door while he whispered promises in a language that tasted like smoke and sin. Ptolemy chose that moment to leap onto the counter, knocking over a stack of scrolls. They both startled, then laughed—an unsteady, wondering sound that broke some final tension between them. Aurora felt her shoulders loosen for the first time since she’d opened the door. “You still take your tea like a heathen?” she asked, reaching for the mismatched mugs. “Two sugars and entirely too much milk,” he confirmed. The familiar exchange felt like stepping onto solid ground after months at sea. They carried their drinks to the sofa, pushing aside a drift of research notes to make space. Their knees brushed as they sat. Neither moved away. The flat’s single window cast watery afternoon light across his features, highlighting the elegant line of his jaw, the way his platinum hair had begun to fall across his forehead as though even it refused to maintain perfect control in her presence. “I kept tabs on you,” he admitted after a long silence. “Discreetly. I knew about the plumbing. I knew you’d been taking extra shifts at the Golden Empress to help Yu-Fei with her brother’s legal troubles. I told myself it was professional concern.” He turned the mug in his long fingers. “It wasn’t.” Aurora stared into her own tea, watching leaves swirl like tiny omens. “I hated you for a while. It was easier than missing you.” She set the mug down and finally looked at him fully. “I’m still angry. But I’m tired of pretending there isn’t—this.” She gestured between them, the invisible cord that had tugged her toward him since the night he’d first walked into Silas’s bar and ordered whiskey in four languages just to make her smile. Lucien’s hand lifted, slow enough that she could have pulled away. Instead she held still as his fingertips brushed her jaw, tilting her face toward his. The touch ignited every nerve ending she’d tried to smother for half a year. His thumb traced the corner of her mouth with devastating gentleness. “Tell me to leave,” he said, voice rough. “Tell me you want none of this and I will walk out that door and never trouble you again. But if there is any part of you that still feels what I feel—” His heterochromatic eyes darkened. “Then let me stop running, Rory. Let me stay.” The old nickname undid her. She surged forward, catching his mouth with hers in a kiss that tasted of too-sweet tea and six months of unsaid words. Lucien made a low sound in his throat—relief, hunger, surrender—and pulled her closer. His cane clattered to the floor, forgotten. Books slid from the sofa in a papery avalanche as she climbed into his lap, knees bracketing his hips, fingers spearing through perfectly styled hair until it was gloriously mussed. He kissed like a man who had memorized her months ago and spent every night since dreaming of this exact taste. One hand splayed across her lower back, the other cupping the nape of her neck as though she might vanish. Aurora poured every furious, longing, complicated thing she felt into the slide of tongues, the scrape of teeth, the way she rocked against him until they were both breathing hard. When they finally broke apart, foreheads pressed together, she laughed shakily. “We’re terrible at timing. Eva could be back any minute. There are approximately three hundred books digging into my knees.” Lucien’s smile was slow and devastating, the one that had always made her stomach flip. “Then perhaps we should move this conversation to more suitable accommodations. Your flat above the bar has been repaired, I believe. Or we could simply evict Ptolemy from Eva’s bed for an hour.” The cat in question had claimed the vacated sofa cushion and was watching them with mild yellow disapproval. Aurora traced the line of his cheekbone, marveling that she was allowed to do so again. The hurt was still there, a bruise that would take time to fade. But beneath it lay something stronger: the bright blue certainty that whatever complications his demon blood and her stubborn humanity brought, they were better facing them together than apart. “Stay,” she whispered against his lips. “We’ll figure out the rest. But Luc—if you disappear on me again, I will hunt you through every realm you’ve ever mentioned and drag you back by your stupidly expensive lapels. Understood?” His laughter vibrated through her where their bodies pressed close. “Understood, ma lumière. I find I have lost all talent for staying away from you anyway.” Outside, the curry house began its evening service, sending fragrant steam curling up through the floorboards. Inside, among the scrolls and half-translated prophecies, Aurora Carter kissed the half-demon fixer who had once broken her heart and felt, for the first time in months, that every fractured piece was sliding back into place. The things left unsaid unfolded between them in touches and murmurs and the simple, staggering relief of not having to pretend anymore. When Eva finally returned an hour later, arms full of new research and Ptolemy winding excited circles around her feet, she found the flat empty of people but full of evidence: two half-drunk mugs of tea gone cold, a discarded charcoal suit jacket draped over the sofa like a declaration, and a single ivory-handled cane leaning beside the door as though its owner had every intention of coming back for it. Very soon. (Word count: 1,478)
created_at"2026-05-01T12:24:26.533Z" 5/1/2026, 12:24:26 PM
model"x-ai/grok-4.20-20260309"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency27557
moderation_latency(null)
generation_time63242
tokens_prompt808
tokens_completion3892
native_tokens_prompt851
native_tokens_completion4659
native_tokens_completion_images(null)
native_tokens_reasoning2036
native_tokens_cached64
num_media_prompt(null)
num_input_audio_prompt(null)
num_media_completion0
num_search_results(null)
num_fetches(null)
web_search_engine(null)
origin"https://ncbench.com/"
is_byokfalse
finish_reason"stop"
native_finish_reason"completed"
usage0.01264405
router(null)
provider_responses
0
endpoint_id"3ecee37f-b217-4093-87fb-aaf0afe307af"
id"59c713a9-c127-985f-a292-e3f0f9aa0277"
is_byokfalse
latency130
model_permaslug"x-ai/grok-4.20-20260309"
provider_name"xAI"
status200
user_agent"langchainjs-openai/1.0.0 ((node/v24.14.1; linux; x64))"
http_referer(null)
request_id"req-1777638266-l8jLp6ANAgwFn8FXklVv"
session_id(null)
api_type"completions"
id"gen-1777638266-fPVQ7yR1JKGrLcM1cbj5"
upstream_id"59c713a9-c127-985f-a292-e3f0f9aa0277"
total_cost0.01264405
cache_discount0.0000672
upstream_inference_cost0
provider_name"xAI"
response_cache_source_id(null)

Evaluation details

Result Evaluator Details Meta Data
100.00% Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags24
adverbTagCount2
adverbTags
0"The lie came easily [easily]"
1"he said quietly [quietly]"
dialogueSentences37
tagDensity0.649
leniency1
rawRatio0.083
effectiveRatio0.083
92.99% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount2139
totalAiIsmAdverbs3
found
0
adverb"slightly"
count1
1
adverb"perfectly"
count1
2
adverb"very"
count1
highlights
0"slightly"
1"perfectly"
2"very"
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)
53.25% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount2139
totalAiIsms20
found
0
word"pulse"
count1
1
word"silence"
count3
2
word"shattered"
count1
3
word"tracing"
count1
4
word"measured"
count1
5
word"chaotic"
count1
6
word"flicker"
count1
7
word"eyebrow"
count1
8
word"calculated"
count1
9
word"charm"
count1
10
word"tension"
count1
11
word"familiar"
count1
12
word"perfect"
count1
13
word"traced"
count2
14
word"stomach"
count1
15
word"vibrated"
count1
16
word"fractured"
count1
highlights
0"pulse"
1"silence"
2"shattered"
3"tracing"
4"measured"
5"chaotic"
6"flicker"
7"eyebrow"
8"calculated"
9"charm"
10"tension"
11"familiar"
12"perfect"
13"traced"
14"stomach"
15"vibrated"
16"fractured"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches0
maxInWindow0
found(empty)
highlights(empty)
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells0
narrationSentences114
matches(empty)
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount0
hedgeCount2
narrationSentences114
filterMatches(empty)
hedgeMatches
0"seemed to"
1"tried to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences127
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
repeatedSegmentCount0
maxSentenceWordsSeen73
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords2132
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions27
unquotedAttributions1
matches
0"When they finally broke apart, foreheads pressed together, she laughed shakily."
100.00% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions43
wordCount1678
uniqueNames15
maxNameDensity0.6
worstName"Aurora"
maxWindowNameDensity1.5
worstWindowName"Aurora"
discoveredNames
Aurora10
Eva4
Moreau1
Ptolemy4
Marseille1
Evan1
Lucien10
Silas3
Carter2
London2
English1
God1
Hollow1
Court1
Cool-headed1
persons
0"Aurora"
1"Eva"
2"Moreau"
3"Ptolemy"
4"Evan"
5"Lucien"
6"Silas"
7"Carter"
places
0"Marseille"
1"London"
2"Hollow"
3"Court"
globalScore1
windowScore1
6.32% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences87
glossingSentenceCount5
matches
0"seemed smaller with him in it, every surface already drowning under Eva’s obsessions: towers of leather-bound volumes, unfurled scrolls weighted down by coffee mugs, sticky notes fluttering like trapped moths"
1"sounded like it cost him"
2"felt like both mercy and torment"
3"tasted like smoke and sin"
4"felt like stepping onto solid ground af"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount2132
matches(empty)
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount2
totalSentences127
matches
0"chose that moment"
1"marveling that she"
98.78% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs43
mean49.58
std24.58
cv0.496
sampleLengths
075
181
236
329
490
514
621
745
835
975
1027
1183
127
1361
1477
1524
1650
1728
1836
1983
2050
2165
2260
2378
2444
2515
2622
2768
2853
2978
3051
3154
3277
3371
3431
3566
3658
3738
3826
3974
4071
412
423
100.00% Passive voice overuse
Target: ≤2% passive sentences
passiveCount1
totalSentences114
matches
0"was allowed"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount3
totalVerbs272
matches
0"was, rubbing"
1"was watching"
2"was sliding"
75.37% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount5
semicolonCount0
flaggedSentences3
totalSentences127
ratio0.024
matches
0"Those eyes—God, those eyes—held hers until she felt stripped bare."
1"They both startled, then laughed—an unsteady, wondering sound that broke some final tension between them."
2"Lucien made a low sound in his throat—relief, hunger, surrender—and pulled her closer."
88.69% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount1693
adjectiveStacks1
stackExamples
0"single ivory-handled cane"
adverbCount78
adverbRatio0.04607206142941524
lyAdverbCount17
lyAdverbRatio0.01004134672179563
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences127
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences127
mean16.79
std12.56
cv0.748
sampleLengths
030
118
227
324
412
529
616
77
829
95
1021
113
126
1331
1426
1527
1610
171
183
199
2010
212
2225
2314
243
253
2616
2719
2819
2932
3024
319
329
339
3428
359
3629
3717
387
3917
4019
4125
423
4325
4449
456
4613
475
487
495
68.24% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats5
diversityRatio0.4330708661417323
totalSentences127
uniqueOpeners55
100.00% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount4
totalSentences107
matches
0"Instead the doorway filled with"
1"Instead she stepped back, because"
2"Instead he crossed to the"
3"Instead she held still as"
ratio0.037
66.73% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount41
totalSentences107
matches
0"She yanked the door inward,"
1"His voice was low, that"
2"She laughed once, sharp and"
3"Her fingers tightened on the"
4"She’d told Lucien that story"
5"His mismatched gaze dropped to"
6"she said, turning away so"
7"She heard the soft click"
8"Her heart hammered against her"
9"She could still feel the"
10"She hated how easily the"
11"he asked, voice neutral in"
12"He leaned the cane against"
13"He didn’t call her on"
14"she said to his back"
15"His shoulders tightened at the"
16"She remembered the Hollow Court"
17"She’d seen the demon flicker"
18"It hadn’t frightened her."
19"Her voice cracked despite her"
ratio0.383
62.80% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount85
totalSentences107
matches
0"The three deadbolts rasped open"
1"She yanked the door inward,"
2"Lucien Moreau stood on the"
3"Platinum hair swept back from"
4"The sight of him punched"
5"The silence stretched, tight as"
6"Lucien said at last"
7"His voice was low, that"
8"She laughed once, sharp and"
9"Her fingers tightened on the"
10"The small white arc still"
11"She’d told Lucien that story"
12"His mismatched gaze dropped to"
13"The cane tapped once against"
14"Every instinct screamed to slam"
15"she said, turning away so"
16"She heard the soft click"
17"The flat seemed smaller with"
18"Ptolemy promptly abandoned her to"
19"Lucien bent slightly, offering the"
ratio0.794
0.00% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount0
totalSentences107
matches(empty)
ratio0
11.90% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences60
technicalSentenceCount11
matches
0"Instead the doorway filled with tailored charcoal wool, ivory-handled cane, and the unmistakable scent of bergamot and smoke that had once clung to her sheets f…"
1"Lucien Moreau stood on the narrow landing as though he belonged there, though every line of him looked too expensive for the curry-scented stairwell."
2"One amber eye, one black, fixed on her with the lazy precision of a man who had already catalogued every exit, every weapon, every unsteady beat of her pulse."
3"In truth she’d come here because the quiet above Silas’s had grown too loud with memories of Lucien’s laugh drifting up from the bar, of nights he’d lingered af…"
4"She remembered the Hollow Court all too well: the night he’d pulled her out of an ambush behind the restaurant where she made deliveries, his cane flashing into…"
5"Not the sort of woman who let a half-demon information broker reduce her to shaking hands and aching memories."
6"The same look he’d given her the night they’d almost crossed every line in her tiny flat above the bar, his hands fisted in her dark hair, her back against the …"
7"The flat’s single window cast watery afternoon light across his features, highlighting the elegant line of his jaw, the way his platinum hair had begun to fall …"
8"She surged forward, catching his mouth with hers in a kiss that tasted of too-sweet tea and six months of unsaid words."
9"Inside, among the scrolls and half-translated prophecies, Aurora Carter kissed the half-demon fixer who had once broken her heart and felt, for the first time i…"
10"When Eva finally returned an hour later, arms full of new research and Ptolemy winding excited circles around her feet, she found the flat empty of people but f…"
83.33% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags24
uselessAdditionCount2
matches
0"His mouth curved, rueful"
1"he said, voice rough"
68.92% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags12
fancyCount3
fancyTags
0"he confirmed (confirm)"
1"he admitted (admit)"
2"she whispered (whisper)"
dialogueSentences37
tagDensity0.324
leniency0.649
rawRatio0.25
effectiveRatio0.162
82.5775%