NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-09-23-01M36NK36YAPR67GMEX91DJGN7
Run Details
Model:
GPT-6 Luna (Reasoning, Medium)
Test:
Bad Writing Habits
Scenario:
Horror: alone in an eerie place at night
Duration:
30.2s
Cost:
$0.001193
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
100.00%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
50.09%
AI-ism word frequency
(details)
100.00%
Cliché density
(details)
100.00%
Emotion telling (show vs. tell)
(details)
100.00%
Filter word density
(details)
100.00%
Gibberish response detection
(details)
100.00%
Markdown formatting overuse
(details)
100.00%
Missing dialogue indicators (quotation marks)
(details)
87.72%
Name drop frequency
(details)
91.86%
Narrator intent-glossing
(details)
100.00%
"Not X but Y" pattern overuse
(details)
100.00%
Overuse of "that" (subordinate clause padding)
(details)
100.00%
Paragraph length variance
(details)
100.00%
Passive voice overuse
(details)
100.00%
Past progressive (was/were + -ing) overuse
(details)
100.00%
Em-dash & semicolon overuse
(details)
81.70%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
40.14%
Sentence opener variety
(details)
100.00%
Adverb-first sentence starts
(details)
96.29%
Pronoun-first sentence starts
(details)
75.98%
Subject-first sentence starts
(details)
100.00%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
7.14%
Dialogue tag variety (said vs. fancy)
(details)
91.0308%
Overall
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> <location id="861" name="The Fae Grove" aliases="Isolde's grove, Richmond grove, the Grove" realm="Earth (Fae-touched)"> <parkLocation>Richmond Park</parkLocation> <standingStones>ancient oak standing stones mark the boundary</standingStones> <timeBehavior>time moves differently — an hour inside can be minutes or days outside</timeBehavior> <flora>wildflowers bloom year-round</flora> <description>A hidden clearing that exists in a pocket between Earth and the Fae realm.</description> </location> <item id="2001" name="Heartstone Pendant" aliases="the pendant, Heartstone" type="Artifact" origin="Dymas"> <gemstoneColor>deep crimson</gemstoneColor> <chainMaterial>silver chain</chainMaterial> <size>roughly the size of a thumbnail</size> <behavior>pulses faintly with warmth when near a Hel portal</behavior> <glow>faint inner glow</glow> <description>Given to Aurora by an unknown benefactor.</description> </item> </codex> Write a fully fleshed out scene of at least 1000 words in the horror genre. A character is alone in a strange, isolated place at night. They came here for a reason, but something feels off from the moment they arrive. The wrongness builds slowly — sounds that shouldn't be there, things that move at the edge of vision, a growing certainty that they are not alone. Build tension through restraint, not through gore. Use the codex entries above as your world reference for the character and setting. Only include the prose of the scene without any markdown or commentary.
Model response
Messages
Meta
AI
The stones were easier to
find than Rory expected.
She had spent half an
hour crossing Richmond Park in the dark, keeping to the narrow paths and checking the pendant beneath her coat whenever the cold tightened around it.
The moon showed itself only
in scraps between clouds.
Once, she had heard a
fox bark somewhere behind her. After that, the park had gone quiet.
Then the Heartstone warmed against
her skin. Not much.
Just enough to make her
stop and press two fingers to the silver chain.
The crimson gem lay flat
beneath her shirt, thumbnail-sized and faintly lit from within.
It had been doing this
for the past ten minutes, pulsing in a slow, steady rhythm. Like a second heartbeat. Ahead, ancient oaks stood in a rough ring, their trunks black in the moonlight. Between them, pale stones rose from the grass. Rory checked her phone. No signal. The time read 11:43. “Brilliant,” she whispered. Her breath clouded. “Exactly where I wanted to be.”
She had come because of
the pendant.
Because it had warmed once
before, near the river, and again on the edge of the park, then grown hot enough to wake her from a nap above Silas’ bar.
Because she had received it
from someone she couldn’t name, and the one person who might have known what it meant had told her to watch for a door. A door, she had assumed, would look like a door.
The clearing beyond the stones
was not what she’d expected, either.
It was too open, though
the trees crowded close around it.
The grass grew in a
soft, unbroken carpet, scattered with wildflowers. Blue, white, yellow. Rory couldn’t identify them all, but she knew enough about the season to know none of them should be blooming now. She stopped at the boundary.
The stones were taller than
they had looked from the path.
Their surfaces carried no carvings
she could see, only streaks of lichen, silvered by the moon. Between two of them, the air
seemed to
hold a faint shimmer, like heat above a road. The pendant gave a small, warm
pulse
. Rory stepped through. Nothing happened.
She let out a breath
she hadn’t realized she
was holding
and moved into the clearing. The grass bent under her shoes, damp with dew. Somewhere overhead, a branch creaked. She turned toward the sound. The oaks stood motionless. That wasn’t right. The wind had been tugging at her hair all the way across the park. Here, the leaves barely moved. Rory pulled her phone from her pocket and woke the screen. Still no signal. 11:43. She frowned.
She’d crossed the stones more
than a minute ago. The display should have changed. A small sound came from her left: the dry click of a twig breaking. Rory turned. The edge of the clearing was empty. The trees closed ranks, their trunks overlapping in the dark.
She took a few steps
toward them, then stopped herself. “Hello?”
Her voice went out into
the clearing and didn’t come back. There was no
echo
. No answering rustle. The
silence
pressed close enough that she could hear her own coat shift when she breathed. She turned to leave. The stones were farther away than they should have been. Rory stared across the clearing.
It was only a few
dozen paces, but the boundary
seemed to
have receded into the trees.
She could still see the
pale shapes, though. That was something. She started walking toward them, keeping her eyes fixed on the gap she’d entered through. The flowers brushed her ankles. One of them, a white cluster shaped like tiny bells, shivered as she passed. She kept walking. Behind her, something walked too. Not
footsteps
, exactly. A soft, deliberate pressure in the grass, matching her pace a beat late. When she stopped, it stopped. Rory held still. The night held still with her. She counted to five. Then ten. The pendant warmed against her chest.
Its glow showed through the
thin fabric of her shirt, a dull red stain beneath her coat. She took a step. A second step followed behind her. Rory spun. Nothing. Empty grass, black trees, and the spill of moonlight over the flowers. Her
pulse
went hard in her throat. She looked back at the stones. They were no closer. For one sharp second she considered running.
Then she made herself slow
down. Panic didn’t solve anything. Panic just made her miss details. She took the phone out again. The time read 11:43. Her
stomach
tightened. “Fine,” she said, though no one had asked. “Fine.” She pointed the phone toward the stones and tapped the camera. The screen showed a black, grainy clearing. The stones stood in the distance. Between them, the shimmer was brighter than it
appeared to
her eyes, a vertical rippling in the dark. Something moved behind her in the image. Rory lowered the phone and spun around. The clearing was empty. She raised the phone again. The screen showed only grass and trees. Her thumb hovered over the shutter. She could photograph the stones. She could
prove that the
shimmer was there, that the pendant
was reacting
to something real, that she hadn’t walked into the park on a bad night and imagined a door where there wasn’t one. A shape crossed the screen behind her. This time she didn’t turn. The figure was too tall to be human. It bent beneath the canopy, though Rory couldn’t make out a face. The phone’s grain broke its outline into shifting squares. She saw long arms hanging close to the grass. She saw the suggestion of a head, tilted
as if listening
. Then it
was gone
. Rory lowered the phone. Her mouth had gone dry. In front of her, the flowers swayed. There was no wind. She backed away, keeping her gaze fixed on the trees. The stones had vanished. All she could see beyond the flowers was a close wall of trunks. The pendant gave another
pulse
, stronger than before. Warmth spread beneath her shirt, spreading outward from the gem. The faint red glow brightened until it showed the shape of the chain against her skin. A door, she thought. The word came with a certainty she didn’t trust. A door could be anything here. A gap in the air. A change in the dark. A place where the world had worn thin. The shimmer had
been between
the stones. She had to get back to it. Rory started toward where she thought the boundary should be, using the trees as landmarks. She counted her steps. At thirty, she reached a cluster of flowers she recognized: the white bells, a single blue bloom with a black centre. At forty, the ground dipped. At fifty, she saw the same white bells ahead of her. She stopped. The cluster behind her was still there, too. “Don’t,” she told herself. “Don’t make this worse.” A
whisper
threaded through the oaks. It was too faint to hear as a word. It might have been the wind. It might have been leaves rubbing together. But it came from close behind her left ear, warm as breath. Rory turned. For an instant, the trees between her and the clearing stood straight and slender, their bark pale as bone.
Then the darkness settled back
over them, and the
whisper
came again from farther off. This time it
sounded like her name
. Rory’s hands clenched. She hadn’t told anyone where she
was going
. Not Silas, not Eva. She had left her phone’s location sharing on, but there was no signal here, and she’d made sure of that before she left. The voice could not know her name. She began moving again, faster now. The pendant beat against her ribs with every step. The flowers brushed her legs, wetting her jeans. A thorn caught the cuff of her coat, and she tugged free without looking down. Something rustled through the grass to her right. She kept going. The rustling followed, careful and even. To her left now. A few paces behind. Rory forced herself not to run. She watched the ground, looking for a break in the flowers, a track, anything that suggested the way out. The clearing
seemed larger than before, but perhaps the darkness was doing it
.
Perhaps she had turned herself
around.
Then she saw the standing
stones. They rose ahead of her, pale and
familiar
. The gap between them
shimmered
faintly. Rory almost laughed with relief. The pendant flared warm in her hand as she pulled it from beneath her shirt. Red light filled the space between her fingers. The gem
seemed to
pulse
faster, answering the bright, narrow shimmer in the air. She crossed the last few yards. The
whisper
behind her stopped. Rory glanced over her shoulder. A figure stood among the flowers at the far edge of the clearing. Tall, narrow, its head bowed beneath the trees. She couldn’t see a face, only the darkness where one should have been. The flowers around it didn’t move. She faced the stones again. The shimmer
quivered
between them. The gap looked no wider than a person. It was the only way out she had. Rory stepped through. The
warmth
vanished from the pendant. She stumbled onto the park path, catching herself against a tree. The cold wind struck her face. Leaves rattled overhead.
Somewhere in the distance, a
fox barked. She looked back. The stones stood beyond the oaks, exactly as she had found them. No clearing. No flowers. No shimmer. Only the dark park beyond. Rory checked her phone. 12:07. She stared at the time, trying to make the numbers mean what they said. She had been inside for more than twenty minutes. Or she had walked for half an hour before reaching the stones. Either was possible. Neither explained the figure. She tucked the pendant away and started toward the park gate. Her hands shook, but her steps stayed steady. She could think about it when she was somewhere with lights, walls, and other people. A soft pressure sounded in the grass behind her. One step. Rory didn’t turn around. She walked faster. The
footfall
came again, a beat late, keeping pace.
created_at
"2026-09-23T08:19:53.189Z"
9/23/2026, 8:19:53 AM
model
"openai/gpt-6-luna-20260922"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
3340
moderation_latency
(null)
generation_time
30219
tokens_prompt
792
tokens_completion
2644
native_tokens_prompt
742
native_tokens_completion
2237
native_tokens_completion_images
0
native_tokens_reasoning
109
native_tokens_cached
0
num_media_prompt
(null)
num_input_audio_prompt
(null)
num_media_completion
0
num_search_results
(null)
num_fetches
(null)
web_search_engine
(null)
origin
"https://ncbench.com/"
is_byok
false
finish_reason
"stop"
native_finish_reason
"completed"
service_tier
"default"
usage
0.0011927
router
(null)
user_agent
"langchainjs-openai/1.0.0 ((node/v24.20.0; linux; x64))"
http_referer
(null)
request_id
"req-1790151593-MsNxlOBRNoz1YYdhbOMH"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1790151593-207Gu3iUSx7dDDDMGKot"
upstream_id
"resp_067f97589f6b92bc016ab38ba95b1487d18ecfeaa6fa543314"
provider_responses
0
endpoint_id
"05e94e02-b9c2-4bbb-ba55-4082ee9ad687"
id
"resp_067f97589f6b92bc016ab38ba95b1487d18ecfeaa6fa543314"
is_byok
false
latency
561
model_permaslug
"openai/gpt-6-luna-20260922"
provider_name
"OpenAI"
status
200
total_cost
0.0011927
cache_discount
(null)
upstream_inference_cost
0
provider_name
"OpenAI"
response_cache_source_id
(null)
data_region
"global"
workspace_id
"97e315e5-d303-487d-83c1-83180e8a13d4"
Evaluation details
Result
Evaluator
Details
Meta Data
100.00%
Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags
4
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
7
tagDensity
0.571
leniency
1
rawRatio
0
effectiveRatio
0
100.00%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
1703
totalAiIsmAdverbs
0
found
(empty)
highlights
(empty)
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)
50.09%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
1703
totalAiIsms
17
found
0
word
"pulse"
count
4
1
word
"echo"
count
1
2
word
"silence"
count
1
3
word
"footsteps"
count
1
4
word
"stomach"
count
1
5
word
"warmth"
count
2
6
word
"whisper"
count
3
7
word
"familiar"
count
1
8
word
"shimmered"
count
1
9
word
"quivered"
count
1
10
word
"footfall"
count
1
highlights
0
"pulse"
1
"echo"
2
"silence"
3
"footsteps"
4
"stomach"
5
"warmth"
6
"whisper"
7
"familiar"
8
"shimmered"
9
"quivered"
10
"footfall"
100.00%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
1
maxInWindow
1
found
0
label
"let out a breath"
count
1
highlights
0
"let out a breath"
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
1
narrationSentences
211
matches
0
"d with relief"
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
6
narrationSentences
211
filterMatches
(empty)
hedgeMatches
0
"seemed to"
1
"appeared to"
2
"started to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
215
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
35
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
1703
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
5
unquotedAttributions
0
matches
(empty)
87.72%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
26
wordCount
1686
uniqueNames
6
maxNameDensity
1.25
worstName
"Rory"
maxWindowNameDensity
2
worstWindowName
"Rory"
discoveredNames
Rory
21
Richmond
1
Park
1
Heartstone
1
Silas
1
Eva
1
persons
0
"Rory"
1
"Heartstone"
2
"Silas"
3
"Eva"
places
0
"Richmond"
1
"Park"
globalScore
0.877
windowScore
1
91.86%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
129
glossingSentenceCount
3
matches
0
"as if listening"
1
"sounded like her name"
2
"seemed larger than before, but perhaps the darkness was doing it"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
1703
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
1
totalSentences
215
matches
0
"prove that the"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
103
mean
16.53
std
15.74
cv
0.952
sampleLengths
0
9
1
56
2
7
3
50
4
22
5
10
6
12
7
66
8
10
9
57
10
5
11
44
12
7
13
3
14
2
15
30
16
9
17
22
18
15
19
16
20
14
21
19
22
11
23
11
24
23
25
4
26
10
27
48
28
19
29
3
30
5
31
21
32
3
33
6
34
6
35
23
36
4
37
6
38
2
39
20
40
10
41
23
42
10
43
3
44
9
45
42
46
7
47
7
48
4
49
12
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
2
totalSentences
211
matches
0
"was gone"
1
"been between"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
4
totalVerbs
293
matches
0
"was holding"
1
"was reacting"
2
"was going"
3
"was doing"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
215
ratio
0
matches
(empty)
81.70%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
197
adjectiveStacks
0
stackExamples
(empty)
adverbCount
12
adverbRatio
0.06091370558375635
lyAdverbCount
2
lyAdverbRatio
0.01015228426395939
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
215
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
215
mean
7.92
std
5.47
cv
0.691
sampleLengths
0
9
1
30
2
9
3
10
4
7
5
7
6
2
7
14
8
14
9
16
10
4
11
14
12
8
13
4
14
2
15
4
16
3
17
3
18
6
19
7
20
30
21
29
22
10
23
11
24
11
25
11
26
3
27
21
28
5
29
11
30
16
31
17
32
7
33
3
34
2
35
16
36
9
37
5
38
5
39
4
40
3
41
14
42
5
43
11
44
3
45
1
46
2
47
9
48
5
49
14
40.14%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
21
diversityRatio
0.24882629107981222
totalSentences
213
uniqueOpeners
53
100.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
11
totalSentences
194
matches
0
"Once, she had heard a"
1
"Then the Heartstone warmed against"
2
"Just enough to make her"
3
"Somewhere overhead, a branch creaked."
4
"Then she made herself slow"
5
"Then it was gone."
6
"Then the darkness settled back"
7
"Perhaps she had turned herself"
8
"Then she saw the standing"
9
"Somewhere in the distance, a"
10
"Only the dark park beyond."
ratio
0.057
96.29%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
60
totalSentences
194
matches
0
"She had spent half an"
1
"It had been doing this"
2
"Her breath clouded."
3
"She had come because of"
4
"It was too open, though"
5
"She stopped at the boundary."
6
"Their surfaces carried no carvings"
7
"She let out a breath"
8
"She turned toward the sound."
9
"She’d crossed the stones more"
10
"She took a few steps"
11
"Her voice went out into"
12
"She turned to leave."
13
"It was only a few"
14
"She could still see the"
15
"She started walking toward them,"
16
"She kept walking."
17
"She counted to five."
18
"Its glow showed through the"
19
"She took a step."
ratio
0.309
75.98%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
149
totalSentences
194
matches
0
"The stones were easier to"
1
"She had spent half an"
2
"The moon showed itself only"
3
"The crimson gem lay flat"
4
"It had been doing this"
5
"Rory checked her phone."
6
"The time read 11:43."
7
"Her breath clouded."
8
"She had come because of"
9
"A door, she had assumed,"
10
"The clearing beyond the stones"
11
"It was too open, though"
12
"The grass grew in a"
13
"Rory couldn’t identify them all,"
14
"She stopped at the boundary."
15
"The stones were taller than"
16
"Their surfaces carried no carvings"
17
"The pendant gave a small,"
18
"Rory stepped through."
19
"She let out a breath"
ratio
0.768
100.00%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
4
totalSentences
194
matches
0
"Because it had warmed once"
1
"Because she had received it"
2
"To her left now."
3
"Either was possible."
ratio
0.021
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
59
technicalSentenceCount
0
matches
(empty)
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
4
uselessAdditionCount
0
matches
(empty)
7.14%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
3
fancyCount
1
fancyTags
0
"she whispered (whisper)"
dialogueSentences
7
tagDensity
0.429
leniency
0.857
rawRatio
0.333
effectiveRatio
0.286
91.0308%