Run: 2026-03-18-01KM0AQK22A9GBG5K4QE4SKGM2

Run Details

Duration:
20.5s
Cost:
$0.018182
Provider:
OpenAI

Model input

System
You are an expert novelist with a gift for vivid, immersive prose. You write in tight third-person limited point of view with a strong narrative voice. Your prose is clean, precise, and engaging — you favor strong verbs, concrete details, and natural-sounding dialogue. You will be given a story bible (codex) containing canonical details about characters, locations, items, and lore. Use these details to ground your writing in the established world. Stay consistent with the codex. Write only the prose of the scene. Do not include titles, chapter headings, markdown formatting, or any commentary before or after the scene.
User/Human
<codex> <character id="4412" name="Aurora Carter" aliases="Rory, Laila, Aurora, Carter, Malphora" pronouns="she/her" species="Human" storyRole="Protagonist"> <eyeColor>bright blue</eyeColor> <hair>straight shoulder-length black</hair> <height>5'6"</height> <age>25</age> <scar>small crescent-shaped scar on her left wrist from a childhood accident</scar> <description>Aurora, referred to by her friends as Rory, is cool-headed, intelligent, and known for quick out-of-the-box thinking.</description> <backstory>Born in Cardiff to an Irish barrister father (Brendan Carter) and Welsh teacher mother (Jennifer Carter née Ellis), Rory reluctantly pursued Pre-Law at Cardiff University. She fled to London at the behest of her childhood friend Eva after leaving an abusive ex named Evan. By day, Rory works part-time as a delivery person for Yu-Fei Cheung's Golden Empress restaurant. She lives in a flat above Silas' bar.</backstory> </character> <character id="4415" name="Lucien Moreau" aliases="Lucien, Luc, the Frenchman" pronouns="he/him" species="Half-Demon" storyRole="Ally"> <eyeColor>heterochromatic — one amber, one black</eyeColor> <hair>slicked-back platinum blond</hair> <height>5'11"</height> <age>32</age> <cane>ivory-handled cane that conceals a thin blade</cane> <dress>tailored charcoal suits</dress> <description>An impeccably dressed fixer and information broker in London's supernatural underworld. He speaks four languages fluently.</description> <backstory>Born in Marseille to a human mother and a demon father from the realm of Avaros.</backstory> </character> <location id="858" name="Eva's Flat" aliases="Eva's place, the flat on Brick Lane" realm="Earth"> <cat>tabby cat named Ptolemy</cat> <security>three deadbolts on the front door</security> <description>A cramped one-bedroom flat above a curry house on Brick Lane, East London. Every surface is covered with books, scrolls, and research notes.</description> </location> </codex> Write a fully fleshed out scene of at least 1000 words in the romance genre. Two people who parted on complicated terms are forced together again when one shows up unannounced at the other's flat. There's history between them — attraction, hurt, and things left unsaid. Write the scene from the moment the door opens. Use the codex entries above as your world reference for characters and setting. Only include the prose of the scene without any markdown or commentary.

Model response

