Run: 2026-03-18-01KM08DXRKZ7V172RW52S197H0

Run Details

Duration:
25.2s
Cost:
$0.005939
Provider:
OpenAI

Model input

System
You are an expert fiction writer. Always keep the following rules in mind: - Write in past tense and use General English spelling, grammar, and colloquialisms/slang. - Write in active voice - Always follow the "show, don't tell" principle. - Avoid adverbs and cliches and overused/commonly used phrases. Aim for fresh and original descriptions. - Convey events and story through dialogue. - Mix short, punchy sentences with long, descriptive ones. Drop fill words to add variety. - Skip "he/she said said" dialogue tags and convey people's actions or face expressions through their speech - Avoid mushy dialog and descriptions, have dialogue always continue the action, never stall or add unnecessary fluff. Vary the descriptions to not repeat yourself. - Put dialogue on its own paragraph to separate scene and action. - Reduce indicators of uncertainty like "trying" or "maybe" When writing text: - NEVER conclude the scene on your own, follow the beat instructions very closely. - NEVER end with foreshadowing. - NEVER write further than what I prompt you with. - AVOID imagining possible endings, NEVER deviate from the instructions. - STOP EARLY if the continuation contains what was required in the instructions. You do not need to fill out the full amount of words possible.
User/Human
Take into account the following glossary of characters/locations/items/lore... when writing your response: <codex> <character id="4412" name="Aurora Carter" aliases="Rory, Laila, Aurora, Carter, Malphora" pronouns="she/her" species="Human" storyRole="Protagonist"> <eyeColor>bright blue</eyeColor> <hair>straight shoulder-length black</hair> <height>5'6"</height> <age>25</age> <scar>small crescent-shaped scar on her left wrist from a childhood accident</scar> <description>Aurora, referred to by her friends as Rory, is cool-headed, intelligent, and known for quick out-of-the-box thinking.</description> <backstory>Born in Cardiff to an Irish barrister father (Brendan Carter) and Welsh teacher mother (Jennifer Carter née Ellis), Rory reluctantly pursued Pre-Law at Cardiff University. She fled to London at the behest of her childhood friend Eva after leaving an abusive ex named Evan. By day, Rory works part-time as a delivery person for Yu-Fei Cheung's Golden Empress restaurant. She lives in a flat above Silas' bar.</backstory> </character> <character id="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> Continue the story using the following instructions: <instructions> 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. </instructions>

Model response

