NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-09-23-01M37HNT0QR4HPHMQ70QPA10TK
Run Details
Model:
GPT-6 Sol (Reasoning, Medium)
Test:
Bad Writing Habits
Scenario:
Fantasy: entering an ancient ruin
Duration:
57.6s
Cost:
$0.030356
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)
86.84%
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)
38.75%
Name drop frequency
(details)
100.00%
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)
94.00%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
57.59%
Sentence opener variety
(details)
19.49%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
74.04%
Subject-first sentence starts
(details)
29.24%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
91.67%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
89.7203%
Overall
Model input
System
You are an expert and award-winning novel writer in the dark Fantasy genre. Your readers are hooked on your stories and can't wait to read the book you have in store. <important> - MUST: Start each chapter in medias res (in the middle of action). AVOID talking about the weather, time of day, the position of the sun, or other boring stuff. - The instructions/summary are just a that, a summary. Feel free to add details, stretch sections and add interesting transitions/descriptions/fillers. - When called for it, have fast-paced action, but otherwise take things slow. This is an experience, and not for people with short attention spans. Enjoy the wine, not slurp Red Bull. - Add descriptions when transitioning places/times/etc, or when coming by new places (e.g. a corner shop, a cafe, etc.). But remember: NOT at the start or end of a chapter. - MUST: AVOID ending in internal monologue, reminiscing or waiting for the next day. A good chapter end is when we're ending right when shit hits the fan. We want to have the reader be excited for what comes next. So no reminiscing, contemplating or summarizing the day. It's popcorn time! </important>
User/Human
Take into account the following glossary of characters/locations/items/lore... when writing your response: <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="4418" name="Nyx" aliases="Nyx, the Shadow, Nightwhisper" pronouns="they/them" species="Shade" storyRole="Wild Card"> <eyeColor>faintly glowing violet</eyeColor> <height>approximately 6'2" in solid form</height> <age>ageless</age> <form>humanoid silhouette of living shadow, can shift between solid and incorporeal</form> <voice>sounds like a whisper carried on the wind</voice> <description>A being of living shadow, existing between the mortal plane and the spaces between realms.</description> <backstory>Nyx was once a human sorcerer named Aldric who became trapped between realms during a failed summoning ritual in 1643. They now exist as a Shade, bound to the mortal plane but able to slip between shadows.</backstory> </character> <character id="4424" name="Isolde Varga" aliases="Isolde, the Seer" pronouns="she/her" species="Half-Fae" storyRole="Oracle"> <eyeColor>pale lavender</eyeColor> <hair>silver, reaching her waist</hair> <height>5'5"</height> <age>300 years old</age> <appearance>ethereal, ageless</appearance> <speech>speaks in riddles</speech> <footprints>leaves no footprints when she walks</footprints> <compulsion>cannot lie (Fae compulsion) but can mislead</compulsion> <description>A Half-Fae seer exiled from the Fae Courts for sharing visions with mortals.</description> <backstory>She now lives in a hidden grove in Richmond Park, offering cryptic prophecies to those who seek her out.</backstory> </character> <location id="853" name="Dymas (Gluttony)" aliases="Dymas, gluttony, Dymasian" realm="Hel" sin="Gluttony"> <ruler>Prince Belphegor</ruler> <skyColor>warm amber</skyColor> <description>A place of excess and indulgence. Sprawling vineyards, orchards, and gardens provide exotic ingredients for master chefs — often helbound souls contracted from Earth. Grand feasts and culinary competitions are common.</description> </location> <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> <item id="2006" name="Fae-Forged Blade" aliases="the Fae blade, Isolde's gift" type="Weapon" origin="The Fae Courts"> <material>moonsilver</material> <shape>slender, leaf-shaped dagger</shape> <temperature>always cold to the touch</temperature> <glow>faintly luminescent in moonlight</glow> <power>can cut through magical wards; particularly effective against demons</power> <givenTo>given to Aurora by Isolde as a gift</givenTo> <description>A weapon of the Fae Courts, rare and highly coveted.</description> </item> <lore id="7001" name="The Veil" aliases="the Veil, the Barrier, the Boundary" category="Cosmology"> <solsticeEffect>weakens during the winter solstice, strengthens during the summer solstice</solsticeEffect> <appearance>faint shimmering distortion visible only to those with supernatural sight</appearance> <monitoring>rift points (tears in the Veil) are monitored by the Wardens</monitoring> <description>The Veil is the metaphysical barrier separating Earth from Hel and the Fae Realms.</description> </lore> </codex> <proseGuidelines> <styleGuide> - Write in past tense and use British English spelling and grammar - Keep a Flesch reading ease score of 60 - Respect the the Royal Order of Adjectives: The order is: opinion, size, age, shape, color, origin, material, purpose, followed by the noun itself (e.g., "a lovely little old rectangular green French silver whittling knife") - Respect the ablaut reduplication rule (e.g. tick-tock, flip-flop) - Write in active voice - Passive voice: <bad>The book was read by Sarah.</bad> - Active voice: <good>Sarah read the book.</good> - Reduce the use of passive verbs - <bad>For a moment, I was tempted to throw in the towel.</bad> - <good>For a moment, I felt tempted to throw in the towel.</good> - Avoid misplaced modifiers that can cause confusion when starting with "-ing" words: - <bad>Considering going to the store, the empty fridge reflected in Betty's eyes.</bad> - <good>Betty stared into the empty fridge. It was time to go to the store.</good> - Avoid redundant adverbs that state the obvious meaning already contained in the verb: - <bad>She whispered quietly to her mom.</bad> - <good>She whispered to her mom.</good> - Use stronger, more descriptive verbs over weak ones: - <bad>Daniel drove quickly to his mother's house.</bad> - <good>Daniel raced to his mother's house.</good> - Omit adverbs that don't add solid meaning like "extremely", "definitely", "truly", "very", "really": - <bad>The movie was extremely boring.</bad> - <good>The movie was dull.</good> - Use adverbs to replace clunky phrasing when they increase clarity: - <bad>He threw the bags into the corner in a rough manner.</bad> - <good>He threw the bags into the corner roughly.</good> - Avoid making simple thoughts needlessly complex: - <bad>After I woke up in the morning the other day, I went downstairs, turned on the stove, and made myself a very good omelet.</bad> - <good>I cooked a delicious omelet for breakfast yesterday morning.</good> - Never backload sentences by putting the main idea at the end: - <bad>I decided not to wear too many layers because it's really hot outside.</bad> - <good>It's sweltering outside today, so I dressed light.</good> - Omit nonessential details that don't contribute to the core meaning: - <bad>It doesn't matter what kind of coffee I buy, where it's from, or if it's organic or not—I need to have cream because I really don't like how the bitterness makes me feel.</bad> - <good>I add cream to my coffee because the bitter taste makes me feel unwell.</good> - Always follow the "show, don't tell" principle. For instance: - Telling: <bad>Michael was terribly afraid of the dark.</bad> - Showing: <good>Michael tensed as his mother switched off the light and left the room.</good>- Telling: <bad>I walked through the forest. It was already Fall, and I was getting cold.</bad> - Showing: <good>Dry orange leaves crunched under my feet. I pulled my coat's collar up and rubbed my hands together.</good>- Add sensory details (sight, smell, taste, sound, touch) to support the "showing" (but keep an active voice) - <bad>The room was filled with the scent of copper.</bad> - <good>Copper stung my nostrils. Blood. Recent.</good> - Use descriptive language more sporadically. While vivid descriptions are engaging, human writers often use them in bursts rather than consistently throughout a piece. When adding them, make them count! Like when we transition from one location to the next, or someone is reminiscing their past, or explaining a concept/their dream... - Avoid adverbs and clichés and overused/commonly used phrases. Aim for fresh and original descriptions. - Avoid writing all sentences in the typical subject, verb, object structure. Mix short, punchy sentences with long, descriptive ones. Drop fill words to add variety. Like so: <good>Locked. Seems like someone doesn't want his secrets exposed. I can work with that.</good> - Convey events and story through dialogue. It is important to keep a unique voice for every character and make it consistent. - Write dialogue that reveals characters' personalities, motivations, emotions, and attitudes in an interesting and compelling manner - Leave dialogue unattributed. If needed, only use "he/she said" dialogue tags and convey people's actions or face expressions through their speech. Dialogue always is standalone, never part of a paragraph. Like so: - <bad>"I don't know," Helena said nonchalantly, shrugging her shoulders</bad> - <good>"No idea" "Why not? It was your responsibility"</good> - Avoid boring and mushy dialog and descriptions, have dialogue always continue the action, never stall or include unnecessary fluff. Vary the descriptions to not repeat yourself. Avoid conversations that are just "Let's go" "yes, let's" or "Are you ready?" "Yes I'm ready". Those are not interesting. Think hard about every situtation and word of text before writing dialogue. If it doesn't serve a purpose and it's just people talking about their day, leave it. No one wants to have a normal dinner scene, something needs to happen for it to be in the story. Words are expensive to print, so make sure they count! - Put dialogue on its own paragraph to separate scene and action. - Use body language to reveal hidden feelings and implied accusations- Imply feelings and thoughts, never state them directly - NEVER use indicators of uncertainty like "trying" or "maybe" - NEVER use em-dashes, use commas for asides instead </styleGuide> <voiceGuide> Each character in the story needs to have distinct speech patterns: - Word choice preferences - Sentence length tendencies - Cultural/educational influences - Verbal tics and catchphrases Learn how each person talks and continue in their style, and use their Codex entries as reference. <examples> - <bad>"We need to go now." "Yes, we should leave." "I agree."</bad> <good>"Time's up." "Indeed, our departure is rather overdue." "Whatever, let's bounce."</good> - Power Dynamic Example: <bad> "We need to discuss the contract." "Yes, let's talk about it." "I have concerns." </bad> <good> "A word about the contract." "Of course, Mr. Blackwood. Whatever you need." "The terms seem..." A manicured nail tapped the desk. "Inadequate." "I can explain every-" "Can you?" </good> </examples> </voiceGuide> <dialogueFlow> When writing dialogue, consider that it usually has a goal in mind, which gives it a certain flow. Make dialogue sections also quite snappy in the back and forth, and don't spread the lines out as much. It's good to have details before, after, or as a chunk in-between, but we don't want to have a trail of "dialogue breadcrumbs" spread throughout a conversation. <examples> - Pattern 1 - Question/Deflection/Revelation: <good> "Where were you last night?" "Work. The usual." "Lipstick's an interesting shade for spreadsheets." </good> - Pattern 2 - Statement/Contradiction/Escalation: <good> "Your brother's clean." "Tommy doesn't touch drugs." "I'm holding his tox screen." </good> - Pattern 3 - Observation/Denial/Truth: <good> "That's a new watch." "Birthday gift." "We both know what birthdays mean in this business." </good> - Example - A Simple Coffee Order: <bad> "I'll have a coffee." "What size?" "Large, please." </bad> <good> "Black coffee.""Size?""Large. Been a long night." "That bodega shooting?" "You watch too much news." "My brother owns that store." </good> This short exchange: - Advances plot (reveals connection to crime) - Shows character (cop working late) - Creates tension (unexpected connection) - Sets up future conflict (personal stake) - Example - Dinner Scene: <bad> "Pass the salt." "Here you go." "Thanks." </bad> <good> "Salt?" "Perfect as is. Mother's recipe." "Mother always did prefer... bland things." "Unlike your first wife?" </good> - Example - Office Small Talk: <bad> "Nice weather today." "Yes, very nice." "Good for golf." </bad> <good> "Perfect golf weather." "Shame about your membership." "Temporary suspension. Board meets next week." "I know. I called the vote." </good> </examples> </dialogueFlow> <subtextGuide> - Layer dialogue with hidden meaning: <bad>"I hate you!" she yelled angrily.</bad> <good>"I made your favorite dinner." The burnt pot sat accusingly on the stove.</good> - Create tension through indirect communication: <bad>"Are you cheating on me?"</bad> <good>"Late meeting again?" The lipstick stain on his collar caught the light.</good> <examples> - Example 1 - Unspoken Betrayal: <bad> "Did you tell them about our plans?" "No, I would never betray you." "I don't believe you." </bad> <good> "Funny. Johnson mentioned our expansion plans today." "The market's full of rumors." "Mentioned the exact numbers, actually." The pen in his hand snapped. </good> - Example 2 - Failed Marriage: <bad> "You're never home anymore." "I have to work late." "I miss you." </bad> <good> "Your dinner's in the microwave. Again." "Meetings ran long." "They always do." She folded the same shirt for the third time. </good> - Example 3 - Power Struggle: <bad> "You can't fire me." "I'm the boss." "I'll fight this." </bad> <good> "That's my father's nameplate you're sitting behind." "Was." "The board meeting's on Thursday." </good> </examples> </subtextGuide> <sceneDetail> While writing dialogue makes things more fun, sometimes we need to add detail to not have it be a full on theatre piece. <examples> - Example A (Power Dynamic Scene) <good> "Where's my money?" The ledger snapped shut. "I need more time." "Interesting." He pulled out a familiar gold pocket watch. My mother's. "Time is exactly what you bargained with last month." "That was different-" "Was it?" The watch dangled between us. "Four generations of O'Reillys have wound this every night. Your mother. Your grandmother. Your great-grandmother.Shall we see who winds it next?" </good> - Example B (Action Chase) It's much better to be in the head of the character experiencing it, showing a bit of their though-process, mannerisms and personality: <good> Three rules for surviving a goblin chase in Covent Garden: Don't run straight. Don't look back. Don't let them herd you underground. I broke the first rule at Drury Lane. Rookie mistake. The fruit cart I dodged sailed into the wall behind me. Glass shattered. Someone screamed about insurance. *Tourist season's getting rough*, the scream seemed to say. Londoners adapt fast. "Oi! Market's closed!" The goblin's accent was pure East End. They're evolving. Learning. I spotted the Warren Street tube station sign ahead. *Shit.* There went rule three. </good> - Example C (Crime Scene Investigation) <good> "Greek." Davies snapped photos of the symbols. "No, wait. Reverse Greek." "Someone's been watching too many horror films." I picked up a receipt from the floor. Occult supply shop in Camden. Paid by credit card. *Amateur hour*. "Could be dangerous though," Davies said. "Remember Bristol?" "Bristol was Sanskrit. And actual cultists." I pointed to the nearest symbol. "This genius wrote 'darkness' backwards but used a Sigma instead of an S. It's summoning Instagram followers at best." "Speaking of followers..." Davies pointed to heavy foot traffic in the dust. Multiple sets. All new trainers. *Ah.* "Anyone check local uni paranormal societies?" </good> - Example D (Dialogue-heavy) <good> "Found your card in her wallet." The detective slid it across the table. Worn edges. Folded corner. Three years old at least. "Standard practice. I work missing persons." "Funny thing about missing persons.Eventually they stop being missing. Turn up in the Thames. Under motorways. In pieces." "I don't-" "You found four last year. All breathing." She opened a file. "This would've been your first dead one. If we hadn't found her first." The card felt heavier somehow. </good> </examples> </sceneDetail> <sceneOpenings> KEY RULE: Never open with more than one paragraph of description, no matter how beautiful. Description should be earned through action and dialogue. Instead of opening with setting description, open with: - A character doing something specific - A line of dialogue that raises questions - An unexpected observation - A moment of tension or conflict - Start with a hook that's 1-2 sentences maximum - Follow with a smaller paragraph that provides immediate context - Vary paragraph size from the start to create visual interest </sceneOpenings> </proseGuidelines> Write a chapter based on the following instructions: <instructions> Write a fully fleshed out scene of at least 1000 words in the fantasy genre. A small group enters an ancient, otherworldly place for the first time. The environment is alien and wondrous. Describe their exploration — what they see, hear, and feel as they move deeper. Include moments of discovery, unease, and wonder. Let the world-building emerge through the characters' experience rather than exposition. Use the codex entries above as your world reference for characters, setting, and lore. Only include the prose of the scene without any markdown or commentary. </instructions>
Model response
Messages
Meta
AI
The doorway closed on Rory’s
wrist.
She drove her shoulder into
the gap.
Stone scraped her coat, and
the Heartstone pendant flared against her chest. For an instant, the silver chain burned like a wire fresh from the fire. Nyx seized her free hand.
Their fingers held solid, though
the rest of them streamed into the darkness behind the door. “Move,” Rory snapped. “I have you.” “That wasn’t my concern.” Isolde slipped past them.
She pressed two fingers to
the seam, and the ancient oak standing stones around the doorway gave a groan. The gap widened.
Rory wrenched her wrist free
and stumbled through, dragging Nyx after her.
The stones shut with a
crack that rang through the place beyond. No leaves stirred. No traffic reached them from Richmond Park.
Rory turned to find the
doorway gone.
A wall of black roots
stood in its place, each as thick as her arm, their tips sunk into pale stone. “Well,” she said. “That’s inconvenient.”
The cut across her wrist
ran beside the little crescent scar she had carried since childhood.
Blood gathered there, then vanished
into her skin. Nyx saw it too. Their violet
eyes narrowed
.
Isolde walked to the root
wall and laid her palm against it. “The door remembers which way it opens.” “Good. Ask it to demonstrate.” “It remembers,” Isolde said. “It does not obey.”
Rory pulled the cold Fae
blade from its sheath.
Isolde had given her the
leaf-shaped moonsilver dagger before they left the grove, with instructions to keep it close and use it only when a door refused to stay a door.
The blade’s edge caught a
faint crimson gleam from the pendant. Beyond the roots stretched an orchard.
Its trees rose from a
floor of white stone veined with gold. Broad leaves of hammered copper turned upon their branches, though Rory felt no breeze. Fruit hung among them in clusters: glass pears full of dark seeds, pomegranates wrapped in fine chain, figs that opened and shut like sleepy mouths. High above, an amber sky arched over the orchard. Farther off, vineyards climbed terraces cut into black cliffs. Rory could see rows of vines and a procession of tiny figures carrying baskets between them. “Dymas?” she asked. Isolde nodded. Rory looked back at the root wall. The Veil had taken far less effort to cross than she had expected. That bothered her more than the fruit. A soft note sounded overhead. One of the glass pears
trembled
. Inside it, a seed struck the glass again. Tick. Another answered deeper in the orchard. Tock. Soon the trees filled with the sound. Rory stepped away from the nearest branch. “What are they doing?” “Counting,” Nyx said. “Counting what?” “The fruit that remains.” A pear dropped behind them and
shattered
. Sweetness washed over Rory, so rich it caught in her throat. In the fragments lay a tiny gold ring, no larger than a child’s. Isolde crouched beside it.
Her silver hair spilled over
her shoulder, but her feet left no mark in the dust. “Do not take anything that falls.” Rory eyed the ring. “You could have led with that.” “I did not know it would fall.” “You know what it means, though.” Isolde rose. “I know what follows a harvest.” Nyx had gone ahead.
Their outline passed between two
trees, then stopped. Rory caught up and found them staring at a path paved with plates. Each plate bore a name scratched through its glaze. Some used letters she recognised. Others
looked like claw marks or twisted knots
. ELEANOR PRICE, read one. Below it, in smaller script: THREE WINTERS. A second plate read MAHMUD AL-HASAN. SEVEN YEARS, FOUR MONTHS. Rory knelt. The edges of Eleanor’s plate had worn smooth beneath countless feet. When she held a finger above it, a voice seeped from the glaze. “More, please.” She jerked her hand back. The voice stopped. “Those are people.” “Helbound souls,” Nyx said. “Someone set their contracts underfoot.” Rory looked towards the distant vineyards. The basket-bearers moved in neat lines between the vines. “Are they still here?” Isolde studied the nearest plate. “A name can stay after its owner leaves.” “That isn’t an answer.” “No,” Isolde said. “It isn’t.” They followed the path. The plates clicked beneath Rory’s boots. Nyx floated clear of them, and Isolde, as ever, made no sound at all. Rory kept her eyes on the names until the letters
began to
blur. One plate held only a date. Another had a deep gouge where someone had scraped away the name. At the orchard’s centre stood a fountain. No water filled its basin. Thin ribbons of wine rose from it instead, twisting through the air towards a stone cup held by a statue. The statue wore a cook’s apron and a crown of antlers.
Its face had been chiselled
off. Rory passed her hand beneath one of the ribbons.
It curled round her fingers
without touching them.
She smelt crushed grapes, roast
meat and, beneath both, hot iron. The pendant warmed. Nyx moved in front of her. “Do not drink.” “I’d got as far as not licking the floating wine.” “Good. Hold on to that wisdom.” Rory followed the rising ribbons with her eyes.
They disappeared into an opening
high in the cliff ahead. A staircase climbed towards it, narrow and steep. Figures carved into the stair walls carried platters upwards. At first Rory took them for servants.
Then she saw that each
platter bore a little carving of the servant who carried it. Isolde stood beside the fountain, her gaze fixed on its empty basin. “This place came before the vineyards.” “You’ve been here?” “No. I have seen its mouth in dreams.”
She turned towards the stairs
. “Never its teeth.” Rory touched the pendant through her shirt. An unknown hand had sent it to her in London, packed in a plain box with no note.
It had led her to
the hidden grove.
Now it tugged against its
chain towards the opening in the cliff. “If someone wanted me here, they can come down and say why.” She took the first step. Halfway up, the orchard’s chiming ceased. The
silence
exposed other sounds: a knife striking a board, a woman humming three notes over and over, and the scrape of chairs across a hard floor.
They came from above, though
the doorway ahead held only darkness. A crack crossed the stair beneath Rory’s boot. She halted. Set into the stone was a narrow strip of silver stamped with a circle and three bars. “Warden mark,” she said. Nyx bent over it. “Broken.” The strip had split down its centre. Black scoring spread from the fracture into the surrounding stone. “The Wardens monitor rifts,” Rory said. “Did one of them come through?” “Someone carried their seal here.” Nyx ran a hand above the mark without touching it. Their fingers thinned to smoke. “Someone stayed long enough to bury it.” A chair scraped again, much closer. Rory climbed. The opening led into a hall so vast that its far wall hid in a reddish haze. Columns shaped like bundles of wheat supported a ceiling of dark, polished bone. A table ran down the centre.
It crossed a channel in
the floor and continued on the other side, its end lost from sight. Places had
been laid
for hundreds. Fine knives rested beside empty bowls. Each cup held a different substance: ash, salt, black petals, a twist of hair. Between them sat dishes beneath silver covers. Some covers
quivered
. The smell of baking bread filled the hall. Rory’s
stomach
cramped.
She had eaten at
Silas’ bar before they left, but her mouth flooded with saliva all the same. “Don’t trust your appetite,” Nyx said. “I don’t. It once convinced me your pickled eggs were food.” Nyx turned their glowing eyes towards her. For a moment, they almost looked amused. Isolde walked alongside the table. Rory counted ten places before she noticed the chairs. Each had a person carved into its back, head bent, hands clasped at the nape of the neck. No two faces matched. At the eleventh place, one chair sat pulled out. Its plate shone white. No dust touched it. The Heartstone struck against Rory’s breastbone. Once. Twice. “Leave that place,” Isolde said. Rory stayed where she stood. Letters formed across the plate, rising through the glaze like bruises beneath skin. AURORA CARTER. Under her name lay a crescent, no bigger than the scar on her wrist. She gripped the edge of the table. “You knew it had my name.” “I knew it had a place for you. The name came when you crossed the door.” “That distinction had better matter.” “It will.” From somewhere beneath the table came a knock. Rory snatched her hand away. A second knock followed, directly under her chair. Nyx sank into the floor to look. They recoiled at once, gathering into a solid form so fast their shoulders struck the table. “What?” “There is no floor under it.” Rory glanced down. Pale stone ran beneath every other chair. Beneath hers, the legs stood over a square of darkness. Something moved far below, too deep for her to make out. One of the silver covers rattled. Isolde caught Rory’s arm before she reached for the blade. “A guest who draws steel at supper becomes the meal.” “I’m past caring about etiquette.” “Then care about the blade. It can cut the ward that holds this hall shut.” Rory followed Isolde’s gaze to the far wall. A great door stood there, bound with bands of dull gold. The wine ribbons from the fountain poured through a hole above it and vanished into the stone. Along the doorframe, Rory saw a shimmer, like heat above a pan. The Veil, stretched thin enough to show itself even to her. A name had been cut into the door’s centre. Someone had gouged most of it away. The surviving letters read BELPHE. A spoon struck a cup. The sound came from her place. Rory looked back. The chair had drawn itself nearer to the table. Her plate now held a little piece of folded paper, stained red at its corners. She reached for it. The pendant grew hot enough to make her gasp. “Rory,” Nyx said. “I see it.” She took the paper with her uncut hand and opened it. Inside, in a neat hand, were six words. I gave you the way in. A seventh line appeared as she watched. You must give me the way out. Every silver cover in the hall lifted. Under the nearest lay a human hand, palm up, with a mouth opening in its centre. The mouths on the next dishes opened too, hundreds of them, all drawing breath. Beneath Rory’s chair, something knocked three times. Isolde lunged for the paper. A gold band tore free of the distant door and lashed across the hall. It caught her by the throat and hauled her off her feet. Nyx flung themself between Rory and the table, but the hall’s shadows peeled away from them and rushed towards the open dishes. Rory drew the Fae blade. The chair behind her snapped shut against her legs, pinning her to the table. Her pendant split with a sharp crack, and a crimson seam opened down the great door. From the darkness beneath her chair, a hand reached up and closed around her scarred wrist.
created_at
"2026-09-23T16:30:42.208Z"
9/23/2026, 4:30:42 PM
model
"openai/gpt-6-sol-20260922"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
5757
moderation_latency
(null)
generation_time
57523
tokens_prompt
5142
tokens_completion
3295
native_tokens_prompt
4854
native_tokens_completion
2938
native_tokens_completion_images
0
native_tokens_reasoning
516
native_tokens_cached
4851
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.0303562
router
(null)
user_agent
"langchainjs-openai/1.0.0 ((node/v24.20.0; linux; x64))"
http_referer
(null)
request_id
"req-1790181042-Ja96pUWqrngGb7sgDgKO"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1790181042-D9SbUcae37qh7BDBZlIQ"
upstream_id
"resp_08c8f5890f90dade016ab3feb258f887d1b6b833c5620c5694"
provider_responses
0
endpoint_id
"1cfc7d9d-4404-4b8e-9ee4-58ae45c9dcd4"
id
"resp_08c8f5890f90dade016ab3feb258f887d1b6b833c5620c5694"
is_byok
false
latency
1317
model_permaslug
"openai/gpt-6-sol-20260922"
provider_name
"OpenAI"
status
200
total_cost
0.0303562
cache_discount
0.0087318
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
15
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
56
tagDensity
0.268
leniency
0.536
rawRatio
0
effectiveRatio
0
100.00%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
1899
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)
86.84%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
1899
totalAiIsms
5
found
0
word
"trembled"
count
1
1
word
"shattered"
count
1
2
word
"silence"
count
1
3
word
"quivered"
count
1
4
word
"stomach"
count
1
highlights
0
"trembled"
1
"shattered"
2
"silence"
3
"quivered"
4
"stomach"
100.00%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
1
maxInWindow
1
found
0
label
"eyes widened/narrowed"
count
1
highlights
0
"eyes narrowed"
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
193
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
0
hedgeCount
1
narrationSentences
193
filterMatches
(empty)
hedgeMatches
0
"began to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
235
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
32
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
1899
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
13
unquotedAttributions
0
matches
(empty)
38.75%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
80
wordCount
1618
uniqueNames
11
maxNameDensity
2.22
worstName
"Rory"
maxWindowNameDensity
3.5
worstWindowName
"Rory"
discoveredNames
Rory
36
Heartstone
2
Isolde
16
Nyx
15
Richmond
1
Park
1
Fae
2
Veil
2
Eleanor
1
London
1
One
3
persons
0
"Rory"
1
"Heartstone"
2
"Isolde"
3
"Nyx"
4
"Veil"
5
"Eleanor"
places
0
"Richmond"
1
"Park"
2
"London"
globalScore
0.388
windowScore
0.5
100.00%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
132
glossingSentenceCount
1
matches
0
"looked like claw marks or twisted knots"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
1899
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
1
totalSentences
235
matches
0
"saw that each"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
123
mean
15.44
std
14.61
cv
0.947
sampleLengths
0
6
1
33
2
21
3
3
4
3
5
4
6
38
7
12
8
38
9
5
10
24
11
8
12
12
13
7
14
5
15
8
16
51
17
57
18
34
19
3
20
2
21
27
22
19
23
1
24
6
25
1
26
14
27
4
28
3
29
2
30
4
31
31
32
20
33
6
34
10
35
7
36
6
37
8
38
47
39
4
40
7
41
10
42
26
43
2
44
8
45
3
46
9
47
15
48
4
49
5
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
2
totalSentences
193
matches
0
"been chiselled"
1
"been laid"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
0
totalVerbs
275
matches
(empty)
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
235
ratio
0
matches
(empty)
94.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1152
adjectiveStacks
1
stackExamples
0
"smooth beneath countless feet."
adverbCount
22
adverbRatio
0.019097222222222224
lyAdverbCount
3
lyAdverbRatio
0.0026041666666666665
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
235
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
235
mean
8.08
std
5.02
cv
0.621
sampleLengths
0
6
1
7
2
12
3
14
4
5
5
16
6
3
7
3
8
4
9
4
10
19
11
3
12
12
13
12
14
3
15
7
16
7
17
21
18
3
19
2
20
16
21
8
22
4
23
4
24
12
25
7
26
5
27
4
28
4
29
9
30
31
31
11
32
6
33
12
34
14
35
25
36
9
37
9
38
16
39
3
40
2
41
7
42
13
43
7
44
5
45
6
46
8
47
1
48
6
49
1
57.59%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
3
diversityRatio
0.35319148936170214
totalSentences
235
uniqueOpeners
83
19.49%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
1
totalSentences
171
matches
0
"Then she saw that each"
ratio
0.006
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
30
totalSentences
171
matches
0
"She drove her shoulder into"
1
"Their fingers held solid, though"
2
"She pressed two fingers to"
3
"Their violet eyes narrowed."
4
"Its trees rose from a"
5
"Her silver hair spilled over"
6
"Their outline passed between two"
7
"She jerked her hand back."
8
"They followed the path."
9
"Its face had been chiselled"
10
"It curled round her fingers"
11
"She smelt crushed grapes, roast"
12
"They disappeared into an opening"
13
"She turned towards the stairs"
14
"It had led her to"
15
"She took the first step."
16
"They came from above, though"
17
"Their fingers thinned to smoke."
18
"It crossed a channel in"
19
"She had eaten at"
ratio
0.175
74.04%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
132
totalSentences
171
matches
0
"The doorway closed on Rory’s"
1
"She drove her shoulder into"
2
"Stone scraped her coat, and"
3
"Nyx seized her free hand."
4
"Their fingers held solid, though"
5
"Isolde slipped past them."
6
"She pressed two fingers to"
7
"The gap widened."
8
"Rory wrenched her wrist free"
9
"The stones shut with a"
10
"Rory turned to find the"
11
"A wall of black roots"
12
"The cut across her wrist"
13
"Blood gathered there, then vanished"
14
"Nyx saw it too."
15
"Their violet eyes narrowed."
16
"Isolde walked to the root"
17
"Rory pulled the cold Fae"
18
"Isolde had given her the"
19
"The blade’s edge caught a"
ratio
0.772
29.24%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
1
totalSentences
171
matches
0
"Now it tugged against its"
ratio
0.006
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
63
technicalSentenceCount
1
matches
0
"Fruit hung among them in clusters: glass pears full of dark seeds, pomegranates wrapped in fine chain, figs that opened and shut like sleepy mouths."
91.67%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
15
uselessAdditionCount
1
matches
0
"She had, but her mouth flooded with saliva all the same"
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
12
fancyCount
1
fancyTags
0
"Rory snapped (snap)"
dialogueSentences
56
tagDensity
0.214
leniency
0.429
rawRatio
0.083
effectiveRatio
0.036
89.7203%