AI
The first knock came just as Rory was kicking off one shoe and considering whether she had enough energy left to eat standing at the sink. The second was sharper, impatient enough to make Ptolemy lift his head from the arm of the sofa and flick one tabby ear. Rory paused with one hand on the doorframe of Eva’s bedroom—her borrowed bedroom, really, since the flat on Brick Lane was too cramped for anyone to pretend it belonged to just one person. Books and loose papers crowded every surface. A stack of yellowing notes leaned perilously against a teapot no one had used in weeks. The whole place smelled faintly of curry, old paper, and the lavender candle Eva insisted was “calming,” though Rory had never found anything calming about a flame shoved into a chipped jam jar. The knocking came again. Not the police. Not a bailiff. Too measured for either. Ptolemy gave a low, offended meow and jumped down to stalk toward the front door with all the self-importance of a creature who knew every one of the three deadbolts was there for his benefit and his alone. Rory frowned. Eva wasn’t home. She’d texted hours ago that she was “doing a thing” and would be late, which meant she was either working, socializing, or, more likely, digging into some occult nonsense with people who thought bedtime was for the weak. Silas downstairs had already gone into his evening shift, the bass from the bar muffled but present through the floorboards. No one else had a reason to be here. The knocking came a fourth time, and this time there was a pattern to it. Two quick taps. A pause. One slow, deliberate knock. Her stomach tightened before her mind could tell it to. No. Absolutely not. Rory crossed the flat in three quick strides, irritation rising hot and immediate, because of course he would choose the one evening she’d managed to get home before midnight, the one evening she hadn’t spent chasing deliveries through rain-slick streets, the one evening she’d nearly convinced herself she might sleep more than four hours. She unlatched the first deadbolt, then the second. Ptolemy let out a warning chirrup and backed away as though he sensed the shape of trouble more clearly than she did. Rory looked through the peephole. Lucien Moreau stood on the other side of the door like he’d been made to occupy narrow hallways and bad decisions. Tailored charcoal suit, immaculate even in the dim light of the landing. Platinum blond hair swept back from a face too composed to be trusted. One amber eye, one black, both fixed on the peephole with the unnerving precision of a man who already knew she was looking at him. Rory drew in a breath she did not need to count as panic. He hadn’t changed much. That was the infuriating part. He looked as if the world continued to arrange itself around him, smoothing wrinkles, removing obstacles. The kind of man who stepped into rooms and made other people straighten their shoulders without realizing it. Complicated was a generous word for what they’d been. She opened the door only as far as the chain would allow. Lucien’s gaze flicked to the gap, then to her face. “You do not answer your own door politely anymore.” “Lucien.” Her voice came out flat, which was a minor miracle. “What do you want?” His mouth tilted, not quite a smile. “You wound me.” “No, I’d remember if I’d tried.” Rory kept one hand braced against the edge of the door. The chain rattled lightly between them. “How did you find this place?” “I have my methods.” “That’s not an answer.” “It is the only one you’ll get.” His gaze moved over her—too brief to be crude, too aware to be comfortable. “May I come in?” “No.” He regarded her in silence for a moment, amber eye catching what little light spilled from the hall. Then, with maddening calm, he said, “There are things outside your building that should not remain outside your building. I came to warn you.” Rory almost laughed. Almost. “You showed up unannounced at midnight after disappearing for six weeks, and your opener is I came to warn you?” His expression did not change, but something in the air did—something old and dangerous, gone before she could name it. “I did not come to discuss my manners.” “Well, congratulations. You’ve already failed.” Ptolemy decided at that exact moment to rub against Rory’s ankle, which was how she knew she’d been standing too close to the threshold for too long. Lucien’s eyes dropped to the cat and then back to her. There was the faintest softening there, absurd and involuntary. “You always did keep odd company,” he murmured. “Ptolemy likes me better than you.” The cat hissed as if to confirm it. Lucien’s lips twitched. “I see his judgment remains impeccable.” Rory gripped the door harder. Every part of her wanted to shut it in his face and pretend she hadn’t spent too many nights replaying the last time she’d seen him, when he’d left with that infuriatingly careful expression that had meant he was hiding something from her. Something important. Something that had turned her anger into a ragged, humiliating ache she hadn’t found a way to name properly since. Instead, she said, “You don’t get to barge in here like some sort of noir ghost and expect me to trust you.” “I am aware.” “Good.” “But I am asking you to.” That landed harder than she wanted it to. Not because it was dramatic—Lucien almost never wasted drama when a straight line to the jugular would do—but because his voice had changed. Lower. Less polished. There was an edge under it she didn’t hear often enough to ignore. Rory searched his face, trying to find the trick. “What’s going on?” “A ward broke two streets over an hour ago. Something followed the breach. It is not alone, and it has been asking questions.” Her pulse gave a sharp, unpleasant kick. “Asking questions about what?” “About you.” The hallway seemed to narrow. The old building creaked somewhere around them. From downstairs, laughter burst and faded beneath the throb of the bar music. Rory didn’t move. “Why would anything supernatural ask questions about me?” Lucien held her gaze. “Because someone has told it you matter.” Her throat tightened. Immediately she hated that it did, hated that every instinct in her body had gone from suspicion to calculation in the span of a breath. “That’s vague.” “It is also true.” “And you’re here alone?” “No.” She went cold. “Lucien—” A sound came from below. Not a footstep. Not exactly. A drag, faint and dry, like the scrape of claws over brick. Ptolemy’s fur rose, tail puffing as he flattened himself low. Lucien’s face sharpened. “Now would be an excellent time to let me in.” Rory glanced over her shoulder into the cluttered flat. Eva’s notes were scattered across the table in neat little clusters of doom. A kettle sat on the stove. One window stood cracked for air despite the city damp. No weapons worth mentioning. No time to summon a plan from thin air. She opened the chain and swung the door wider. Lucien stepped inside on a quiet exhale of leather and winter air, all controlled movement and contained danger. He smelled faintly of clean soap and something darker underneath, something mineral and hot, like a struck match held too close to velvet. Rory hated that she noticed. She shut the door and threw the deadbolts one after another with a speed that suggested practice. Lucien watched her do it. “You live in a fortress,” he said. “It’s Brick Lane. Everyone lives in a fortress or dies in a stupidly accessible flat.” “Comforting.” She spun to face him. “You have about ten seconds before I demand an explanation, and if you lie to me, I swear to God—” “To God?” he echoed, lifting one brow. “You sound as though you intend to invoke divine favor while threatening me in a Curry Mile rental.” “It’s called emphasis.” “It is called emotional inconsistency.” Rory stared at him. Then, because there was no reason not to, she took one step forward and jabbed a finger into the lapel of his suit. “You vanished. You left me a message so vague it was basically a threat to my patience. And now you show up at midnight telling me something is hunting me. So yes, Lucien, I am inconsistent.” His gaze dropped to her finger against his chest. For a second she thought he might move away. Instead, he stayed perfectly still, close enough that she could feel the subtle pull of his presence, the way the room seemed to organize around him even when he was being irritating. His voice came quieter. “I did not vanish.” “Really?” “I was removing a problem.” She laughed once, sharp and disbelieving. “You see, that’s exactly the kind of sentence that makes me want to hit you.” “I would prefer you did not.” “Oh, now you prefer things.” His black eye held hers. “Rory.” The use of her name—just her name, no tease, no silk over steel—hit like a hand at the back of the neck. Too intimate. Too familiar. She hated how quickly it unsettled her. For a heartbeat they only looked at each other. The cramped room seemed to shrink around the space between them. Lucien had always done this—turned tension into gravity, made every silence feel like it contained something unsaid and dangerous. When they’d been good, that had felt like being understood. When they’d been bad, it had felt like standing too close to a blade. Ptolemy broke the spell by leaping onto the table and knocking a loose stack of papers onto the floor. Rory blinked and crouched automatically to gather them, grateful for the excuse to move. Lucien bent at the same time, reaching for the same page. Their fingers brushed. It was barely contact. Barely anything. Her hand still reacted like it had been burned. Rory drew back too quickly and smacked her wrist against the corner of the table, right over the small crescent scar there. She hissed under her breath. Lucien’s head snapped up. “Are you hurt?” “It’s nothing.” He had already caught her wrist. Not roughly. Not possessively. Just enough to stop her from hiding it. His thumb hovered a fraction above the scar before settling, light and precise, over the old white crescent. Rory’s breath stalled in her chest. He was careful in a way that made her want to accuse him of tenderness, as if tenderness were not its own kind of threat. His gaze dropped to her wrist, then rose to her face. “You still have this.” Rory went very still. “Of course I do.” His thumb moved once, barely, over the scar. “I remember when you got it.” “That’s because you were there.” His expression changed. Not much. Lucien was never a man of obvious expressions. But something in his face tightened, an old memory passing through. “Yes.” The room became too quiet. Rory became acutely aware of every sound: the distant bar music downstairs, Ptolemy’s tail flicking against the wood, the soft creak of Lucien’s cane as he shifted his weight. He was so close now she could see the tiny flecks of gold in his amber eye. She pulled her wrist free before she could think better of it. “You don’t get to come here and look at me like that.” “Like what?” “Like you’re the one who’s been inconvenienced.” One corner of his mouth turned. “Rory, if I were inconvenienced, I would be much less polite about it.” That almost made her smile. Almost. She crushed it before it showed. “Tell me what’s going on,” she said. Lucien looked past her, toward the window, the thin gap in the curtains, the cluttered flat full of notes and half-finished intentions. When he spoke again, the humor had gone out of his voice entirely. “There are people asking after a name. Yours, among others. Someone has been selling information in the underworld, and I have reason to believe it points back to you.” “Why?” “Because your name was not supposed to be on any ledger I have seen.” Rory’s heart sank with a slow, heavy certainty. “What ledger?” “The one I stole.” She stared at him. Of course he’d stolen a ledger. That was exactly the sort of thing Lucien would do on a Thursday and then arrive at her door looking like a man bringing a bouquet. He saw her expression and gave the barest shrug. “You asked for honesty.” “I asked for sanity.” “I am afraid your request was more difficult.” A sound came from the stairwell outside. Not loud. Just enough to make both of them go motionless. Lucien’s hand went to the ivory handle of his cane in a smooth, instinctive motion. The shift was so practiced it made Rory’s skin prickle. Under the elegance, under the tailored suit and the cultured voice, there was the reminder of exactly what he was—a creature who could become lethal without changing posture. Rory lowered her voice. “How many are there?” “Three, perhaps four. One is faint. The rest are patient.” “Wonderful.” “You are adapting well.” She shot him a look, then reached for the kitchen drawer where Eva kept the useful things hidden beneath the useless ones. Lucien watched her retrieve a small knife, then a second, then the cheap brass talisman Eva insisted warded off “hostile energies” but which Rory suspected mostly warded off optimism. Lucien’s gaze skimmed over her bare hands, her tense shoulders, the line of her jaw. “You are not prepared.” “That’s your opinion.” “It is an objective observation.” “It’s also rude.” “It is also true.” She huffed a laugh despite herself, and immediately resented him for it. There was too much memory in the room already, too much that the sight of him dragged back without permission: his voice in her ear, his hand at the small of her back as he guided her through a crowded alley, the way he had once looked at her as though he was the only person in the city with enough sense to know she was dangerous. The worst part was that she had looked back. Outside, something scraped against the brick. Ptolemy shot under the sofa. Lucien set his cane lightly against the floor. “Listen to me carefully. If they come through the door, do not let them speak your full name.” Rory’s mouth went dry. “Why?” “Because names have power where I come from. And where some things are concerned, the power does not stop at a clever metaphor.” He was serious. Fully serious, and that was far worse than any flirtation or lie. Rory’s skin chilled. “Lucien,” she said, more quietly now, “what exactly did you bring to my flat?” Something old and tired moved through his face, too brief to name. “Trouble.” “That’s not new.” “No,” he said, and his gaze held hers with a blunt, unsettling steadiness, “but this one may be interested in you for reasons I have not yet had time to enjoy.” Despite everything, the words made a ridiculous heat flash through her. Enjoy. As if he could compartmentalize her danger into categories and still sound like he might be discussing dinner. She hated him for the effect he had on her. Hated that her pulse had begun to beat in her throat. Hated that, under the annoyance and fear, something else had begun to stir—something far more dangerous than either. Because he was here. In her flat. In her space. Close enough to touch. And if she looked at him for one more second, she might remember exactly how it felt to be wanted by someone who was also a problem. Another scrape sounded from the landing. Closer this time. Lucien turned slightly, cane angled loose in his hand, and his voice dropped to a near whisper. “Rory. When this is over, we will talk.” She let out a short, humorless breath. “You don’t get to issue appointments like threats.” “I am not threatening you.” “You’re absolutely threatening me.” His eyes flicked to her mouth, then back to her eyes. The look was so brief she might have imagined it if not for the sudden, unbearable awareness of his nearness. “No,” he said softly. “I am asking for the chance to explain myself before you decide you have already learned the worst of me.” The words lodged somewhere under her ribs. For a second she forgot the noise outside. Forgot the knives in her hand, the deadbolts, the cat under the sofa, the danger scratching its way up the stairs. All she could think about was that night he’d left, the silence after, the things she’d not asked because she’d been too angry to risk the answer. Too angry. Too hurt. Too drawn in. Rory looked at him and saw, absurdly and inconveniently, the man she had almost trusted with the softer parts of herself. Then the door handle rattled once, hard. Lucien moved first, stepping between her and the entrance as if the choice had never been in question. Rory stared at the line of his shoulders, the elegant precision of his stance, the blade hidden in the cane that he held with deceptive ease. He didn’t look back at her, but his voice came low and certain. “Stay behind me,” he said. Rory’s laugh was breathless and stunned and just a little feral. “As if.” And despite the fear tightening the air, despite the thing on the landing and the secrets between them and the ache she had spent months refusing to name, she moved into position beside him anyway. Close enough to feel the heat of him through wool and air. Close enough that, for one impossible second, the old chemistry between them sparked under the danger like a match struck in the dark. Lucien’s mouth curved faintly, without looking at her. There it was, the unbearable bastard. Outside, the knocking began again, and this time it did not sound like a request.
created_at"2026-03-18T11:19:12.207Z" 3/18/2026, 11:19:12 AM
model"openai/gpt-5.4-mini-20260317"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency4175
moderation_latency(null)
generation_time19858
tokens_prompt808
tokens_completion4908
native_tokens_prompt753
native_tokens_completion3915
native_tokens_completion_images0
native_tokens_reasoning52
native_tokens_cached0
num_media_prompt(null)
num_input_audio_prompt(null)
num_media_completion0
num_search_results(null)
origin"https://ncbench.com/"
is_byokfalse
finish_reason"stop"
native_finish_reason"completed"
usage0.01818225
router(null)
provider_responses
0
endpoint_id"9ee065b2-3d1c-43bc-bdd7-28af3b148282"
id"resp_01980438cbeab93d0169ba8a304bc48195b306cff8f5cfb9e8"
is_byokfalse
latency222
model_permaslug"openai/gpt-5.4-mini-20260317"
provider_name"OpenAI"
status200
user_agent"langchainjs-openai/1.0.0 ((node/v24.14.0; linux; x64))"
http_referer(null)
api_type"completions"
id"gen-1773832752-N1A6qN1tzE84TpDU0v5h"
upstream_id"resp_01980438cbeab93d0169ba8a304bc48195b306cff8f5cfb9e8"
total_cost0.01818225
cache_discount(null)
upstream_inference_cost0
provider_name"OpenAI"

