NC Bench
Overview
About
Tests
Categories
Models
Vendors
Compare
Run: 2026-10-27-01M5YGPRW4W2B9BGQ38MQV791C
Run Details
Model:
Kimi K3.1 Pro (Reasoning, Max)
Test:
Bad Writing Habits
Scenario:
Fantasy: entering an ancient ruin
Duration:
12m 48s
Cost:
$0.214533
Provider:
Moonshot AI
Evaluation summary
Score
Evaluator
Details Link
100.00%
Adverbs in dialogue tags
(details)
87.61%
AI-ism adverb frequency
(details)
100.00%
AI-ism character names
(details)
100.00%
AI-ism location names
(details)
55.38%
AI-ism word frequency
(details)
100.00%
Cliché density
(details)
100.00%
Emotion telling (show vs. tell)
(details)
88.21%
Filter word density
(details)
100.00%
Gibberish response detection
(details)
100.00%
Markdown formatting overuse
(details)
100.00%
Missing dialogue indicators (quotation marks)
(details)
56.41%
Name drop frequency
(details)
93.18%
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)
93.76%
Passive voice overuse
(details)
100.00%
Past progressive (was/were + -ing) overuse
(details)
100.00%
Em-dash & semicolon overuse
(details)
100.00%
Purple prose (modifier overload)
(details)
100.00%
Repeated phrase echo
(details)
100.00%
Sentence length variance
(details)
62.09%
Sentence opener variety
(details)
100.00%
Adverb-first sentence starts
(details)
100.00%
Pronoun-first sentence starts
(details)
75.62%
Subject-first sentence starts
(details)
93.75%
Subordinate conjunction sentence starts
(details)
100.00%
Technical jargon density
(details)
100.00%
Useless dialogue additions
(details)
91.18%
Dialogue tag variety (said vs. fancy)
(details)
93.2395%
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 cold left Aurora’s fingers
between one step and the next. That, more than the wildflowers, told her they had crossed. Behind her, Richmond Park lay in frozen shades of grey, its mud hardened beneath the winter solstice sky. Ahead, foxgloves nodded among bluebells beneath oaks so old that their trunks had split into hollows. Warm earth softened under her boots.
The air smelled of crushed
green stems and rain that had fallen somewhere else.
Isolde went first, her silver
hair stirring though there was no wind.
It nearly brushed the back
of her knees as she walked between the ancient standing stones.
Nyx followed, narrowing to a
stripe of darkness no thicker than Aurora’s little finger before rising beside her in almost-human form.
Their faint violet eyes surveyed
the clearing. “How long have we been walking?” Aurora asked.
Isolde glanced up through the
woven branches. “Long enough for the grove to notice you. Not long enough for it to choose.” “Choose what?” “Whether you are a guest or a seed.” “I would prefer to be neither,” Nyx said.
Their voice reached Aurora like
a
whisper
carried from much farther away. She checked her
watch
.
The second hand was still
ticking, but the minute hand stood six minutes earlier than it had at the boundary.
She put it away before
it could do anything more imaginative.
Their path wound deeper between
the oaks.
Aurora’s boots left dark impressions
in the soil.
Isolde’s feet left nothing at
all, not even a disturbance in the petals scattered across the path. Of Nyx’s passage there was only an occasional deepening of the shade beneath the trees. Birdsong moved ahead of them. Three clear notes, always the same, always just beyond the next turn. When Aurora stopped, the song continued for half a beat before stopping too.
The path ended in an
unremarkable circle of grass. Aurora had expected an altar, perhaps, or a tree with a face. Instead there were white flowers, a fallen branch, and a patch of empty air at which both Isolde and Nyx
were staring
. Beneath her shirt, the Heartstone gave a faint
pulse
of
warmth
.
Aurora touched it through the
fabric.
The crimson stone, no larger
than her thumbnail, had been cool when they entered the grove.
Now its silver chain seemed
to tremble against her skin. “There,” Nyx said. “Very helpful,” Aurora said. “I can see
absolutely
nothing.” “The Veil is torn. The solstice has made it thin. Someone has made the thinness useful.” Aurora picked up a fallen oak leaf and
flicked
it towards the empty space. The leaf vanished. A moment later came a tiny, dry tick, as though it had landed on stone a long way away. Nyx turned their violet eyes on her. “That was unwise.” “But informative.” The pendant
pulsed
again, out of time with her heartbeat. “Can we close it?” she asked. “Not while it is held open from the other side,” Isolde said. Nyx pressed their long fingers into the emptiness. For an instant, nothing happened.
Then a seam of amber
light appeared, and warm air spilled through it, heavy with baking bread, crushed grapes, woodsmoke and spices Aurora could not name. Her
stomach
tightened painfully. Isolde’s pale lavender eyes settled on her. “Eat nothing. Drink nothing. Accept no gift that bears your name.” Aurora thought of the plain box in which the pendant had arrived, her name written across it and no sender given. “You might have mentioned that last one earlier.” “I was not asked.” “We can wait here,” Nyx said, “and learn what comes through.” Aurora looked back the way they had come. The grove
seemed deeper than it had a few minutes ago, the standing stones lost behind layers of leaves
. “Or we find out what’s holding the door open.”
She stepped through before caution
could produce a better argument. The light did not dazzle her.
It settled over her skin
like
warmth
from an oven. Then she saw the sky. Amber covered everything, horizon to horizon, without sun or cloud.
It was not the colour
of sunset. There was no sense that it had ever been anything else. The light gave the white stone beneath her boots the mellow glow of old honey.
She stood at the top
of a stair wide enough for twenty people to walk abreast.
Its risers had been worn
into shallow curves by centuries of feet. Below it, vineyards and orchards descended in broad terraces towards a city of copper roofs and slender chimneys. Gardens interrupted the slopes: knots of silver herbs, dark pools rimmed with
mosaic
, trees whose branches carried blossom, green fruit and ripe fruit all at once. “Dymas,” Nyx whispered. Aurora repeated the name silently. It was not an explanation. “You’ve been here before?”
she asked Isolde
. The seer’s gaze moved over the impossible orchards. “Not here.” From Isolde, that
was almost reassuring
. They descended. The grapes nearest the path were translucent, each holding a pinpoint of amber fire. When the warm breeze moved through the vines, the fruit struck together with a faint
crystalline
music. Farther down, a pear dropped from its branch. Before it reached the ground, its skin loosened into a dozen white moths.
They whirled upwards, and wherever
they settled among the branches, new blossom opened. Aurora stopped to
watch
despite herself. Every terrace carried some fragment of a distant feast: laughter, the chime of glasses, knives working steadily against boards. Yet no matter how far they walked, the sounds remained just beyond the next wall. The gardens did not merely smell good. They smelled specific. Ginger and scallion oil striking a hot pan in the Golden Empress’s kitchen. Burnt sugar cracking beneath a spoon. Apples cooked with too much cinnamon, the way she had liked them as a child. Aurora had missed lunch.
Her body offered this as
an explanation. She did not believe it.
She curled her fingers around
the cold hilt of the dagger at her hip until the hunger loosened. The first person they saw
was pruning
a tree laden with black fruit.
He wore chef’s whites of
an old-fashioned cut, with a high collar and dark bone buttons. Fine lines of writing encircled his wrists.
Whenever his shears stopped, the
writing shifted. He glanced at the three of them and went still. “You’re not in service,” he said. “Not today,” Aurora said. He studied her more closely. “Earth?” “London.” “London,”
he repeated, as though testing a fruit for ripeness
. “I worked in a hotel by the river. Before the fire.” His hand passed beneath the shadow of a branch and became briefly translucent. “And after?” Aurora asked. The shears snipped. “I was offered another kitchen. Excellent terms. Very clear about the equipment.” The writing around his wrists tightened. “What about the rest?” “Less clear.” A bell sounded far below them. Its note was deep and round, and somehow it made Aurora
think
of melted butter. The chef snatched up his basket. “First bell,” he said. “Prince Belphegor’s kitchens are waking.” He glanced at Aurora, then at the empty path behind her. “Don’t sit. Whatever you see, whatever they call you, don’t sit.” He hurried between the trees. Aurora heard his shears snipping for several seconds after he had disappeared. The place beyond the orchard made the great stair
look
young. Its upper rim had broken in places, and trees had rooted in the cracks. Below it, hundreds of stone tables descended in concentric rings towards a kitchen large enough for fifty cooks. Copper pans hung above cold hearths. Marble counters surrounded chopping blocks so scarred by knives that their surfaces had become grain. Aurora’s first, absurd relief
was that the
amphitheatre had not
been built
for blood. It had
been built
for food. She
tried to
imagine chefs labouring below while crowds ate and judged from above. The image might have been impressive, even beautiful, if dust had covered the place.
Instead, the nearest tables were
laid with spotless linen. Crystal glasses caught the amber light. Napkins stood folded into shapes resembling swans, flowers and small, patient flames. The Heartstone had not cooled.
By now they had left
the portal far above them, yet its
pulse
quickened
as they descended between the tables. “It’s guiding us,” Aurora said. “No,” Isolde replied. “It is agreeing with something.” Nyx said nothing. Their silhouette had grown thinner, its edges reluctant to hold against the sunless light. At the lowest tier, one table stood apart from the others. It had
been laid
for one. Aurora knew before she reached it. Knowing did nothing to prepare her for the sight of the small card propped against the glass. Aurora Carter. The black ink shone wetly. Beneath her name, in smaller letters, were four more words. Bearer of the Heartstone. The chair behind the setting was tall and cushioned, its wooden back worn smooth by age. It looked
comfortable
. That was the worst thing about it. “Step away,” Nyx whispered. Aurora did. “Who sent it?” she asked. Her voice remained steady, though her hand had closed hard around the pendant. “Not every invitation is written by the host,” Isolde said. “And not every answer is useful.” “No.” They went back the way they had come. The arch was still there. So were the seven steps beyond it. They climbed them and emerged on the opposite side of the amphitheatre, one tier closer to the waiting table. Nyx dissolved at once. Their shadow streamed into the darkness beneath a broken column. A heartbeat later, it poured out of another shadow beside Aurora and gathered itself into solid form. “No,” they said
softly
. A second bell
began to
ring below them. Other bells joined it, bright and orderly. Isolde watched the empty arches. “A guest may wander, provided she wanders towards her place.” “In plain language.” “It wants you seated.” Aurora forced herself to stop looking at the arches. Guests used arches. Guests used stairs broad enough to show off a gown. She had spent enough Friday nights carrying delivery bags through restaurant back doors to
know that food
travelled differently. The important routes were usually narrow, ugly and hidden behind something decorative. She searched the lowest tier for wear rather than doorways: a scuff, a draught, some practical detail no designer had
managed to
conceal. There. A thread of steam escaped beneath a
marble
counter. On the floor nearby, a crescent of scratches marked where something heavy had
been dragged
aside. Aurora dropped to her knees and found a bronze ring set flush with the stone. “Help me.” Nyx closed their hands around it. The slab lifted an inch, and golden writing flared across its surface. Nyx released it at once, their fingers unravelling into smoke before
slowly
knitting themselves back together. They pressed one hand towards the light, then withdrew. “It has no shadow to enter.” The bells grew louder. Aurora drew Isolde’s gift. The moonsilver dagger was slender and leaf-shaped, cold enough to ache against her palm. There was no moonlight in Dymas to wake its glow, but the golden writing shivered when its point touched the stone. Aurora did not hack at the ward. She set the blade against a single line and drew it
gently
sideways,
as though opening a seam
. The light parted with a sound like ice breaking on a pond. Together, she and Nyx lifted the slab. Below it, an iron stair descended into a narrow passage. Steam rolled upwards, carrying the blessedly ordinary smells of hot metal, soap and onions. “Not the way out,” Nyx said. “No,” Aurora said. “The way they don’t expect us to go.” Nyx went first, pouring down the steps as a ribbon of darkness. Isolde followed, her silver hair briefly luminous in the
gloom
. Aurora put one boot on the top stair. Behind her, cutlery whispered against
porcelain
.
Then the waiting chair scraped
back from the table with unhurried, almost courteous care. She did not turn around. She ducked through the opening and pulled the slab down above her, but not before she heard a hundred other chairs answer.
created_at
"2026-10-27T11:07:40.817Z"
10/27/2026, 11:07:40 AM
model
"moonshotai/kimi-k3.1-pro-20261023"
app_id
182717
external_user
(null)
streamed
true
cancelled
false
latency
2276
moderation_latency
(null)
generation_time
767861
tokens_prompt
1547
tokens_completion
23432
native_tokens_prompt
1629
native_tokens_completion
21404
native_tokens_completion_images
(null)
native_tokens_reasoning
18757
native_tokens_cached
1536
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
"stop"
service_tier
(null)
usage
0.2145332
router
(null)
user_agent
"langchainjs-openai/1.0.0 ((node/v24.22.1; linux; x64))"
http_referer
(null)
request_id
"req-1793099260-ubcHhVfFzgNYjQAkr0sv"
session_id
(null)
preset_id
(null)
api_type
"completions"
id
"gen-1793099260-Afh3BHOULkeYjk7J0Wop"
upstream_id
"chatcmpl-6ae085fd07ae37d6f7a4cb1e"
provider_responses
0
endpoint_id
"a3fafaac-f097-4ef1-86b3-842854dad5c6"
id
"chatcmpl-6ae085fd07ae37d6f7a4cb1e"
is_byok
false
latency
2276
model_permaslug
"moonshotai/kimi-k3.1-pro-20261023"
provider_name
"Moonshot AI"
status
200
total_cost
0.2145332
cache_discount
0.0027648
upstream_inference_cost
0
provider_name
"Moonshot AI"
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
23
adverbTagCount
1
adverbTags
0
"they said softly [softly]"
dialogueSentences
51
tagDensity
0.451
leniency
0.902
rawRatio
0.043
effectiveRatio
0.039
87.61%
AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount
2017
totalAiIsmAdverbs
5
found
0
adverb
"very"
count
2
1
adverb
"softly"
count
1
2
adverb
"slowly"
count
1
3
adverb
"gently"
count
1
highlights
0
"very"
1
"softly"
2
"slowly"
3
"gently"
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)
55.38%
AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount
2017
totalAiIsms
18
found
0
word
"whisper"
count
1
1
word
"pulse"
count
2
2
word
"warmth"
count
2
3
word
"absolutely"
count
1
4
word
"flicked"
count
1
5
word
"pulsed"
count
1
6
word
"stomach"
count
1
7
word
"mosaic"
count
1
8
word
"crystalline"
count
1
9
word
"marble"
count
2
10
word
"crystal"
count
1
11
word
"quickened"
count
1
12
word
"comfortable"
count
1
13
word
"gloom"
count
1
14
word
"porcelain"
count
1
highlights
0
"whisper"
1
"pulse"
2
"warmth"
3
"absolutely"
4
"flicked"
5
"pulsed"
6
"stomach"
7
"mosaic"
8
"crystalline"
9
"marble"
10
"crystal"
11
"quickened"
12
"comfortable"
13
"gloom"
14
"porcelain"
100.00%
Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches
0
maxInWindow
0
found
(empty)
highlights
(empty)
100.00%
Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells
0
narrationSentences
183
matches
(empty)
88.21%
Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount
3
hedgeCount
4
narrationSentences
183
filterMatches
0
"watch"
1
"think"
2
"look"
hedgeMatches
0
"seemed to"
1
"tried to"
2
"began to"
3
"managed to"
100.00%
Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences
211
gibberishSentences
0
adjustedGibberishSentences
0
longSentenceCount
0
runOnParagraphCount
0
giantParagraphCount
0
wordSaladCount
0
repetitionLoopCount
0
controlTokenCount
0
repeatedSegmentCount
0
maxSentenceWordsSeen
26
ratio
0
matches
(empty)
100.00%
Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans
0
markdownWords
0
totalWords
2017
ratio
0
matches
(empty)
100.00%
Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions
21
unquotedAttributions
0
matches
(empty)
56.41%
Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions
73
wordCount
1763
uniqueNames
11
maxNameDensity
1.87
worstName
"Aurora"
maxWindowNameDensity
3
worstWindowName
"Aurora"
discoveredNames
Aurora
33
Richmond
1
Park
1
Isolde
13
Nyx
17
Heartstone
3
Golden
1
Empress
1
Carter
1
Friday
1
Dymas
1
persons
0
"Aurora"
1
"Isolde"
2
"Nyx"
3
"Heartstone"
4
"Empress"
5
"Carter"
places
0
"Richmond"
1
"Park"
2
"Golden"
3
"Dymas"
globalScore
0.564
windowScore
0.667
93.18%
Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences
132
glossingSentenceCount
3
matches
0
"seemed deeper than it had a few minutes ago, the standing stones lost behind layers of leaves"
1
"as though testing a fruit for ripeness"
2
"as though opening a seam"
100.00%
"Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches
0
per1kWords
0
wordCount
2017
matches
(empty)
100.00%
Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount
2
totalSentences
211
matches
0
"was that the"
1
"know that food"
100.00%
Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs
121
mean
16.67
std
14.75
cv
0.885
sampleLengths
0
11
1
10
2
54
3
56
4
8
5
22
6
2
7
8
8
20
9
35
10
47
11
30
12
9
13
34
14
11
15
32
16
3
17
9
18
16
19
14
20
22
21
10
22
2
23
10
24
6
25
12
26
39
27
4
28
18
29
29
30
4
31
11
32
27
33
9
34
10
35
21
36
43
37
72
38
3
39
10
40
7
41
10
42
6
43
67
44
6
45
34
46
44
47
16
48
18
49
13
93.76%
Passive voice overuse
Target: ≤2% passive sentences
passiveCount
6
totalSentences
183
matches
0
"been worn"
1
"been built"
2
"been built"
3
"were laid"
4
"been laid"
5
"been dragged"
100.00%
Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount
4
totalVerbs
290
matches
0
"was still ticking"
1
"were staring"
2
"was almost reassuring"
3
"was pruning"
100.00%
Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount
0
semicolonCount
0
flaggedSentences
0
totalSentences
211
ratio
0
matches
(empty)
100.00%
Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount
1766
adjectiveStacks
0
stackExamples
(empty)
adverbCount
64
adverbRatio
0.0362400906002265
lyAdverbCount
18
lyAdverbRatio
0.010192525481313703
100.00%
Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences
211
echoCount
0
echoWords
(empty)
100.00%
Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences
211
mean
9.56
std
5.44
cv
0.569
sampleLengths
0
11
1
10
2
18
3
16
4
6
5
14
6
12
7
16
8
21
9
7
10
8
11
7
12
15
13
2
14
8
15
8
16
12
17
4
18
20
19
11
20
7
21
8
22
17
23
15
24
5
25
12
26
13
27
9
28
12
29
22
30
11
31
6
32
16
33
10
34
3
35
4
36
5
37
16
38
14
39
3
40
19
41
7
42
3
43
2
44
10
45
6
46
12
47
8
48
5
49
26
62.09%
Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats
4
diversityRatio
0.38388625592417064
totalSentences
211
uniqueOpeners
81
100.00%
Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount
6
totalSentences
160
matches
0
"Instead there were white flowers,"
1
"Then a seam of amber"
2
"Then she saw the sky."
3
"Instead, the nearest tables were"
4
"By now they had left"
5
"Then the waiting chair scraped"
ratio
0.038
100.00%
Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount
44
totalSentences
160
matches
0
"It nearly brushed the back"
1
"Their faint violet eyes surveyed"
2
"Their voice reached Aurora like"
3
"She checked her watch."
4
"She put it away before"
5
"Their path wound deeper between"
6
"Her stomach tightened painfully."
7
"She stepped through before caution"
8
"It settled over her skin"
9
"It was not the colour"
10
"She stood at the top"
11
"Its risers had been worn"
12
"It was not an explanation."
13
"she asked Isolde"
14
"They whirled upwards, and wherever"
15
"They smelled specific."
16
"Her body offered this as"
17
"She did not believe it."
18
"She curled her fingers around"
19
"He wore chef’s whites of"
ratio
0.275
75.62%
Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount
123
totalSentences
160
matches
0
"The cold left Aurora’s fingers"
1
"That, more than the wildflowers,"
2
"The air smelled of crushed"
3
"Isolde went first, her silver"
4
"It nearly brushed the back"
5
"Nyx followed, narrowing to a"
6
"Their faint violet eyes surveyed"
7
"Isolde glanced up through the"
8
"Their voice reached Aurora like"
9
"She checked her watch."
10
"The second hand was still"
11
"She put it away before"
12
"Their path wound deeper between"
13
"Aurora’s boots left dark impressions"
14
"Isolde’s feet left nothing at"
15
"Birdsong moved ahead of them."
16
"The path ended in an"
17
"Aurora had expected an altar,"
18
"Aurora touched it through the"
19
"The crimson stone, no larger"
ratio
0.769
93.75%
Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount
3
totalSentences
160
matches
0
"Now its silver chain seemed"
1
"Before it reached the ground,"
2
"Whenever his shears stopped, the"
ratio
0.019
100.00%
Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences
86
technicalSentenceCount
2
matches
0
"A moment later came a tiny, dry tick, as though it had landed on stone a long way away."
1
"Nyx released it at once, their fingers unravelling into smoke before slowly knitting themselves back together."
100.00%
Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags
23
uselessAdditionCount
1
matches
0
"he repeated, as though testing a fruit for ripeness"
91.18%
Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags
22
fancyCount
3
fancyTags
0
"Nyx whispered (whisper)"
1
"he repeated (repeat)"
2
"Nyx whispered (whisper)"
dialogueSentences
51
tagDensity
0.431
leniency
0.863
rawRatio
0.136
effectiveRatio
0.118
93.2395%