Run: 2026-05-01-01KQHQDVTK96YJG5R8P2FE7YZC

Run Details

Duration:
1m 14s
Cost:
$0.013812
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 latch scraped back on the third deadbolt, and Rory’s grip tightened on the edge of the door as it swung inward. The curry-house steam from the stairwell curled in first—cumin, coriander, the faint singe of chili oil—before the man attached to the scent filled the frame. Lucien Moreau stood on the threshold of Eva’s flat as if the six months since their last, brutal parting had been nothing more than an idle cigarette break. Platinum hair slicked back with ruthless precision, charcoal suit tailored so sharply it looked weaponized. The ivory-handled cane rested lightly against his left leg, but she knew the blade it hid. She knew every elegant line of him, and the knowledge burned. For a moment neither of them spoke. Her bright blue eyes locked onto his mismatched ones—one amber as molten resin, the other black as an open grave—and the old current crackled between them, unwelcome and alive. Ptolemy, Eva’s tabby, chose that exact second to wind between Rory’s ankles and hiss at the newcomer, spine arched like a Halloween decoration. She couldn’t blame him. Half-demon tended to upset cats. And women who had sworn never to open another door for Lucien Moreau. “Rory,” he said, voice low, that faint Marseille accent wrapping around her name like smoke. Not Aurora. Not Carter. Not the alias Malphora she’d worn the night everything went to hell. Just Rory, the way he’d breathed it against her throat once while London rain lashed the windows of a warehouse in Whitechapel. She swallowed. “You’re not supposed to know this address.” “I’m not supposed to do a great many things.” A half-smile ghosted across his mouth, there and gone. “May I come in before your cat files a complaint with the infernal council?” Every instinct screamed to slam the door, to throw the three deadbolts and pretend the sight of him hadn’t tightened something low in her belly. Instead she stepped back. The flat was too small for grand gestures anyway. Books and scrolls covered every horizontal surface; Eva’s research on ley-line fractures spilled across the sofa like scholarly confetti. The single lamp cast a honeyed pool that barely reached the far wall. Lucien moved past her with the careful grace of a man who knew exactly how much space his shoulders required. The faint scent of vetiver and something electric—ozone after a lightning strike—trailed behind him. Her pulse answered before her brain could argue. She closed the door, slid the bolts home, and immediately regretted the enclosed feeling. The click of each lock sounded like a countdown. Lucien didn’t sit. He never did unless he meant to stay, and staying had always been the problem. Instead he examined a stack of grimoires balanced precariously on the arm of the threadbare armchair, one gloved finger tracing a gilded sigil without touching it. “Eva’s not here.” “Observant,” Rory said, folding her arms. The crescent scar on her left wrist pulled tight; she tucked it against her ribs on instinct. “She’s at the British Library until closing. I’m… watching Ptolemy. And trying to translate the marginalia in something that smells like it was bound in human skin. Your usual Tuesday evening, I’m sure.” He turned then. The amber eye caught the lamplight and flared; the black one absorbed it, depthless. “You’ve been avoiding the usual channels.” “I’ve been avoiding you.” The words fell between them like a gauntlet. Lucien’s jaw flexed, a minute movement most people would miss. But Rory had spent three weeks once learning every tic of that face—three weeks of adrenaline and impossible choices and nights when his mouth on hers had felt like the only real thing in a city full of monsters. Then came the night in the abandoned tube station beneath Camden. The night she watched the demon half of him peel back like molten parchment and tear apart the thing that had been hunting her. The night he’d looked at her afterward with those same mismatched eyes and said, *This is why we end here, ma belle. Before I ruin you.* She hadn’t waited for him to finish the job. She’d walked away with her pulse roaring in her ears and his blood on her coat—none of it his own. Lucien exhaled through his nose. “Six months, and you still flinch when I look at you.” “I don’t flinch. I remember.” She crossed to the tiny kitchenette because standing still felt too dangerous. The kettle was already half-full; she flicked it on just to have something to do with her hands. “You made it very clear what we were. A temporary alliance with benefits. Then you decided the benefits were too risky for the fragile human. Very noble. Very final.” The kettle began to rattle. Behind her, his cane tapped once against the floorboards. “I said what was necessary to keep you breathing,” he murmured. Closer now. She hadn’t heard him move. “You think I enjoyed watching you leave? You think I sleep easily knowing Evan is still out there looking for you, and that my world is the reason he found a way in?” She spun, temper flaring hot and bright. “Don’t you dare use my ex as an excuse. You didn’t push me away because of Evan. You pushed because you were afraid that if I saw all of you—the demon, the fixer, the man who speaks four languages and still can’t say what he wants—I’d run screaming. Newsflash, Luc. I didn’t run because of what you are. I ran because you decided for both of us.” His eyes darkened. Not the black one; both of them, somehow. He set the cane against the counter with deliberate care, then stripped off his gloves one finger at a time. The gesture was so achingly familiar her throat closed. Those hands had mapped every inch of her skin in the dark, had pressed her against rain-slick brick and whispered filthy praise in French until she forgot her own name. “I was trying to protect you,” he said, voice roughening. “From what? You? Or the truth that you felt something real and it terrified you more than any creature from Avaros ever could?” The kettle shrieked. Rory ignored it. So did he. The space between them had shrunk to nothing. She could see the faint scar through his left eyebrow, the one she’d given him accidentally with her elbow during a particularly athletic moment against a bookshelf very like the ones currently boxing them in. She could see the way his throat worked when he swallowed. “Every night,” he said quietly, “I tell myself I will not look for you. I tell myself the fixer’s life is no place for a woman who quotes case law when she’s nervous and who still smells like cardamom and printer ink. Then I hear your name on the wind—Rory Carter asking questions in the wrong back rooms, Rory Carter delivering late-night orders for Yu-Fei Cheung because the supernatural community pays better under the table. And I break every rule I have.” Her heart hammered against her ribs so hard she was sure he could hear it. The flat felt smaller, the air thinner. Ptolemy had retreated to the top of the highest bookshelf, yellow eyes watchful. “Why tonight?” she whispered. “Why now?” “Because your ex hired a tracker from the Hollow Court. Because the tracker is sitting in Silas’s bar downstairs as we speak, waiting for you to come home to that flat above it like a pigeon returning to the wrong roost.” Lucien’s hand rose, hesitated, then brushed a strand of her straight black hair behind her ear. The touch seared. “Eva called me. She thought I should know. And I thought… I thought if I had to tell you that the past is stalking you again, I owed you the truth about the rest of it too.” Rory’s laugh cracked in the middle. “The truth. From you. That’s rich.” His fingers lingered at the shell of her ear, then traced down to the small scar on her wrist. He lifted it between them like an accusation and a prayer, pressing his lips to the crescent mark. The gesture undid her more thoroughly than any grand declaration could have. Heat pooled low in her stomach, treacherous and sweet. “I never stopped wanting you,” he said against her skin. “Not for one damn day. I thought distance would starve it. Instead it grew teeth. When I imagine you hurt, when I imagine anyone else touching you—” His voice dropped, raw. “I feel the demon rise, and for once I don’t care. Because you are the only thing that has ever made the human half of me feel worth saving.” The words hung between them, fragile as one of Eva’s scrolls. Rory’s breath shook. She wanted to hit him. She wanted to drag him down onto the cluttered floor and remind him exactly how human he could be. Instead she curled her fingers into the lapels of his charcoal suit and pulled him the last inch. Their mouths met like two storms colliding. It wasn’t gentle. Six months of hurt and hunger poured out in the slant of lips, the scrape of teeth. Lucien made a low sound in his throat—half growl, half groan—and backed her against the counter. A stack of notes fluttered to the floor. The kettle had long since clicked off, but the room felt scalding. His hands spanned her waist, lifting her effortlessly onto the narrow ledge so their heights aligned. She wrapped her legs around him without thinking, ankles hooking at the small of his back. The cane clattered forgotten to the linoleum. He kissed like a man who had memorized her and then dreamed of her every night since—deep, devouring, perfect. When his tongue traced the seam of her lips she opened for him, tasting coffee and the faint iron tang that was purely Lucien. Her fingers speared into his hair, destroying the perfect slicked-back style until platinum strands fell messily across his forehead. He shuddered at the tug. They broke apart only when breathing became mandatory. Foreheads pressed together, shared air hot between them. “I’m still furious with you,” she panted. “Good,” he answered, voice wrecked. “Stay furious. Just don’t ask me to leave again. Not tonight. Not while that thing is circling.” Rory traced the line of his jaw with her thumb, feeling the faint stubble he allowed himself at the end of long days. The black eye had bled outward until the iris was nearly eclipsed, a sign his control was slipping. She didn’t mind. She had never minded. “Eva’s not back until ten,” she said softly. The admission felt like stepping off a cliff. “And Ptolemy’s already judged us. Might as well give him something worth gossiping about.” Lucien’s laugh was surprised, warm, impossibly tender. He lifted her again, this time carrying her the three steps to the overcrowded sofa. Scrolls and books were swept aside without ceremony; they landed in a landslide of paper. He laid her down as though she were made of glass and gunpowder both, then followed, bracing himself above her. The weight of him was familiar, grounding. His suit jacket hit the floor. Her fingers found the buttons of his waistcoat, undoing them one by one while his mouth traced the column of her throat. “I missed this,” he murmured against her pulse. “Missed the way you think three steps ahead and still let me catch you. Missed the scar you pretend doesn’t exist. Missed the way you say my name like it’s a challenge and a promise at once.” She arched when his hand slipped beneath the hem of her shirt, palm hot against the bare skin of her back. “Then stop talking, Luc. We’ve wasted enough time.” He kissed her again, slower now, savoring. The flat filled with the rustle of fabric, the soft sounds of rediscovery. Outside, Brick Lane hummed with evening traffic and the call of late-night vendors, but inside Eva’s cluttered sanctuary the world narrowed to the slide of skin on skin, to mismatched eyes that watched her like she was the only light in two realms, to the careful way his fingers avoided the scar until she deliberately pressed her wrist into his hand, giving him permission. Later—when the lamplight had guttered low and their limbs were tangled in a nest of displaced research—Rory traced idle circles on his bare chest. The demon half of him had retreated; both eyes were human again, heavy-lidded with satisfaction. Ptolemy had finally descended to claim a warm spot against Lucien’s calf, apparently deciding the intruder had been sufficiently claimed in return. “I’m not promising white picket fences,” she said quietly. “My life is deliveries and dodgy law books and a flat above a bar that smells like stale beer and secrets. Yours is… whatever this is.” Lucien caught her hand, brought the crescent scar to his lips once more. “I don’t want fences. I want you. Sharp edges and all. We’ll make the rest up as we go. The way we always have.” She studied him—the platinum hair now thoroughly rumpled by her hands, the faint red mark on his collarbone where she’d been less than gentle, the steady heartbeat beneath her palm. The things left unsaid for six months had finally been dragged into the light, a little bloody, a little raw, but breathing. Outside, the curry-house shutters rattled down. Inside, Rory Carter kissed the half-demon fixer who had once tried to save her by leaving her, and for the first time in a long while the future didn’t feel like a closing trap. It felt like an open door, three deadbolts thrown wide, and the unmistakable scent of second chances. (Word count: 1,478)
created_at"2026-05-01T12:15:15.801Z" 5/1/2026, 12:15:15 PM
model"x-ai/grok-4.20-20260309"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency32498
moderation_latency(null)
generation_time74285
tokens_prompt808
tokens_completion4195
native_tokens_prompt851
native_tokens_completion5126
native_tokens_completion_images(null)
native_tokens_reasoning2293
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.01381155
router(null)
provider_responses
0
endpoint_id"3ecee37f-b217-4093-87fb-aaf0afe307af"
id"bdfc09fa-2304-532b-fca8-2456c6ddf1d9"
is_byokfalse
latency82
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-1777637715-9ysNphlZHlPA7HTkwe1Y"
session_id(null)
api_type"completions"
id"gen-1777637715-yeWDSARwfcV4tbBJOUMu"
upstream_id"bdfc09fa-2304-532b-fca8-2456c6ddf1d9"
total_cost0.01381155
cache_discount0.0000672
upstream_inference_cost0
provider_name"xAI"
response_cache_source_id(null)

