Run: 2026-05-01-01KQHSCN5R9XVTRYPVR37NEKEH

Run Details

Duration:
1m 6s
Cost:
$0.012234
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, and Aurora Carter yanked the door wide before her better sense could stop her. The smell of cardamom and sizzling onions from the curry house below drifted up the stairwell, but it was the man on the landing who stole the breath from her lungs. Lucien Moreau looked exactly as she remembered—impossibly composed, dangerously beautiful. Platinum hair swept back from his forehead, charcoal suit tailored so precisely it might have been painted on. The ivory handle of his cane gleamed under the bare bulb, and those impossible eyes—one warm amber, one depthless black—fixed on her with the same unnerving focus that had once made her feel seen down to the marrow. For a moment neither of them spoke. Her pulse hammered against the small crescent scar on her left wrist, an old reminder of how easily things could shatter. Six months had not been long enough. Not nearly. “Rory,” he said at last. The French curl of her nickname slid over her skin like velvet dragged across bare shoulders. “You can’t be here.” The words came out thinner than she wanted. She gripped the doorframe, knuckles whitening. “Yet here I am.” He took one fluid step forward, and she found herself retreating automatically, letting him into Eva’s cluttered sanctuary. The door clicked shut behind him. Ptolemy materialized from beneath a teetering stack of grimoires, meowing once in greeting before threading shamelessly between Lucien’s polished Oxfords. Traitor. Aurora folded her arms, trying to summon the cool-headed woman everyone thought she was. The flat felt smaller with him in it. Every surface groaned under Eva’s research—scrolls unrolled like ancient carpets, books splayed open with passages underlined in three different inks, coffee mugs turned into paperweights for yellow legal pads. The single window overlooking Brick Lane was cracked open, letting in the damp October air and the distant thump of bass from the clubs further down. Lucien’s gaze traveled the chaos before returning to her face. “You’ve been avoiding my calls.” “I’ve been working.” She moved to the tiny kitchenette, mostly to put distance between them. The kettle still held water from an hour ago; she flicked it on anyway. “Deliveries don’t run themselves, and Yu-Fei doesn’t care if I’m being haunted by—” “By me?” He set the cane against the wall with a soft clack. Without it, his limp was barely noticeable, but she knew the blade concealed inside had saved her life once. In a warehouse in Deptford. In the rain. Before she’d run. She kept her back to him, watching the kettle’s reflection in the windowpane. His reflection joined hers—taller, broader, close enough that she could smell the faint trace of vetiver and smoke that always clung to him. Half-demon, half something that had once looked at her like she was the only clean thing in his world. She had believed it for a while. Then she’d remembered what clean things did around demons: they burned. “You left in the middle of the night,” he said quietly. No accusation, only statement. The kettle began to hiss. “I left a note.” “A note.” He gave a soft, humorless laugh that raised the fine hairs on her arms. “Three lines, Aurora. After everything.” She spun, bright blue eyes clashing with his mismatched ones. “What did you want me to say? That I couldn’t sleep next to someone whose father came from Avaros? That every time your eyes go black I wonder if I’m looking at the man who held me or the thing that could unmake me?” Her voice cracked on the last word. She hadn’t meant to say any of that. Not here. Not with Ptolemy watching from the back of the sofa like a tiny furry judge. Lucien’s jaw tightened. For the first time since she’d opened the door, something raw flickered across his features. “I never hid what I am. You knew before you kissed me the first time. Before you let me trace that scar on your wrist and tell you every filthy, beautiful thing I wanted to do to you.” Heat flooded her face. She remembered that night too well—the flat above Silas’s bar that she officially called home but had barely slept in since meeting him. The way his mouth had moved over her pulse point, slow and reverent, as though memorizing her. The way she had arched into him, greedy and unafraid, until dawn painted the rooftops and reality crept back in. The kettle shrieked. She turned it off but didn’t pour. “Why are you here, Lucien?” She hated how breathless she sounded. “If it’s about the thing with the kelpie last month, I handled it.” “I know you did.” He stepped closer. The flat’s low ceiling made him seem even taller. “I also know Evan’s been asking questions in the wrong circles. Your ex. The one you ran from Cardiff to escape. He’s mixed up with the Thorn Syndicate now. They deal in half-blood artifacts. The kind that require a willing human conduit.” His heterochromatic gaze dropped meaningfully to her wrist. “They think your scar makes you compatible.” Ice slid down her spine. She hadn’t heard Evan’s name spoken aloud in over a year. The memory of his voice—low, reasonable, then suddenly not—still lived behind her ribs like a parasite. She rubbed the crescent absentmindedly. “So you came to warn me.” She tried for sarcasm but landed somewhere closer to gratitude. Damn him. “I came because the thought of him putting his hands on you again makes me want to burn half of London.” The words were soft, almost gentle, but the black pupil of his right eye dilated until it nearly swallowed the iris. Demon rising. He blinked, and the amber one steadied him. “I told myself I would deliver the message and leave. But standing here, seeing you…” He gestured at the chaos surrounding them, at her—hair loose around her shoulders, flour from the restaurant still dusting her sleeves. “I can’t seem to make my feet move toward the door.” Aurora swallowed. The air between them felt charged, thick as the curry steam rising through the floorboards. She could see the faint scar through his left eyebrow that he’d never explained, the way his shoulders filled out the suit jacket, the elegant strength in his fingers as they flexed at his sides. She remembered those fingers mapping her body like it was sacred ground. Remembered, too, the night she’d woken to find him standing at her window, eyes fully black as he listened to something beyond human hearing. The fear had been instinctive. The hurt in his face when she’d asked him to leave had been worse. “I was scared,” she admitted. The words tasted like rust. “Not of you. Of how much I wasn’t scared of you. After Evan… I didn’t trust myself anymore. I thought if I stayed, I’d disappear into whatever this is.” She waved a hand between them. “Into you.” Lucien closed the remaining distance. Not touching, but near enough that she felt the warmth radiating from him. “You could never disappear into me, mon coeur. I’d sooner tear out my own heart than dim yours.” His voice dropped, laced with four languages’ worth of practiced control and none of it hiding the longing underneath. “But I won’t pretend I haven’t been half-mad since you left. Every deal I broker, every favor I call in, I keep looking for reasons to cross your path. Pathetic, really. A half-demon information broker reduced to loitering outside a curry house like some lovestruck fool.” The laugh that escaped her was startled and watery. Ptolemy chose that moment to leap onto the counter, knocking over a stack of scrolls that unfurled across the floor like a declaration. They both looked down at the mess, then at each other, and something in the absurdity of it cracked the last wall between them. Lucien lifted his hand slowly, telegraphing the movement. When she didn’t flinch, he brushed a strand of black hair from her cheek. His touch lingered. “Tell me to go, Rory. Say it plainly, and I will walk out that door and never darken it again. But if there’s any part of you that still feels what we felt that night in the rain—” His thumb traced the shell of her ear, sending sparks down her neck. “Then let me stay. Let me help. Let me love you the way you deserve, demon blood and all.” Her heart stuttered. The flat seemed to hold its breath with her. Below, someone shouted an order for extra naan. Ptolemy purred like an engine. And Lucien waited—beautiful, patient, dangerous—as though the next words from her mouth could rewrite every contract he’d ever sealed in blood and shadow. Aurora reached up and curled her fingers into the lapel of his charcoal suit. The fabric was smooth, expensive, warm from his body. She tugged once, testing. He came willingly, bending until their foreheads touched. “I never stopped feeling it,” she whispered. “I just didn’t know how to hold it without breaking.” His exhale shuddered against her lips. “Then hold it together with me.” The kiss, when it came, was not the frantic reunion of storybooks. It was slow, deliberate, six months of unsaid apologies and rediscovered hunger poured into the press of mouths. He tasted like bergamot and smoke. She made a small helpless sound that seemed to undo him; his cane clattered forgotten to the floor as both arms came around her, lifting her onto the counter amid the scrolls and half-empty mugs. Books toppled. Ptolemy yowled indignantly and fled to the windowsill. Neither of them noticed. Lucien kissed her like a man who had memorized every map of her and still found new continents. His hand slid beneath her shirt, palm warm against the dip of her spine. She arched into him, legs wrapping around his hips, heels digging into the back of his thighs. The edge of the counter pressed into her, grounding her even as the kiss deepened and the world narrowed to the glide of tongues, the scrape of teeth, the low growl that vibrated from his chest when she tugged at his perfectly knotted tie. When they finally broke apart for air, his eyes were blown wide—amber ringed in black, but still unmistakably Lucien. Still hers, if she was brave enough to claim him. “I’m still scared,” she said against his mouth. “Good.” He kissed the corner of her smile, then her temple, then the racing pulse beneath her jaw. “I don’t trust anything worth having that doesn’t frighten me a little. We’ll be scared together.” Outside, London moved on—taxis splashing through puddles on Brick Lane, late-night scholars arguing over tikka masala, the supernatural underworld spinning its endless webs. Inside Eva’s cramped flat, Aurora Carter let herself be held by the half-demon she had once fled. His heart beat steady against hers. The scar on her wrist caught the lamplight as she threaded her fingers through his platinum hair, no longer a mark of old pain but simply part of the map that had led her here. They had hours before the real world intruded again—hours to talk, to touch, to begin unraveling six months of silence. For now she simply breathed him in, feeling the complicated, messy, undeniable rightness of it settle into her bones. “Stay,” she said. Lucien’s arms tightened around her, and the smile he pressed into her shoulder held centuries of patience and brand-new hope. “Always.”
created_at"2026-05-01T12:49:33.373Z" 5/1/2026, 12:49:33 PM
model"x-ai/grok-4.20-20260309"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency26027
moderation_latency(null)
generation_time65504
tokens_prompt808
tokens_completion3538
native_tokens_prompt851
native_tokens_completion4495
native_tokens_completion_images(null)
native_tokens_reasoning2086
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.01223405
router(null)
provider_responses
0
endpoint_id"3ecee37f-b217-4093-87fb-aaf0afe307af"
id"bbbbcd1b-8106-2b6e-65cd-59355504ba1b"
is_byokfalse
latency212
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-1777639773-LsJLX0RHorrHzu59t8MR"
session_id(null)
api_type"completions"
id"gen-1777639773-szalEBDgNYtXRt1kmmvx"
upstream_id"bbbbcd1b-8106-2b6e-65cd-59355504ba1b"
total_cost0.01223405
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
totalTags22
adverbTagCount2
adverbTags
0"he said quietly [quietly]"
1"heterochromatic gaze dropped meaningfully [meaningfully]"
dialogueSentences37
tagDensity0.595
leniency1
rawRatio0.091
effectiveRatio0.091
87.05% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount1931
totalAiIsmAdverbs5
found
0
adverb"precisely"
count1
1
adverb"suddenly"
count1
2
adverb"really"
count1
3
adverb"slowly"
count1
4
adverb"perfectly"
count1
highlights
0"precisely"
1"suddenly"
2"really"
3"slowly"
4"perfectly"
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.39% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount1931
totalAiIsms18
found
0
word"pulse"
count3
1
word"reminder"
count1
2
word"velvet"
count1
3
word"sanctuary"
count1
4
word"flicked"
count1
5
word"flickered"
count1
6
word"down her spine"
count1
7
word"charged"
count1
8
word"eyebrow"
count1
9
word"warmth"
count1
10
word"traced"
count1
11
word"vibrated"
count1
12
word"blown wide"
count1
13
word"racing"
count1
14
word"unraveling"
count1
15
word"silence"
count1
highlights
0"pulse"
1"reminder"
2"velvet"
3"sanctuary"
4"flicked"
5"flickered"
6"down her spine"
7"charged"
8"eyebrow"
9"warmth"
10"traced"
11"vibrated"
12"blown wide"
13"racing"
14"unraveling"
15"silence"
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
narrationSentences119
matches(empty)
94.84% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount1
hedgeCount3
narrationSentences119
filterMatches
0"feel"
hedgeMatches
0"began to"
1"seemed to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences134
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
repeatedSegmentCount0
maxSentenceWordsSeen51
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords1917
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions20
unquotedAttributions0
matches(empty)
100.00% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions40
wordCount1449
uniqueNames18
maxNameDensity0.69
worstName"Lucien"
maxWindowNameDensity1.5
worstWindowName"Lucien"
discoveredNames
Aurora5
Carter2
Moreau1
French1
Eva3
Lucien10
Oxfords1
Brick2
Lane2
October1
Deptford1
Ptolemy5
Silas1
Ice1
Evan1
Damn1
Demon1
London1
persons
0"Aurora"
1"Carter"
2"Moreau"
3"Eva"
4"Lucien"
5"Ptolemy"
6"Silas"
7"Ice"
8"Evan"
9"Demon"
places
0"Brick"
1"Lane"
2"Deptford"
3"London"
globalScore1
windowScore1
63.79% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences87
glossingSentenceCount3
matches
0"as though memorizing her"
1"tasted like bergamot and smoke"
2"sound that seemed to undo him; his cane clattered forgotten to the floor as both arms came around her, lifting her onto the counter amid the scrolls and half-empty mugs"
95.67% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches2
per1kWords1.043
wordCount1917
matches
0"Not touching, but near enough"
1"no longer a mark of old pain but"
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount2
totalSentences134
matches
0"remembered that night"
1"chose that moment"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs43
mean44.58
std30.01
cv0.673
sampleLengths
053
166
237
321
418
549
677
715
842
943
1073
1120
124
1321
1486
1556
1664
1710
1824
1973
2037
2118
2299
23107
2447
25101
2656
2795
2848
2935
3017
3112
3271
3314
3493
3529
368
3734
3881
3939
403
4120
421
96.42% Passive voice overuse
Target: ≤2% passive sentences
passiveCount3
totalSentences119
matches
0"been painted"
1"was startled"
2"were blown"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount0
totalVerbs242
matches(empty)
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount14
semicolonCount2
flaggedSentences13
totalSentences134
ratio0.097
matches
0"Lucien Moreau looked exactly as she remembered—impossibly composed, dangerously beautiful."
1"The ivory handle of his cane gleamed under the bare bulb, and those impossible eyes—one warm amber, one depthless black—fixed on her with the same unnerving focus that had once made her feel seen down to the marrow."
2"Every surface groaned under Eva’s research—scrolls unrolled like ancient carpets, books splayed open with passages underlined in three different inks, coffee mugs turned into paperweights for yellow legal pads."
3"The kettle still held water from an hour ago; she flicked it on anyway."
4"His reflection joined hers—taller, broader, close enough that she could smell the faint trace of vetiver and smoke that always clung to him."
5"She remembered that night too well—the flat above Silas’s bar that she officially called home but had barely slept in since meeting him."
6"The memory of his voice—low, reasonable, then suddenly not—still lived behind her ribs like a parasite."
7"“I told myself I would deliver the message and leave. But standing here, seeing you…” He gestured at the chaos surrounding them, at her—hair loose around her shoulders, flour from the restaurant still dusting her sleeves."
8"And Lucien waited—beautiful, patient, dangerous—as though the next words from her mouth could rewrite every contract he’d ever sealed in blood and shadow."
9"She made a small helpless sound that seemed to undo him; his cane clattered forgotten to the floor as both arms came around her, lifting her onto the counter amid the scrolls and half-empty mugs."
10"When they finally broke apart for air, his eyes were blown wide—amber ringed in black, but still unmistakably Lucien."
11"Outside, London moved on—taxis splashing through puddles on Brick Lane, late-night scholars arguing over tikka masala, the supernatural underworld spinning its endless webs."
12"They had hours before the real world intruded again—hours to talk, to touch, to begin unraveling six months of silence."
84.79% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount1033
adjectiveStacks0
stackExamples(empty)
adverbCount58
adverbRatio0.05614714424007745
lyAdverbCount22
lyAdverbRatio0.021297192642787996
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences134
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences134
mean14.31
std11.4
cv0.797
sampleLengths
022
131
210
318
438
57
621
77
82
95
1016
1112
126
1322
146
1520
161
1714
188
1929
2026
2110
225
2315
2414
2513
2613
2719
285
293
303
3113
3223
3319
347
3511
3611
374
385
394
4016
415
4210
4351
448
452
4615
473
4815
4938
59.20% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats9
diversityRatio0.39552238805970147
totalSentences134
uniqueOpeners53
30.58% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount1
totalSentences109
matches
0"Then she’d remembered what clean"
ratio0.009
58.53% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount44
totalSentences109
matches
0"Her pulse hammered against the"
1"he said at last"
2"She gripped the doorframe, knuckles"
3"He took one fluid step"
4"She moved to the tiny"
5"He set the cane against"
6"She kept her back to"
7"His reflection joined hers—taller, broader,"
8"She had believed it for"
9"he said quietly"
10"He gave a soft, humorless"
11"She spun, bright blue eyes"
12"Her voice cracked on the"
13"She hadn’t meant to say"
14"She remembered that night too"
15"She turned it off but"
16"She hated how breathless she"
17"He stepped closer"
18"His heterochromatic gaze dropped meaningfully"
19"She hadn’t heard Evan’s name"
ratio0.404
56.33% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount88
totalSentences109
matches
0"The three deadbolts rasped open"
1"The smell of cardamom and"
2"Lucien Moreau looked exactly as"
3"Platinum hair swept back from"
4"The ivory handle of his"
5"Her pulse hammered against the"
6"he said at last"
7"The French curl of her"
8"The words came out thinner"
9"She gripped the doorframe, knuckles"
10"He took one fluid step"
11"The door clicked shut behind"
12"Ptolemy materialized from beneath a"
13"Aurora folded her arms, trying"
14"The flat felt smaller with"
15"Every surface groaned under Eva’s"
16"The single window overlooking Brick"
17"Lucien’s gaze traveled the chaos"
18"She moved to the tiny"
19"The kettle still held water"
ratio0.807
45.87% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount1
totalSentences109
matches
0"Before she’d run."
ratio0.009
46.70% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences52
technicalSentenceCount7
matches
0"The ivory handle of his cane gleamed under the bare bulb, and those impossible eyes—one warm amber, one depthless black—fixed on her with the same unnerving foc…"
1"Half-demon, half something that had once looked at her like she was the only clean thing in his world."
2"The way his mouth had moved over her pulse point, slow and reverent, as though memorizing her."
3"And Lucien waited—beautiful, patient, dangerous—as though the next words from her mouth could rewrite every contract he’d ever sealed in blood and shadow."
4"She made a small helpless sound that seemed to undo him; his cane clattered forgotten to the floor as both arms came around her, lifting her onto the counter am…"
5"The edge of the counter pressed into her, grounding her even as the kiss deepened and the world narrowed to the glide of tongues, the scrape of teeth, the low g…"
6"The scar on her wrist caught the lamplight as she threaded her fingers through his platinum hair, no longer a mark of old pain but simply part of the map that h…"
100.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags22
uselessAdditionCount0
matches(empty)
95.95% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags6
fancyCount2
fancyTags
0"she admitted (admit)"
1"she whispered (whisper)"
dialogueSentences37
tagDensity0.162
leniency0.324
rawRatio0.333
effectiveRatio0.108
82.3041%