Run: 2026-03-18-01KM07GV5ZY05A9YFB7A64HSKB

Run Details

Duration:
18.4s
Cost:
$0.005066
Provider:
OpenAI

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 key turned with a small, stubborn click, like it didn’t trust the lock to do its job. Aurora Carter stood on the worn runner inside the narrow entryway and listened anyway, head tilted, bright blue eyes narrowed—not in suspicion so much as in calculation. Somewhere inside Eva’s flat, papers whispered when the heating system kicked on. Books creaked as the settling wood took the draft. The tabby cat, Ptolemy, padded into view with the slow confidence of an animal who believed in destiny and had never once been surprised by it. Aurora tried not to exhale too hard. Her fingers hovered near the small crescent-shaped scar on her left wrist, a reflex she still hadn’t trained out of herself—an old habit from a childhood accident, like pain could be negotiated if she touched it first. Then the deadbolts, one after another, gave way. The door swung inward. Aurora didn’t have to look at the face to know who it belonged to. The air shifted first: the faint bite of cold stone and something like rain trapped in fabric. The shadow that slid across the hallway belonged to a man who dressed as if he were always stepping into a room already full of witnesses. Lucien Moreau stood there like a man carved out of decisions. Charcoal suit, tailored and exacting; slicked-back platinum blond hair catching the hallway light in clean strokes. His cane leaned against his leg with the easy familiarity of a weapon and a crutch sharing the same purpose. One amber eye, one black, found Aurora with unsettling precision. For a heartbeat, neither of them moved. Ptolemy, however, did. The cat darted past Aurora’s ankles and brushed Lucien’s shin, tail upright as if greeting an old friend. Lucien looked down at the cat and—somewhere in his expression—something softened. Not warmth, exactly. More like recognition. Aurora’s throat tightened. “Unannounced,” she said, because her mouth needed to do something other than betray her. Her voice came out level, crisp, controlled. It sounded like Rory Carter at work: calm, competent, a blade hidden in plain sight. Lucien’s gaze lifted back to her face. His mouth curved, not quite a smile. “You make it sound like a crime.” “It can be,” Aurora replied. She shifted her weight, careful not to block the doorway, careful not to look like she was afraid of him. She told herself she wasn’t afraid. She’d fled one abusive man and survived the aftershocks. She could handle a half-demon fixer appearing in someone else’s home like he owned the air. But his presence still carried that dangerous tug—like a magnet remembering the shape of metal it had once kissed. She saw it in the way her eyes refused to look away. The amber eye held her; the black eye watched from behind like a judge who already knew the verdict. Lucien stepped inside without asking permission. The door swung behind him with the quiet finality of a sealed argument. Aurora’s pulse kept time anyway. “You’re here,” she said. He didn’t correct her. “I am.” “You know I don’t—” She stopped. It wasn’t that she didn’t know things. Rory knew more than she admitted, because the world punished ignorance. It was that she didn’t like the way his sentences kept arriving without warning, like letters slid under the door in sealed envelopes that smelled of burning paper. Lucien’s cane tapped once on the floorboards. Not a threat. A punctuation. “I couldn’t wait.” His French accent surfaced when he was being honest; it threaded through his English like a darker ribbon. “Eva told me you’d be here.” Eva. Of course. Aurora’s mind flashed—Eva’s flat, the cramped one-bedroom above the curry house on Brick Lane. Books and scrolls, research notes, the smell of old ink and cheap spices. The three deadbolts that had held through every other intrusion. And the tabby cat like a small god watching everything. Lucien had gotten in, which meant either he’d been allowed or he’d made allowance for himself. Aurora swallowed. “So you came anyway.” His gaze flicked toward the hallway shelf where Aurora kept her keys and spare gloves. “You can call it that.” “What do you want?” She forced the words out cleanly. Want was simple. Need was dangerous. Want, at least, could be argued with. Lucien’s expression changed—minutely. The curve of his mouth thinned. His amber eye carried a flash of something that might have been regret, or the performance of it. “I need,” he said, and the correction hit Aurora like the cold edge of truth. “And I’m sorry for arriving like this.” Aurora’s first instinct was to believe him. Her second was to remember what believing had cost her the last time—remember Evan, the abusive ex named in every half-remembered warning Eva had delivered. Remember the way Aurora had once been sure she could steer something broken toward safety, only to find herself trapped in the mechanics of another man’s need. She blinked hard. Her bright blue eyes steadied. “You’re sorry,” she repeated. “Is that what you called it last time?” Lucien’s jaw tightened. “Aurora.” Hearing her name from his mouth still did something to her, like a hand on the inside of her ribs. She hated that it worked. She kept her voice sharp enough to cut. “Don’t.” His eyes held hers. The heterochromia made him look perpetually split between two truths. “Don’t what?” “Don’t use my name like it means we’re fine.” Aurora stepped slightly closer, not threatening him, just refusing to be distance-managed. “Don’t act like you didn’t leave me hanging on complicated terms.” Lucien exhaled through his nose, slow. He looked past her for a moment, toward the room beyond—toward the clutter of Eva’s life. Toward proof that Aurora had a place here, a reason to hide inside other people’s clutter. Then he looked back. “You think I left you.” “I know you did.” Aurora’s voice lowered. “I didn’t imagine it.” For a second the flat felt too small. Every book on every shelf seemed to listen. Every paper seemed to lean forward. Ptolemy slipped between Aurora and Lucien, weaving like a distraction that refused to be subtle. Aurora glanced down at the cat and immediately hated herself for the flicker of relief she felt. Even the cat looked safer than the man in front of her. Lucien’s cane shifted in his hand. The ivory handle was polished; under it, something thin and concealed hinted at violence. A tool. An answer. A promise he might or might not choose to keep. Aurora lifted her chin. “Why are you here, Lucien?” His gaze didn’t waver. “Because I don’t like unfinished business.” “That’s not an answer.” “It is,” he said. “Just not the one you want.” Aurora’s laugh came out without humor. “Then give me the one I need.” He studied her for a long moment, as if weighing the cost of honesty. Aurora felt it—felt his attention like pressure on her skin. The hurt she’d kept folded away like a note she’d never sent unfurled in her mind, uninvited. Last time—last time he’d vanished into the underworld with the kind of certainty that made questions feel stupid. Last time, he’d offered answers that had tasted like hope and then refused to stay for the part where hope became real. Aurora had been furious enough to believe she’d be done with him. She wasn’t done. Not even close. Lucien moved closer, just enough that Aurora could smell the faint cold on him. He didn’t reach for her. He didn’t crowd her. He just stood in her space as if his body had learned the map of hers. “I heard something,” he said. “A rumor that affects you.” “A rumor,” Aurora echoed. She didn’t like how her voice caught on the word. “About what? Me delivering food? Me living here? Me—” “About your past,” Lucien cut in, and the edge in his tone made her breath hitch. He didn’t look triumphant. He looked controlled, restrained, like he’d bitten down hard on something that wanted to snap free. “About Cardiff. About what you fled. About what you still won’t say out loud.” Aurora’s left wrist tingled. The scar itched, a memory of pain trying to become information. Her mind raced—Evan, the abusive ex she’d left. The night she’d run with her suitcase and her teeth clenched so hard her jaw hurt. The names she hadn’t said since. The details she’d kept away from Lucien because she’d convinced herself he couldn’t be trusted with them. She forced herself to speak. “Why should I care about your rumor?” Lucien’s amber eye brightened with something that wasn’t anger. Attraction, maybe. Or the ghost of it. The way he had looked at her then—through her, over her, like he wanted to know what she was made of, and the wanting had scared her as much as it had thrilled her. “I care,” he said simply. “Because whoever is pulling those threads wants you vulnerable. And you are.” Aurora’s mouth went dry. She hated that he was right. “You don’t get to decide that,” she snapped. “I don’t,” Lucien agreed. Then, softer: “But I do get to warn you.” Aurora’s gaze dropped to his cane. Ivory handle. Hidden blade. The underworld always came with weapons, even when it wore a suit and spoke politely. “Warn me,” she repeated, stubbornness propping her up like scaffolding. Lucien nodded once. “There’s a collector in the supernatural circuit. They’ve started paying for information about humans who carry certain marks.” “Marks,” Aurora echoed. “My scar?” His eyes narrowed, and for the first time he looked genuinely unsettled. “No.” Aurora felt a jolt of relief and immediate anger. “Then what?” Lucien hesitated. The hesitation was new. It made him look less like an information broker and more like a man choosing which truth could survive being spoken. “I don’t have all the pieces,” he said. “Not yet. But I have enough to know someone is mapping you.” Aurora’s fingers curled at her sides. She wanted to grab her keys. She wanted to call Eva. She wanted to slam the door in Lucien’s face and tell him he didn’t get to step into her life and complicate it further. But she also—damn it—wanted him to stay. Wanted him to say the things he’d never said. Wanted the hurt to be addressed instead of disguised. “Then why not tell me before now?” Aurora demanded. Lucien’s expression tightened. “Because you wouldn’t listen.” “I listen,” she said, and immediately she heard how thin it sounded. His gaze softened—barely. “No. You survive. There’s a difference.” That struck too close. Aurora’s chest constricted. She swallowed the sting behind her eyes. She refused to let him see it. “You came to my door,” she said, quieter. “After all that time.” Lucien’s voice dropped as well. “After all that time,” he agreed. “Yes.” “And you didn’t come to apologize,” Aurora said. “You came to warn me.” “I came to both,” he corrected. “But I didn’t know if the apology would be welcome.” Aurora stared at him. Her mind flashed with memories she’d locked away, like doors she didn’t want to reopen. His silence. His abrupt departure. The way he’d looked at her right before the world tore them apart on complicated terms. Attraction wasn’t polite. It didn’t care about timing or pride. It didn’t care about the words she’d wanted him to say and the words he’d refused. Lucien took a small step closer again. He didn’t touch her, but the space between them narrowed until Aurora could see the faint crease at the corner of his mouth—an expression of strain he’d been wearing for longer than he should have needed. “I left,” Lucien said, and the confession landed heavily. “Because the deal I made was dirty. It would have pulled you under. I told myself I was protecting you.” “You told yourself a lot of things,” Aurora said, and her voice shook just slightly despite her best effort. “You left. You didn’t explain.” “I tried,” he said. The cane angled down, not toward her—toward the floor—like he was putting down a weight. “Then I learned something I couldn’t share with you. Not because you’re incapable. Because it wasn’t safe for you to know yet.” Aurora let out a breath through her nose. The hurt didn’t vanish. It shifted shape. Now it looked like betrayal with an explanation she didn’t fully trust. “Say it,” she demanded. “Whatever it is you couldn’t tell me.” Lucien’s eyes darkened. “If I say it, it becomes a target. Words are not harmless.” Aurora’s heart thudded. “So you think I’m—what?—so fragile I’ll break the moment someone hears me named?” Lucien’s gaze held hers. “No.” He stepped back a fraction, granting her space. “I think you’re strong enough to be used against yourself.” Aurora stared at him, at the suited man and the half-demon blood in his bones, at the way he looked like he’d walked through fire and decided he could still be elegant afterward. “Then help me,” she said, the romance part of her voice undermining her anger. It came out softer than she intended, almost pleading. Almost honest. “Help me figure out what’s coming.” Lucien’s expression shifted—relief threading through restraint. “That,” he said, “I can do.” Aurora’s pulse steadied. For the first time since the door opened, she didn’t feel like she was bracing for impact. She felt like she was stepping onto a bridge that might hold. She glanced toward the living room, where the mess of Eva’s research waited like a map. “Where do we start?” Lucien’s amber eye gleamed. “With what I know. And with what you can tell me—everything you’ve been holding back.” Aurora flinched at the phrase everything you’ve been holding back. Her mind rebelled, throwing up the reasons she’d kept quiet. The scars she wore in silence. The memories that tasted like metal. But Lucien watched her, not with the impatient hunger of a broker, not with the predatory interest of a collector. With the careful focus of someone who had once been close enough to her to be hurt by leaving. Ptolemy, as if sensing the shift, trotted away and disappeared behind a stack of books, leaving Aurora and Lucien alone in the thin space between argument and agreement. Aurora swallowed. She turned her body slightly, gesturing toward the room, toward the clutter and the safety of familiar ground. “Sit,” she said, and surprised herself with the firmness in her voice. Command, not invitation. Lucien’s mouth twitched. “You’re still bossy.” “I’m still alive,” Aurora shot back. “Sit down.” He obeyed—of course he did—lowering himself onto a chair that creaked under the weight of his charcoal suit. His cane angled beside him, blade concealed. His posture was immaculate, but his eyes weren’t. They had that restless look of a man who wanted the truth and was terrified of what truth might summon. Aurora moved around the chair, grabbing a notebook from the nearest pile without asking permission from the universe. Her fingers brushed a paper edge, leaving a faint smudge of ink. She didn’t care. “Tell me what you heard,” she said. Lucien inhaled. “In the northern markets,” he began, voice calm and precise, “someone has been paying for access to names. Not just names. Identifiers. Human details that connect to supernatural contracts.” Aurora’s heart tightened. She wrote anyway—quick, sharp strokes. The scar on her wrist pulsed, like her skin was trying to remind her she was more than a name on a list. Lucien’s gaze stayed on her hands, then lifted back to her face. “What they want,” he continued, “is leverage. They’ll use whoever gets close enough to hurt you. And they’ll offer safety that comes with chains.” Aurora’s pen paused. She looked at him, really looked. “You came here,” she said slowly, “because you think you’re the chain they’re trying to wrap around me.” Lucien’s amber eye flared, dark understanding catching. “Yes.” “And you’re here anyway.” Her voice thinned. Romance lived in contradiction. It lived in the way hurt could turn into intention if someone was brave enough to try. “That sounds like you’re willing to be the target.” Lucien’s jaw worked. “I’m willing to be responsible.” Aurora stared at him until the words blurred. When she spoke again, her voice was quieter, threaded with something dangerous and tender. “Last time, you weren’t responsible. You were gone.” Lucien’s eyes softened, and for a moment his expression looked almost human—tender, pained, stripped of performance. “I know.” Aurora set her notebook down with a decisive thump. She didn’t step closer, but her attention anchored on him like a vow. “Then don’t do it again,” she said. “Not without telling me why.” Lucien held her gaze. His heterochromia made it feel like he was showing her two sides of his soul, and both were asking for the same mercy. “I won’t,” he said, and the words carried the weight of a man who had learned too late how much his silence could cost. Outside, somewhere on Brick Lane, a curry house door banged shut. The city continued being the city—loud, careless, alive. Inside Eva’s flat, the space between Aurora and Lucien warmed by a fraction, as if the air itself recognized the shift from old hurt to new risk. Aurora’s bright blue eyes remained steady. She could still be angry. She could still be cautious. But she could also—just barely—be hopeful. “Okay,” she said, and picked up her pen again. “Start at the part where you first heard my name.” Lucien leaned forward, suit immaculate despite the weight in his eyes, and began—careful with the details, careful with the truths, like every word mattered. Aurora listened like her life depended on it. Maybe it did.
created_at"2026-03-18T10:23:05.42Z" 3/18/2026, 10:23:05 AM
model"openai/gpt-5.4-nano-20260317"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency451
moderation_latency(null)
generation_time18183
tokens_prompt808
tokens_completion4823
native_tokens_prompt753
native_tokens_completion3932
native_tokens_completion_images0
native_tokens_reasoning0
native_tokens_cached0
num_media_prompt(null)
num_input_audio_prompt(null)
num_media_completion0
num_search_results(null)
origin"https://ncbench.com/"
is_byokfalse
finish_reason"stop"
native_finish_reason"completed"
usage0.0050656
router(null)
provider_responses
0
endpoint_id"0c835f2e-c18d-4e8c-b245-e1e3bd08b97f"
id"resp_028c6fcad7eb3d920169ba7d0978708196a9b0bd872c8bc7cc"
is_byokfalse
latency172
model_permaslug"openai/gpt-5.4-nano-20260317"
provider_name"OpenAI"
status200
user_agent"langchainjs-openai/1.0.0 ((node/v24.14.0; linux; x64))"
http_referer(null)
api_type"completions"
id"gen-1773829385-FN63yc9J1xyzPdMHlfJf"
upstream_id"resp_028c6fcad7eb3d920169ba7d0978708196a9b0bd872c8bc7cc"
total_cost0.0050656
cache_discount(null)
upstream_inference_cost0
provider_name"OpenAI"

