Run: 2026-10-27-01M5YHCWK6KG45FJDBESVSB8A6

Run Details

Duration:
53.4s
Cost:
$0.020188
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 door opened on Lucien Moreau, rain shining on the shoulders of his charcoal suit. Rory kept one hand on the top deadbolt. For a moment she could only stare at him: the slicked-back platinum hair, the ivory handle of his cane, the familiar, infuriating composure. Then she started to close the door. “Rory.” She stopped it an inch from the frame. “How did you know I was here?” “Your light was off above Silas’s. I asked at the Golden Empress. They said you’d taken the evening to look after Eva’s cat.” “And they told you where Eva lives?” “I already knew.” That was not reassuring. Ptolemy wound around Rory’s ankles, nearly upsetting her balance. She nudged him back with her heel. Lucien’s mismatched eyes dropped to the cat and returned to her face. There was a faint mark beneath his amber eye, too dark to be a shadow. “May I come in?” he asked. “No.” He inclined his head as though she had declined a drink. “Then I’ll be brief. Someone has a list of addresses connected to the people who helped me in February. Yours is on it.” The curry house downstairs sent up a warm gust of cumin and fried onion. Rory held the door where it was. “You told me you’d taken care of that.” “I believed I had.” “Do you usually sell information you only believe?” “No.” His mouth tightened. “That is why I’m here.” She studied him. His gloves were wet, but one cuff was wet through, the fabric clinging to his wrist. He had come on foot, or left a car some distance away. Lucien hated arriving anywhere looking less than deliberate. “Who has the list?” “A broker called Voss. A copy was made before I got hold of the original. I learned about it an hour ago.” “And what does Voss want?” “To sell it to the people who wanted the original.” “That clears things up.” “I can explain properly if you let me inside.” Ptolemy pushed his head into the gap. Rory caught him under the belly before he could slip onto the landing. With the cat squirming against her chest, she looked past Lucien down the narrow stairwell. No movement. No sound except the clatter of pans from the restaurant below. “You have five minutes,” she said. He stepped in. Rory shut the door and slid all three deadbolts home. She had once teased Eva about them. Eva had replied that a woman living above a curry house was entitled to protect herself from both burglars and drunken men who thought they’d found the toilet. Lucien stood just inside the cramped sitting room, careful not to knock the books stacked on the floor. Research notes covered the table, and several scrolls occupied the sofa where Rory had cleared a space for herself. Ptolemy twisted free and landed on a pile of papers, sending them sliding. “Sorry, Eva,” Rory muttered, gathering them before the cat could make a bed. Lucien watched her straighten the pages. He had watched her like that once while she sorted delivery receipts in the Golden Empress, as though the task deserved his complete attention. Two weeks later he had kissed her in the alley behind the restaurant, his hand warm against the back of her neck. Three weeks after that, she had found out what he had been arranging without her knowledge. She set the papers down. “Five minutes.” He drew an envelope from inside his jacket and handed it to her. The cream paper was unsealed. Inside was a photocopy of a handwritten list: names, addresses, dates. Near the bottom, she found her own name and the flat above Silas’s bar. Eva’s address was not there. Rory felt a small, sharp release in her chest. “Who else has seen it?” she asked. “Voss showed it to a potential buyer tonight. The buyer came to me.” “Out of loyalty?” “Out of greed. He thought I might pay more.” “Will you?” “I offered. Voss refused.” Rory looked up. “Why?” “He knows I want it. That raises the price.” “And you came to tell me because?” “Because he may decide the list is worth more if he can prove an address is current.” The mark under his eye caught the light when he turned. It was a bruise, and there was a thin cut at the edge of it. “You’ve already spoken to him,” she said. “I tried.” “Did he do that to your face?” “One of his associates did.” “That must have been a difficult conversation.” “It was not my best work.” Despite herself, Rory almost smiled. She folded the list instead. “I’m not going back to my flat tonight.” “Good. I can arrange somewhere else for you.” “No.” “Rory—” “I said no.” He fell silent. She was grateful for it, though the silence made room for the old anger. In February, Lucien had discovered that a man Rory had unknowingly delivered a parcel to was connected to a demon trafficking ring. Rory had remembered his face, his address and the peculiar silver seal on the parcel. She had given Lucien everything she knew. He had thanked her, kissed her, and then paid someone to remove her name from the delivery records without telling her. She might even have thanked him for that. What she could not forgive was the rest: he had gone to Yu-Fei and arranged for Rory’s shifts to be changed, her routes reassigned, and her flat watched. By the time Rory found out, three strangers knew she was in danger and she did not. When she confronted him, he had said he was keeping her safe. He had said it as though that answered everything. Rory put the list on the table. “Does Yu-Fei know?” “Not yet.” “Good. I’ll call her.” “You should ask her to be careful.” “I know.” Lucien rested both hands on his cane. “I came to you first this time.” “You came after you’d already talked to Voss and the buyer.” “I came as soon as I knew your address was on the copy.” She wanted to find the evasion in that sentence. She could not, which irritated her almost as much as if she had. Her phone lay beneath a book about medieval saints. She retrieved it and called the restaurant. When Yu-Fei answered, Rory moved toward the kitchen and kept her explanation short: someone might come asking about her deliveries; please don’t give them anything; she would explain in person tomorrow. Yu-Fei asked if she was hurt. Rory said no, and meant it in the immediate sense. After a few more questions, Yu-Fei told her to stay where she was and hung up. Lucien had not moved when Rory returned. “Does the buyer have the list now?” she asked. “He says he doesn’t.” “Do you believe him?” “Yes. He described the paper, the handwriting and the first three names. He wanted me to know he’d seen it, but he couldn’t provide a copy.” “And Voss still has it?” “As far as I know.” “Could you get close enough to take it?” “Possibly. He’s expecting that.” Rory picked up the photocopy. “He’s selling the addresses because the names alone aren’t enough?” “For some of them. Several have moved since February.” She found the date beside her name. It was from the week Lucien had paid to have the flat watched. Her grip tightened on the paper. “You gave someone my address.” “Yes.” “And the person you gave it to made this list?” Lucien’s expression changed, just slightly. “Yes.” The room seemed to grow smaller around her. “You could have mentioned that when you came through the door.” “I should have.” “Who was it?” “A man I trusted.” “Do you still?” “No.” She let out a breath. “Wonderful.” “I dismissed him when I discovered he’d kept records. I recovered what I thought were all of them.” “But not the copies he’d sold.” “No.” Rory set the page down with exaggerated care. “You understand why I don’t want you arranging another safe place.” “Yes.” “Do you? Because last time you kept saying you understood, right up until you told me I was being unreasonable.” His jaw worked. “I remember.” She had not expected him to agree. She had expected a polished apology with the edges tucked in, something she could push against. Instead he stood there with his bruised face and his wet cuff, looking as if he had been awake for far too long. “I was frightened for you,” he said. “That doesn’t make you the only person who gets to be frightened.” “No.” His voice was quiet. “It doesn’t.” Ptolemy jumped onto the table and placed one paw squarely on the photocopy. Rory lifted him down again. The cat protested and went to inspect Lucien’s shoes. “I haven’t told Eva about you,” she said. “I assumed she knew.” “She knows we stopped seeing each other. She knows I was angry.” “Is that all?” Rory looked at the cat. “She knows I missed you.” Lucien’s hand tightened on the cane. He did not come closer, and she was glad of that. She was not certain what she would do if he touched her. “I missed you too,” he said. “You could have called.” “I did. Twice.” “And when I didn’t answer?” “I thought you wanted me to leave you alone.” “I did.” Rory rubbed at the small crescent scar on her wrist. “I also wanted you to try again. That wasn’t especially fair.” “I wasn’t sure I had earned another chance to try.” She met his eyes. “You could have asked.” He gave a short, rueful nod. “I’m beginning to see a pattern.” The clock above Eva’s kitchen door ticked into the silence. Rory glanced at it. His five minutes had passed some time ago. “Tell me about Voss,” she said. Lucien’s brows lifted. “What would you like to know?” “Where does he keep the list? Who does he work with? What does he do when someone offers him more money than he expects?” For the next ten minutes, Lucien answered while Rory paced the narrow strip between the sofa and table. Voss operated from a private room above a club in Soho. He used a clerk to handle appointments and two associates to keep visitors polite. He liked auctions, disliked surprises and had recently acquired a reputation for selling information that turned out to be incomplete. “Would that bother him?” Rory asked. “It already does. His buyers have begun asking for proof before they pay.” “Then let’s give them some.” She spread the photocopy over Eva’s notes. Three of the addresses had dates beside them from early February. One was crossed out and replaced with another. “Your buyer only saw the first three names. Did he see the rest of the page?” “He didn’t describe it.” “Can you ask him?” Lucien took out his phone and sent a message. The reply came quickly. “No. Voss covered the lower half.” “Then he doesn’t know whose addresses are on it. Does he know anyone on the top half?” Lucien glanced down the page. “He knows the second name.” “Call her. Ask if she’ll confirm she’s moved.” “She has. I helped her move.” Rory folded her arms. “Did she ask you to?” A pause. “Yes.” “Good. Ask if she’ll let you tell the buyer. If the list has a reputation for being out of date before Voss can sell it, your buyer might not want it. He might tell other buyers not to bother.” “Voss may still find someone willing to take the risk.” “Then you make an offer again. A smaller one. He might decide it’s better than being stuck with a list he can’t sell.” Lucien looked down at her. “You thought of that in ten minutes.” “I’ve spent enough time watching people haggle over takeaway orders.” His mouth curved. The smile arrived slowly, as if he had not expected to use it tonight. Rory felt it low in her stomach and resented the timing. “It’s worth trying,” he said. “May I make the calls from here?” “Yes. Tell them as little as you can about me.” “I will.” He moved into the kitchen. Rory heard his voice through the open doorway, first in English and then in French. She could not follow the French, but she heard the change in his tone: persuasive, patient, with none of the brittle charm he used when he wanted to get rid of someone. While he spoke, she put the kettle on. His cup was still in Eva’s cupboard, a chipped blue one he had used the last time he came here. Rory took it down before she could decide whether that meant anything. By the time the tea had brewed, he had finished both calls. “She agreed,” he said. “The buyer is annoyed that Voss didn’t tell him the address was old. He’s going to speak to him.” “Do you trust the buyer to leave it there?” “No. But I trust him to complain to anyone who’ll listen.” She handed Lucien the blue cup. His fingers brushed hers, and both of them paused. “Sorry,” he said. “You don’t have to apologise every time you touch me.” “I wasn’t sure.” Rory kept hold of the saucer until he had the cup securely. “That’s fair.” They sat on opposite ends of the sofa after Rory moved the scrolls to a chair. Ptolemy settled between them, his tail over Lucien’s thigh. Lucien stroked him cautiously. “You’re good with him,” Rory said. “He hasn’t bitten me yet.” “He usually gives it ten minutes.” Lucien looked at the cat. “A gracious host.” Rory drank her tea. The warmth helped ease the tightness in her chest, though not entirely. There was still a list, still a man who might try to use it, still the question of where she would sleep tomorrow if Voss refused to sell. “We’ll need to tell the others,” she said. “The people on the list.” “I can contact most of them tonight.” “And the ones you can’t?” “I’ll keep trying. If you want, I can show you what I send.” She considered. “I’d like that.” He nodded and reached for his phone, but she put her cup down before he could unlock it. “Lucien.” He looked up. “When you told me you’d kept me safe, I kept thinking about all the times someone has decided what’s best for me because they were certain I couldn’t see it myself.” She traced the handle of her cup. “You didn’t ask what I wanted. You made my life smaller and expected me to be grateful.” “I know I hurt you.” “I need to know you understand how.” He was quiet for long enough that she looked at him. His gaze had dropped to his hands. “I wanted to be the person you could rely on,” he said. “Then something went wrong, and I was afraid you’d see how little control I had over it. So I tried to control you instead.” Rory swallowed. It was not a tidy answer. She believed it. “I was ashamed when you found out,” he continued. “And I made that your problem too.” “Yes,” she said. “You did.” He accepted it without looking away this time. The tenderness she felt was inconvenient and real. She set her cup on the floor and reached across Ptolemy, laying her hand palm-up on the cushion. Lucien looked at it, then at her. “Are you sure?” “No,” she said. “But you can hold my hand while I decide.” His fingers closed around hers. His hand was warm, the grip careful. Rory remembered those fingers at the back of her neck, the way he had once bent to kiss her as if he had been thinking about it for days. She had thought about it for days too. She had thought about it in the months since, often when she was trying very hard not to. She moved closer. Ptolemy, displaced, stepped onto the floor with an offended sound. “I’m still angry,” she said. “I know.” “And if you make arrangements about me without asking again, I’ll be angrier.” “I know that too.” She touched the bruise beneath his eye, lightly enough not to hurt him. His breath caught. “Will you kiss me?” she asked. “Yes.” He waited, giving her time to change her mind. Rory leaned in and kissed him. His free hand rose to her cheek, then stopped until she pressed closer. The kiss was gentle at first, almost tentative, and then familiar enough to make her ache. She drew back before either of them could forget where they were. Lucien rested his forehead against hers. “I should come to your door more often with flowers.” “You should call first.” A soft laugh escaped him. She had missed that too. His phone buzzed on the cushion beside him. They both looked at it. Lucien reached for it, read the message and showed her the screen. The buyer had spoken to Voss. There was no agreement yet, but Voss was willing to consider a lower offer. “It’s a start,” Rory said. “Yes.” She picked up her tea. It had gone lukewarm, but she drank it anyway. Lucien opened a fresh message and turned the phone so she could see as he typed a warning to the first person on the list. When he was done, she suggested a change to the wording. He made it, then sent the message. Ptolemy jumped back onto the sofa and settled in Rory’s lap. She stroked him with one hand and kept the other in Lucien’s while they worked through the names.
created_at"2026-10-27T11:19:45.522Z" 10/27/2026, 11:19:45 AM
model"openai/gpt-6.1-terra-20261026"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency3224
moderation_latency(null)
generation_time53302
tokens_prompt788
tokens_completion4466
native_tokens_prompt753
native_tokens_completion3887
native_tokens_completion_images0
native_tokens_reasoning150
native_tokens_cached0
num_media_prompt(null)
num_input_audio_prompt(null)
num_media_completion0
num_search_results(null)
num_fetches(null)
web_search_engine(null)
origin"https://ncbench.com/"
is_byokfalse
finish_reason"stop"
native_finish_reason"completed"
service_tier"default"
usage0.020188
router(null)
user_agent"langchainjs-openai/1.0.0 ((node/v24.22.1; linux; x64))"
http_referer(null)
request_id"req-1793099985-2ehAwALRewKjgf5G0YY1"
session_id(null)
preset_id(null)
api_type"completions"
id"gen-1793099985-vA0Ufj9PItSWt9uuQZkc"
upstream_id"resp_0574006b2562d383016ae088d1a4fc87d18f6805092bb95b98"
provider_responses
0
endpoint_id"2d2ad10f-098e-4bbf-aa95-11f705b2b9a2"
id"resp_0574006b2562d383016ae088d1a4fc87d18f6805092bb95b98"
is_byokfalse
latency308
model_permaslug"openai/gpt-6.1-terra-20261026"
provider_name"OpenAI"
status200
total_cost0.020188
cache_discount(null)
upstream_inference_cost0
provider_name"OpenAI"
response_cache_source_id(null)
data_region"global"
workspace_id"97e315e5-d303-487d-83c1-83180e8a13d4"

