Run: 2026-03-06-01KK1H3KV25CD98C5GP1NPYD6Q

Run Details

Model:
GPT-5.4
Duration:
1m 46s
Cost:
$0.063293
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 deadbolt scraped back, then the second, then the third. Aurora kept her hand on the chain a moment longer and peered through the narrow gap with all the suspicion London had taught her. For a second she thought the corridor light was playing tricks on her. Then Lucien Moreau lifted his gaze to hers, one eye amber as old whisky, the other black and unreadable, and the breath snagged hard in her chest. He looked exactly as memory had preserved him and nothing like it. Platinum hair slicked neatly away from a face too composed to be honest. Charcoal suit cut close through the shoulders. Ivory-handled cane in one gloved hand. Rain darkened the wool at the edges and left a fine sheen on him, as if the night had tried to claim him and failed. “Aurora,” he said. No one said her full name quite like that. As if it were something expensive he had no business touching. She tightened her fingers on the door. “You’ve got a nerve.” His mouth bent, not quite a smile. “That is not a no.” Behind her, Ptolemy launched himself off a stack of photocopies and landed on the floor with a thump of offended dignity. Somewhere in the flat a kettle clicked as it cooled. The air smelled of damp paper, cardamom from the curry house downstairs, and the sandalwood candle Eva swore kept bad spirits away and mostly just made everything smell like a haunted yoga studio. Rory did not open the door wider. “What are you doing here?” Lucien’s expression stayed mild, but she knew him too well now to trust mild. Mild was what he wore over blood and bargains and ten different contingency plans. “I need to come in.” “That’s not an answer.” “A better answer is less suited to a hallway.” His gaze flicked past her shoulder into the flat, taking in what little he could through the gap. “And I would rather not discuss sensitive matters within earshot of your neighbors.” “They’re too busy screaming at each other over whose turn it is to buy coriander.” “Even so.” Her heart was beating too fast, which annoyed her on principle. It had no right. Not after the last time she’d seen him. That had been three months ago in a narrow alley in Soho with demon blood drying black on brick, her pulse roaring in her ears, and Lucien standing half in shadow telling her, very coolly, that for her own safety it would be best if she stayed out of his affairs. As if she were some civilian he’d accidentally involved, not the woman who’d patched his shoulder in her bathroom sink, not the one he had kissed once—only once, because once had already been dangerous enough—and then looked at as if he regretted wanting her. She had told him to go to hell. He had said, with that awful, elegant restraint of his, “I am trying very hard not to.” Then he’d left. Now here he was on Brick Lane, rain on his collar and old damage in his eyes. Rory slid the chain free with a hard jerk and opened the door. “If you’ve brought trouble to Eva’s flat, I’m pushing you down the stairs.” “I would expect nothing less.” He stepped inside with the faintest limp, the cane tapping once on the warped floorboards. Up close the signs were there. A tightness around his mouth. The slight drag of his right leg. The pallor under his skin. He smelled of rain, expensive cologne, and something metallic beneath it that set every nerve in her body on edge. Blood. She shut the door quickly and threw all three deadbolts before turning back to him. The flat seemed to shrink around his presence. Eva’s place was always cramped, but Lucien made small spaces feel strategic. Books towered on every available surface. Open grimoires lay face-down beside cold mugs of tea. Research notes papered the tiny table in the sitting room and spilled onto the sofa in precarious drifts. Ptolemy circled Lucien’s polished shoes, tail lashing, then decided against affection and retreated under a chair. Lucien stood very still in the middle of the chaos, immaculate despite the rain, as if disorder simply arranged itself respectfully around him. “You’re hurt,” Rory said. “It is not severe.” “Right. And I’m six foot three.” “A charming aspiration.” Her jaw tightened. “Don’t.” Something shifted in his face at that—small, nearly invisible, but real. “No,” he said quietly. “I suppose I have not earned banter.” That was almost enough to throw her off balance. Lucien apologizing was like seeing Buckingham Palace blink. She folded her arms. “Start talking.” He looked toward the one narrow window, black with rain. “I was followed.” Every muscle in her body sharpened. “By what?” “I am still determining that.” “That’s comforting.” “It was not my intention to come here.” “Again, not comforting.” His fingers flexed once on the cane. The glove on his right hand was torn at the knuckles. “I needed a warded threshold nearby that would not be obvious to those looking for me. Your friend’s flat met the criteria.” Rory stared at him. “You used Eva’s home as a hideout because it was convenient?” “No.” For the first time there was edge in his voice. “Because I trust your wards, and because there are very few places in this city where I believed I might knock and not have the door shut in my face before I could explain.” She laughed once, sharp and humorless. “That is an extremely flattering way to admit you assumed I’d still help you.” “I did not assume. I gambled.” “On me.” “Yes.” She should have hated the answer. Instead something warm and treacherous moved under her ribs. She saw it then, the way he was holding himself too upright, as if posture alone could keep him together. A dark wetness had begun to spread beneath the line of his suit jacket at his side. “Oh, for God’s sake,” she muttered, striding toward him. “Sit down.” “Aurora—” “Sit.” He looked as if he might argue. Then his shoulders eased by a fraction and he lowered himself onto the edge of the sofa, carefully shifting a stack of Eva’s notes with the handle of his cane. Even wounded, he sat like a man receiving guests at an embassy. Rory crouched in front of him and pulled back the side of his jacket before he could stop her. The white of his shirt was soaked crimson at the ribs. Her stomach dropped. “Not severe, my arse.” “It missed anything essential.” “That’s your medical opinion?” “It is my continued consciousness.” She shot him a glare and got to her feet. “Don’t move.” “In my current state, the instruction seems redundant.” She ignored him and crossed to Eva’s tiny kitchenette, yanking open drawers until she found the first-aid tin crammed between spare candles and a packet of fennel seeds. She grabbed a clean tea towel, a bottle of vodka that was either for disinfecting or Russian courage, and came back. Lucien was watching her with that unnerving steadiness of his, as if every brisk movement she made was something worth cataloguing. It got under her skin. It always had. “Unbutton your shirt,” she said. One elegant brow lifted. “Don’t be disgusting,” she snapped. “I need to see the wound.” “I was not being disgusting.” “You were thinking about it.” “Now,” he said, “I am.” Heat flashed up her neck. Irritation was safer than the alternative, so she clung to it. “You vanish for three months, turn up bleeding on my best friend’s sofa, and choose now to be charming?” His gaze held hers. “It is less a choice than a failing.” That would have been funny if the room weren’t so tight with old feeling. He set the cane aside and unbuttoned his jacket, then his waistcoat with fingers that were steadier than they ought to be. When he reached for the shirt, Rory caught his hand and brushed it aside. “I’ll do it.” The words came out quieter than she meant them to. For a beat neither of them moved. Then Lucien let his hand fall. She undid the buttons one by one. Crisp cotton. Warm skin beneath. Her knuckles brushed the firm plane of his stomach and the breath in his chest changed, just slightly. She hated that she noticed. Hated more that he knew she noticed. When she opened the shirt enough to expose the wound, her mouth flattened. It was a slash more than a stab, shallow at one end and deeper where whatever blade had cut him had bitten and dragged. Fresh blood welled sluggishly from it. “Hold this.” She pressed the folded tea towel to his side. He obeyed without complaint, which worried her more than if he’d argued. Rory poured vodka over another cloth. “This is going to sting.” “I have endured worse.” “Congratulations.” She cleaned the wound anyway. Lucien hissed once through his teeth, and that tiny sound did something savage to her. He was too controlled, always. Any crack in it felt intimate. “It was a blade?” she asked. “Yes.” “Human?” “No.” That did not narrow much down in London. She glanced up. “Who wants you dead this week?” “A disappointingly long list.” “Lucien.” He exhaled. “I took possession of an object several parties would prefer remain unaccounted for.” “An object.” “Yes.” “You really know how to make a woman feel included.” A shadow crossed his expression. “I was trying to keep you away from this.” “There it is.” She sat back on her heels, cloth in hand. “That line again.” His jaw set. “Because it remains true.” “And because you still think you get to decide what I can handle.” “No.” The word came low and immediate. “Because I know exactly what you can handle, and I know what it costs you after.” That landed harder than she expected. The flat went very quiet except for the radiator ticking in the corner and the rain needling the window. Rory looked down at the blood on her fingers. Small crescent scar white against her left wrist as she reached for gauze. “You don’t get to disappear and then pretend that was noble.” Lucien did not answer at once. When he did, his voice was stripped clean of irony. “I know.” She taped the bandage down with brisk, efficient motions that were a little rougher than necessary. “Do you?” “Yes.” “Because from where I was standing, it looked a lot like cowardice dressed as sacrifice.” He flinched. Barely. She saw it anyway. Good, some bitter part of her thought. Let him feel something. “I was not afraid for myself,” he said. Rory laughed under her breath. “That’s meant to comfort me?” “It is meant to be honest.” She tied off the last strip of bandage and sat back, suddenly aware of how close she was. The spread of his knees bracketed her on the worn rug. His shirt hung open under her hands. His skin was warm. The pulse at the base of his throat beat steady and strong, though she knew enough now to hear strain hidden under it. For one dangerous second memory rose up whole: his hand cupping the back of her neck in that alley, the rough brick at her spine, rainwater dripping from a fire escape, his mouth on hers with all his careful restraint shattered. She had kissed men before. None of them had ever kissed her like they were already resisting the urge to ruin themselves. She pushed herself upright and carried the bloodied cloths to the sink. Behind her Lucien said, “I thought distance would be kinder.” Rory rinsed the fabric under cold water that immediately ran pink, then red. “To who?” A pause. “To you.” She turned off the tap and faced him. “You don’t know what was kind to me.” His gaze dropped for one moment, then rose. “No. I know what I feared.” The honesty of it hit harder than any polished lie could have. Ptolemy emerged from under the chair, decided the tension had ripened to acceptable levels, and leapt onto the sofa beside Lucien. The cat sniffed his sleeve, then, to Rory’s astonishment, settled against his thigh like a furry stamp of approval. Lucien glanced down at the tabby. “I appear to have passed inspection.” “Don’t let it go to your head. He likes morally ambiguous men. It’s a flaw.” At that, a real smile touched his mouth. Small, tired, devastating. There it was. The thing she had missed against her will. Not the polish. Not the secrets. That rare, unguarded warmth that made him look less like a prince of some elegant underworld and more like a man who had once, maybe, hoped to be met gently. Rory set the cleaned cloth aside. “What object?” He hesitated. She pointed at the door. “Choose quickly between trust and the stairs.” His smile faded, but not into coldness this time. Into decision. He reached inside his jacket with care and drew out a narrow parcel wrapped in black silk. It was no longer than her hand. Even before he unfolded the cloth, the air in the flat changed. The warding candle on the shelf guttered sideways. Rory felt the tiny hairs on her arms lift. “Lucien.” “I know.” Inside the silk lay a key. Not brass. Not iron. Something darker, almost oily, with delicate teeth cut into impossible angles. Looking at it too long made the eye want to slide off. A faint red seam pulsed through the metal like a vein. Her mouth went dry. “What does it open?” “That,” Lucien said, “is precisely the problem.” She stared at it, then at him. “And you brought that here?” “I brought it to the one person likely to ask the correct question first.” Despite everything, despite herself, her lips twitched. “Flattery’s not going to save you.” “No,” he said softly. “I suspect nothing will save me where you are concerned.” The room thinned around that sentence. He hadn’t looked away. Neither had she. Rain whispered against the glass. Downstairs, someone shouted in Bengali and someone else laughed. The ordinary city went on, oblivious. Inside the little Brick Lane flat, all the things they had not said gathered dense as storm clouds. Rory crossed her arms, partly to hold herself together. “You hurt me.” “I know.” “You don’t get to show up bleeding and mysterious and expect that to vanish.” “I do not expect forgiveness tonight.” “Good.” He took that with a slight incline of his head, as if she’d stated terms in a contract. “But I hoped for your help.” Of course he did. He had always known exactly where to strike: her competence, her conscience, the part of her that could not leave a problem unsolved or a wounded man unattended, especially not this one. She should have been angry all over again. Instead she was tired. Tired of pretending his absence hadn’t mattered. Tired of the sharp little recoil in her chest every time a stranger on the street wore charcoal wool and moved like trouble. Tired of missing him in ways too specific to deny. “You make it very hard to be sensible,” she said. Something in his face shifted, almost undone. “Aurora.” “Don’t say my name like that unless you’ve earned it.” A beat passed. Two. Then, very quietly, he said, “How might I?” Her throat tightened. Damn him for asking when she was least armored. She could have answered a dozen ways. With cruelty. With a joke. With conditions so impossible they would let them both retreat with dignity. Instead she said the truest thing first. “By not leaving when it gets difficult.” Lucien went still. When he spoke, there was none of the fixer in him, none of the suave broker with a knife in his cane and six lies ready for every room. Just the man under all that, the one she had only ever seen in flashes. “Then I have already failed.” “Yes.” “And if I told you I came tonight because there was nowhere else I wanted to be?” Her heart gave a single, traitorous lurch. She hated the softness in her own voice. “I’d ask whether that’s the blood loss talking.” “It is not.” Ptolemy purred, absurdly loud, as if offering commentary. Rory looked at Lucien’s open shirt, the fresh bandage at his ribs, the exhaustion he was too proud to admit, and the key lying black and dangerous between them on Eva’s cluttered sofa. Trouble had arrived in a tailored suit and knocked at her door with rain on its shoulders. It had also arrived with a voice she had missed in the dark. She let out a slow breath. “You can stay until morning.” Relief moved through him so faintly most people would have missed it. She did not. “Thank you.” “That isn’t absolution.” “I know.” “You’ll tell me everything.” “Yes.” “No vanishing act at dawn.” His gaze held hers. “No.” She studied him, weighing the promise, the man, her own terrible willingness to believe him. Then she reached for the silk-wrapped key and folded the cloth back over it. “Fine,” she said. “You can start by telling me who’s hunting you and why my wards haven’t already started screaming.” Lucien leaned back against the sofa, careful of his side. Some color had come back into his face now that the bleeding had stopped, though he still looked one hard push from collapse. But his eyes were fixed on her with that unsettling, unwavering attention that always made her feel chosen and exposed in the same breath. “The wards,” he said, “may be the next thing to fail.” Rory huffed a laugh that wasn’t amusement so much as disbelief at her own life. “Of course they might.” She moved to the table, sweeping aside Eva’s notes enough to clear space. There would be salt, chalk, probably an argument with whatever infernal geometry that key represented. There would be danger. There would be explanations dragged out of him inch by inch if necessary. And there would be the narrow sofa, the rain-black night, and Lucien Moreau in Eva’s cramped flat after months of absence, close enough now that all the old gravity had come rushing back. As she bent over the papers, she felt his gaze on her wrist, where the little crescent scar flashed white in the low light. When she looked up, his expression had softened into something almost painful. “What?” she asked. He glanced away, then back. “Nothing.” “Liar.” A faint breath of laughter escaped him. “Only this once.” Rory shook her head and reached for the chalk. “You don’t get ‘only this once.’ You used that up.” “Then perhaps,” he said, voice low and warm in the cluttered room, “I shall have to earn another.” She should have ignored that. Instead, without looking at him, she said, “You’d better survive the night first.” Behind her came the gentle tap of his cane as he drew it closer, the rustle of Ptolemy resettling against him, and then his answer, quiet enough that it felt meant for her and no one else. “With you here,” Lucien said, “I should very much like to.”
created_at"2026-03-06T12:14:10.281Z" 3/6/2026, 12:14:10 PM
model"openai/gpt-5.4-20260305"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency456
moderation_latency(null)
generation_time105705
tokens_prompt808
tokens_completion5132
native_tokens_prompt753
native_tokens_completion4094
native_tokens_completion_images0
native_tokens_reasoning0
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.0632925
router(null)
provider_responses
0
endpoint_id"9ff5625c-403f-4d7f-b895-58ac7295062c"
id"resp_0cc8c2f0ee5b87610169aac5125aac819082300d9b280852c5"
is_byokfalse
latency156
model_permaslug"openai/gpt-5.4-20260305"
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-1772799250-BgiWr2CAuv3ZAH7DCguW"
upstream_id"resp_0cc8c2f0ee5b87610169aac5125aac819082300d9b280852c5"
total_cost0.0632925
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
totalTags25
adverbTagCount3
adverbTags
0"he said quietly [quietly]"
1"She sat back [back]"
2"he said softly [softly]"
dialogueSentences138
tagDensity0.181
leniency0.362
rawRatio0.12
effectiveRatio0.043
72.05% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount3220
totalAiIsmAdverbs18
found
0
adverb"very"
count8
1
adverb"coolly"
count1
2
adverb"quickly"
count2
3
adverb"carefully"
count1
4
adverb"slightly"
count1
5
adverb"really"
count1
6
adverb"suddenly"
count1
7
adverb"gently"
count1
8
adverb"precisely"
count1
9
adverb"softly"
count1
highlights
0"very"
1"coolly"
2"quickly"
3"carefully"
4"slightly"
5"really"
6"suddenly"
7"gently"
8"precisely"
9"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)
65.84% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount3220
totalAiIsms22
found
0
word"unreadable"
count1
1
word"flicked"
count1
2
word"pulse"
count2
3
word"roaring"
count1
4
word"affection"
count1
5
word"determining"
count1
6
word"comforting"
count2
7
word"treacherous"
count1
8
word"stomach"
count2
9
word"efficient"
count1
10
word"shattered"
count1
11
word"tension"
count1
12
word"warmth"
count1
13
word"silk"
count3
14
word"pulsed"
count1
15
word"lurch"
count1
16
word"unwavering"
count1
highlights
0"unreadable"
1"flicked"
2"pulse"
3"roaring"
4"affection"
5"determining"
6"comforting"
7"treacherous"
8"stomach"
9"efficient"
10"shattered"
11"tension"
12"warmth"
13"silk"
14"pulsed"
15"lurch"
16"unwavering"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches1
maxInWindow1
found
0
label"stomach dropped/sank"
count1
highlights
0"stomach dropped"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells0
narrationSentences239
matches(empty)
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount4
hedgeCount2
narrationSentences239
filterMatches
0"feel"
1"look"
hedgeMatches
0"tried to"
1"seemed to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences351
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen51
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords3217
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions36
unquotedAttributions0
matches(empty)
100.00% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions67
wordCount2456
uniqueNames16
maxNameDensity0.81
worstName"Lucien"
maxWindowNameDensity2
worstWindowName"Lucien"
discoveredNames
London2
Lucien20
Moreau2
Ptolemy5
Eva7
Soho1
Brick2
Lane2
Buckingham1
Palace1
Russian1
One1
Heat1
Rory17
Bengali1
Tired3
persons
0"Lucien"
1"Moreau"
2"Ptolemy"
3"Eva"
4"Heat"
5"Rory"
places
0"London"
1"Soho"
2"Brick"
3"Lane"
4"Buckingham"
5"Palace"
6"One"
7"Bengali"
globalScore1
windowScore1
100.00% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences164
glossingSentenceCount2
matches
0"not quite a smile"
1"as if offering commentary"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount3217
matches(empty)
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount1
totalSentences351
matches
0"hated that she"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs203
mean15.85
std16.12
cv1.017
sampleLengths
035
113
227
363
43
520
611
712
864
97
105
1133
124
1340
1415
152
1623
1795
188
1917
203
2117
2226
235
2458
251
2615
2769
2823
294
304
316
323
334
3422
3517
366
3713
388
395
402
418
423
4340
4415
4545
4620
476
482
491
100.00% Passive voice overuse
Target: ≤2% passive sentences
passiveCount2
totalSentences239
matches
0"was torn"
1"were fixed"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount6
totalVerbs413
matches
0"was playing"
1"was beating"
2"was like seeing"
3"was holding"
4"was watching"
5"were already resisting"
100.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount3
semicolonCount0
flaggedSentences2
totalSentences351
ratio0.006
matches
0"As if she were some civilian he’d accidentally involved, not the woman who’d patched his shoulder in her bathroom sink, not the one he had kissed once—only once, because once had already been dangerous enough—and then looked at as if he regretted wanting her."
1"Something shifted in his face at that—small, nearly invisible, but real."
87.41% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2464
adjectiveStacks0
stackExamples(empty)
adverbCount134
adverbRatio0.05438311688311688
lyAdverbCount28
lyAdverbRatio0.011363636363636364
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences351
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences351
mean9.17
std7.72
cv0.842
sampleLengths
011
124
213
327
412
513
67
76
825
93
109
1111
127
134
147
155
1621
1710
1833
197
205
2114
2214
235
244
2527
2613
2715
282
2911
304
318
3251
3344
348
3517
363
3717
3813
3913
405
4115
426
435
447
455
4620
471
4815
498
46.30% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats13
diversityRatio0.2849002849002849
totalSentences351
uniqueOpeners100
100.00% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount14
totalSentences214
matches
0"Then Lucien Moreau lifted his"
1"Somewhere in the flat a"
2"Then he’d left."
3"Instead something warm and treacherous"
4"Then his shoulders eased by"
5"Even wounded, he sat like"
6"Then Lucien let his hand"
7"Of course he did."
8"Instead she was tired."
9"Then, very quietly, he said,"
10"Instead she said the truest"
11"Just the man under all"
12"Then she reached for the"
13"Instead, without looking at him,"
ratio0.065
83.55% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount73
totalSentences214
matches
0"He looked exactly as memory"
1"She tightened her fingers on"
2"His mouth bent, not quite"
3"His gaze flicked past her"
4"Her heart was beating too"
5"It had no right."
6"She had told him to"
7"He had said, with that"
8"He stepped inside with the"
9"He smelled of rain, expensive"
10"She shut the door quickly"
11"Her jaw tightened."
12"he said quietly"
13"She folded her arms."
14"He looked toward the one"
15"His fingers flexed once on"
16"She laughed once, sharp and"
17"She should have hated the"
18"She saw it then, the"
19"she muttered, striding toward him"
ratio0.341
100.00% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount152
totalSentences214
matches
0"The first deadbolt scraped back,"
1"Aurora kept her hand on"
2"He looked exactly as memory"
3"Platinum hair slicked neatly away"
4"Charcoal suit cut close through"
5"Rain darkened the wool at"
6"She tightened her fingers on"
7"His mouth bent, not quite"
8"The air smelled of damp"
9"Rory did not open the"
10"Lucien’s expression stayed mild, but"
11"His gaze flicked past her"
12"Her heart was beating too"
13"It had no right."
14"That had been three months"
15"She had told him to"
16"He had said, with that"
17"Rory slid the chain free"
18"He stepped inside with the"
19"A tightness around his mouth."
ratio0.71
93.46% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount4
totalSentences214
matches
0"As if it were something"
1"As if she were some"
2"Now here he was on"
3"Even before he unfolded the"
ratio0.019
82.07% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences94
technicalSentenceCount8
matches
0"As if it were something expensive he had no business touching."
1"That had been three months ago in a narrow alley in Soho with demon blood drying black on brick, her pulse roaring in her ears, and Lucien standing half in shad…"
2"As if she were some civilian he’d accidentally involved, not the woman who’d patched his shoulder in her bathroom sink, not the one he had kissed once—only once…"
3"Lucien was watching her with that unnerving steadiness of his, as if every brisk movement she made was something worth cataloguing."
4"She taped the bandage down with brisk, efficient motions that were a little rougher than necessary."
5"For one dangerous second memory rose up whole: his hand cupping the back of her neck in that alley, the rough brick at her spine, rainwater dripping from a fire…"
6"That rare, unguarded warmth that made him look less like a prince of some elegant underworld and more like a man who had once, maybe, hoped to be met gently."
7"He had always known exactly where to strike: her competence, her conscience, the part of her that could not leave a problem unsolved or a wounded man unattended…"
100.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags25
uselessAdditionCount1
matches
0"he said, voice low and warm in the cluttered room,"
100.00% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags22
fancyCount4
fancyTags
0"He had (have)"
1"she muttered (mutter)"
2"she snapped (snap)"
3"She pressed (press)"
dialogueSentences138
tagDensity0.159
leniency0.319
rawRatio0.182
effectiveRatio0.058
94.3558%