Run: 2026-03-09-01KKAC87MFWS2XP0Y6NN782J20

Run Details

Duration:
1m 24s
Cost:
$0.058778
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
When Aurora pulled back the last of the three deadbolts and yanked the door open, she already had a sharp answer in her mouth for whichever courier, neighbor, or drunk had decided to rattle the frame at half past eleven. The answer died there. Lucien Moreau stood in the narrow hall under the jaundiced bulb, one hand resting on the ivory head of his cane, rain darkening the shoulders of his charcoal coat. He looked as though he had stepped out of a private car and onto the wrong street by mistake, too elegant for the peeling walls and the smell of frying onions drifting up from the curry house below. His platinum hair was slicked back as always, not a strand out of place despite the weather. One eye caught the weak light and flashed amber. The other, black as wet coal, gave nothing back. For one hard beat, neither of them spoke. Aurora felt the old impact of him low in her ribs, immediate and infuriating. It had been months. Long enough to teach herself not to think about the angle of his mouth when he was amused, the velvet drag of his French-accented voice when he lowered it just for her, the way he could fill a room without moving. Long enough to get angry properly. Not long enough, apparently, for any of it to stop mattering. Ptolemy, sprawled on top of a stack of anthropology journals in the sitting room, let out a rusty, indignant yowl at the draft. Lucien’s gaze flicked past Aurora’s shoulder into the flat. Books. Scroll tubes. Open notebooks. A kettle beginning to mutter in the tiny kitchen. Then his attention returned to her face and stayed there with unnerving steadiness. “Bonsoir, Rory.” She folded one hand around the edge of the door. “No.” His expression barely changed, but she saw the breath he took. “That is a disappointing greeting.” “It’s more welcoming than what I had planned if you ever turned up again.” She started to push the door closed. Quick as a striking snake, the tip of his cane came down between door and frame. There was no threat in the gesture, only certainty. He knew exactly how far he could press. Aurora’s jaw tightened. “Move it.” “I need five minutes.” “You lost the right to ask for anything from me.” His mouth curved, not quite a smile. “Then permit me to beg.” She should have enjoyed refusing him. Instead she stood there, aware of the rain-slick scent of him—citrus, expensive smoke, something darker underneath that was never entirely human. A memory rose uninvited: his coat around her shoulders in an alley off Whitechapel, his hand warm at the back of her neck, his voice close to her ear telling her not to look at the body. That had been before. Behind her, the kettle clicked off. Ptolemy hopped down from the journals and padded toward the hall, tail held high, utterly faithless. He wound once around Lucien’s polished shoe and purred. Aurora stared at the cat. “Traitor.” “At least someone in London still receives me graciously,” Lucien said. That almost got her. Almost. She hated that he still knew the shape of her temper well enough to step around it. “Eva isn’t here,” she said. “I know.” Of course he knew. The man could probably tell her when Eva had last bought milk. Aurora looked up and down the corridor. Empty. Mrs. Bhattacharya from downstairs had stopped peering through her chain latch at ten, and the students in the opposite flat were either asleep or pretending to be. Lucien in this hallway was a spectacle waiting to happen. She stepped back once, the minimum distance that could be called an invitation. “You have three minutes,” she said. Lucien withdrew the cane and entered without brushing her as he passed, which somehow felt more intimate than if he had. He closed the door carefully behind him. Aurora threw all three deadbolts with brisk, angry snaps, then turned to find him standing in the middle of Eva’s cramped sitting room as though he had been transported into a paper storm. Every surface was buried. Hardback books in teetering stacks. Loose notes pinned under chipped mugs. A map of London’s ley lines spread across the coffee table and weighted with a salt cellar. Two candle stubs burned beside a bowl of keys, making the room smell faintly of wax and dust and cardamom from downstairs. Lucien’s gaze moved over the chaos and settled on the armchair by the window, where Aurora’s leather jacket hung over the back. “You’re staying here.” “Observant.” “Temporarily?” She crossed her arms. “You did not come here to discuss my housing arrangements.” “No.” His eyes came back to her. “I came because there is a problem.” A short laugh escaped her before she could stop it. “That’s usually when you remember I exist.” Something in his face shifted then, so quick another person might have missed it. Not guilt, exactly. Lucien did not wear guilt well. But the remark landed. “Aurora—” “No.” She lifted a hand. “You don’t get to use my full name like we’re suddenly respectable. You vanished.” “I was occupied.” “That is the excuse of a man who thinks his time matters more than everyone else’s.” A muscle moved in his jaw. “If I explain, will you listen?” She leaned one shoulder against the bookcase, as if she’d settled comfortably in for this. Inside, every nerve felt stripped raw. “You have two minutes and forty seconds.” His cane clicked softly against the floor as he shifted his weight. “There has been movement in Avaros-linked circles. Something crossed in Limehouse three nights ago. Not a scavenger, not a courier. Something old. It asked for you.” Aurora’s stomach gave a small, cold turn. She kept her face blank. “You could have sent a message.” “I did not trust a message.” “And yet you trusted silence for four months.” His eyes closed briefly. “You insist on returning to the wound.” “Because it’s still open.” The words hung between them. Ptolemy leapt onto the sofa and began washing a paw with grave concentration. Lucien looked at her the way one examined a blade one had once tested with bare fingers. Carefully. Respecting the damage. “The night at Blackfriars,” he said quietly, “I left because if I had stayed, I would have said something I could not afford to say.” Aurora went very still. There it was. Not an apology. Never simple with him. She remembered Blackfriars with aching precision: the cold under the bridge arches, the river breathing in the dark, blood on her sleeve that wasn’t hers. Lucien had stitched a cut along her ribs in a safehouse bathroom with hands steadier than a surgeon’s. She’d been half drunk on pain and adrenaline and his nearness. He had touched her as though she was both breakable and the most dangerous thing in the room. When it was over, when the bandage was taped down and the danger had passed, she’d caught his wrist. He had looked at her mouth. Then the wall had slammed down behind his eyes. He’d said, very politely, that she should get some rest. She hadn’t seen him after. Aurora laughed once, low and unbelieving. “Couldn’t afford.” “It was the truth.” “Was it? Because from where I stood, it looked an awful lot like regret.” For the first time since entering, Lucien lost the immaculate stillness. He took one step toward her. Not enough to crowd. Enough to change the air. “I have regretted many things,” he said. “Not that.” Her pulse thudded at the base of her throat. She hated how her body recognized him before her pride could object. “Then what?” she asked. “Spell it out for me, Lucien, because I am tired of translating your silences.” The amber eye warmed; the black one stayed unreadable, a split honesty she had always found impossible to resist. “You were hurt,” he said. “You were furious. You had just trusted me in a way you do not trust easily. And I wanted…” He stopped, as though the next words had teeth. “I wanted to kiss you. More than kiss you. I wanted to stay until morning and make you forget every man who ever taught you that wanting came with a cost. And I knew if I did that then—when you were bleeding, when you were shaken—I would never be entirely certain whether I had taken advantage of the moment.” Aurora’s breath caught. Outside, somewhere down on Brick Lane, a siren wailed and faded. The room seemed to contract around the two of them: the books, the low ceiling, the soft hiss of rain at the window. Ptolemy opened one eye, judged there was no immediate food involved, and went back to sleep. “You could have said that,” she managed. Lucien’s mouth twisted. “I am, as you have often pointed out, not always admirable at the simpler forms of communication.” “No,” she said. “You’re really not.” But the anger had changed under her hands. It was no longer a blade; it was heat, old and dangerous and not wholly hostile. She pushed away from the bookcase. “Do you have any idea what it felt like? To think I’d imagined all of it? Every look, every almost, every time you appeared at my elbow exactly when I needed you and then pretended that was professional courtesy?” His gaze dropped, briefly, to her mouth. “Yes.” The single word struck harder than any speech. Aurora looked away first, because if she didn’t she was going to do something reckless and she had promised herself not to be reckless where Lucien Moreau was concerned. She moved to the tiny kitchen alcove more to put space between them than because she wanted tea. The counter was cluttered with open spice jars and Eva’s chipped blue mugs. Her hands needed a task. She reached for the kettle. “Tea?” she said, too brightly. A pause. Then, behind her, “If you are making some.” She snorted. “Still taking outrageous liberties in other people’s homes.” “I have been accused of worse.” “You have done worse.” “Yes.” That one came softer. She filled the kettle again because the first boil had gone tepid. Water rushed from the tap, loud in the little room. Over the sound she could feel him behind her, not close enough to touch, close enough to alter her breathing. “You said something asked for me,” she said. “Yes.” “What exactly did it say?” “That depends which witness one believes. The most coherent described a woman with bright blue eyes and black hair, human, clever, difficult to catch.” He paused. “That narrowed the field considerably.” Despite herself, Aurora smiled. “Flattery does not improve your odds.” “I am not attempting flattery.” “No?” She set the kettle down. “What are you attempting?” When she turned, he was nearer than she expected, at the edge of the kitchen threshold. Not looming. Waiting. The cane rested lightly against his leg, forgotten for once. Up close, she could see the fine sheen of rain still clinging to his coat collar and the fatigue cut into the corners of his mouth. Lucien polished himself for the world; only rarely did it show where the shine wore thin. “Tonight?” he said. “Necessity. Honesty, if I can manage it. And perhaps a measure of forgiveness I do not deserve.” Aurora searched his face, looking for the practiced line, the graceful dodge, the safe half-truth. She found none. That frightened her more than if he had lied. The kettle began to rumble again. “You don’t get forgiveness because you ask beautifully,” she said. “No.” His voice dropped. “I thought perhaps I might earn the chance to ask at all.” The kettle clicked off with a sharp metallic note. Neither of them moved. Her left hand rested on the counter, wrist turned up. The crescent scar there caught his eye. She saw the moment he noticed it, the old, small mark she seldom thought about and men almost never saw. His fingers lifted a fraction, then stopped, asking without words. Aurora hesitated only an instant before offering her hand. Lucien took it carefully, as if she had handed him something more dangerous than a knife. His thumb brushed the scar, once. The touch was light enough to be accidental and far too deliberate to be mistaken for one. Heat climbed her arm in a slow, traitorous line. “I did miss you,” he said. She swallowed. “That wasn’t wise to admit.” “On the contrary. It may be the wisest thing I have said in months.” “Low bar.” A breath of a laugh left him, the real kind, worn and warm. It undid her more effectively than the charm ever had. Aurora looked down at their joined hands. His skin was cool from the rain. Her pulse beat frantic and undeniable under his fingers. This, too, was familiar: the sensation that Lucien was offering her a door and a trap at once, and trusting her to know the difference. “Why now?” she asked, not looking up. “Beyond the creature in Limehouse. Why come yourself?” His thumb stilled over her wrist. “Because if something is looking for you, I intend to be between it and your door.” He drew a measured breath. “And because I discovered that staying away had ceased to feel prudent and begun to feel cowardly.” That made her lift her head. He was close enough now that she could see the fine pale lashes framing the black eye, the minute scar tucked beside his chin, the shadow of stubble beneath the perfection. Beautiful, yes. But not polished now. Exposed. The sight of it tugged at some guarded place inside her. “You,” she said, “admitting cowardice. Should I sit down?” “If you mock me after I have bared my throat, I shall be forced to revise my opinion of your character.” She took half a step closer. “Your opinion of my character has always been suspiciously high.” “Only because your conduct is so regularly appalling.” Her laugh came out helpless this time, and there—there it was, the old ease, sliding into place over all the wreckage as if it had merely been waiting. Lucien’s gaze softened at the sound. His hand tightened around hers, not imprisoning, just anchoring. The books, the notes, the rain, the cramped flat above Brick Lane—everything seemed to recede. There was only the strip of worn linoleum beneath their feet and the narrow distance between one breath and the next. “Aurora,” he said, her name stripped bare of strategy, “if I kiss you now, will I still be making a mistake?” Her heart knocked hard enough to hurt. The sensible answer was yes. The self-protective answer was absolutely. She had lived too long with men who took and named it destiny. She knew the value of restraint. She knew the cost of wanting badly and being wanted badly in return. But Lucien was still waiting. Not presuming. Not taking. The patience in him, when he chose to show it, was devastating. “No,” she said, very quietly. “But if you disappear after, I’ll kill you.” His mouth curved. “That seems fair.” He lifted his free hand to her face with a care that nearly broke her. Knuckles brushed her cheek, then settled warm against her jaw. Aurora leaned into the touch before pride could stop her. His expression changed at that, some tightly held thing giving way. When he kissed her, it was not tentative. It was restrained, which was not the same thing at all. All that control focused into one precise, devastating touch of his mouth on hers. Aurora made a soft, involuntary sound and felt his restraint shudder. She kissed him back. Months of anger, want, confusion, and unfinished sentences struck fire at once. He tasted of rain and clove and the kind of danger she had stopped pretending she didn’t crave. His hand slid from her jaw to the back of her neck, fingers threading into her hair, and the world narrowed further, down to warmth and pressure and the shocking relief of finally, finally. Aurora was the one who deepened it, because she was done being careful first. Lucien answered with a low breath against her mouth and gathered her in without haste, one arm at her waist, drawing her closer until her hip touched the hard line of his. The cane tipped and clattered gently against the counter, forgotten entirely now. By the time they broke apart, the kettle had long gone silent and Ptolemy was staring at them from the sofa with frank tabby disapproval. Lucien rested his forehead briefly against hers. His breathing was no steadier than hers. “Well,” he murmured. Aurora’s lips tingled. “That was either a terrible idea or an excellent one.” “Those are not mutually exclusive.” She smiled against his mouth. “Still impossible.” “And yet,” he said, “you opened the door.” Outside, rain tapped softly at the window. Inside, wrapped in the paper-cluttered mess of Eva’s flat, with danger still waiting somewhere beyond the three deadbolts, Aurora let herself stand in his arms for one more stolen moment and feel, beneath all the complication, the simple undeniable fact of his return.
created_at"2026-03-09T22:42:28.633Z" 3/9/2026, 10:42:28 PM
model"openai/gpt-5.4-20260305"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency3191
moderation_latency(null)
generation_time83606
tokens_prompt808
tokens_completion4510
native_tokens_prompt753
native_tokens_completion3793
native_tokens_completion_images0
native_tokens_reasoning128
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.0587775
router(null)
provider_responses
0
endpoint_id"9ff5625c-403f-4d7f-b895-58ac7295062c"
id"resp_0e462cf6197af6eb0169af4cd4b5108190819ab2c8b6a742f3"
is_byokfalse
latency153
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-1773096148-J4P0wWjoNOK9basSaFgs"
upstream_id"resp_0e462cf6197af6eb0169af4cd4b5108190819ab2c8b6a742f3"
total_cost0.0587775
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
totalTags27
adverbTagCount1
adverbTags
0"he said quietly [quietly]"
dialogueSentences91
tagDensity0.297
leniency0.593
rawRatio0.037
effectiveRatio0.022
75.69% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount2879
totalAiIsmAdverbs14
found
0
adverb"utterly"
count1
1
adverb"carefully"
count3
2
adverb"suddenly"
count1
3
adverb"softly"
count2
4
adverb"very"
count3
5
adverb"really"
count1
6
adverb"lightly"
count1
7
adverb"tightly"
count1
8
adverb"gently"
count1
highlights
0"utterly"
1"carefully"
2"suddenly"
3"softly"
4"very"
5"really"
6"lightly"
7"tightly"
8"gently"
100.00% AI-ism character names
Target: 0 AI-default names (17 tracked, −20% each)
codexExemptions(empty)
found(empty)
100.00% AI-ism location names
Target: 0 AI-default location names (33 tracked, −20% each)
codexExemptions(empty)
found(empty)
70.48% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount2879
totalAiIsms17
found
0
word"velvet"
count1
1
word"flicked"
count1
2
word"weight"
count1
3
word"stomach"
count1
4
word"silence"
count1
5
word"grave"
count1
6
word"pulse"
count2
7
word"unreadable"
count1
8
word"could feel"
count1
9
word"looming"
count1
10
word"charm"
count1
11
word"familiar"
count1
12
word"measured"
count1
13
word"absolutely"
count1
14
word"restrained"
count1
15
word"warmth"
count1
highlights
0"velvet"
1"flicked"
2"weight"
3"stomach"
4"silence"
5"grave"
6"pulse"
7"unreadable"
8"could feel"
9"looming"
10"charm"
11"familiar"
12"measured"
13"absolutely"
14"restrained"
15"warmth"
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
narrationSentences219
matches(empty)
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount0
hedgeCount4
narrationSentences219
filterMatches(empty)
hedgeMatches
0"started to"
1"seemed to"
2"began to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences282
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen61
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords2874
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions32
unquotedAttributions0
matches(empty)
99.56% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions62
wordCount2181
uniqueNames12
maxNameDensity1.01
worstName"Aurora"
maxWindowNameDensity2
worstWindowName"Lucien"
discoveredNames
Aurora22
Moreau2
French-accented1
Whitechapel1
Lucien20
Eva4
London1
Blackfriars1
Brick2
Lane2
Despite1
Ptolemy5
persons
0"Aurora"
1"Moreau"
2"Lucien"
3"Eva"
4"Ptolemy"
places
0"London"
1"Brick"
2"Lane"
globalScore0.996
windowScore1
100.00% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences139
glossingSentenceCount2
matches
0"t long enough, apparently, for any of it to s"
1"not quite a smile"
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount2874
matches(empty)
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount1
totalSentences282
matches
0"hated that he"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs133
mean21.61
std22.3
cv1.032
sampleLengths
040
14
2102
38
476
523
636
72
811
916
1014
1140
125
134
1410
1512
1664
174
1831
196
2011
2122
225
232
2416
2545
2613
276
2861
2954
3022
313
321
331
3414
3514
3617
3727
381
3919
403
4116
4212
4328
4438
4518
466
478
4811
494
92.45% Passive voice overuse
Target: ≤2% passive sentences
passiveCount8
totalSentences219
matches
0"was slicked"
1"was amused"
2"been transported"
3"was buried"
4"was taped"
5"was concerned"
6"being wanted"
7"was restrained"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount3
totalVerbs374
matches
0"was offering"
1"was still waiting"
2"was staring"
82.07% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount3
semicolonCount3
flaggedSentences6
totalSentences282
ratio0.021
matches
0"Instead she stood there, aware of the rain-slick scent of him—citrus, expensive smoke, something darker underneath that was never entirely human."
1"The amber eye warmed; the black one stayed unreadable, a split honesty she had always found impossible to resist."
2"It was no longer a blade; it was heat, old and dangerous and not wholly hostile."
3"Lucien polished himself for the world; only rarely did it show where the shine wore thin."
4"Her laugh came out helpless this time, and there—there it was, the old ease, sliding into place over all the wreckage as if it had merely been waiting."
5"The books, the notes, the rain, the cramped flat above Brick Lane—everything seemed to recede."
86.63% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount2189
adjectiveStacks0
stackExamples(empty)
adverbCount121
adverbRatio0.05527638190954774
lyAdverbCount40
lyAdverbRatio0.01827318410232983
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences282
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences282
mean10.19
std8.68
cv0.851
sampleLengths
040
14
229
338
417
59
69
78
814
94
1041
116
1211
1323
149
151
162
172
189
1913
202
2110
221
2311
245
2514
267
2716
289
298
303
312
324
3310
347
355
366
3721
3837
394
406
4116
429
435
441
4511
464
471
4817
495
48.94% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats7
diversityRatio0.30851063829787234
totalSentences282
uniqueOpeners87
100.00% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount6
totalSentences187
matches
0"Then his attention returned to"
1"Instead she stood there, aware"
2"Of course he knew."
3"Then the wall had slammed"
4"Then, behind her,"
5"All that control focused into"
ratio0.032
68.13% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount71
totalSentences187
matches
0"He looked as though he"
1"His platinum hair was slicked"
2"It had been months."
3"She folded one hand around"
4"His expression barely changed, but"
5"She started to push the"
6"He knew exactly how far"
7"His mouth curved, not quite"
8"She should have enjoyed refusing"
9"He wound once around Lucien’s"
10"She hated that he still"
11"She stepped back once, the"
12"He closed the door carefully"
13"She crossed her arms."
14"His eyes came back to"
15"She lifted a hand"
16"She leaned one shoulder against"
17"His cane clicked softly against"
18"She kept her face blank."
19"His eyes closed briefly."
ratio0.38
69.63% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount146
totalSentences187
matches
0"The answer died there."
1"Lucien Moreau stood in the"
2"He looked as though he"
3"His platinum hair was slicked"
4"The other, black as wet"
5"Aurora felt the old impact"
6"It had been months."
7"Ptolemy, sprawled on top of"
8"Lucien’s gaze flicked past Aurora’s"
9"A kettle beginning to mutter"
10"She folded one hand around"
11"His expression barely changed, but"
12"She started to push the"
13"He knew exactly how far"
14"Aurora’s jaw tightened."
15"His mouth curved, not quite"
16"She should have enjoyed refusing"
17"A memory rose uninvited: his"
18"That had been before."
19"Ptolemy hopped down from the"
ratio0.781
53.48% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount2
totalSentences187
matches
0"When it was over, when"
1"By the time they broke"
ratio0.011
93.02% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences86
technicalSentenceCount6
matches
0"He looked as though he had stepped out of a private car and onto the wrong street by mistake, too elegant for the peeling walls and the smell of frying onions d…"
1"Aurora threw all three deadbolts with brisk, angry snaps, then turned to find him standing in the middle of Eva’s cramped sitting room as though he had been tra…"
2"She remembered Blackfriars with aching precision: the cold under the bridge arches, the river breathing in the dark, blood on her sleeve that wasn’t hers."
3"He had touched her as though she was both breakable and the most dangerous thing in the room."
4"Lucien took it carefully, as if she had handed him something more dangerous than a knife."
5"Her laugh came out helpless this time, and there—there it was, the old ease, sliding into place over all the wreckage as if it had merely been waiting."
87.96% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags27
uselessAdditionCount2
matches
0"He stopped, as though the next words had teeth"
1"she asked, not looking up"
100.00% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags19
fancyCount1
fancyTags
0"he murmured (murmur)"
dialogueSentences91
tagDensity0.209
leniency0.418
rawRatio0.053
effectiveRatio0.022
90.9341%