Evaluation details

Result Evaluator Details Meta Data
100.00% Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags26
adverbTagCount0
adverbTags(empty)
dialogueSentences165
tagDensity0.158
leniency0.315
rawRatio0
effectiveRatio0
89.81% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount2944
totalAiIsmAdverbs6
found
0
adverb"slightly"
count1
1
adverb"quickly"
count1
2
adverb"slowly"
count1
3
adverb"cautiously"
count1
4
adverb"very"
count1
5
adverb"lightly"
count1
highlights
0"slightly"
1"quickly"
2"slowly"
3"cautiously"
4"very"
5"lightly"
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)
83.02% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount2944
totalAiIsms10
found
0
word"familiar"
count2
1
word"potential"
count1
2
word"silence"
count2
3
word"stomach"
count1
4
word"charm"
count1
5
word"warmth"
count1
6
word"traced"
count1
7
word"tenderness"
count1
highlights
0"familiar"
1"potential"
2"silence"
3"stomach"
4"charm"
5"warmth"
6"traced"
7"tenderness"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches1
maxInWindow1
found
0
label"let out a breath"
count1
highlights
0"let out a breath"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells1
narrationSentences193
matches
0"was grateful"
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount0
hedgeCount3
narrationSentences193
filterMatches(empty)
hedgeMatches
0"started to"
1"seemed to"
2"try to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences331
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
repeatedSegmentCount0
maxSentenceWordsSeen39
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords2944
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions53
unquotedAttributions1
matches
0"For the next ten minutes, Lucien answered while Rory paced the narrow strip between the sofa and table."
41.67% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions100
wordCount1800
uniqueNames15
maxNameDensity2.17
worstName"Rory"
maxWindowNameDensity3.5
worstWindowName"Rory"
discoveredNames
Lucien28
Moreau1
Rory39
Eva6
Golden1
Empress1
Silas1
Despite1
February2
Yu-Fei4
Ptolemy8
Soho1
English1
French2
Voss4
persons
0"Lucien"
1"Moreau"
2"Rory"
3"Eva"
4"Silas"
5"Yu-Fei"
6"Ptolemy"
7"Voss"
places
0"Golden"
1"February"
2"Soho"
3"English"
4"French"
globalScore0.417
windowScore0.5
100.00% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences128
glossingSentenceCount0
matches(empty)
100.00% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches0
per1kWords0
wordCount2944
matches(empty)
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount2
totalSentences331
matches
0"replied that a"
1"discovered that a"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs204
mean14.43
std14.89
cv1.032
sampleLengths
015
131
27
31
415
523
67
73
820
927
106
111
1234
1329
144
158
169
1739
184
1922
205
2110
224
239
2448
256
2648
2750
2813
2968
307
3143
3214
337
3413
353
369
372
384
394
409
417
4217
4326
447
452
467
475
487
496
99.81% Passive voice overuse
Target: ≤2% passive sentences
passiveCount3
totalSentences193
matches
0"was entitled"
1"was connected"
2"was crossed"
100.00% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount2
totalVerbs345
matches
0"was keeping"
1"was willing"
100.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount0
semicolonCount2
flaggedSentences1
totalSentences331
ratio0.003
matches
0"When Yu-Fei answered, Rory moved toward the kitchen and kept her explanation short: someone might come asking about her deliveries; please don’t give them anything; she would explain in person tomorrow."
100.00% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount1806
adjectiveStacks0
stackExamples(empty)
adverbCount53
adverbRatio0.029346622369878183
lyAdverbCount15
lyAdverbRatio0.008305647840531562
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences331
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences331
mean8.89
std6.47
cv0.728
sampleLengths
015
18
223
37
41
58
67
723
87
93
104
119
127
1312
1415
156
161
1711
1823
1914
207
218
224
238
244
255
263
2716
2812
298
304
3122
325
3310
344
359
367
3713
3815
392
4011
416
423
4310
447
4528
4618
4719
4813
4913
45.47% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats15
diversityRatio0.20241691842900303
totalSentences331
uniqueOpeners67
39.92% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount2
totalSentences167
matches
0"Then she started to close"
1"Instead he stood there with"
ratio0.012
45.15% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount73
totalSentences167
matches
0"She stopped it an inch"
1"She nudged him back with"
2"He inclined his head as"
3"His mouth tightened"
4"She studied him."
5"His gloves were wet, but"
6"He had come on foot,"
7"He stepped in."
8"She had once teased Eva"
9"He had watched her like"
10"She set the papers down."
11"He drew an envelope from"
12"It was a bruise, and"
13"She folded the list instead."
14"He fell silent."
15"She was grateful for it,"
16"She had given Lucien everything"
17"He had thanked her, kissed"
18"She might even have thanked"
19"He had said it as"
ratio0.437
37.84% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount141
totalSentences167
matches
0"The door opened on Lucien"
1"Rory kept one hand on"
2"She stopped it an inch"
3"That was not reassuring."
4"Ptolemy wound around Rory’s ankles,"
5"She nudged him back with"
6"Lucien’s mismatched eyes dropped to"
7"He inclined his head as"
8"The curry house downstairs sent"
9"Rory held the door where"
10"His mouth tightened"
11"She studied him."
12"His gloves were wet, but"
13"He had come on foot,"
14"Lucien hated arriving anywhere looking"
15"Ptolemy pushed his head into"
16"Rory caught him under the"
17"He stepped in."
18"Rory shut the door and"
19"She had once teased Eva"
ratio0.844
100.00% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount4
totalSentences167
matches
0"By the time Rory found"
1"While he spoke, she put"
2"By the time the tea"
3"When he was done, she"
ratio0.024
100.00% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences74
technicalSentenceCount3
matches
0"He inclined his head as though she had declined a drink."
1"He had watched her like that once while she sorted delivery receipts in the Golden Empress, as though the task deserved his complete attention."
2"Instead he stood there with his bruised face and his wet cuff, looking as if he had been awake for far too long."
100.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags26
uselessAdditionCount0
matches(empty)
100.00% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags23
fancyCount2
fancyTags
0"Rory muttered (mutter)"
1"he continued (continue)"
dialogueSentences165
tagDensity0.139
leniency0.279
rawRatio0.087
effectiveRatio0.024
89.4228%