Evaluation details

Result Evaluator Details Meta Data
100.00% Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags42
adverbTagCount3
adverbTags
0"Aurora stepped slightly [slightly]"
1"he said simply [simply]"
2"she said slowly [slowly]"
dialogueSentences97
tagDensity0.433
leniency0.866
rawRatio0.071
effectiveRatio0.062
91.60% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount2976
totalAiIsmAdverbs5
found
0
adverb"slightly"
count3
1
adverb"really"
count1
2
adverb"slowly"
count1
highlights
0"slightly"
1"really"
2"slowly"
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)
66.40% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount2976
totalAiIsms20
found
0
word"warmth"
count1
1
word"weight"
count4
2
word"pulse"
count2
3
word"flicked"
count1
4
word"flicker"
count1
5
word"echoed"
count2
6
word"restrained"
count1
7
word"raced"
count1
8
word"unsettled"
count1
9
word"silence"
count3
10
word"familiar"
count1
11
word"pulsed"
count1
12
word"carried the weight"
count1
highlights
0"warmth"
1"weight"
2"pulse"
3"flicked"
4"flicker"
5"echoed"
6"restrained"
7"raced"
8"unsettled"
9"silence"
10"familiar"
11"pulsed"
12"carried the weight"
66.67% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches3
maxInWindow2
found
0
label"let out a breath"
count1
1
label"eyes widened/narrowed"
count2
highlights
0"let out a breath"
1"eyes narrowed"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells5
narrationSentences257
matches
0"was afraid"
1"the flicker of relief"
2"a jolt of relief"
3"felt a jolt"
4"was terrified"
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount5
hedgeCount2
narrationSentences257
filterMatches
0"look"
1"feel"
2"see"
hedgeMatches
0"seemed to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences311
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen39
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords2949
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions54
unquotedAttributions0
matches(empty)
33.33% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions121
wordCount2387
uniqueNames15
maxNameDensity2.22
worstName"Aurora"
maxWindowNameDensity4
worstWindowName"Aurora"
discoveredNames
Carter2
Eva8
Ptolemy4
Moreau1
Aurora53
Lucien39
Rory2
French1
English1
Brick2
Lane2
Want2
Evan2
Command1
Romance1
persons
0"Carter"
1"Eva"
2"Ptolemy"
3"Moreau"
4"Aurora"
5"Lucien"
6"Rory"
7"English"
8"Evan"
9"Romance"
places
0"Brick"
1"Lane"
globalScore0.39
windowScore0.333
0.00% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences157
glossingSentenceCount11
matches
0"something like rain trapped in fabric"
1"as if greeting an old friend"
2"sounded like Rory Carter at work: calm, co"
3"not quite a smile"
4"as if weighing the cost of honesty"
5"tasted like hope and then refused to stay"
6"looked like betrayal with an explanation"
7"looked like he’d walked through fire and"
8"felt like she was stepping onto a bridg"
9"tasted like metal"
10"as if sensing the shift, trotted away and disappeared behind a stack of books, leaving Aurora and Lucien alone in the thin space between argument and agreement"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount2949
matches(empty)
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount3
totalSentences311
matches
0"was that she"
1"hated that it"
2"hated that he"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs133
mean22.17
std14.07
cv0.634
sampleLengths
045
147
244
38
44
557
647
710
87
938
103
1136
1221
1356
1419
1531
1619
175
184
196
2052
2112
2227
233
2447
2516
266
2720
2823
2927
3022
3159
328
3312
344
3525
369
3716
3832
3938
409
4111
4222
4344
4434
459
4610
474
4810
4913
98.44% Passive voice overuse
Target: ≤2% passive sentences
passiveCount5
totalSentences257
matches
0"been surprised"
1"been allowed"
2"was made"
3"being spoken"
4"was terrified"
91.38% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount8
totalVerbs491
matches
0"were always stepping"
1"was being"
2"was putting"
3"was bracing"
4"was stepping"
5"was trying"
6"was showing"
7"were asking"
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount28
semicolonCount4
flaggedSentences27
totalSentences311
ratio0.087
matches
0"Aurora Carter stood on the worn runner inside the narrow entryway and listened anyway, head tilted, bright blue eyes narrowed—not in suspicion so much as in calculation."
1"Her fingers hovered near the small crescent-shaped scar on her left wrist, a reflex she still hadn’t trained out of herself—an old habit from a childhood accident, like pain could be negotiated if she touched it first."
2"Charcoal suit, tailored and exacting; slicked-back platinum blond hair catching the hallway light in clean strokes."
3"Lucien looked down at the cat and—somewhere in his expression—something softened."
4"But his presence still carried that dangerous tug—like a magnet remembering the shape of metal it had once kissed."
5"The amber eye held her; the black eye watched from behind like a judge who already knew the verdict."
6"“I couldn’t wait.” His French accent surfaced when he was being honest; it threaded through his English like a darker ribbon."
7"Aurora’s mind flashed—Eva’s flat, the cramped one-bedroom above the curry house on Brick Lane."
8"Lucien’s expression changed—minutely."
9"Her second was to remember what believing had cost her the last time—remember Evan, the abusive ex named in every half-remembered warning Eva had delivered."
10"He looked past her for a moment, toward the room beyond—toward the clutter of Eva’s life."
11"The ivory handle was polished; under it, something thin and concealed hinted at violence."
12"Aurora felt it—felt his attention like pressure on her skin."
13"Last time—last time he’d vanished into the underworld with the kind of certainty that made questions feel stupid."
14"Her mind raced—Evan, the abusive ex she’d left."
15"The way he had looked at her then—through her, over her, like he wanted to know what she was made of, and the wanting had scared her as much as it had thrilled her."
16"But she also—damn it—wanted him to stay."
17"His gaze softened—barely."
18"He didn’t touch her, but the space between them narrowed until Aurora could see the faint crease at the corner of his mouth—an expression of strain he’d been wearing for longer than he should have needed."
19"The cane angled down, not toward her—toward the floor—like he was putting down a weight."
20"Lucien’s expression shifted—relief threading through restraint."
21"He obeyed—of course he did—lowering himself onto a chair that creaked under the weight of his charcoal suit."
22"She wrote anyway—quick, sharp strokes."
23"Lucien’s eyes softened, and for a moment his expression looked almost human—tender, pained, stripped of performance."
24"The city continued being the city—loud, careless, alive."
25"But she could also—just barely—be hopeful."
26"Lucien leaned forward, suit immaculate despite the weight in his eyes, and began—careful with the details, careful with the truths, like every word mattered."
86.33% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2420
adjectiveStacks1
stackExamples
0"small crescent-shaped scar"
adverbCount118
adverbRatio0.048760330578512395
lyAdverbCount19
lyAdverbRatio0.007851239669421488
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences311
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences311
mean9.48
std7
cv0.738
sampleLengths
018
127
212
39
426
57
637
78
84
914
1017
1126
1211
1316
1420
1510
167
173
1818
1911
203
213
223
2314
247
2515
267
277
287
295
3020
316
329
3316
3419
3512
3619
376
3813
395
404
414
422
436
447
4511
4628
477
483
492
40.68% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats29
diversityRatio0.24437299035369775
totalSentences311
uniqueOpeners76
90.50% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount6
totalSentences221
matches
0"Somewhere inside Eva’s flat, papers"
1"Then the deadbolts, one after"
2"More like recognition."
3"Then he looked back."
4"Even the cat looked safer"
5"Maybe it did."
ratio0.027
71.58% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount82
totalSentences221
matches
0"Her fingers hovered near the"
1"His cane leaned against his"
2"she said, because her mouth"
3"Her voice came out level,"
4"It sounded like Rory Carter"
5"His mouth curved, not quite"
6"She shifted her weight, careful"
7"She told herself she wasn’t"
8"She’d fled one abusive man"
9"She could handle a half-demon"
10"She saw it in the"
11"He didn’t correct her."
12"It wasn’t that she didn’t"
13"It was that she didn’t"
14"His French accent surfaced when"
15"His gaze flicked toward the"
16"She forced the words out"
17"His amber eye carried a"
18"he said, and the correction"
19"Her second was to remember"
ratio0.371
34.66% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount188
totalSentences221
matches
0"The key turned with a"
1"Aurora Carter stood on the"
2"Books creaked as the settling"
3"The tabby cat, Ptolemy, padded"
4"Aurora tried not to exhale"
5"Her fingers hovered near the"
6"The door swung inward."
7"Aurora didn’t have to look"
8"The air shifted first: the"
9"The shadow that slid across"
10"Lucien Moreau stood there like"
11"Charcoal suit, tailored and exacting;"
12"His cane leaned against his"
13"Ptolemy, however, did."
14"The cat darted past Aurora’s"
15"Lucien looked down at the"
16"Aurora’s throat tightened."
17"she said, because her mouth"
18"Her voice came out level,"
19"It sounded like Rory Carter"
ratio0.851
22.62% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount1
totalSentences221
matches
0"Now it looked like betrayal"
ratio0.005
78.65% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences89
technicalSentenceCount8
matches
0"The cat darted past Aurora’s ankles and brushed Lucien’s shin, tail upright as if greeting an old friend."
1"It was that she didn’t like the way his sentences kept arriving without warning, like letters slid under the door in sealed envelopes that smelled of burning pa…"
2"His amber eye carried a flash of something that might have been regret, or the performance of it."
3"Last time—last time he’d vanished into the underworld with the kind of certainty that made questions feel stupid."
4"He just stood in her space as if his body had learned the map of hers."
5"He looked controlled, restrained, like he’d bitten down hard on something that wanted to snap free."
6"Ptolemy, as if sensing the shift, trotted away and disappeared behind a stack of books, leaving Aurora and Lucien alone in the thin space between argument and a…"
7"Inside Eva’s flat, the space between Aurora and Lucien warmed by a fraction, as if the air itself recognized the shift from old hurt to new risk."
53.57% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags42
uselessAdditionCount6
matches
0"Aurora stepped slightly, not threatening him, just refusing to be distance-managed"
1"she repeated, stubbornness propping her up like scaffolding"
2"she said, quieter"
3"Lucien said, and the confession landed heavily"
4"he began, voice calm and precise,"
5"he said, and the words carried the weight of a man who had learned too late how much his silence could cost"
57.22% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags31
fancyCount9
fancyTags
0"she repeated (repeat)"
1"she snapped (snap)"
2"Lucien agreed (agree)"
3"she repeated (repeat)"
4"Aurora demanded (demand)"
5"he agreed (agree)"
6"he corrected (correct)"
7"she demanded (demand)"
8"he continued (continue)"
dialogueSentences97
tagDensity0.32
leniency0.639
rawRatio0.29
effectiveRatio0.186
76.1209%