NC Bench
Overview
About
Tests
Models
Vendors
Run: 2026-02-17-01KHMR2JWHPFPGXE8XD24AJZF3
Run Details
Model:
GPT-5 Mini
Test:
Bad Writing Habits
Scenario:
Romance: separated couple reunites
Duration:
42.1s
Cost:
$0.010328
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
Messages
Meta
AI
The third deadbolt tossed a little catch of rust under Aurora's thumb and the door swung inward on a sigh of cheap hinges. She expected the usual: a scatter of books across the single armchair, Eva's tea tin balanced on top of an astronomy textbook, Ptolemy's tail flicking from somewhere under the sofa. Instead Lucien stood in the hallway like he'd been waiting to be discovered — composed, ridiculous, wrong in e
very
way for this tired little flat above a curry house. He wore a charcoal suit that looked like it could have
been tailored
to an emperor. The ivory handle of his cane caught the weak light and gleamed; the cane itself rested at his side, the blade hidden with its usual discretion. One hand splayed
lightly
against the doorframe, the other tucked into the pocket of his trousers. His hair was platinum blond, slicked back so it carved his profile into something severe and precise. And his eyes — one amber, one black — found her before she could properly hide the room behind her. Aurora's mouth went dry. The floorboards creaked under her
weight
. Somewhere in the flat a mug protested against the contact and Ptolemy answered with a single, unimpressed mew. Books teetered on the nearest table like a jury. "Lucien," she said, because there was nothing else that fit. Her voice was thinner than she wanted it to be. He smiled with the economy of someone who never wasted words he didn't mean. "Rory." She hadn't let anyone call her that in months. The nickname unhitched a memory — laughter and rain-slicked cobblestones, the sharp taste of whiskey at two a.m., promises that had unwound into silence. She tightened her fingers on the door. "How did you get in?" Her bluntness was a shield. Answers had a way of cutting; she'd learned that when the ex had practiced his own forms of punctuation. Lucien's amber eye softened the way it did when he
was trying
on a contrition that was
very
nearly charming. "You left the bottom deadbolt engaged. I waited on the landing," he said. "I didn't have a key." She had the impression, flickering and impossible, of him sitting for hours on those stairs in a suit, cane across his knees, watching the brass number on Eva's door until she'd emerged. It was absurd and infuriating and somehow infuriating in the shape of grief. "You could have rung." She gestured to the room with the kind of casualness that
was meant
to pass as indifference. "Eva's flat, Lucien. There are three deadbolts on that door and she has a cat. It's not an invitation." "She has you tonight." His voice was low. "Which is its own invitation." Aurora felt heat crawl up her throat. "Don't," she said. It was both a plea and a command. "Don't make jokes." He let the cane tip, hooked the handle against the floor with a soft clack. "I'm not joking. I came because I needed to see you." Three words and the room narrowed. Books smeared into a soft background noise. She was
suddenly
fifteen years old again, leaning into a doorway at home and watching him leave with a bag that smelled faintly of cigarettes. She pushed herself away from the memory and back into the small flat, counting objects like anchors. The crescent-shaped scar on her left wrist — she flexed it and felt the line
throb
like an old bruise. She had never meant to let Lucien trace that scar with his fingers again. "Why?" she asked. The word could have held a dozen different amplifications: Why now? Why at all? Why did he come and expect anything from her? Lucien's heterochromia gave the answer two faces. The black eye was reserved, like a closed book. The amber one was open and wet with something that almost looked like regret. "Because something's happened," he said. "Because people are moving in the wrong direction, and you shouldn't be walking into a crossfire." There it was: the default. Information for protection — the way he'd always arrived with facts like a man bringing a ladder to a fire. It had been the first thing that drew her to him and the last thing that had burned her. He fixed her with a look that demanded she read the map on his expression. "You always make this sound noble," she said. "You never sound like you just want to keep your hands clean." He made a sound that might have been humor, or might have been the beginning of an apology. "I don't pretend to be clean," he said. "I pretend to be useful." Ptolemy padded out from behind the armchair and wound himself against Aurora's calves, a solid, real presence that kept her anchored. The cat's whiskers twitched. Lucien bent, just enough, and his fingers hovered over the tabby's back before withdrawing with polite restraint. It was a small refusal and it made her pulse quicken for reasons she despised. "Sit," she said before she could stop herself. It was an absurd offer. The armchair was already occupied by a pile of annotated notes and an open, cracked spine. She should have been on the deli
very
van right now, return shift waiting, a crate of spring rolls cooling on the backseat. But the night had thinned into something else; her heartbeat had an impatient rhythm that matched the tiny scar on her wrist. Lucien accepted the invitation the way men accepted e
very
thing that traversed the line between courtesy and ownership — with a practiced ease. He seated himself on the edge of the armchair, taking up the small space like he belonged. He placed the cane across his knees, ivory
gleaming
like a bone-white punctuation mark. "The thing is," he said, and when he started a story she always felt like she
was watching
gears engage. "There have been signs — not of Evan, not of whatever you think he was capable of. Something older, older than Evan and meaner. Shadows moving in a pattern. There's chatter in places I don't like to go. Avaros is restless." He said the name like a bad perfume, like something he preferred to smell only when necessary. "And people I've left owing favors are starting to collect." Avaros. The word in Riverside law school had been a joke on a t-shirt once. To Lucien it was a ledger. Aurora's first thought, surprising herself, was not fear. It was simply that his mouth had that same small, habitual tilt to the right when he lied by omission. She had lived with omissions in the most intimate forms. Evan had been one; Lucien's silences were another. "You tell me all of this now, after you've been gone," she said. "After you left without so much as a forwarding address. After you let me—" She stopped herself from listing the ways he had been absent. The flat hummed with those things unsaid. "After you let me think I was alone." Lucien's face shifted minutely. If he had
been trained
in the language of apologetic gestures he would have listed them. "I left because I thought I could make a wall," he said. "Because there was a cost I couldn't ask you to pay. Because—" He cut off. For the first time, his practiced reserve gave way to something raw that
flickered
under his skin. "Because I thought distance would keep you safe." It was an answer and a bruise at once. Aurora's
jaw clenched
. "Distance didn't work." "No." His amber eye was a comma between two apologies. "But I'm here now. I can get you out, if you want. I can move you somewhere with fewer staircases and better locks. I can make the noise stop." She laughed, and the sound surprised them both. It was small and sharp. "You're offering to be the man who leaves and then moves me somewhere else to keep me safe. That sounds horribly familiar." "Because it's honest," he said. "Because what I can do is honest and what I was before was—" He glanced at his cane, at the faint seam between his human skin and the cold shadow of his heritage. "—less honest." She felt the old tug: anger rolled through the muscle beneath her skin, but there was also the swell of something that had been there from the first time he'd drawn her in with an offer of midnight coffee and the promise of secrets. He had a way of making the world
feel
purposeful. He also had a way of making her
feel
used. "Do you know what it does to a person," she said quietly, "to be moved like an item? To have safety be the price of losing your home? You sound like a solution in a suit, Lucien. Solutions cost me e
very
time." He met those words without flinching. "Yes. I know
precisely
." He did not say 'I was wrong' with those words; he let the knowledge be heavier than a confession. "You have e
very
right to hate me. I don't expect forgiveness." A silence settled that had the shape of a held breath. Out on Brick Lane someone laughed at nothing and the curry shop downstairs let a lid fall with an ordinary clatter. Ptolemy decided the domestic drama was beneath him and sauntered back for a nap. Rory's hand touched the crescent scar on her wrist as if it were a map. She'd cut herself open falling from a tree when she was seven, when her father's hands had been busy in the courtroom and her mother's attention thinned into tiredness. The scar had been constant proof that some things didn't knit
completely
. Lucien shifted. The armchair protested under him. He reached out in a motion that was both a question and a reclaiming. His fingers hovered near her wrist, the ivory cane tapping
softly
against the floor. Aurora found her breath hitch against the memory of other touches — not all of them gentle. "Don't," she said, but softer now. It was not the iron-edged warning she had used earlier. It carried ballast, the
weight
of nights that had not gone well and of something like desire that refused to die. He didn't cross the line. He let his hand fall back into his lap as if that small withdrawal were an act of respect. "I didn't come to take anything from you tonight, Rory," he said. "I came to tell you that there are things moving and I can make them move somewhere else. I came because I thought you should know." "Info and then gone," she said. "That's the pattern." "Then stay angry with me," he said. "But hear me. I will not leave you again if you ask me not to." Her laughter was a different shape this time, a brittle sound that had to do with incredulity and old affection. "You say 'ask me not to' like it's a civil negotiation." He gave her one of those half-sad smiles that made something tilt in the room. "Because part of me
wants that negotiation
, Rory. Part of me wants to be anchored. But I have a past that makes anchors behave badly. I lie to protect, and the lies break more than the things I mean to protect." Her chest felt too tight. Up close his amber eye was warmer than she'd predicted; it held no smugness, only the old, irascible, stubborn care that had once promised to stay and then packed a bag. The hurt was still raw; so, too, was the pull. "Why now?" she asked finally. "Why not before? Why leave when it was me you were supposed to protect?" "Because before I thought I could fix it alone. Because I convinced myself I was doing the right thing. Because I am a coward who dresses himself in good intentions." His voice went to a place where humor couldn't rescue him. "And because I want to be selfish tonight. I want you to know I care. That's a terrible reason and a small one, but it's true." Anger and something like pity wrestled in her belly. She wanted to push him out the door and lock all three deadbolts behind him. She wanted to keep him there and ask him e
very
thing and nothing. She wanted him to tell her the whole ledger of Avaros's designs and his part in them and why his cane hid a blade and why his eyes
were that split
of color. She wanted — the word sat too loud. He watched her with a patience that suggested a long accumulation of practice. "Say something," he said eventually. "Say you want me to stay so I can stay. Say you want to leave and tell me to go help you. Say nothing and I'll go. But tell me what you need." For a beat she considered the safety of silence, the obvious, comfortable loneliness. Then she
let out a breath
and the air between them cracked like a thin ice on a river. "You can stay tonight," she said. It was both a truce and a test. "But only tonight. And you make tea for two with leaves Eva calls 'posh' and you close the second deadbolt when you leave." Lucien's amber eye split that small grin. "I can do the tea," he said. "Though I'm not sure 'posh' leaf will do against your scathing commentary. And the deadbolt shall be closed. If I leave, I'll lock it myself." She wanted to tell him that locking a door wasn't what reconciled a heart. She wanted to tell him that she wasn't sure if anything could. Instead she stepped aside and let him into the living room, into the clutter of her borrowed life. As the door swung shut and the three deadbolts gathered themselves into place with clicks that sounded like punctuation, Aurora stood with the crescent scar warm under her sleeve. Lucien set his cane against the bookshelf, careful not to disturb a stack of curling maps, then looked at her with an expression that was half apology and half invitation. Outside, Brick Lane kept moving like a separate world. Inside the flat, among the books and the notes and the small, blinking lamp, two people who had once been something
tried to
find where the line between saving and taking might be redrawn. The cat chose a lap, the tea kettle sang on the stove, and the night spread its small, dark map around them. She found herself answering a question neither of them had spoken out loud. "Stay," she said. "For tonight." Lucien's amber eye brightened. He crossed the small room to stand close enough that she could see the minute tremor at the edge of his jaw. Without surprise, she felt the old, immediate pull of proximity, the way being near him made the world narrow to the space between his suit and her sleeve. He didn't kiss her then. He didn't need to. Instead he reached out and laid his fingers over the crescent on her wrist, not pressing, just touching, like testing a world for its edges. It was a small, careful contact, and for the first time since he'd appeared in the doorway, she let herself believe that maybe some things could be held
lightly
without breaking. Outside the deadbolts settled with patient clicks, a small chorus that promised separation from whatever prowled the darker rooms beyond. Inside, the kettle began its steady protest, and the flat, with its stacks of books and Eva's cat and all the precarious, imperfect life in it, became a place where two people might, for one night, be less alone.
created_at
"2026-02-17T02:50:49.487908+00:00"
2/17/2026, 2:50:49 AM
model
"openai/gpt-5-mini-2025-08-07"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
8544
moderation_latency
(null)
generation_time
41173
tokens_prompt
808
tokens_completion
4708
native_tokens_prompt
753
native_tokens_completion
5070
native_tokens_completion_images
0
native_tokens_reasoning
1856
native_tokens_cached
0
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"completed"
usage
0.01032825
router
(null)
provider_responses
0
id
"resp_02c5df9144620ab0016993d75f30ec81908e7319e665139c78"
status
200
is_byok
false
latency
118
endpoint_id
"c4f66d01-20b0-4c27-a225-438ea22fda43"
provider_name
"OpenAI"
model_permaslug
"openai/gpt-5-mini-2025-08-07"
api_type
"completions"
id
"gen-1771296607-Ce8DTLJcyzSyiSIBReFD"
upstream_id
"resp_02c5df9144620ab0016993d75f30ec81908e7319e665139c78"
total_cost
0.01032825
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
Evaluation details
Result
Evaluator
Details
Meta Data
89.8551%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
23
adverbTagCount
3
adverbTags
0
"he said, and when he started a story she always felt like she was watching gears engage [always like]"
1
"she said quietly [quietly]"
2
"he said eventually [eventually]"
73.2109%
AI-ism adverb frequency
Target: <1% AI-ism adverbs (57 tracked)
wordCount
2613
totalAiIsmAdverbs
7
found
0
adverb
"completely"
count
1
1
adverb
"lightly"
count
2
2
adverb
"precisely"
count
1
3
adverb
"softly"
count
1
4
adverb
"suddenly"
count
1
5
adverb
"very"
count
1
highlights
0
"completely"
1
"lightly"
2
"precisely"
3
"softly"
4
"suddenly"
5
"very"
100.0000%
AI-ism character names
Target: 0 AI-default names (17 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
100.0000%
AI-ism location names
Target: 0 AI-default location names (33 tracked, −20% each)
codexExemptions
(empty)
found
(empty)
77.0379%
AI-ism word frequency
Target: <1% AI-ism words (140 tracked)
wordCount
2613
totalAiIsms
6
found
0
word
"throb"
count
1
1
word
"flickered"
count
1
2
word
"gleaming"
count
1
3
word
"jaw clenched"
count
1
4
word
"weight"
count
2
highlights
0
"throb"
1
"flickered"
2
"gleaming"
3
"jaw clenched"
4
"weight"
100.0000%
Cliche density
Target: ≤1 cliche(s) per 800-word window
totalCliches
2
maxInWindow
1
found
0
label
"let out a breath"
count
1
1
label
"jaw/fists clenched"
count
1
highlights
0
"let out a breath"
1
"jaw clenched"
100.0000%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
151
matches
(empty)
100.0000%
Filter word density
Target: ≤12% sentences with filter/hedge words
filterCount
2
hedgeCount
1
narrationSentences
151
filterMatches
0
"feel"
hedgeMatches
0
"tried to"
100.0000%
Overuse of "that" (subordinate clause padding)
Target: ≤10% sentences with "that" clauses
thatCount
2
totalSentences
179
matches
0
"wants that negotiation"
1
"were that split"
91.8472%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
59
mean
44.37
std
20.92
cv
0.471
sampleLengths
0
82
1
95
2
37
3
20
4
15
5
40
6
29
7
38
8
45
9
40
10
13
11
21
12
26
13
89
14
26
15
51
16
59
17
20
18
31
19
57
20
73
21
53
22
88
23
21
24
46
25
53
26
72
27
15
28
39
29
35
30
40
31
64
32
42
33
40
34
46
35
56
36
52
37
37
38
62
39
9
40
22
41
31
42
56
43
46
44
19
45
67
46
77
47
51
48
32
49
37
100.0000%
Passive voice overuse
Target: ≤5% passive sentences
passiveCount
3
totalSentences
151
matches
0
"been tailored"
1
"was meant"
2
"been trained"
100.0000%
Past progressive (was/were + -ing) overuse
Target: ≤10% past progressive verbs
pastProgressiveCount
2
totalVerbs
329
matches
0
"was trying"
1
"was watching"
88.0000%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1967
adjectiveStacks
2
stackExamples
0
"same small, habitual tilt"
1
"old, irascible, stubborn care"
adverbCount
60
adverbRatio
0.030503304524656837
lyAdverbCount
16
lyAdverbRatio
0.00813421453990849
100.0000%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
179
echoCount
0
echoWords
(empty)
100.0000%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
179
mean
14.63
std
9.76
cv
0.668
sampleLengths
0
23
1
30
2
29
3
16
4
26
5
16
6
17
7
20
8
4
9
6
10
18
11
9
12
10
13
10
14
14
15
1
16
9
17
24
18
7
19
10
20
19
21
20
22
13
23
5
24
32
25
13
26
21
27
19
28
8
29
5
30
7
31
3
32
8
33
3
34
15
35
11
36
6
37
7
38
25
39
17
40
20
41
14
42
3
43
11
44
3
45
9
46
7
47
9
48
14
49
5
39.6648%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
19
diversityRatio
0.3016759776536313
totalSentences
179
uniqueOpeners
54
100.0000%
Dialogue tag variety (said vs. fancy)
Target: ≤30% fancy dialogue tags
totalTags
23
fancyCount
5
fancyTags
0
"she said, because there was nothing else that fit (say, be)"
1
"she said before she could stop herself (say stop)"
2
"he said, and when he started a story she always felt like she was watching gears engage (say, start always feel like watch engage)"
3
"she said quietly (say quietly)"
4
"he said eventually (say eventually)"
91.7421%