Run: 2026-03-18-01KM0946HBED5J60XQ5W1543P0

Run Details

Duration:
19.5s
Cost:
$0.005707
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 first thing Aurora Carter noticed was the silence. Not the normal London quiet that sat between the horns and the night buses—this was the kind that pressed in like a palm against the back of her neck. Her flat on Brick Lane already carried the usual cluttered noises of a life devoted to research: the soft rasp of pages when the radiator sighed, the distant clink of dishes from the curry house below, Ptolemy’s paws padding across the table with impatient dignity. Tonight, everything held its breath. Aurora stood with her back to the front door, a stack of books balanced against her hip, one finger resting on the edge of a photograph printed from something she’d tried to make sense of for the last hour. Her bright blue eyes tracked the keyhole as if she could will it to refuse. The scar on her left wrist throbbed faintly—the crescent-shaped reminder of a childhood accident, of control taken away and then fought for. Three deadbolts, she reminded herself. Always three. The knock came anyway. Three sharp raps, deliberate enough to be a message and not a plea. Someone didn’t knock like that unless they either knew exactly who lived behind the door—or they didn’t care. Ptolemy, tabby and suspicious, lifted his head from the windowsill. His ears angled forward. He made a low sound that wasn’t quite a growl, more like a warning he’d decided was worth paying attention to. Aurora set the books down on the nearest chair, careful, silent. She moved slow, not because she was afraid, but because she was irritated at herself for being startled. She hadn’t expected company. She hadn’t—couldn’t—predict how the night would turn. Another knock. Again. The third time, the rhythm changed, and the person on the other side seemed to settle on a pattern. A voice followed, smooth as if it had been oiled. “Rory.” Her stomach tightened. Only one person used her name like that—like it belonged in his mouth. Aurora didn’t answer. She didn’t speak to the wrongness of it. She reached for the chain without releasing the deadbolt, fingers careful, methodical. The metal was cold through her palm. “Lucien,” she said at last, and the word came out flat, as if it had been sanded down. The deadbolt clicked back reluctantly. She pulled the chain free, the door barely a hand’s width open, and held it there—enough to see, not enough to be reached. Charcoal-grey. Tailored. A coat that looked like it had been cut on the line between threat and etiquette. Slicked-back platinum blond hair caught the low light from the hall, and his eyes—heterochromatic, one amber like warmed honey and one black like ink—held hers with an expertise that felt insulting. Lucien Moreau stood in the narrow corridor as if he’d always owned it. His ivory-handled cane sat planted by his leg. Even the cane felt like a decision, like a tool that could become something else. There was a faint scent on him too—clean and faintly medicinal, like someone who carried control the way other men carried cologne. Aurora’s throat worked once. “You’re uninvited.” “I could say the same.” His mouth curved—not quite a smile, not quite an apology. “But you and I have never been good at sticking to invitations.” Behind her, Ptolemy clicked his tongue and darted from the windowsill, circling her feet to put himself between her and the visitor. The cat’s body bristled with offended ownership, as if he could intimidate a half-demon with attitude alone. Lucien’s gaze flicked to Ptolemy, then back. “I didn’t come for the cat.” “You didn’t come for me, either,” Aurora replied, and hated how her voice betrayed her. It wanted, stupidly, to be softer. It wanted to bend toward him like a plant toward light. There it was, the memory she had tried to lock away: the last time she’d seen him, the air between them full of unsaid things and sharp edges. Complicated terms. Agreements made in shadow and broken with consequences neither of them had admitted were real. Lucien stepped closer, though the door kept him at bay. “Rory,” he said again, quieter now. “You look tired.” “I’m fine.” The lie felt automatic. It always did. It had saved her before, in Cardiff, in London, in every room where people expected her to fall into place and play a role. She tightened her grip on the edge of the door. “Why are you here?” His amber eye brightened slightly, the black one remaining steady as a judge. “Because I’m tired of watching you flinch.” Aurora blinked once, hard. “I don’t flinch.” “You do.” His gaze dropped to her left wrist—the scar. His expression didn’t change, but the air did, as if the space between them had grown denser. “You always did when you thought no one noticed.” The corridor light hummed. Somewhere below, a door in the restaurant shut with a distant thud. Aurora forced herself to breathe. She’d left bruises in her own thoughts for months and still insisted she was unhurt. Lucien had always had a way of seeing through her certainty. “You’re not supposed to know that,” she said. “I find that the world is full of things we are ‘not supposed to know,’” he replied. Then, like he was offering a negotiation he didn’t have the right to make, he added, “May I come in?” “No.” Lucien’s cane shifted minutely, its tip angled like a question mark. He didn’t push the door. He didn’t try to charm his way through the chain. He waited, and that patience felt like another kind of control. “You’ve been in and out of this place,” he said, eyes narrowing slightly. “Books stacked like shields. Research notes like prayers. I assume you’re trying to solve something you don’t want to admit scares you.” Aurora’s laugh came out sharper than intended. “You’re very presumptuous for someone who disappears.” “I didn’t disappear.” His voice cooled, but the coolness wasn’t anger; it was precision. “I delayed.” “Same thing.” “It’s not.” He leaned in a fraction closer. The scent of him—clean, controlled—filled her space. Aurora hated that her body responded anyway, hated how her heart performed its treacherous arithmetic: danger plus familiarity equaled attraction, like the mind refused to separate what she should fear from what she wanted. Lucien’s heterochromatic eyes held hers, and the moment stretched until it threatened to snap. Aurora felt the old pull like a hook under her ribs. “You don’t get to call it delayed,” she said, and her fingers tightened on the door until her knuckles whitened. “You left. On complicated terms, yes, but you left anyway. You walked away like what we were discussing could be postponed forever.” His mouth softened at the edges. “It wasn’t forever.” “It was enough.” Ptolemy yowled then—just once, sharp and indignant—as if to remind Aurora that she was not alone in her anger. The cat’s tail flicked like a weapon. Lucien’s gaze dropped again to the cat. He gave a small, almost respectful nod, then returned to Aurora with that infuriating steadiness. “I’m here because something has changed.” Aurora’s stomach tightened again. Her eyes flicked down the doorframe to the floor, to the gap under the threshold. “Change how?” Lucien hesitated. For someone who looked carved from confidence, he paused in a way that felt honest. “You’re being watched.” The words landed like a cold coin pressed to her skin. Aurora’s pulse spiked. She didn’t move, but her thoughts sprinted—through the list of people who might want her dead, the list of factions that liked to pretend they didn’t exist, the list of things she’d learned and refused to share. She had believed she was careful. She had believed she was invisible. Her voice turned careful in response. “By whom?” Lucien’s gaze sharpened. “By someone who knows where you live. Not just where you sleep. Where you keep your notes. What you hide behind the curtains.” Aurora swallowed. “How do you know?” “I know because I’m trying to stop it.” His amber eye gleamed. “And because I couldn’t let you handle this alone.” “I’m always handling things alone.” It came out too defensive. She heard it. He heard it. The silence that followed was heavy with the history between them—every time she’d tried to push him away and every time he’d found a way to stand close enough to be impossible to ignore. Lucien’s voice dropped. “You shouldn’t have to.” The door creaked softly as Aurora shifted her weight. She could refuse him again, lock him out, insist on distance. She could choose safety over the ache of old attraction. But the part of her—cool-headed, intelligent, always looking for the angle that made the impossible manageable—recognized something else in his posture. Lucien didn’t look like a man making a mistake. He looked like a man who’d walked into risk on purpose. “Three deadbolts,” she said, as if reminding herself. “If you’re here to threaten me, you can stand there all night.” “I’m not threatening you.” His voice held steady. “I’m asking you to open the door.” Aurora stared at him for a long moment. Then she eased the chain once more, not fully, not surrendering control but allowing an inch of space. “Why now?” Lucien let out a breath that wasn’t a sigh, not exactly—more like the release of tension. “Because whatever it is out there is moving tonight. And because—” His jaw tightened. “Because I owe you an explanation I didn’t give.” Aurora felt the urge to laugh again, but it didn’t come. Explanation. The word tasted like the past, like the last conversation that had ended with her walking away because she couldn’t bear the way his silence sounded like rejection. “An explanation,” she echoed. “For leaving?” “For how I chose.” He looked at her like he wanted her to understand, and the earnestness made her anger wobble. “For thinking I could protect you by stepping back. For pretending my distance was kindness when it was cowardice.” Aurora’s throat tightened. The scar on her wrist pulsed once, a quiet echo of pain she’d tried not to name. She remembered standing in a doorway, one of them furious, the other quiet, and she remembered the way he’d looked at her as if he’d already decided she would survive without him. She hated that she’d believed it for a while. “I didn’t ask you to protect me,” she said. “I asked you to be honest.” Lucien’s gaze didn’t flinch. “I couldn’t be. Not then.” Aurora’s eyes narrowed. “Why couldn’t you?” His cane shifted again, the blade concealed and harmless-looking, a promise of violence if the world forced it. “Because what I am involved in—what I owe—has roots you’re standing on without realizing. Your research here…” He nodded toward the flat behind her as if it were visible through walls. “It’s close. Closer than you think.” Aurora’s heart kicked hard. “What exactly am I standing on?” Lucien’s amber eye flicked toward the interior of the flat, then back to her. “A door. A fracture. Something that keeps trying to open. And someone has decided you’re the key.” The words made the hair at the back of her neck rise. Aurora tightened her grip on the door and forced her voice to remain even. “That’s dramatic.” “It’s true.” His tone sharpened. “And it’s getting louder.” Ptolemy, sensing the shift, darted past Aurora’s ankle and planted himself by the foot of the door, staring at Lucien as if deciding whether the danger was the man or the threat he carried. Aurora stood there with the door half-open, her body caught between retreat and reception. She could smell the curry house through the crack of the hall—spice and steam—and beneath that, the metallic edge of something unnatural, something that made her thoughts scrape. “Come in,” she said abruptly, before she could talk herself out of it. Lucien didn’t move at first. “You’re sure?” “I’m not sure of anything.” Aurora swallowed. “But you’re here, and whatever you’re saying has your face doing that thing. The one that means you’ve already counted the costs.” Lucien’s mouth softened again, and for a moment the half-demon’s polished façade looked tired, almost human. “I did count them.” “And?” Aurora’s voice went quiet. “How many times did you think you’d lose me?” His eyes held hers. “Enough to hate myself for being right.” Aurora felt warmth rise to her cheeks, furious at how much she wanted to believe him and furious at how much she didn’t trust the part of her that wanted. She stepped back and pulled the door wider, fully opening the corridor to the cramped warmth of Eva’s flat. Lucien crossed the threshold like someone who refused to stumble. As he entered, the air shifted—not just from proximity, but from recognition, as if the space itself acknowledged his presence. He didn’t look around like a stranger; he looked like he was mapping routes in his head. Aurora shut the door behind him, then immediately slid the chain back into place. The deadbolts remained open for now, but the symbol of control calmed her pulse. Lucien’s cane tip tapped once on the floor. “You keep the books close.” “I like information.” Aurora lifted her chin. “It doesn’t bite.” Lucien’s gaze tracked to the stacks around the room, the scrolls and research notes, the careful chaos. “Information bites plenty.” Ptolemy circled Lucien’s shoes, then sat, smug. Lucien’s eyes softened at the cat in a way that, somehow, made Aurora’s anger feel less righteous and more complicated. He turned back to her. “I’m not here to fight you.” “You left,” Aurora said, because it was the wound she could still touch. “You left and you didn’t come back. And I have had enough people do that.” Lucien’s jaw worked once. “I know.” “Then say the thing you didn’t say.” The moment stretched again, delicate and dangerous. Aurora stood in the middle of her own room, surrounded by the evidence of her effort and her obsession, and waited for him to fill the space with words—or confirm that the space was empty for a reason. Lucien met her gaze. Amber and black, two versions of night and warmth sharing one face. He looked at her scarred wrist again, as if he could read the story written there. Then he spoke. “I thought I was doing the right thing,” he said. “I thought if I stepped away, you’d stay safe. I thought you’d stop digging, stop chasing the fracture, stop putting your bright head in the path of what wants to open.” Aurora’s lips parted. “And?” “And I was wrong.” His voice went lower. “Because the moment you decide to keep going, you pull the world toward you. You make it follow.” Aurora swallowed. Her eyes stung, which infuriated her. She blinked hard, forcing the tears back into their box. “So what—now you show up and fix it?” Lucien’s expression tightened. “No.” The bluntness made her flinch. “Then why?” He stepped closer, stopping just short of the reach of her outstretched hand. Aurora felt the heat of him anyway, felt the pull of attraction like it was always waiting behind her anger. His voice steadied, but there was something raw under it now. “Because I don’t want to keep losing you in pieces,” he said. “I want to do it all at once. With honesty.” Aurora stared at him. The hallway behind her was locked. The flat was small, crowded with paper and threat, and yet the most dangerous thing in the room was the way he looked at her like she mattered enough to admit his own cowardice. She drew in a breath that tasted of ink and curry spice. “Honesty,” she repeated. “Right now?” Lucien nodded once. “Right now.” Aurora’s hand trembled—just a fraction—before she steadied it against her side. Her scar itched, like her body remembered how it felt to be hurt and still stand. “You hurt me,” she said, and the words came out clean, precise, stripped of embellishment. “You don’t get to walk in and call it protection.” Lucien’s amber eye flickered. “I know.” “And you’re asking to come closer.” Aurora tilted her head, sharp. “For what? To start over?” He exhaled slowly, as if he’d been holding the question for weeks. “For us to stop pretending we don’t want the same thing.” Aurora’s heartbeat lurched. Attraction, yes. But there was also grief in it. There was also the quiet ache of time lost and words withheld. She looked at his cane, at the concealed blade. She imagined him in some other corridor, some other night, the distance he’d chosen because it felt safer than reaching. Aurora lifted her gaze back to his eyes. “If you make the choice to leave again,” she said, voice softer than she intended, “I won’t forgive you.” Lucien’s mouth curved, faint and rueful. “Then don’t give me a chance to leave.” The line between them held, taut. Ptolemy let out a quiet sound, and then, as if bored by the seriousness, he hopped onto the chair beside Aurora’s books and curled up like the world could be organized simply by resting. Aurora watched Lucien—half-demon, polished fixer, information broker with a blade hidden in ivory. She watched his expression shift from careful to resolved, like a man finally stepping off a ledge he’d spent too long staring at. “And the watched part?” she asked, because she needed something solid to stand on. “Who’s watching me?” Lucien’s gaze sharpened again, the romance tightening into purpose like a knot pulled through cloth. “We’ll talk,” he said. “But first—” He paused, and there was a glance toward the door as if he could feel the outside press against it. “I need to know you still have everything you took from the last time you went searching.” Aurora’s stomach dropped. She thought of the small object wrapped in cloth in the kitchen drawer. The one she’d told herself was just research. The one she hadn’t told Lucien about, because she hadn’t trusted him to stay. She forced herself to move, walking past him with controlled steps. “Follow me,” she said over her shoulder. Lucien followed, cane tapping softly, charcoal suit whispering against the cramped floor. As Aurora opened the kitchen drawer, the cold air touched her wrist, and the scar burned as if it had its own opinion. She didn’t look back when she asked, quietly, “Are you here because you care… or because you need something from me?” Lucien’s answer came close behind her, warm in a way that unsettled. “Both,” he said. “But if it’s the second one, Aurora—” he used her full name like it was an oath, “—I won’t pretend it isn’t.” Aurora stared at the wrapped cloth. Her fingers tightened before she untied it. The past rose up in her throat like a taste of metal—hurt, attraction, unsaid truths. She could still close the drawer and shut the door and pretend this moment hadn’t happened. Instead, she pulled the cloth away and revealed what she’d taken. Lucien went very still. Then, slowly, he looked at her again, eyes bright in the low kitchen light, and Aurora realized the romance she’d been holding at the edge of her anger had always been there—for worse and for better. “We’re late,” he murmured. Aurora met his gaze, refusing to back down from the certainty in his voice. “Good,” she said, though her pulse hammered. “Let’s get it over with.”
created_at"2026-03-18T10:51:08.216Z" 3/18/2026, 10:51:08 AM
model"openai/gpt-5.4-nano-20260317"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency1250
moderation_latency(null)
generation_time19282
tokens_prompt808
tokens_completion5243
native_tokens_prompt753
native_tokens_completion4445
native_tokens_completion_images0
native_tokens_reasoning141
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.00570685
router(null)
provider_responses
0
endpoint_id"0c835f2e-c18d-4e8c-b245-e1e3bd08b97f"
id"resp_09a4164c7359fa990169ba839c44948195bd7554ab2005c025"
is_byokfalse
latency186
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-1773831068-M0tRQkcpvvppIOJjrWUB"
upstream_id"resp_09a4164c7359fa990169ba839c44948195bd7554ab2005c025"
total_cost0.00570685
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
totalTags44
adverbTagCount2
adverbTags
0"he said again [again]"
1"she said abruptly [abruptly]"
dialogueSentences112
tagDensity0.393
leniency0.786
rawRatio0.045
effectiveRatio0.036
86.25% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount3272
totalAiIsmAdverbs9
found
0
adverb"reluctantly"
count1
1
adverb"slightly"
count2
2
adverb"very"
count2
3
adverb"softly"
count2
4
adverb"slowly"
count2
highlights
0"reluctantly"
1"slightly"
2"very"
3"softly"
4"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)
49.57% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount3272
totalAiIsms33
found
0
word"silence"
count3
1
word"sense of"
count1
2
word"throbbed"
count1
3
word"reminder"
count1
4
word"stomach"
count3
5
word"methodical"
count1
6
word"flicked"
count4
7
word"charm"
count1
8
word"treacherous"
count1
9
word"pulse"
count3
10
word"weight"
count1
11
word"tension"
count1
12
word"echoed"
count1
13
word"pulsed"
count1
14
word"echo"
count1
15
word"warmth"
count3
16
word"trembled"
count1
17
word"flickered"
count1
18
word"lurched"
count1
19
word"resolved"
count1
20
word"could feel"
count1
21
word"unsettled"
count1
highlights
0"silence"
1"sense of"
2"throbbed"
3"reminder"
4"stomach"
5"methodical"
6"flicked"
7"charm"
8"treacherous"
9"pulse"
10"weight"
11"tension"
12"echoed"
13"pulsed"
14"echo"
15"warmth"
16"trembled"
17"flickered"
18"lurched"
19"resolved"
20"could feel"
21"unsettled"
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"
count1
2
label"stomach dropped/sank"
count1
highlights
0"let out a breath"
1"eyes narrowed"
2"stomach dropped"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells1
narrationSentences229
matches
0"was afraid"
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount1
hedgeCount5
narrationSentences229
filterMatches
0"feel"
hedgeMatches
0"tried to"
1"seemed to"
2"try to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences297
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen45
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords3240
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions43
unquotedAttributions0
matches(empty)
50.00% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions98
wordCount2537
uniqueNames10
maxNameDensity1.89
worstName"Aurora"
maxWindowNameDensity3.5
worstWindowName"Aurora"
discoveredNames
Aurora48
Carter1
London2
Brick1
Lane1
Ptolemy8
Moreau1
Cardiff1
Lucien34
Eva1
persons
0"Aurora"
1"Carter"
2"Ptolemy"
3"Moreau"
4"Lucien"
5"Eva"
places
0"London"
1"Brick"
2"Lane"
3"Cardiff"
globalScore0.554
windowScore0.5
0.00% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences155
glossingSentenceCount10
matches
0"quite a growl, more like a warning he’d decided was worth paying attention to"
1"looked like it had been cut on the line b"
2"felt like a decision, like a tool that"
3"not quite a smile, not quite an apology"
4"not quite an apology"
5"felt like another kind of control"
6"looked like a man who’d walked into risk"
7"as if reminding herself"
8"tasted like the past, like the last conve"
9"sounded like rejection"
10"as if deciding whether the danger was the man or the threat he carried"
11"looked like he was mapping routes in his"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches3
per1kWords0.926
wordCount3240
matches
0"not fully, not surrendering control but allowing an inch of space"
1"not surrendering control but allowing an inch of space"
2"not just from proximity, but from recognition, as if the space itself acknowledged his pr"
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount3
totalSentences297
matches
0"hated that her"
1"hated that she’d"
2"confirm that the"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs132
mean24.55
std15.94
cv0.649
sampleLengths
09
174
25
376
47
54
631
735
840
922
1011
1116
1230
1318
1428
1549
1613
1745
186
1927
2039
2113
2232
2345
2419
2547
2620
277
2836
2916
3031
318
3237
331
3437
3535
3614
3716
382
3949
4025
4142
429
433
4426
4528
4621
4720
4863
498
100.00% Passive voice overuse
Target: ≤2% passive sentences
passiveCount3
totalSentences229
matches
0"was irritated"
1"being startled"
2"been oiled"
3"been sanded"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount3
totalVerbs496
matches
0"was offering"
1"was mapping"
2"was always waiting"
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount32
semicolonCount2
flaggedSentences25
totalSentences297
ratio0.084
matches
0"Not the normal London quiet that sat between the horns and the night buses—this was the kind that pressed in like a palm against the back of her neck."
1"The scar on her left wrist throbbed faintly—the crescent-shaped reminder of a childhood accident, of control taken away and then fought for."
2"Someone didn’t knock like that unless they either knew exactly who lived behind the door—or they didn’t care."
3"She hadn’t—couldn’t—predict how the night would turn."
4"Only one person used her name like that—like it belonged in his mouth."
5"She pulled the chain free, the door barely a hand’s width open, and held it there—enough to see, not enough to be reached."
6"Slicked-back platinum blond hair caught the low light from the hall, and his eyes—heterochromatic, one amber like warmed honey and one black like ink—held hers with an expertise that felt insulting."
7"There was a faint scent on him too—clean and faintly medicinal, like someone who carried control the way other men carried cologne."
8"“I could say the same.” His mouth curved—not quite a smile, not quite an apology."
9"“You do.” His gaze dropped to her left wrist—the scar."
10"“I didn’t disappear.” His voice cooled, but the coolness wasn’t anger; it was precision."
11"The scent of him—clean, controlled—filled her space."
12"Ptolemy yowled then—just once, sharp and indignant—as if to remind Aurora that she was not alone in her anger."
13"She didn’t move, but her thoughts sprinted—through the list of people who might want her dead, the list of factions that liked to pretend they didn’t exist, the list of things she’d learned and refused to share."
14"The silence that followed was heavy with the history between them—every time she’d tried to push him away and every time he’d found a way to stand close enough to be impossible to ignore."
15"But the part of her—cool-headed, intelligent, always looking for the angle that made the impossible manageable—recognized something else in his posture."
16"Lucien let out a breath that wasn’t a sigh, not exactly—more like the release of tension."
17"She could smell the curry house through the crack of the hall—spice and steam—and beneath that, the metallic edge of something unnatural, something that made her thoughts scrape."
18"As he entered, the air shifted—not just from proximity, but from recognition, as if the space itself acknowledged his presence."
19"He didn’t look around like a stranger; he looked like he was mapping routes in his head."
20"Aurora stood in the middle of her own room, surrounded by the evidence of her effort and her obsession, and waited for him to fill the space with words—or confirm that the space was empty for a reason."
21"Aurora’s hand trembled—just a fraction—before she steadied it against her side."
22"Aurora watched Lucien—half-demon, polished fixer, information broker with a blade hidden in ivory."
23"The past rose up in her throat like a taste of metal—hurt, attraction, unsaid truths."
24"Then, slowly, he looked at her again, eyes bright in the low kitchen light, and Aurora realized the romance she’d been holding at the edge of her anger had always been there—for worse and for better."
92.51% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2574
adjectiveStacks0
stackExamples(empty)
adverbCount125
adverbRatio0.04856254856254856
lyAdverbCount22
lyAdverbRatio0.008547008547008548
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences297
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences297
mean10.91
std8.33
cv0.764
sampleLengths
09
129
245
35
439
515
622
75
82
94
1013
1118
1210
134
1421
1511
1618
174
187
192
201
2119
2210
231
243
2513
263
278
2812
297
3018
315
3223
331
341
3516
3631
3713
388
3915
4022
414
422
4315
4412
4522
4617
477
486
4915
41.25% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats26
diversityRatio0.21212121212121213
totalSentences297
uniqueOpeners63
100.00% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount8
totalSentences207
matches
0"Only one person used her"
1"Even the cane felt like"
2"Somewhere below, a door in"
3"Then, like he was offering"
4"Then she eased the chain"
5"Then he spoke."
6"Instead, she pulled the cloth"
7"Then, slowly, he looked at"
ratio0.039
57.68% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount84
totalSentences207
matches
0"Her flat on Brick Lane"
1"Her bright blue eyes tracked"
2"His ears angled forward."
3"He made a low sound"
4"She moved slow, not because"
5"She hadn’t expected company."
6"She hadn’t—couldn’t—predict how the night"
7"Her stomach tightened."
8"She didn’t speak to the"
9"She reached for the chain"
10"she said at last, and"
11"She pulled the chain free,"
12"His ivory-handled cane sat planted"
13"His mouth curved—not quite a"
14"It wanted, stupidly, to be"
15"It wanted to bend toward"
16"he said again, quieter now"
17"It always did."
18"It had saved her before,"
19"She tightened her grip on"
ratio0.406
10.72% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount186
totalSentences207
matches
0"The first thing Aurora Carter"
1"Her flat on Brick Lane"
2"Tonight, everything held its breath."
3"Aurora stood with her back"
4"Her bright blue eyes tracked"
5"The scar on her left"
6"The knock came anyway."
7"Someone didn’t knock like that"
8"Ptolemy, tabby and suspicious, lifted"
9"His ears angled forward."
10"He made a low sound"
11"Aurora set the books down"
12"She moved slow, not because"
13"She hadn’t expected company."
14"She hadn’t—couldn’t—predict how the night"
15"The third time, the rhythm"
16"A voice followed, smooth as"
17"Her stomach tightened."
18"Aurora didn’t answer."
19"She didn’t speak to the"
ratio0.899
0.00% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount0
totalSentences207
matches(empty)
ratio0
59.64% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences103
technicalSentenceCount12
matches
0"He made a low sound that wasn’t quite a growl, more like a warning he’d decided was worth paying attention to."
1"Slicked-back platinum blond hair caught the low light from the hall, and his eyes—heterochromatic, one amber like warmed honey and one black like ink—held hers …"
2"There was a faint scent on him too—clean and faintly medicinal, like someone who carried control the way other men carried cologne."
3"The cat’s body bristled with offended ownership, as if he could intimidate a half-demon with attitude alone."
4"Ptolemy yowled then—just once, sharp and indignant—as if to remind Aurora that she was not alone in her anger."
5"She didn’t move, but her thoughts sprinted—through the list of people who might want her dead, the list of factions that liked to pretend they didn’t exist, the…"
6"But the part of her—cool-headed, intelligent, always looking for the angle that made the impossible manageable—recognized something else in his posture."
7"The word tasted like the past, like the last conversation that had ended with her walking away because she couldn’t bear the way his silence sounded like reject…"
8"She remembered standing in a doorway, one of them furious, the other quiet, and she remembered the way he’d looked at her as if he’d already decided she would s…"
9"She could smell the curry house through the crack of the hall—spice and steam—and beneath that, the metallic edge of something unnatural, something that made he…"
10"Ptolemy let out a quiet sound, and then, as if bored by the seriousness, he hopped onto the chair beside Aurora’s books and curled up like the world could be or…"
11"As Aurora opened the kitchen drawer, the cold air touched her wrist, and the scar burned as if it had its own opinion."
0.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags44
uselessAdditionCount11
matches
0"she said, and the word came out flat, as if it had been sanded down"
1"His mouth curved, not quite an apology"
2"he said, eyes narrowing slightly"
3"His voice cooled, but the coolness wasn’t anger; it was precision"
4"she said, as if reminding herself"
5"He looked, and the earnestness made her anger wobble"
6"she said, and the words came out clean, precise, stripped of embellishment"
7"Aurora tilted, sharp"
8"she said, voice softer than she intended,"
9"She didn’t, quietly,"
10"she said, though her pulse hammered"
100.00% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags23
fancyCount3
fancyTags
0"she repeated (repeat)"
1"She didn’t (do)"
2"he murmured (murmur)"
dialogueSentences112
tagDensity0.205
leniency0.411
rawRatio0.13
effectiveRatio0.054
73.8095%