NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-09-23-01M36RD2E395JPYKE2Y2PDXGHY
Run Details
Model:
GPT-6 Luna (Reasoning, High)
Test:
Bad Writing Habits
Scenario:
Fantasy: entering an ancient ruin
Duration:
43.5s
Cost:
$0.001750
Provider:
OpenAI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
92.66%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
75.53%
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)
30.47%
Name drop frequency
(details)
89.02%
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)
44.42%
Sentence opener variety
(details)
100.00%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
38.49%
Subject-first sentence starts
(details)
0.00%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
100.00%
Dialogue tag variety (said vs. fancy)
(details)
88.8195%
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> <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> 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.
Model response
Messages
Meta
AI
The first standing stone was
no taller than Rory’s shoulder.
The second rose above the
oak canopy, though she couldn’t remember seeing it through the trees.
They stood in a ragged
line across a patch of Richmond Park where the bracken grew waist-high and the
familiar
paths
seemed to
have lost interest in going any farther.
Isolde passed between them without
slowing.
Her silver hair slid over
the back of her coat, bright even beneath the low, clouded sky. Rory stopped before the gap. On the other side, wildflowers crowded the ground in a spill of white and gold.
They shivered though the air
had gone still. “Is this it?” she asked. “The door is a threshold,” Isolde said. “The threshold is a promise. What waits beyond is neither.” “That’s a yes, then.” “It is a door.” Nyx stood at Rory’s shoulder, tall and dark against the dull November trees.
Their face was a suggestion
in shadow, their violet eyes a faint glow.
They did not look at
Isolde.
They watched the space between
the stones, where the air
seemed to
have
been rubbed
thin. “Something’s looking back,” they whispered.
Rory’s fingers closed around the
strap of her satchel. The Fae-forged blade lay inside, cold even through its wrapping.
The Heartstone pendant rested against
her chest, its little crimson
weight
familiar
and faintly warm from her skin. It did not
pulse
.
She had crossed into strange
places before.
She’d learned that fear was
most useful when kept small, clean, and close to hand. Still, her body made its own argument: a tightness in her
stomach
, the fine prickle along her arms. “What happens if we don’t go in?” she asked.
Isolde glanced at her with
pale lavender eyes. “Then you remain where you are.”
Rory let out a breath
through her nose. “All right.” She stepped between the stones. The air changed like a hand laid over her mouth. For a moment, there was no sound at all.
Then the world returned in
pieces: the soft rasp of Nyx’s coat behind her, the wet hush of leaves, a bell-like note somewhere far off. Rory looked back. The park remained visible through the standing stones, but it
seemed painted on glass
. The trees beyond them were too still. A jogger in a bright blue jacket moved between the trunks, then vanished behind one. Rory waited for him to reappear. He didn’t. She turned away. The grove opened around them.
It was not large, not
at first glance. A clearing circled by ancient oaks, their branches woven overhead so thickly that the sky showed only in scattered pieces. The trees were enormous, their trunks ridged and twisted, their bark silver-gray where the light touched it. Wildflowers grew everywhere, crowding through moss and leaf litter in bright, impossible abundance. Bluebells, daisies, foxgloves—flowers Rory knew, and some she didn’t, with translucent petals veined in green or a deep, bruised violet. A stream ran through the clearing. It climbed. Rory watched the water slip uphill over smooth stones, climbing toward the roots of an oak where it disappeared without a splash. “You’re sure we’re still in Richmond Park?” she said. “No,” Nyx whispered. Isolde had already started walking.
Her boots pressed into the
moss, but left no trace. Rory’s did. Each step flattened the springy ground, darkening it with moisture. The marks lingered behind her. “Don’t wander from the path,” Isolde said. “There’s a path?” “There will be, if you follow me.” Rory looked down. A narrow line of pale stones threaded through the flowers at Isolde’s feet. She hadn’t noticed it before. Nyx drifted beside her, their edges softening wherever the shadows deepened beneath the trees. The air smelled of wet earth and crushed herbs, with a sweetness underneath like fruit left too long in a bowl. Rory felt it on her tongue. Every breath
seemed to
carry more taste than it should.
They moved deeper into the
grove. The clearing narrowed, the oak trunks leaning closer overhead. A fluttering sound followed them from branch to branch, though Rory saw no birds. Something clicked among the roots. Something answered from farther on. The bell-like note rang again. This time Rory felt it in her teeth. “What is that?” she asked. “An invitation,” said Isolde. “From whom?” “A thing that is not here.” Rory stopped. “You could try being helpful.” “I could,” Isolde said. “I am trying to be accurate.” Nyx’s gaze slid toward a dark hollow between two trees. “The invitation has teeth.” Rory followed their
look
. A patch of shadow sat beneath the roots, deeper than the dimness around it. For an instant, she thought she saw something pale inside—a curve like a bone, or a hand. Then the shadow shifted. Nyx did too, their outline drawing taut. “Keep moving,” Isolde said. They did. The path brought them to a circle of standing stones, much older and larger than those at the boundary.
Their surfaces were furred with
moss, but marks showed through where the green had thinned. Rory brushed one with her sleeve. The carving beneath was a series of spirals, tight as fingerprints, each one running into the next. The stone felt warm. She snatched her hand back. A laugh came from somewhere in the circle.
It sounded like a child
trying not to be heard. Rory reached into her satchel and touched the wrapped blade. The moonsilver gave off a cold that cut through the fabric and steadied her. She pulled it free.
Its leaf-shaped edge caught the
strange light, pale as ice. The laughter stopped. “You brought a knife to a conversation,” Isolde said. “It’s a
very
persuasive knife.” “Some doors open to steel.” “And others?” “Open to a name.” Nyx turned in a slow circle. Their shadow spread across the moss, thin as spilled ink. “Something here knows hers.” Rory tightened her grip on the dagger. “Mine?” Isolde looked at the blade rather than at Rory. “A name is a seed. Once planted, it grows in the mouth that speaks it.” “That doesn’t answer me.” “No.” A small sound came from the far side of the stones: a scuff, then a scrape, as if someone had dragged a heavy branch across the earth. Rory saw no one there. The roots of the largest oak had lifted from the ground, making a dark arch just wide enough for a person to crawl through. Beyond it, a pale glow
shimmered
. Not the clear shine of daylight. Something milky, moving, like light caught under ice. Rory had seen the Veil once before, or what the Wardens said was the Veil: a faint distortion in the world that
shimmered
where no heat should be. She couldn’t see that now. But Nyx’s face had gone
very
still. “There’s a seam,” they said. Isolde studied the glow. “There is always a seam. The question is what has learned to pull at it.” “Is that a Hel portal?” Rory asked. The Heartstone stayed quiet against her chest. No
pulse
, no answering
warmth
beyond the ordinary heat of her skin. “No,” Isolde said. “Not Hel.” “What, then?” “Another side of the same door.” Rory looked through the root arch. The glow shifted, and for a heartbeat she saw a long corridor beyond it, paved in white stone. At the far end, something stood with its back turned. A figure, perhaps. A tree with arms. It
was gone
before she could decide. The air grew colder. Her wrist scar prickled beneath her sleeve. Nyx moved closer to the opening. The darkness of their form stretched toward it, reaching before they did. At the threshold, it recoiled. “Don’t,” Rory said. “I’m not.” “You were about to.” “I was curious.” “Try being curious from here.” Nyx gave no sign of amusement, but their shadow drew back. Isolde walked to the roots. She left no footprints in the moss, though Rory could see where the hem of her coat brushed the flowers. The petals bent aside for her, then sprang upright as if relieved. “Can you close it?” Rory asked. “I can ask it to close.” “Will it listen?” “That depends on whether it wants to.” The bell sounded again, from inside the root arch. This time it had a shape to it, three bright notes that fell in a pattern Rory recognized. She frowned. It was the ringtone her mother used to have on her old phone, years ago, before Rory left Cardiff. The same awkward little chime, long since changed. Her throat tightened. She knew that was absurd. She knew it even as the sound came again, exact and sweet. Nyx’s hand closed around her elbow. Their fingers were cold pressure through her sleeve. “Don’t answer,” they whispered. Rory hadn’t realized she’d taken a step toward the arch. Behind the pale glow, the figure stirred. It
began to
turn. Isolde spoke in a voice barely louder than the stream. “A borrowed voice is still a voice. It need not be yours to call you.” Rory backed away. The little chime faltered, then broke into a rough, furious scraping. Isolde lifted one hand. She didn’t touch the roots. The shadows beneath them gathered and thickened, while the pale glow pressed outward, straining against the dark. For a moment the two forces
seemed to
hold each other
perfectly
still. Then the root arch closed. The earth shuddered. Leaves shook loose from the branches overhead, drifting down without a breeze. The uphill stream stopped. Water hung in its channel, each droplet bright and motionless. Rory heard her own breath, too loud in the
silence
. Isolde lowered her hand. “We should leave.” “That’s all?” Rory asked. “We came to
look
, we found a door with a thing behind it, and now we go?” “You found the grove,” Isolde said. “The grove found you.” “I don’t like the sound of that.” “It was not meant to please you.” Nyx studied the sealed roots. The violet in their eyes dimmed. “It will open again.” “Perhaps,” Isolde said. “Can we stop it?” “Perhaps.” Rory looked down at the dagger. A thin bead of dark moisture clung to its edge. She wiped it on her sleeve and felt the cold bite through the cloth. The clearing seemed changed now. The flowers were still bright, the oaks still ancient and broad, but every hollow between their roots held the promise of a listening thing. Then the suspended water fell. It struck the stones with a soft, ordinary rush, and the stream resumed its climb.
Somewhere among the trees, the
bell chimed once, farther away. Rory sheathed the blade. “Let’s go.” They turned back along the pale-stone path. It ran between flowers that glowed faintly in the shade, though no light touched them. Nyx stayed close, their shoulder nearly brushing hers. Isolde went ahead, silver hair winding through the green. The grove stretched longer on the way out. Rory was sure of it. They passed the same split oak twice, its trunk marked by a white scar shaped almost like a crescent moon. The second time, she stopped. “We’ve been here.” “The grove has been here,” Isolde said. “That’s not what I asked.” “No.” Rory rubbed the small scar on her wrist through her sleeve. “How long have we been inside?” Isolde tilted her head, listening to something Rory couldn’t hear. “Long enough to be remembered.” “By whom?” But Isolde had already started walking again. At last, the standing stones
appeared ahead
. Beyond them, the park waited in its gray winter light. The jogger in the blue jacket
was still passing
between the trees, moving at exactly the same pace as before. Rory crossed the threshold. Cold wind struck her face. A distant dog barked. Traffic murmured beyond the park wall. She glanced back at the grove. Between the stones, the clearing had vanished.
Only bracken and tangled oak
roots remained. Nyx emerged beside her. “Time did not move correctly.” “How much?” “I don’t know.” Isolde stepped through last. There was no sign she had been anywhere. No mud on her boots, no leaves caught in her hair. Rory’s pendant rested cool against her chest. Somewhere behind the standing stones, beyond the place where the grove had folded itself away, the bell rang once more. Only Rory heard it.
created_at
"2026-09-23T09:09:01.519Z"
9/23/2026, 9:09:01 AM
model
"openai/gpt-6-luna-20260922"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
12040
moderation_latency
(null)
generation_time
43418
tokens_prompt
1547
tokens_completion
3286
native_tokens_prompt
1532
native_tokens_completion
3469
native_tokens_completion_images
0
native_tokens_reasoning
820
native_tokens_cached
1529
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.00175009
router
(null)
user_agent
"langchainjs-openai/1.0.0 ((node/v24.21.0; linux; x64))"
http_referer
(null)
request_id
"req-1790154541-Ot8eD6jduZd0YwlYiDvc"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1790154541-4mhuqu9s1Zw0sGzh44s7"
upstream_id
"resp_0478a11112432567016ab3972dacd487d18bcc1e11826f44e5"
provider_responses
0
endpoint_id
"05e94e02-b9c2-4bbb-ba55-4082ee9ad687"
id
"resp_0478a11112432567016ab3972dacd487d18bcc1e11826f44e5"
is_byok
false
latency
919
model_permaslug
"openai/gpt-6-luna-20260922"
provider_name
"OpenAI"
status
200
total_cost
0.00175009
cache_discount
0.00013761
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
21
adverbTagCount
0
adverbTags
(empty)
dialogueSentences
73
tagDensity
0.288
leniency
0.575
rawRatio
0
effectiveRatio
0
92.66%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2043
totalAiIsmAdverbs
3
found
0
adverb
"very"
count
2
1
adverb
"perfectly"
count
1
highlights
0
"very"
1
"perfectly"
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)
75.53%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2043
totalAiIsms
10
found
0
word
"familiar"
count
2
1
word
"weight"
count
1
2
word
"pulse"
count
2
3
word
"stomach"
count
1
4
word
"shimmered"
count
2
5
word
"warmth"
count
1
6
word
"silence"
count
1
highlights
0
"familiar"
1
"weight"
2
"pulse"
3
"stomach"
4
"shimmered"
5
"warmth"
6
"silence"
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
0
narrationSentences
200
matches
(empty)
100.00%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
1
hedgeCount
5
narrationSentences
200
filterMatches
0
"look"
hedgeMatches
0
"seemed to"
1
"began to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
251
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
31
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2041
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
24
unquotedAttributions
0
matches
(empty)
30.47%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
90
wordCount
1715
uniqueNames
11
maxNameDensity
2.39
worstName
"Rory"
maxWindowNameDensity
3.5
worstWindowName
"Rory"
discoveredNames
Rory
41
Richmond
1
Park
1
Isolde
25
Nyx
14
November
1
Fae-forged
1
Heartstone
2
Veil
2
Wardens
1
Cardiff
1
persons
0
"Rory"
1
"Isolde"
2
"Nyx"
3
"Heartstone"
4
"Wardens"
places
0
"Richmond"
1
"Park"
2
"Cardiff"
globalScore
0.305
windowScore
0.5
89.02%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
123
glossingSentenceCount
3
matches
0
"seemed painted on glass"
1
"sounded like a child trying not to be hear"
2
"appeared ahead"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
2041
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
1
totalSentences
251
matches
0
"learned that fear"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
127
mean
16.07
std
16.77
cv
1.044
sampleLengths
0
56
1
23
2
28
3
5
4
17
5
4
6
4
7
48
8
5
9
41
10
40
11
9
12
14
13
10
14
5
15
10
16
81
17
3
18
5
19
78
20
8
21
22
22
9
23
3
24
32
25
7
26
3
27
7
28
35
29
37
30
39
31
13
32
5
33
4
34
2
35
6
36
7
37
10
38
14
39
46
40
4
41
2
42
57
43
4
44
5
45
18
46
38
47
3
48
9
49
5
100.00%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
3
totalSentences
200
matches
0
"been rubbed"
1
"were furred"
2
"was gone"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
1
totalVerbs
292
matches
0
"was still passing"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
2
semicolonCount
0
flaggedSentences
2
totalSentences
251
ratio
0.008
matches
0
"Bluebells, daisies, foxgloves—flowers Rory knew, and some she didn’t, with translucent petals veined in green or a deep, bruised violet."
1
"For an instant, she thought she saw something pale inside—a curve like a bone, or a hand."
94.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1722
adjectiveStacks
1
stackExamples
0
"same awkward little chime,"
adverbCount
68
adverbRatio
0.03948896631823461
lyAdverbCount
10
lyAdverbRatio
0.005807200929152149
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
251
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
251
mean
8.13
std
5.52
cv
0.679
sampleLengths
0
10
1
16
2
30
3
6
4
17
5
5
6
15
7
8
8
5
9
7
10
10
11
4
12
4
13
13
14
13
15
6
16
16
17
5
18
9
19
10
20
18
21
4
22
7
23
15
24
18
25
9
26
8
27
6
28
8
29
2
30
5
31
10
32
9
33
25
34
3
35
14
36
7
37
15
38
6
39
2
40
3
41
5
42
8
43
20
44
17
45
13
46
20
47
6
48
2
49
22
44.42%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
14
diversityRatio
0.24302788844621515
totalSentences
251
uniqueOpeners
61
100.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
8
totalSentences
172
matches
0
"Then the world returned in"
1
"Then the shadow shifted."
2
"Then the root arch closed."
3
"Then the suspended water fell."
4
"Somewhere among the trees, the"
5
"Only bracken and tangled oak"
6
"Somewhere behind the standing stones,"
7
"Only Rory heard it."
ratio
0.047
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
38
totalSentences
172
matches
0
"They stood in a ragged"
1
"Her silver hair slid over"
2
"They shivered though the air"
3
"Their face was a suggestion"
4
"They did not look at"
5
"They watched the space between"
6
"It did not pulse."
7
"She had crossed into strange"
8
"She’d learned that fear was"
9
"She stepped between the stones."
10
"She turned away."
11
"It was not large, not"
12
"Her boots pressed into the"
13
"She hadn’t noticed it before."
14
"They moved deeper into the"
15
"Their surfaces were furred with"
16
"She snatched her hand back."
17
"It sounded like a child"
18
"She pulled it free."
19
"Its leaf-shaped edge caught the"
ratio
0.221
38.49%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
145
totalSentences
172
matches
0
"The first standing stone was"
1
"The second rose above the"
2
"They stood in a ragged"
3
"Isolde passed between them without"
4
"Her silver hair slid over"
5
"Rory stopped before the gap."
6
"They shivered though the air"
7
"Nyx stood at Rory’s shoulder,"
8
"Their face was a suggestion"
9
"They did not look at"
10
"They watched the space between"
11
"Rory’s fingers closed around the"
12
"The Fae-forged blade lay inside,"
13
"The Heartstone pendant rested against"
14
"It did not pulse."
15
"She had crossed into strange"
16
"She’d learned that fear was"
17
"Isolde glanced at her with"
18
"Rory let out a breath"
19
"She stepped between the stones."
ratio
0.843
0.00%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
0
totalSentences
172
matches
(empty)
ratio
0
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
73
technicalSentenceCount
1
matches
0
"A small sound came from the far side of the stones: a scuff, then a scrape, as if someone had dragged a heavy branch across the earth."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
21
uselessAdditionCount
0
matches
(empty)
100.00%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
21
fancyCount
3
fancyTags
0
"they whispered (whisper)"
1
"Nyx whispered (whisper)"
2
"they whispered (whisper)"
dialogueSentences
73
tagDensity
0.288
leniency
0.575
rawRatio
0.143
effectiveRatio
0.082
88.8195%