AI
Aurora kept the bolt line steady with her left palm while her right hand hovered over the handle. Her small crescent scar on her wrist caught the light from the kitchen doorway, pale as chalk against skin. Ptolemy sat on the back of the sofa, tail curled like a comma, eyes fixed on the front door. Books surrounded the tabby in sloppy towers—spines stacked from the floor to the coffee table, scrolls shoved into gaps like they belonged there. The knock came once, firm, then stopped. No second round. Aurora listened to the pauses between heartbeats. London traffic muttered through the thin window. Somewhere beneath the flat, a curry house radio kept talking to itself. The deadbolt turned with a dry clack. Her shoulders stayed tense as she pulled the chain free. The door swung inward. Lucien Moreau stood in the entryway as if the hallway furniture had been designed for him—charcoal suit pressed sharp, platinum hair slicked back, one amber eye bright against one black eye that watched with a colder shine. His ivory-handled cane rested near his thigh. The blade lived inside it like a secret he didn’t bother hiding from the world. Aurora didn’t move past the threshold. She didn’t even blink. Lucien’s gaze dropped to her hand on the door chain, then lifted to her face. He didn’t smile. He didn’t soften his posture. He let the silence do the first part of the conversation. Ptolemy rose and walked a slow circle around Lucien’s shoes, then stopped and stared at him like he owed the cat an explanation. Aurora spoke first, voice level. “Luc.” The single syllable carried the weight of months—of London nights where messages went unread and rooms felt too bright after he left them. Lucien tipped his head a fraction, as if she’d hit the right note in a song only they remembered. “You didn’t answer,” he said, and the way he said it made it sound less like accusation and more like accounting. “I came because you wouldn’t pick up.” Aurora’s fingers tightened on the chain. The door creaked a little, then steadied. “You didn’t ask permission for that either.” He stepped closer, just enough to fill the narrow space between doorframe and sofa. His cane angled downward, not striking, not threatening—just present. The handle looked clean, the blade’s edge unseen behind the craftsmanship. “I asked for time,” Lucien said. “You wouldn’t give it.” Aurora’s chin lifted, a movement that looked calm until her eyes flashed. “I gave you time,” she shot back. “I gave you weeks, and you gave me a note that sounded like an apology written for someone else.” Lucien’s amber eye held hers. The black one tracked her wrist, the scar, the way her skin sat over bone. “It was an apology,” he said. Aurora leaned her weight into the door, as if she could keep the past from spilling out by bracing herself. The flat smelled faintly of spices and paper dust. “You left. You disappeared. You didn’t call when I texted. You didn’t show up when I asked.” Lucien’s mouth moved like he wanted to cut through the list, then he chose a different route. “I came here,” he said, “because you asked the wrong people for answers.” Aurora blinked once, sharp. “Wrong people? After you told me you had access?” Lucien let out a breath through his nose. Not a laugh. Not a sigh. Something between irritation and restraint. “I told you what I could access,” he said. “You demanded more than you could handle.” “And you decided for me.” He moved his cane a few centimetres, tapping the floor with the soft weight of intent. The sound landed in the cramped room like punctuation. “I decided for you when you couldn’t decide for yourself,” Lucien replied. “You turned your back on safety. You chased a thread that ended in teeth.” Aurora’s heart hit her ribs hard enough to remind her it still worked. She kept her eyes on his face instead of letting the anger steer. “You didn’t get to drag me back,” she said. “Not after you—” Her sentence fractured. She didn’t finish the word that sat behind her teeth. She didn’t have to. The silence between them carried the rest: after you broke it. After you chose your world over hers. After you made her feel like the only thing between them was information, never trust. Lucien’s gaze flicked to her left wrist again. The scar. “Don’t,” he said quietly. Aurora’s brows drew together. “Don’t what?” “Don’t pretend you don’t remember why I left.” His amber eye narrowed, and the heterochromia made the look feel like two separate truths fighting for the same space. “You remember.” Aurora’s mouth went dry. The memory didn’t come gently. It came like hands yanking a drawer open. She stepped out from the door just enough for him to see the desk behind her—spare pages spread with messy handwriting, ink smudged where her pen had pressed too hard. A map of London sat under a stack of research notes, pins clustered around Brick Lane and the river paths. “You walked out,” Aurora said. “You walked out and you didn’t give me the full picture. You left me to guess. I can handle danger, Lucien. I can handle demon contracts and half-truths. I can handle it. What I can’t handle is you deciding I’m a side note.” His jaw tightened. The charcoal suit held clean lines, but his stillness looked strained. “You think I wanted to be a side note?” he asked. Aurora’s lips parted. She found the anger first, then something softer that hurt worse because it didn’t come with sharp edges. “No,” she admitted, and the word sounded like it didn’t belong in her mouth. “I think you wanted to be the only person who could pull me out.” Lucien’s eyes sharpened. He didn’t deny it. “I wanted to be the only person who could pull you out alive,” he said. “You asked for the blade’s path. You asked for the fastest route. I gave you what you wanted and then I realised—” He stopped, and the pause stretched. Aurora pressed the doorframe with her shoulder, grounding herself. Ptolemy had settled again near the stacked books, grooming his paw with slow concentration. “Realised what?” Aurora demanded. Lucien stepped further into the flat, boots leaving no sound on the worn floorboards. He moved around her like he’d done it before, like he knew how the space constrained her and where her escape routes ran. “I realised you would chase the answer even if it ate you,” Lucien said. “I realised the moment you looked at me like I held the solution, you forgot you could be the solution too.” Aurora’s throat tightened. Attraction didn’t feel gentle here; it felt like gravity. Her body leaned forward while her pride held her back. “You act like you saved me,” she said. Lucien’s mouth tilted, a thin line without humour. “I did save you,” he replied. “You lived.” Aurora’s fingers curled, nails biting fabric of her sleeve. “And you made it feel like I owed you,” she said. “You made it feel like gratitude was the price tag.” Lucien’s cane shifted. The ivory handle caught the light. The blade inside it remained hidden, but Aurora saw the shape of it in her mind anyway—sleek, precise, made for cutting through things that resisted. “I didn’t make you owe me,” Lucien said. “You already felt guilty for surviving.” Aurora stared at him. Her bright blue eyes held a flash of cold disbelief. “You don’t get to psychoanalyse me,” she said. Lucien’s gaze flicked over her face, then down to the scar on her wrist again, like he’d read the line of pain without asking. “I don’t need to analyse you,” he said. “I watch you. I remember what you hide. You leave rooms when people get too close. You act like your mind can outpace your heart. And when it can’t, you swing at whoever stands nearest.” Aurora’s laugh came out short, sharp. “You mean you’re the target,” she said. Lucien didn’t flinch. He lifted a hand and tapped the air near the desk, not touching anything. “You were angry at Evan,” he said. “You were angry at yourself. You were angry at the world for forcing you into choices. I walked in and you treated me like the world’s messenger.” Aurora’s lips pressed together. That hit too close, the way she’d latched onto him in London like a lifeline and then yanked it away because she couldn’t handle being held. “And you accepted it,” she said. Lucien’s amber eye glinted. “I accepted it,” he replied. “Because I thought if I let you hate me, you wouldn’t run back into the dark.” Aurora’s stomach turned. The romance in the situation arrived like a bruise—slow, tender, and full of colour. “You vanished anyway,” she said, quieter now. “You left without giving me a chance to decide whether I wanted the rescue.” Lucien’s shoulders rose and fell once, controlled. “You think I didn’t give you that chance?” he asked. Aurora stepped closer to him, not to intimidate, but to close distance that had become unbearable. Her delivery shifts and late nights above the bar didn’t prepare her for the way his presence pulled the air tight. “You left me with half a truth,” she said. “So either you didn’t trust me, or you didn’t care.” Lucien stared at her like he wanted to answer with action instead of words. He shifted his cane back into its relaxed position, then he finally lowered his gaze to her wrist again. His voice dropped. “I cared,” he said. “I cared so much it hurt.” Aurora’s breath snagged. She hated how much she believed him despite the hurt she carried like a second coat. “What else did you do?” she asked. “While you cared?” Lucien’s mouth opened, then shut. He looked past her shoulder at the desk, at the scattered research. His face hardened at the sight like it offended him. “You kept reading,” he said. “You kept digging. You called the wrong informant. You put your hands on the wrong names.” Aurora’s eyes widened. “I didn’t—” “You did,” Lucien cut in, and the edge in his voice sounded like protective anger, not contempt. “You asked about Avaros. You asked about Avaros-born contracts. You asked about demon lines that don’t end at paperwork.” Aurora swallowed. She hated that he knew. “How would you even know that?” she demanded. Lucien’s amber eye returned to hers. “I collect patterns,” he said. “I built a business on knowing what people pull towards them. You pulled towards a thread that would snap your arm clean off.” Aurora’s hands went cold. Her scar itched in memory. “You came here to warn me,” she said. Lucien took one step nearer. The room felt smaller with him inside it. The tabby cat watched, ears forward. “I came here,” Lucien said, “to stop you from paying for my silence.” Aurora’s heart thudded. The romantic part of her wanted to reach for him. The hurt part kept her fingers hooked to anger. “You should’ve talked,” she said. “I did,” he replied. “In the only way you would accept. A message. A signal. I expected you to follow it, and then you didn’t, and I—” He stopped again. His jaw worked like he fought a decision. “I panicked,” Lucien admitted, the word plain as stone. Aurora stared, shocked into stillness. Panic from him sounded like a crack in armour—dangerous and real. “You panicked,” she echoed. Lucien nodded once, slow. “I panicked,” he repeated. “Because every time I’ve kept you at a distance, you’ve moved closer to the kind of trouble that kills people like you.” Aurora’s voice turned rough. “You didn’t know me like that,” she said. Lucien’s gaze didn’t waver. “I knew you at eighteen,” he said. “I knew you at twenty-one. I knew you in that kitchen where you cleaned blood off your hands and pretended it was nothing. I knew you when you told Eva you would be fine and your eyes didn’t believe you.” Aurora flinched at the precision of it. The details belonged to private nights. “How?” she demanded. Lucien lifted his cane slightly, pointing it toward the desk. Not at her. At the pages. “You keep evidence,” he said. “You keep receipts for people who break you. I saw what you left behind. I didn’t want to—” His voice caught for the first time. He pressed his mouth shut, then forced the next words out. “I didn’t want to find out the hard way,” he finished. Aurora’s eyes burned. She looked away for half a second, to the shelf crowded with notebooks and scrolls, and she felt the betrayal twist into something like longing. “You could’ve found out,” she said, “by talking to me.” Lucien’s amber eye softened by degrees. The black eye stayed sharp, but the tension eased from his shoulders. “I tried,” he said. “And you slammed the door so hard the whole street heard it.” Aurora’s mouth opened, then closed. She remembered. The day she’d decided he’d been another door that locked when she needed air. “You walked in,” she said, steadying her voice with spite. “Then you hid behind your mystery like it made you noble.” Lucien’s laugh came out low, without warmth. “Noble,” he repeated. “You think I enjoyed leaving you with that ache?” Aurora’s hand drifted to her wrist, resting over the crescent scar. The gesture wasn’t planned. It happened because the body always told the truth before her mouth could bargain with it. Lucien watched her, and something flickered across his face—control struggling against desire. “I waited,” he said. “I waited long enough to see if you would crawl back towards the truth I couldn’t risk handing you too early.” Aurora looked up. “So you watched me,” she said. Lucien didn’t deny it. “I listened,” he corrected. “I didn’t touch. I wouldn’t touch. Touching would’ve made it real, and real would’ve forced me to commit.” Aurora’s stomach clenched. Real. Commitment. The words landed between them like a lit match. “Why now?” she asked. Lucien’s eyes held hers with stubborn focus. “Because you came close to the thing that killed Brendan Carter’s kind of pride,” he said. Aurora froze. Her father’s name, spoken casually like a label, stole her breath. “I didn’t come close to—” Lucien’s gaze dropped to her mouth, then to her wrist again, and he spoke before she could complete denial. “You came close to letting a half-demon contract get into your family story,” he said. “And I knew you would fight it. You always fought it. But fighting doesn’t stop paperwork when it’s already signed.” Aurora’s pulse hammered. She felt exposed. Not just her body—her history. “Who are you?” she asked, and she hated how small the question sounded. Lucien stepped closer until the edge of his cane’s foot-length shadow reached her toes. He didn’t crowd her; he simply owned the space he occupied. “I’m the man you told off in Marseille because you didn’t like the way I looked at you,” he said. “I’m the man you pulled from the dark and then blamed when the dark fought back.” Aurora’s voice went thin. “I never—” “You did,” Lucien repeated. “And you hated that you wanted me to stay.” Her breath caught on the last word. Attraction moved in her like a tide she hadn’t predicted. It surged in the same direction as hurt, and the two together made her angry all over again. “Don’t say that,” she snapped. Lucien’s chin lifted. His amber eye flared with something like grief. “I’m done leaving things unsaid,” he said. “That’s why I knocked with one chance and no warning.” Ptolemy hopped down from the sofa and rubbed its head against Aurora’s calf, as if it wanted to anchor her to the present. Aurora didn’t move it away. Lucien’s attention tracked the cat, then returned to Aurora’s face like his thoughts circled back no matter what stood in the room. Aurora swallowed hard. Her voice came out steadier than she felt. “You should leave,” she said. Lucien didn’t flinch. He leaned in just enough to bring his scent close—clean cloth, cold earth, something metallic under it. “I came for answers,” he replied. “And for you.” Aurora’s eyes narrowed. “For me,” she echoed. “You don’t get to show up and claim that like it wipes the slate.” Lucien’s gaze held hers, unwavering. “It doesn’t wipe anything,” he said. “It breaks the silence. You deserve that much.” Aurora’s throat tightened. She wanted to step back; instead she found herself inching forward, drawn by the shape of his attention. The flat felt too crowded with books and old ink; his presence cut through it like a blade of light. “Then answer,” she said. “All of it. The real part. The part you didn’t leave in your note.” Lucien’s mouth pressed into a line. He glanced once at the door behind her, then back at her wrist scar, then her eyes. “I will,” he said. “But you’re going to stop digging on your own. You’re going to let me handle the path you can’t see.” Aurora’s jaw tightened. “You sound like you’re back to deciding,” she said. Lucien’s cane tip tapped the floor, soft, impatient. “I’m deciding you don’t die,” he answered. Aurora stared at him, breath held, and in the space between his words and her anger, the hurt softened enough for the want to show through. “You didn’t knock for my safety,” she said, letting the romance crack the logic. “You knocked because you missed me.” Lucien’s amber eye widened a fraction. His expression didn’t turn sweet; it turned honest, raw at the edges. “I missed you,” he admitted. Aurora’s chest tightened so hard it felt like a hand squeezed her ribs from inside. She didn’t look away this time. She let the truth sit between them while her pride argued with it. “Then say the rest,” she demanded, and her voice shook on the last word. Lucien held her gaze, and he didn’t reach for her. He didn’t touch her. He stayed still, as if he feared one wrong move would undo the fragile moment she’d just forced into the open. His cane angled slightly toward the desk, toward her notes, toward the evidence she’d kept like a wound she refused to scar over. “The contract you chased,” Lucien began, “was never meant for you. It got your name because someone used your past to steer you. And when I learned who did it—” He stopped again, eyes cutting to her face. Aurora leaned forward, ready to pull the answer out by force if he hesitated again. “Who,” she pressed. “Say who.”
created_at"2026-03-18T10:38:58.333Z" 3/18/2026, 10:38:58 AM
model"openai/gpt-5.4-nano-20260317"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency5106
moderation_latency(null)
generation_time24784
tokens_prompt1034
tokens_completion5201
native_tokens_prompt927
native_tokens_completion4603
native_tokens_completion_images0
native_tokens_reasoning486
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.00593915
router(null)
provider_responses
0
endpoint_id"0c835f2e-c18d-4e8c-b245-e1e3bd08b97f"
id"resp_0a52c77bbc76b9870169ba80c2650881968d2d636c84a21f2c"
is_byokfalse
latency188
model_permaslug"openai/gpt-5.4-nano-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-1773830338-cGSLmJqYSpSV0fKTYPO2"
upstream_id"resp_0a52c77bbc76b9870169ba80c2650881968d2d636c84a21f2c"
total_cost0.00593915
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
totalTags75
adverbTagCount1
adverbTags
0"he said quietly [quietly]"
dialogueSentences128
tagDensity0.586
leniency1
rawRatio0.013
effectiveRatio0.013
95.22% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount3137
totalAiIsmAdverbs3
found
0
adverb"gently"
count1
1
adverb"slightly"
count2
highlights
0"gently"
1"slightly"
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)
68.12% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount3137
totalAiIsms20
found
0
word"silence"
count4
1
word"carried the weight"
count1
2
word"weight"
count2
3
word"fractured"
count1
4
word"flicked"
count2
5
word"stomach"
count2
6
word"echoed"
count2
7
word"tension"
count1
8
word"warmth"
count1
9
word"flickered"
count1
10
word"desire"
count1
11
word"pulse"
count1
12
word"unwavering"
count1
highlights
0"silence"
1"carried the weight"
2"weight"
3"fractured"
4"flicked"
5"stomach"
6"echoed"
7"tension"
8"warmth"
9"flickered"
10"desire"
11"pulse"
12"unwavering"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches3
maxInWindow1
found
0
label"let out a breath"
count1
1
label"eyes widened/narrowed"
count2
highlights
0"let out a breath"
1"eyes widened"
2"eyes narrowed"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells0
narrationSentences262
matches(empty)
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount2
hedgeCount0
narrationSentences262
filterMatches
0"feel"
hedgeMatches(empty)
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences315
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen44
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords3126
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions82
unquotedAttributions0
matches(empty)
16.67% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions107
wordCount2040
uniqueNames7
maxNameDensity2.4
worstName"Aurora"
maxWindowNameDensity4.5
worstWindowName"Lucien"
discoveredNames
Moreau1
Lucien47
London4
Aurora49
Brick1
Lane1
Ptolemy4
persons
0"Moreau"
1"Lucien"
2"Aurora"
3"Ptolemy"
places
0"London"
1"Brick"
2"Lane"
globalScore0.299
windowScore0.167
13.28% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences128
glossingSentenceCount7
matches
0"sounded like it didn’t belong in her mouth"
1"felt like gravity"
2"sounded like protective anger, not contemp"
3"sounded like a crack in armour—dangerous a"
4"something like longing"
5"something like grief"
6"felt like a hand squeezed her ribs from"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches1
per1kWords0.32
wordCount3126
matches
0"not to intimidate, but to close distance"
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount1
totalSentences315
matches
0"hated that he"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs183
mean17.08
std11.7
cv0.685
sampleLengths
037
142
210
326
417
54
659
710
834
923
105
111
1223
1319
1428
1513
167
1734
1810
1912
2026
2120
226
2329
2417
2517
2613
274
289
2919
3016
315
3225
3326
3426
3512
3650
3710
384
394
402
4130
4217
4350
4448
4514
4611
4721
4828
497
100.00% Passive voice overuse
Target: ≤2% passive sentences
passiveCount2
totalSentences262
matches
0"been designed"
1"being held"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount0
totalVerbs433
matches(empty)
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount11
semicolonCount5
flaggedSentences16
totalSentences315
ratio0.051
matches
0"Books surrounded the tabby in sloppy towers—spines stacked from the floor to the coffee table, scrolls shoved into gaps like they belonged there."
1"Lucien Moreau stood in the entryway as if the hallway furniture had been designed for him—charcoal suit pressed sharp, platinum hair slicked back, one amber eye bright against one black eye that watched with a colder shine."
2"The single syllable carried the weight of months—of London nights where messages went unread and rooms felt too bright after he left them."
3"His cane angled downward, not striking, not threatening—just present."
4"She stepped out from the door just enough for him to see the desk behind her—spare pages spread with messy handwriting, ink smudged where her pen had pressed too hard."
5"Attraction didn’t feel gentle here; it felt like gravity."
6"The blade inside it remained hidden, but Aurora saw the shape of it in her mind anyway—sleek, precise, made for cutting through things that resisted."
7"The romance in the situation arrived like a bruise—slow, tender, and full of colour."
8"Panic from him sounded like a crack in armour—dangerous and real."
9"Lucien watched her, and something flickered across his face—control struggling against desire."
10"Not just her body—her history."
11"He didn’t crowd her; he simply owned the space he occupied."
12"He leaned in just enough to bring his scent close—clean cloth, cold earth, something metallic under it."
13"She wanted to step back; instead she found herself inching forward, drawn by the shape of his attention."
14"The flat felt too crowded with books and old ink; his presence cut through it like a blade of light."
15"His expression didn’t turn sweet; it turned honest, raw at the edges."
97.92% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2053
adjectiveStacks0
stackExamples(empty)
adverbCount87
adverbRatio0.042377009254749146
lyAdverbCount10
lyAdverbRatio0.004870920603994155
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences315
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences315
mean9.92
std7.14
cv0.72
sampleLengths
018
119
219
323
47
53
67
77
812
97
1010
114
1237
137
1415
156
164
1715
183
195
2011
2123
225
231
2423
2519
2621
277
286
297
307
3114
329
3311
346
354
3612
377
3819
395
4015
416
4220
439
4417
4517
4613
474
489
498
41.11% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats28
diversityRatio0.13968253968253969
totalSentences315
uniqueOpeners44
17.27% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount1
totalSentences193
matches
0"Somewhere beneath the flat, a"
ratio0.005
85.28% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount65
totalSentences193
matches
0"Her small crescent scar on"
1"Her shoulders stayed tense as"
2"His ivory-handled cane rested near"
3"She didn’t even blink."
4"He didn’t smile."
5"He didn’t soften his posture."
6"He let the silence do"
7"he said, and the way"
8"He stepped closer, just enough"
9"His cane angled downward, not"
10"she shot back"
11"He moved his cane a"
12"She kept her eyes on"
13"Her sentence fractured."
14"She didn’t finish the word"
15"She didn’t have to."
16"he said quietly"
17"His amber eye narrowed, and"
18"It came like hands yanking"
19"She stepped out from the"
ratio0.337
0.00% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount183
totalSentences193
matches
0"Aurora kept the bolt line"
1"Her small crescent scar on"
2"Ptolemy sat on the back"
3"Books surrounded the tabby in"
4"The knock came once, firm,"
5"Aurora listened to the pauses"
6"London traffic muttered through the"
7"The deadbolt turned with a"
8"Her shoulders stayed tense as"
9"The door swung inward."
10"Lucien Moreau stood in the"
11"His ivory-handled cane rested near"
12"The blade lived inside it"
13"Aurora didn’t move past the"
14"She didn’t even blink."
15"Lucien’s gaze dropped to her"
16"He didn’t smile."
17"He didn’t soften his posture."
18"He let the silence do"
19"Ptolemy rose and walked a"
ratio0.948
0.00% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount0
totalSentences193
matches(empty)
ratio0
96.47% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences77
technicalSentenceCount5
matches
0"Lucien Moreau stood in the entryway as if the hallway furniture had been designed for him—charcoal suit pressed sharp, platinum hair slicked back, one amber eye…"
1"Lucien tipped his head a fraction, as if she’d hit the right note in a song only they remembered."
2"The blade inside it remained hidden, but Aurora saw the shape of it in her mind anyway—sleek, precise, made for cutting through things that resisted."
3"Aurora stepped closer to him, not to intimidate, but to close distance that had become unbearable."
4"Ptolemy hopped down from the sofa and rubbed its head against Aurora’s calf, as if it wanted to anchor her to the present."
100.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags75
uselessAdditionCount2
matches
0"His amber eye narrowed, and the heterochromia made the look feel like two separate truths fighting for the same space"
1"she admitted, and the word sounded like it didn’t belong in her mouth"
54.41% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags68
fancyCount13
fancyTags
0"she admitted (admit)"
1"Aurora demanded (demand)"
2"she demanded (demand)"
3"Lucien admitted (admit)"
4"he repeated (repeat)"
5"she demanded (demand)"
6"he repeated (repeat)"
7"he corrected (correct)"
8"Lucien repeated (repeat)"
9"she snapped (snap)"
10"he admitted (admit)"
11"she demanded (demand)"
12"she pressed (press)"
dialogueSentences128
tagDensity0.531
leniency1
rawRatio0.191
effectiveRatio0.191
76.1921%