Evaluation details

Result Evaluator Details Meta Data
0.00% Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags16
adverbTagCount4
adverbTags
0"he said quietly [quietly]"
1"Lucien’s hand rose hesitated then [then]"
2"she said softly [softly]"
3"she said quietly [quietly]"
dialogueSentences37
tagDensity0.432
leniency0.865
rawRatio0.25
effectiveRatio0.216
82.68% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount2309
totalAiIsmAdverbs8
found
0
adverb"sharply"
count1
1
adverb"lightly"
count1
2
adverb"very"
count4
3
adverb"softly"
count1
4
adverb"deliberately"
count1
highlights
0"sharply"
1"lightly"
2"very"
3"softly"
4"deliberately"
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)
48.03% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount2309
totalAiIsms24
found
0
word"grave"
count1
1
word"electric"
count1
2
word"pulse"
count3
3
word"tracing"
count1
4
word"roaring"
count1
5
word"flicked"
count1
6
word"familiar"
count2
7
word"eyebrow"
count1
8
word"traced"
count5
9
word"stomach"
count1
10
word"treacherous"
count1
11
word"fluttered"
count1
12
word"aligned"
count1
13
word"perfect"
count2
14
word"weight"
count1
15
word"sanctuary"
count1
highlights
0"grave"
1"electric"
2"pulse"
3"tracing"
4"roaring"
5"flicked"
6"familiar"
7"eyebrow"
8"traced"
9"stomach"
10"treacherous"
11"fluttered"
12"aligned"
13"perfect"
14"weight"
15"sanctuary"
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
emotionTells1
narrationSentences131
matches
0"was surprised"
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount0
hedgeCount3
narrationSentences131
filterMatches(empty)
hedgeMatches
0"tended to"
1"began to"
2"tried to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences152
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
repeatedSegmentCount0
maxSentenceWordsSeen85
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans1
markdownWords12
totalWords2292
ratio0.005
matches
0"This is why we end here, ma belle. Before I ruin you."
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions24
unquotedAttributions0
matches(empty)
100.00% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions46
wordCount1657
uniqueNames17
maxNameDensity0.72
worstName"Lucien"
maxWindowNameDensity1.5
worstWindowName"Lucien"
discoveredNames
Rory11
Moreau2
Eva5
Halloween1
Lucien12
Marseille1
Aurora1
Carter2
Malphora1
London1
Whitechapel1
Camden1
Closer1
French1
Brick1
Lane1
Ptolemy3
persons
0"Rory"
1"Moreau"
2"Eva"
3"Lucien"
4"Carter"
5"Ptolemy"
places
0"Marseille"
1"London"
2"Whitechapel"
3"French"
4"Brick"
5"Lane"
globalScore1
windowScore1
17.02% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences94
glossingSentenceCount5
matches
0"sounded like a countdown"
1"felt like the only real thing in a city"
2"felt like stepping off a cliff"
3"Lucien’s calf, apparently deciding the intrud"
4"felt like an open door, three deadbolts"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount2292
matches(empty)
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount0
totalSentences152
matches(empty)
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs48
mean47.75
std31.53
cv0.66
sampleLengths
0117
181
253
39
432
5112
623
747
856
923
104
11118
1229
1316
1464
1514
1651
1774
1870
1910
2023
2163
2282
2335
246
2597
2612
2758
2870
2956
307
3195
3267
3316
347
3522
3648
3730
3892
3945
4029
4184
4261
4335
4437
4552
4657
473
91.87% Passive voice overuse
Target: ≤2% passive sentences
passiveCount5
totalSentences131
matches
0"was surprised"
1"were swept"
2"were made"
3"were tangled"
4"been dragged"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount1
totalVerbs285
matches
0"was slipping"
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount14
semicolonCount7
flaggedSentences16
totalSentences152
ratio0.105
matches
0"The curry-house steam from the stairwell curled in first—cumin, coriander, the faint singe of chili oil—before the man attached to the scent filled the frame."
1"Her bright blue eyes locked onto his mismatched ones—one amber as molten resin, the other black as an open grave—and the old current crackled between them, unwelcome and alive."
2"Books and scrolls covered every horizontal surface; Eva’s research on ley-line fractures spilled across the sofa like scholarly confetti."
3"The faint scent of vetiver and something electric—ozone after a lightning strike—trailed behind him."
4"The crescent scar on her left wrist pulled tight; she tucked it against her ribs on instinct."
5"The amber eye caught the lamplight and flared; the black one absorbed it, depthless."
6"But Rory had spent three weeks once learning every tic of that face—three weeks of adrenaline and impossible choices and nights when his mouth on hers had felt like the only real thing in a city full of monsters."
7"She’d walked away with her pulse roaring in her ears and his blood on her coat—none of it his own."
8"The kettle was already half-full; she flicked it on just to have something to do with her hands."
9"Not the black one; both of them, somehow."
10"Lucien made a low sound in his throat—half growl, half groan—and backed her against the counter."
11"He kissed like a man who had memorized her and then dreamed of her every night since—deep, devouring, perfect."
12"Scrolls and books were swept aside without ceremony; they landed in a landslide of paper."
13"Later—when the lamplight had guttered low and their limbs were tangled in a nest of displaced research—Rory traced idle circles on his bare chest."
14"The demon half of him had retreated; both eyes were human again, heavy-lidded with satisfaction."
15"She studied him—the platinum hair now thoroughly rumpled by her hands, the faint red mark on his collarbone where she’d been less than gentle, the steady heartbeat beneath her palm."
86.37% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount1683
adjectiveStacks1
stackExamples
0"against rain-slick brick"
adverbCount82
adverbRatio0.0487225193107546
lyAdverbCount31
lyAdverbRatio0.0184194890077243
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences152
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences152
mean15.08
std12.42
cv0.824
sampleLengths
022
125
228
315
416
511
67
729
823
94
105
1113
1215
132
142
1512
1622
172
187
1918
2014
2125
224
239
2419
2513
2620
2714
288
2914
309
313
3215
3326
343
356
3617
3733
383
3914
406
414
428
4310
4439
4511
4624
4722
484
499
48.90% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats9
diversityRatio0.32894736842105265
totalSentences152
uniqueOpeners50
100.00% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount5
totalSentences124
matches
0"Just Rory, the way he’d"
1"Instead she stepped back."
2"Instead he examined a stack"
3"Then came the night in"
4"Instead she curled her fingers"
ratio0.04
65.16% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount48
totalSentences124
matches
0"She knew every elegant line"
1"Her bright blue eyes locked"
2"She couldn’t blame him."
3"he said, voice low, that"
4"Her pulse answered before her"
5"She closed the door, slid"
6"He never did unless he"
7"He turned then."
8"She hadn’t waited for him"
9"She’d walked away with her"
10"She crossed to the tiny"
11"She hadn’t heard him move."
12"She spun, temper flaring hot"
13"His eyes darkened."
14"He set the cane against"
15"he said, voice roughening"
16"She could see the faint"
17"She could see the way"
18"he said quietly"
19"Her heart hammered against her"
ratio0.387
40.65% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount104
totalSentences124
matches
0"The latch scraped back on"
1"The curry-house steam from the"
2"Lucien Moreau stood on the"
3"Platinum hair slicked back with"
4"The ivory-handled cane rested lightly"
5"She knew every elegant line"
6"Her bright blue eyes locked"
7"Ptolemy, Eva’s tabby, chose that"
8"She couldn’t blame him."
9"he said, voice low, that"
10"A half-smile ghosted across his"
11"Every instinct screamed to slam"
12"The flat was too small"
13"Books and scrolls covered every"
14"The single lamp cast a"
15"Lucien moved past her with"
16"The faint scent of vetiver"
17"Her pulse answered before her"
18"She closed the door, slid"
19"The click of each lock"
ratio0.839
40.32% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount1
totalSentences124
matches
0"Before I ruin you.*"
ratio0.008
87.91% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences65
technicalSentenceCount5
matches
0"Lucien Moreau stood on the threshold of Eva’s flat as if the six months since their last, brutal parting had been nothing more than an idle cigarette break."
1"He kissed like a man who had memorized her and then dreamed of her every night since—deep, devouring, perfect."
2"When his tongue traced the seam of her lips she opened for him, tasting coffee and the faint iron tang that was purely Lucien."
3"Outside, Brick Lane hummed with evening traffic and the call of late-night vendors, but inside Eva’s cluttered sanctuary the world narrowed to the slide of skin…"
4"Inside, Rory Carter kissed the half-demon fixer who had once tried to save her by leaving her, and for the first time in a long while the future didn’t feel lik…"
31.25% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags16
uselessAdditionCount3
matches
0"he said, voice roughening"
1"His voice dropped, raw"
2"he answered, voice wrecked"
41.89% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags12
fancyCount4
fancyTags
0"he murmured (murmur)"
1"she whispered (whisper)"
2"she panted (pant)"
3"he murmured (murmur)"
dialogueSentences37
tagDensity0.324
leniency0.649
rawRatio0.333
effectiveRatio0.216
76.0684%