Evaluation details

Result Evaluator Details Meta Data
100.00% Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags16
adverbTagCount2
adverbTags
0"The whole place smelled faintly [faintly]"
1"he said softly [softly]"
dialogueSentences97
tagDensity0.165
leniency0.33
rawRatio0.125
effectiveRatio0.041
81.94% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount3046
totalAiIsmAdverbs11
found
0
adverb"really"
count2
1
adverb"lightly"
count2
2
adverb"perfectly"
count1
3
adverb"quickly"
count2
4
adverb"very"
count1
5
adverb"carefully"
count1
6
adverb"slightly"
count1
7
adverb"softly"
count1
highlights
0"really"
1"lightly"
2"perfectly"
3"quickly"
4"very"
5"carefully"
6"slightly"
7"softly"
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.68% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount3046
totalAiIsms27
found
0
word"measured"
count1
1
word"stomach"
count1
2
word"absolutely"
count2
3
word"flicked"
count2
4
word"comfortable"
count1
5
word"silence"
count3
6
word"pulse"
count2
7
word"throb"
count1
8
word"velvet"
count1
9
word"comforting"
count1
10
word"echoed"
count1
11
word"could feel"
count1
12
word"silk"
count1
13
word"familiar"
count1
14
word"unsettled"
count1
15
word"tension"
count1
16
word"tenderness"
count2
17
word"weight"
count1
18
word"reminder"
count1
19
word"chilled"
count1
20
word"whisper"
count1
highlights
0"measured"
1"stomach"
2"absolutely"
3"flicked"
4"comfortable"
5"silence"
6"pulse"
7"throb"
8"velvet"
9"comforting"
10"echoed"
11"could feel"
12"silk"
13"familiar"
14"unsettled"
15"tension"
16"tenderness"
17"weight"
18"reminder"
19"chilled"
20"whisper"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches0
maxInWindow0
found(empty)
highlights(empty)
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells0
narrationSentences214
matches(empty)
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount1
hedgeCount4
narrationSentences214
filterMatches
0"feel"
hedgeMatches
0"managed to"
1"seemed to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences295
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen67
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords3036
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions32
unquotedAttributions0
matches(empty)
83.33% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions79
wordCount2379
uniqueNames11
maxNameDensity1.26
worstName"Rory"
maxWindowNameDensity2.5
worstWindowName"Rory"
discoveredNames
Rory30
Ptolemy8
Eva6
Brick1
Lane1
Moreau1
Lucien23
Thursday1
Despite1
One4
Close3
persons
0"Rory"
1"Ptolemy"
2"Eva"
3"Moreau"
4"Lucien"
5"One"
places
0"Brick"
1"Lane"
globalScore0.869
windowScore0.833
95.65% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences138
glossingSentenceCount3
matches
0"not quite a smile"
1"felt like being understood"
2"felt like standing too close to a blade"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount3036
matches(empty)
87.57% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount7
totalSentences295
matches
0"hated that it hated that every"
1"hated that she"
2"was that she"
3"Hated that her"
4"Hated that, under"
5"was that night"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs158
mean19.22
std18.66
cv0.971
sampleLengths
026
123
289
34
410
538
672
724
810
93
1054
118
1222
135
1471
1513
1643
179
1812
1919
2015
2110
2229
234
244
2525
261
2742
2824
2928
305
3147
328
336
348
359
3670
3722
383
391
406
4147
4212
4323
4411
452
4625
4711
4811
4930
100.00% Passive voice overuse
Target: ≤2% passive sentences
passiveCount2
totalSentences214
matches
0"been made"
1"been burned"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount4
totalVerbs400
matches
0"was kicking"
1"was looking"
2"was hiding"
3"was being"
65.38% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount10
semicolonCount0
flaggedSentences8
totalSentences295
ratio0.027
matches
0"Rory paused with one hand on the doorframe of Eva’s bedroom—her borrowed bedroom, really, since the flat on Brick Lane was too cramped for anyone to pretend it belonged to just one person."
1"“It is the only one you’ll get.” His gaze moved over her—too brief to be crude, too aware to be comfortable."
2"His expression did not change, but something in the air did—something old and dangerous, gone before she could name it."
3"Not because it was dramatic—Lucien almost never wasted drama when a straight line to the jugular would do—but because his voice had changed."
4"The use of her name—just her name, no tease, no silk over steel—hit like a hand at the back of the neck."
5"Lucien had always done this—turned tension into gravity, made every silence feel like it contained something unsaid and dangerous."
6"Under the elegance, under the tailored suit and the cultured voice, there was the reminder of exactly what he was—a creature who could become lethal without changing posture."
7"Hated that, under the annoyance and fear, something else had begun to stir—something far more dangerous than either."
83.79% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2392
adjectiveStacks0
stackExamples(empty)
adverbCount140
adverbRatio0.05852842809364549
lyAdverbCount40
lyAdverbRatio0.016722408026755852
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences295
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences295
mean10.29
std9.37
cv0.91
sampleLengths
026
123
233
37
416
533
64
73
83
94
1038
112
123
1338
1420
159
1615
173
182
194
2010
211
222
2354
248
2522
265
2721
2812
2913
3025
3113
324
335
3416
3518
369
3712
3810
399
4011
414
427
433
4417
456
466
474
484
4921
42.88% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats21
diversityRatio0.2677966101694915
totalSentences295
uniqueOpeners79
100.00% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount12
totalSentences190
matches
0"Too measured for either."
1"Then, with maddening calm, he"
2"Instead, she said,"
3"Immediately she hated that it"
4"Then, because there was no"
5"Instead, he stayed perfectly still,"
6"Just enough to stop her"
7"Of course he’d stolen a"
8"Just enough to make both"
9"Fully serious, and that was"
10"Too drawn in."
11"Then the door handle rattled"
ratio0.063
100.00% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount49
totalSentences190
matches
0"She’d texted hours ago that"
1"Her stomach tightened before her"
2"She unlatched the first deadbolt,"
3"He hadn’t changed much."
4"He looked as if the"
5"She opened the door only"
6"Her voice came out flat,"
7"His mouth tilted, not quite"
8"His gaze moved over her—too"
9"He regarded her in silence"
10"His expression did not change,"
11"Her pulse gave a sharp,"
12"Her throat tightened."
13"She went cold."
14"She opened the chain and"
15"He smelled faintly of clean"
16"She shut the door and"
17"She spun to face him."
18"he echoed, lifting one brow"
19"His gaze dropped to her"
ratio0.258
100.00% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount134
totalSentences190
matches
0"The first knock came just"
1"The second was sharper, impatient"
2"Rory paused with one hand"
3"Books and loose papers crowded"
4"A stack of yellowing notes"
5"The whole place smelled faintly"
6"The knocking came again."
7"Ptolemy gave a low, offended"
8"Eva wasn’t home."
9"She’d texted hours ago that"
10"Silas downstairs had already gone"
11"The knocking came a fourth"
12"Her stomach tightened before her"
13"Rory crossed the flat in"
14"She unlatched the first deadbolt,"
15"Ptolemy let out a warning"
16"Rory looked through the peephole."
17"Lucien Moreau stood on the"
18"Platinum blond hair swept back"
19"Rory drew in a breath"
ratio0.705
52.63% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount2
totalSentences190
matches
0"As if he could compartmentalize"
1"Because he was here."
ratio0.011
59.80% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences86
technicalSentenceCount10
matches
0"Ptolemy gave a low, offended meow and jumped down to stalk toward the front door with all the self-importance of a creature who knew every one of the three dead…"
1"He looked as if the world continued to arrange itself around him, smoothing wrinkles, removing obstacles."
2"The kind of man who stepped into rooms and made other people straighten their shoulders without realizing it."
3"Ptolemy decided at that exact moment to rub against Rory’s ankle, which was how she knew she’d been standing too close to the threshold for too long."
4"Every part of her wanted to shut it in his face and pretend she hadn’t spent too many nights replaying the last time she’d seen him, when he’d left with that in…"
5"Something that had turned her anger into a ragged, humiliating ache she hadn’t found a way to name properly since."
6"He was careful in a way that made her want to accuse him of tenderness, as if tenderness were not its own kind of threat."
7"That was exactly the sort of thing Lucien would do on a Thursday and then arrive at her door looking like a man bringing a bouquet."
8"There was too much memory in the room already, too much that the sight of him dragged back without permission: his voice in her ear, his hand at the small of he…"
9"As if he could compartmentalize her danger into categories and still sound like he might be discussing dinner."
100.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags16
uselessAdditionCount0
matches(empty)
100.00% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags9
fancyCount1
fancyTags
0"he murmured (murmur)"
dialogueSentences97
tagDensity0.093
leniency0.186
rawRatio0.111
effectiveRatio0.021
90.2885%