Run: 2026-03-18-01KM08AJ14FD4KRD3VBPEBQ25R

Run Details

Duration:
19.4s
Cost:
$0.005678
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 door gave a tired groan before it yielded, as if it had been holding its breath. Aurora Carter stood on the other side of it with her hand still on the brass knob, the skin over her left wrist briefly tensing around the small crescent-shaped scar. The hallway light spilled in slats from above, catching on scattered envelopes and the edge of a stack of books that had been shoved, like always, against the wall in an attempt at order. Behind her, the cramped flat on Brick Lane breathed curry and ink. A tabby cat—Ptolemy, with his sharp eyes and offended posture—sat in the thin patch of warmth by the radiator, watching the doorway as if he’d been expecting drama. Aurora’s bright blue eyes fixed on the person standing there. Lucien Moreau filled the frame like a well-dressed storm. Charcoal suit, slicked-back platinum hair, and that ivory-handled cane angled down at his side—precise, restrained, ready. One amber eye caught the light and the other, black as a deep bruise, held hers. For a heartbeat, Aurora could only hear the quiet hum of the city outside, the soft clink of something settling inside her own chest. “You’re early,” she said, and hated how flat it sounded. Her voice didn’t match the way her pulse had tripped over itself. Lucien looked past her shoulder into the mess of books and scrolls, then back to her. “I’m not early,” he corrected, with the calm of a man who never arrived by accident. His accent threaded the words—French, but softened by London’s underbelly. “I’m precisely on time for whatever you think you don’t owe me.” Aurora swallowed. The knot in her throat had been there since the last time she’d seen him—since the complicated terms between them had snapped shut like a latch, final and cruel. It wasn’t just anger. It wasn’t just hurt. It was the way her mind still reached for him when it shouldn’t, when her body remembered before her heart could argue. She forced her fingers loose from the knob. “You didn’t call.” “I don’t do mornings that require manners,” Lucien said, and then, as if he’d decided something, he let his gaze drop to the small scar on her wrist where the light had caught it. “You always look like you’re bracing for impact.” Aurora’s grip tightened again on the edge of the doorframe. “And you always look like you came to collect payment.” The cat made a sound—an irritated chirp—then jumped down from his perch to rub his flank against Aurora’s ankle. She didn’t notice until she felt the pressure of his warm body, like a reminder that the world continued even when she didn’t want it to. Lucien stepped in before she could decide whether to let him. He didn’t cross the threshold like a guest; he crossed it like he owned the air. The cane’s blade stayed hidden beneath the ivory handle, but Aurora felt the implied threat in the poise of his wrist, in the exactness of his stance. “I wasn’t invited,” she said, and it came out harsher. “You’re aware of doors, Lucien.” “I’m aware of consequences,” he replied. His voice lowered, careful, threaded with something that could have been sympathy if it didn’t also carry steel. “And of how long you’ve been pretending you can outthink a wound.” Aurora’s throat tightened again. She had told herself she’d moved on. She had told herself London was crowded enough that she couldn’t possibly still be tangled in the same web as before. She had built her days around work—part-time deliveries for Yu-Fei Cheung’s Golden Empress, the long shift of navigating streets with boxes in her arms and strangers’ problems in her path. She lived above Silas’ bar, in a flat that smelled of books and curry and stale heat. She made herself useful. She made herself busy. And yet, every time she’d heard a certain kind of knock, her body had flinched first. Now she couldn’t pretend. “Why are you here?” she asked. “Say it.” Lucien’s eyes flicked around the flat, catching details she’d never offered him: the scattered notes about wards and street-level magic; the ink-stained papers with diagrams that made her feel half-crazy and half-sane; the small, battered toolkit beside the couch; the way the curtains were always drawn at odd angles as if the room itself needed protection from being seen. Then his gaze returned to her face. “Because someone else asked me to find you.” Aurora waited. She didn’t move, didn’t give him the satisfaction of watching her flinch. Lucien exhaled through his nose, almost a laugh. “You think you can out-stubborn a threat when the only reason you’re still standing is because I once told you what not to do.” “That’s not an apology,” Aurora said. “No,” Lucien agreed. “It’s a correction.” The intimacy of the cadence—of the way he spoke as if they were still in the same orbit—made Aurora’s skin prickle. She remembered Marseille, though she’d never been there; the way his presence had felt like a secret door in her mind. She remembered the night they’d split on complicated terms. She remembered the way she’d made a choice, and the way it had cost her more than she’d been willing to admit at the time. She opened her mouth to sharpen her reply, and the memory beat her to it. He’d looked at her then, too—amber and black eyes layered with something she hadn’t been brave enough to name. Aurora forced the present back into her lungs. “Who asked you?” Lucien’s cane shifted slightly, just a fraction, as if the hidden blade had pressed against the air. His suit jacket stayed perfectly still otherwise, no sign of strain. “Someone you don’t want owing you.” Aurora’s mind raced. Silas’ place was loud, and dangerous, and full of people who wanted favors. Yu-Fei Cheung’s restaurant had its own currents—orders, deliveries, mouths that never stopped talking. Eva’s flat was above a curry house on Brick Lane; even on quiet nights, you could feel the city’s vibration in the floorboards. And then there was the cat, watching with the flat intelligence of an animal who had survived enough human nonsense to know better than to interrupt. “Does it have to do with Evan?” Aurora asked before she could stop herself. Lucien’s expression tightened. That single change—so slight Aurora might’ve missed it if she wasn’t already bleeding history—told her she’d come close to the truth. “No,” he said at last. “Not Evan. Not the man you ran from.” He took a step closer to her, careful with distance as if it mattered to his control. Aurora didn’t step back. She refused. Her heart beat harder anyway, as if defiance made it louder. “You came here because of what happened after,” Aurora pressed. “Because of what you walked away from.” Lucien’s jaw flexed once. “Because someone decided you shouldn’t be left holding the pieces alone.” Aurora let out a breath that felt like it had been trapped for years. “You left.” Lucien held her gaze. “I did.” “And you didn’t explain.” “I did,” he said. “In the only way you’d accept.” “That’s not explanation,” Aurora snapped. Her voice shook despite her best effort. “That’s a door closing and pretending the sound didn’t hurt.” Ptolemy, still at her ankle, looked up at Lucien as if evaluating him for threats. His ears twitched. Aurora could feel his attention like a tiny, judgmental spotlight. Lucien’s eyes softened, but not enough to be safe. “You thought I did it to hurt you.” Aurora’s throat went dry. She hated the accuracy of his guess. She hated that some part of her had always known he wasn’t cruel by nature. She hated that her first assumption had been that he’d chosen the easiest path—distance—because it was the most tolerable lie. “I thought you did it because you could,” she said, quieter. “Because you always looked like you could leave.” Lucien’s amber eye darkened. “I left because staying would have burned you.” Aurora blinked, slow. The room seemed to tilt around her—curry-smoke and stale books and the radiator’s hiss suddenly too real. “Burned me.” “Yes,” Lucien said, and the word landed heavier than any accusation. “There was a reason I called it complicated. Not because I wanted you confused. Because what we were tangled in wasn’t finished.” Aurora’s fingers curled against the doorframe again. She could feel the rough grain of the wood through her skin, grounding her. “Then why show up now?” Lucien paused. For a moment, his stillness felt like a confession he didn’t want to deliver. Then he moved—just a slight tilt of his cane toward the narrow table by the window where Aurora kept her notes. He didn’t touch anything. He didn’t need to. “Because your work has started drawing attention,” he said. “Someone has noticed the pattern in your wards and the way you’ve been rerouting the wards’ energy.” Aurora’s breath caught. She hadn’t told anyone about the latest adjustments. Not properly. She’d kept it half in her head, half on paper, like she was afraid speaking the plan aloud would make it fail. “How do you—” “Because I know who watches,” Lucien said. His voice sharpened. “Because I’m in the underworld, Aurora. I’m not in the habit of stumbling into your life by accident.” She flinched at her name—how it sounded in his mouth after so long. She hadn’t heard him say it in months, maybe longer. She’d convinced herself she’d be fine without that sound. She wasn’t. “Don’t call me that like you own it,” she said, and the words came out rougher than she intended. Lucien’s expression didn’t harden. It shifted, almost—like he’d expected resistance. “I don’t own you,” he said. “I never have.” The honesty in it cut deeper than anger would’ve. Aurora had wanted him to be cruel. Cruelty was simple. Cruelty could be filed, labeled, and dismissed. Instead, she was left with the uncomfortable truth: he’d been careful. He’d been restrained. He’d been conflicted. She hated that her chest still responded to him like a live wire. Aurora dragged her gaze away from his eyes to the cane. The ivory handle looked too clean, too elegant for what it hid. She tried to focus on something practical. “If someone’s watching, why not warn me?” Lucien’s mouth tightened. “I did.” “You showed up unannounced after—” She cut off, because the argument was pointless. Dates didn’t matter. The hurt mattered. The absence mattered. The way she’d built her routines without him and still felt his absence like a phantom limb. Lucien took another step, and this time Aurora noticed the sound of his shoes—too soft for a man who walked as if the floor was his enemy. He moved as if he’d already decided how far he could go. “Because warning you was part of the old arrangement,” he said. “And the arrangement ended.” Aurora’s stomach turned. “So you’re saying you’re here to start a new arrangement.” Lucien’s gaze held hers. “I’m here because I don’t like the way this ends for you.” It wasn’t romantic. Not in the way romance novels promised with their soft confessions and perfect timing. It was worse than that—his concern wasn’t tidy. It carried the weight of something deeper: a willingness to step into danger, to stand between her and a threat she hadn’t even named. Aurora’s throat ached. She looked at the doorway behind him, the hallway beyond, the way the light spilled in like an open wound. “If you came to protect me,” she said, “then you should’ve done it months ago.” Lucien’s eyes flicked—once—to her scar. Then back to her face. “And if I tell you I didn’t have the right to,” he said, slow, “will you forgive me for acting like you did?” Aurora’s breath caught. The question was cruel in its gentleness. It demanded an answer she wasn’t ready to give, not because she didn’t care, but because she cared too much. She tried to speak, but no words arrived in time. In the silence, Ptolemy brushed past Aurora’s ankle, slipping between them like a tiny mediator. He stretched, then sat, tail wrapped neatly around his paws. The cat seemed to say: Enough. Talk. Aurora’s eyes stung unexpectedly. She blinked hard, annoyed at the betraying wetness. “What do you want, Lucien?” Lucien didn’t smile. He didn’t posture. He simply looked at her with that mismatched gaze—amber like molten truth, black like a shadow that refused to be erased. “I want you to let me see what you’ve been hiding in those notes,” he said. “And I want you to stop pretending you can fix everything alone.” Aurora’s laugh came out sharp. “That’s your plan? To rearrange my habits?” “It’s my demand,” Lucien corrected. Then, softer: “Because if you keep pushing, you’ll get hurt in a way you can’t outthink.” Aurora turned her head slightly, as if she could avoid the pull of his words by looking away. The flat felt smaller with him in it. The books felt like witnesses. The air felt charged with old arguments and new possibilities. She thought of Eva’s flat, of Ptolemy’s patient eyes, of nights she’d stayed up late writing and rewriting wards that made her feel powerful until the power slipped. She thought of Lucien leaving without the explanation she’d wanted. She thought of his voice that night—steady, controlled, like he was holding himself back from something. And she thought—unwanted, undeniable—about the way he’d looked at her when he’d thought she’d misunderstood him. Aurora’s lips parted. “If I let you in,” she said carefully, each word chosen like a key, “then you tell me everything. No riddles. No clipped threats. No disappearing act.” Lucien’s shoulders eased by the smallest degree. “Yes.” “And if you’re lying,” she continued, because she couldn’t help herself, because her heart still remembered the cost of believing the wrong thing, “I won’t forgive you.” Lucien’s gaze didn’t flinch. “I wouldn’t expect forgiveness on day one.” Aurora let out a slow breath. That was the closest thing to mercy he could offer. Or the closest thing to honesty. She stepped back to give him more space, and Ptolemy darted past her, weaving between her legs as if to lead the way. Aurora watched the cat for half a heartbeat, then looked back at Lucien. The door remained open behind her. Outside, London murmured. Inside, the distance between them shrank without permission. Lucien lifted his cane slightly—an acknowledgment, not a threat. “Show me,” he said. Aurora hesitated, then moved toward the narrow table by the window. Her notes lay there, pages stained with ink, corners dog-eared, diagrams drawn and redrawn until the lines grew confident. She slid the top sheet forward, letting him see the newest warding pattern. Lucien leaned in—not too close, but close enough that Aurora could smell faint cologne under the colder scent of something not entirely human. His heterochromatic eyes traced her handwriting with a kind of ruthless focus. She told herself she didn’t care about how it felt. She lied. “Here,” Lucien murmured, pointing with the edge of his cane handle, never touching the paper. “You’ve rerouted the focus away from the front threshold. Clever. But you’ve also left a channel.” Aurora watched his face, searching it for signs of mockery. There were none. His expression was intent, the way it had been in the past when he’d helped her without claiming credit. Her chest tightened. “A channel for what?” Lucien’s voice dropped. “For the wrong kind of attention.” Aurora stared at the diagram until the ink blurred. “So all of this,” she said, “might have made it worse.” Lucien’s hand hovered over the table, then withdrew. “It made it visible,” he corrected. “You weren’t wrong. You were just early.” That word—early—hit her like the door groan had. It implied time. It implied that he’d noticed sooner than she’d realized. Aurora’s eyes flicked back to his. “Then you could’ve warned me.” “I did,” he said again, and this time it sounded less like correction and more like plea. “You just didn’t know how to hear it.” Aurora’s throat tightened. The hurt she’d kept sharp and clean began to soften at the edges, turning into something aching instead of explosive. She turned away, forced herself to gather a different page, searching for something she could blame instead of the truth forming in her chest. “You’re part of this, aren’t you?” she asked. “You always were.” Lucien didn’t answer immediately. When he did, his voice was quiet enough that Aurora had to lean slightly to hear it. “Yes.” Aurora exhaled through her nose, and the breath shook. “You never told me how deep.” “I couldn’t,” he said. “Why not?” Lucien’s gaze held hers. “Because you would’ve tried to pull the thread no matter how many times it burned you.” Aurora’s heart lurched. It wasn’t fair, the way he described her strength like it was also her weakness. It wasn’t fair that he understood her so well after all the time they’d spent apart. “You think I’m that predictable,” she said, and her voice broke on the end. Lucien’s eyes softened, amber and black together—two shades of something lost and then found. “No,” he said. “I think you’re brave. And I think bravery makes you stupid when it wants to save someone.” The word someone landed like a fingertip on a bruise. Aurora stared at him. Somewhere in her mind, old arguments rearranged themselves into something new. Hurt and attraction had always lived side by side in her, but now they were tangled so tightly she couldn’t tell where one ended and the other began. She swallowed. “Lucien,” she said, and the alias felt like a promise she didn’t know she was making. “If you’re here to help me, help me. But if you came just to feel close again—” “I didn’t come for closeness,” Lucien said, quick, honest. “I came because you matter, Rory.” Her breath caught hard enough to hurt. No one called her Rory like that—like it was both a name and a warning and a tenderness he refused to dress up. Aurora’s hands tightened on the edge of the page. “Then why did you leave?” Lucien stared at her for a long moment. The silence thickened. The flat’s clutter seemed to lean in, listening. At last, he said, “Because I thought you deserved a life where you didn’t have to look over your shoulder.” Aurora’s eyes stung again. She blinked, angry at herself, angry at the past. “I still look over my shoulder,” she whispered. “Just… at shadows I can explain.” Lucien’s cane dipped, ivory handle catching the light. “Let me take one of those shadows,” he said. “For once.” Aurora’s mouth went dry. She could have refused. She could have slammed the door. She could have told him he had no right. Instead, she looked at him—at the precise lines of his suit, at the hidden blade under the cane, at the careful way he stood as if he wanted to be invited deeper but wouldn’t force the step. And she thought: Complicated terms weren’t meant to be permanent. She nodded once, small. “Show me the channel,” she said. “And then tell me what you know. All of it.” Lucien’s shoulders eased, relief flickering across his face and quickly hidden behind control. He nodded back, just as precise. “Good,” he murmured. “We start now.” Aurora slid the page flat beneath his gaze. Her anger didn’t vanish. Her hurt still lived in her bones. But with Lucien standing in her cramped flat—uninvited, unrepentant, and somehow unavoidable—she felt the old attraction return like a match struck in a draft. Outside, the city kept moving. Inside, the door stayed open, and for the first time in a long time, Aurora didn’t rush to close it.
created_at"2026-03-18T10:37:08.017Z" 3/18/2026, 10:37:08 AM
model"openai/gpt-5.4-nano-20260317"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency471
moderation_latency(null)
generation_time19169
tokens_prompt808
tokens_completion5364
native_tokens_prompt753
native_tokens_completion4422
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.0056781
router(null)
provider_responses
0
endpoint_id"0c835f2e-c18d-4e8c-b245-e1e3bd08b97f"
id"resp_0d7b8976b92276f70169ba8054152c8190aa110cdf5d31cb09"
is_byokfalse
latency194
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-1773830228-NFL3WAFLIQ22ZVe0joOK"
upstream_id"resp_0d7b8976b92276f70169ba8054152c8190aa110cdf5d31cb09"
total_cost0.0056781
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
totalTags45
adverbTagCount2
adverbTags
0"she said carefully [carefully]"
1"he said again [again]"
dialogueSentences103
tagDensity0.437
leniency0.874
rawRatio0.044
effectiveRatio0.039
85.01% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount3336
totalAiIsmAdverbs10
found
0
adverb"precisely"
count1
1
adverb"slightly"
count4
2
adverb"perfectly"
count1
3
adverb"suddenly"
count1
4
adverb"carefully"
count1
5
adverb"tightly"
count1
6
adverb"quickly"
count1
highlights
0"precisely"
1"slightly"
2"perfectly"
3"suddenly"
4"carefully"
5"tightly"
6"quickly"
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)
65.53% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount3336
totalAiIsms23
found
0
word"warmth"
count1
1
word"restrained"
count2
2
word"pulse"
count1
3
word"reminder"
count1
4
word"navigating"
count1
5
word"flicked"
count3
6
word"raced"
count1
7
word"could feel"
count3
8
word"stomach"
count1
9
word"perfect"
count1
10
word"carried the weight"
count1
11
word"silence"
count2
12
word"charged"
count1
13
word"traced"
count1
14
word"lurched"
count1
15
word"predictable"
count1
16
word"tenderness"
count1
highlights
0"warmth"
1"restrained"
2"pulse"
3"reminder"
4"navigating"
5"flicked"
6"raced"
7"could feel"
8"stomach"
9"perfect"
10"carried the weight"
11"silence"
12"charged"
13"traced"
14"lurched"
15"predictable"
16"tenderness"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches1
maxInWindow1
found
0
label"let out a breath"
count1
highlights
0"let out a breath"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells1
narrationSentences256
matches
0"was afraid"
92.63% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount3
hedgeCount6
narrationSentences256
filterMatches
0"feel"
1"see"
hedgeMatches
0"seemed to"
1"tried to"
2"began to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences316
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen63
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords3299
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions73
unquotedAttributions1
matches
0"Outside, London murmured."
16.67% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions122
wordCount2562
uniqueNames19
maxNameDensity2.07
worstName"Aurora"
maxWindowNameDensity4.5
worstWindowName"Aurora"
discoveredNames
Carter1
Brick2
Lane2
Ptolemy5
Moreau1
Aurora53
French1
London3
Yu-Fei2
Cheung2
Golden1
Empress1
Lucien41
Marseille1
Dates1
Enough1
Eva2
Rory1
Complicated1
persons
0"Carter"
1"Ptolemy"
2"Moreau"
3"Aurora"
4"Yu-Fei"
5"Cheung"
6"Lucien"
7"Dates"
8"Eva"
9"Rory"
places
0"Brick"
1"Lane"
2"London"
3"Marseille"
globalScore0.466
windowScore0.167
70.89% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences158
glossingSentenceCount5
matches
0"felt like a secret door in her mind"
1"felt like it had been trapped for years"
2"as if evaluating him for threats"
3"felt like a confession he didn’t want t"
4"felt like a promise she didn’t know she"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches1
per1kWords0.303
wordCount3299
matches
0"not too close, but close enough"
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount5
totalSentences316
matches
0"hated that some"
1"hated that her been that he’d"
2"hated that her"
3"implied that he’d"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs136
mean24.26
std15.51
cv0.639
sampleLengths
017
164
240
310
465
522
654
761
811
942
1020
1145
1254
1315
1436
1587
1616
174
188
1959
2015
2114
2232
236
246
2576
2615
2719
2811
2934
3052
3126
3214
3324
3413
3534
3617
3715
3816
396
404
4110
4222
4328
4417
4546
4619
4712
4822
4933
97.04% Passive voice overuse
Target: ≤2% passive sentences
passiveCount6
totalSentences256
matches
0"been shoved"
1"being seen"
2"been trapped"
3"been restrained"
4"been conflicted"
5"were tangled"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount3
totalVerbs508
matches
0"wasn’t already bleeding"
1"was holding"
2"was making"
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount39
semicolonCount6
flaggedSentences32
totalSentences316
ratio0.101
matches
0"A tabby cat—Ptolemy, with his sharp eyes and offended posture—sat in the thin patch of warmth by the radiator, watching the doorway as if he’d been expecting drama."
1"Charcoal suit, slicked-back platinum hair, and that ivory-handled cane angled down at his side—precise, restrained, ready."
2"His accent threaded the words—French, but softened by London’s underbelly."
3"The knot in her throat had been there since the last time she’d seen him—since the complicated terms between them had snapped shut like a latch, final and cruel."
4"The cat made a sound—an irritated chirp—then jumped down from his perch to rub his flank against Aurora’s ankle."
5"He didn’t cross the threshold like a guest; he crossed it like he owned the air."
6"She had built her days around work—part-time deliveries for Yu-Fei Cheung’s Golden Empress, the long shift of navigating streets with boxes in her arms and strangers’ problems in her path."
7"Lucien’s eyes flicked around the flat, catching details she’d never offered him: the scattered notes about wards and street-level magic; the ink-stained papers with diagrams that made her feel half-crazy and half-sane; the small, battered toolkit beside the couch; the way the curtains were always drawn at odd angles as if the room itself needed protection from being seen."
8"The intimacy of the cadence—of the way he spoke as if they were still in the same orbit—made Aurora’s skin prickle."
9"She remembered Marseille, though she’d never been there; the way his presence had felt like a secret door in her mind."
10"He’d looked at her then, too—amber and black eyes layered with something she hadn’t been brave enough to name."
11"Yu-Fei Cheung’s restaurant had its own currents—orders, deliveries, mouths that never stopped talking."
12"Eva’s flat was above a curry house on Brick Lane; even on quiet nights, you could feel the city’s vibration in the floorboards."
13"That single change—so slight Aurora might’ve missed it if she wasn’t already bleeding history—told her she’d come close to the truth."
14"She hated that her first assumption had been that he’d chosen the easiest path—distance—because it was the most tolerable lie."
15"The room seemed to tilt around her—curry-smoke and stale books and the radiator’s hiss suddenly too real."
16"Then he moved—just a slight tilt of his cane toward the narrow table by the window where Aurora kept her notes."
17"She flinched at her name—how it sounded in his mouth after so long."
18"It shifted, almost—like he’d expected resistance."
19"Lucien took another step, and this time Aurora noticed the sound of his shoes—too soft for a man who walked as if the floor was his enemy."
20"It was worse than that—his concern wasn’t tidy."
21"Lucien’s eyes flicked—once—to her scar."
22"He simply looked at her with that mismatched gaze—amber like molten truth, black like a shadow that refused to be erased."
23"She thought of his voice that night—steady, controlled, like he was holding himself back from something."
24"And she thought—unwanted, undeniable—about the way he’d looked at her when he’d thought she’d misunderstood him."
25"Lucien lifted his cane slightly—an acknowledgment, not a threat."
26"Lucien leaned in—not too close, but close enough that Aurora could smell faint cologne under the colder scent of something not entirely human."
27"That word—early—hit her like the door groan had."
28"Lucien’s eyes softened, amber and black together—two shades of something lost and then found."
29"No one called her Rory like that—like it was both a name and a warning and a tenderness he refused to dress up."
30"Instead, she looked at him—at the precise lines of his suit, at the hidden blade under the cane, at the careful way he stood as if he wanted to be invited deeper but wouldn’t force the step."
31"But with Lucien standing in her cramped flat—uninvited, unrepentant, and somehow unavoidable—she felt the old attraction return like a match struck in a draft."
89.72% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2116
adjectiveStacks1
stackExamples
0"small crescent-shaped scar."
adverbCount95
adverbRatio0.04489603024574669
lyAdverbCount19
lyAdverbRatio0.008979206049149339
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences316
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences316
mean10.44
std7.75
cv0.742
sampleLengths
017
130
234
312
428
510
69
716
816
924
1010
1112
1216
1316
1410
1512
162
1729
184
194
2022
218
223
2334
248
2510
2610
2719
2826
2911
3016
3127
3210
335
346
3518
3612
374
387
3921
4030
4117
424
434
4416
454
466
472
4859
497
38.61% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats36
diversityRatio0.18354430379746836
totalSentences316
uniqueOpeners58
90.09% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount6
totalSentences222
matches
0"Then his gaze returned to"
1"Then he moved—just a slight"
2"Instead, she was left with"
3"Then back to her face."
4"Somewhere in her mind, old"
5"Instead, she looked at him—at"
ratio0.027
56.04% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount91
totalSentences222
matches
0"she said, and hated how"
1"Her voice didn’t match the"
2"he corrected, with the calm"
3"His accent threaded the words—French,"
4"It wasn’t just anger."
5"It wasn’t just hurt."
6"It was the way her"
7"She forced her fingers loose"
8"She didn’t notice until she"
9"He didn’t cross the threshold"
10"she said, and it came"
11"His voice lowered, careful, threaded"
12"She had told herself she’d"
13"She had told herself London"
14"She had built her days"
15"She lived above"
16"She made herself useful."
17"She made herself busy."
18"She didn’t move, didn’t give"
19"She remembered Marseille, though she’d"
ratio0.41
23.06% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount194
totalSentences222
matches
0"The door gave a tired"
1"Aurora Carter stood on the"
2"The hallway light spilled in"
3"A tabby cat—Ptolemy, with his"
4"Aurora’s bright blue eyes fixed"
5"Lucien Moreau filled the frame"
6"Charcoal suit, slicked-back platinum hair,"
7"she said, and hated how"
8"Her voice didn’t match the"
9"Lucien looked past her shoulder"
10"he corrected, with the calm"
11"His accent threaded the words—French,"
12"The knot in her throat"
13"It wasn’t just anger."
14"It wasn’t just hurt."
15"It was the way her"
16"She forced her fingers loose"
17"Lucien said, and then, as"
18"Aurora’s grip tightened again on"
19"The cat made a sound—an"
ratio0.874
22.52% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount1
totalSentences222
matches
0"Now she couldn’t pretend."
ratio0.005
100.00% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences101
technicalSentenceCount6
matches
0"The hallway light spilled in slats from above, catching on scattered envelopes and the edge of a stack of books that had been shoved, like always, against the w…"
1"A tabby cat—Ptolemy, with his sharp eyes and offended posture—sat in the thin patch of warmth by the radiator, watching the doorway as if he’d been expecting dr…"
2"Lucien’s eyes flicked around the flat, catching details she’d never offered him: the scattered notes about wards and street-level magic; the ink-stained papers …"
3"Her heart beat harder anyway, as if defiance made it louder."
4"She thought of Eva’s flat, of Ptolemy’s patient eyes, of nights she’d stayed up late writing and rewriting wards that made her feel powerful until the power sli…"
5"Instead, she looked at him—at the precise lines of his suit, at the hidden blade under the cane, at the careful way he stood as if he wanted to be invited deepe…"
47.22% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags45
uselessAdditionCount7
matches
0"she said, quieter"
1"Lucien said, and the word landed heavier than any accusation"
2"she said, and the words came out rougher than she intended"
3"She cut off, because the argument was pointless"
4"he said, slow,"
5"she said carefully, each word chosen like a key,"
6"she said, and the alias felt like a promise she didn’t know she was making"
52.91% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags42
fancyCount10
fancyTags
0"he corrected (correct)"
1"Lucien agreed (agree)"
2"Aurora pressed (press)"
3"Aurora snapped (snap)"
4"Lucien corrected (correct)"
5"she continued (continue)"
6"Lucien murmured (murmur)"
7"he corrected (correct)"
8"she whispered (whisper)"
9"he murmured (murmur)"
dialogueSentences103
tagDensity0.408
leniency0.816
rawRatio0.238
effectiveRatio0.194
78.2645%