Run: 2026-03-18-01KM09ZVXQV08JR9GXJVNTT18B

Run Details

Duration:
20.5s
Cost:
$0.005182
Provider:
OpenAI

Model input

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

Model response

AI
The first thing Aurora Carter noticed was the smell—warm garlic and curry, threaded faintly with something sharper beneath it, like wet stone warmed by a vent. It seeped through the stairwell as if Eva’s flat had been breathing the whole time, waiting. She paused with her hand still on the key in the lock of Silas’ bar-adjacent hallway—no, not Silas’. Above Silas’ bar. That was her place. She had come from her own door not an hour ago, boots damp from the late rain, mind already halfway to tomorrow’s shift at Golden Empress. Then the tabby answered from somewhere behind her in the apartment above the curry house: a low, expectant sound—Ptolemy. Aurora turned toward the sound. The stairwell door creaked as she moved, and the scent followed her up like a warning. Brick Lane pressed at the windows with its neon blur; the street’s noise was muffled by the old building’s bones. Her crescent-scar on her left wrist itched—the small, stupid scar she sometimes forgot existed until she needed her hands to be steady. She reached Eva’s landing with the key already between her fingers. The key was for Eva’s front door. Not hers. She stopped. A memory snapped into place with the sharpness of a snapped elastic band. Eva had told her to come if anything—anything—ever went wrong again. To use the deadbolts. Three of them, like a charm. Like a ritual. Like a promise. Aurora swallowed, then knocked anyway, because she couldn’t help herself. She knocked like she wasn’t about to ruin her own careful night with someone else’s secrets. A muffled thump from inside, then the click of a chain. The deadbolt turned with a reluctant grind. The door opened. Lucien Moreau filled the threshold. He didn’t look like someone who had been living in the mess of the world—he looked like someone who had curated it. Charcoal suit, slicked-back platinum blond hair, ivory-handled cane planted with patient certainty against the floorboards as though it had always belonged there. His heterochromatic eyes caught the dim stairwell light: one amber like the last ember of a fire, one black like ink. Aurora’s breath stopped in the middle of her chest. She stood there with her hand still hovering near the doorknob, as if the door might slam itself shut out of embarrassment. Lucien’s gaze flicked over her quickly—boots, damp hair, the way her shoulders set like a defensive angle. Like he could read the whole night off her skin. “Rory,” he said, softly, and the fact that he used the name she didn’t allow strangers to use made her pulse kick. She hadn’t told anyone he was coming. She hadn’t even told Eva she was this close to losing her temper. Yet here he was. Unannounced. Uninvited. “Luc,” Aurora managed. Her voice sounded too even, too controlled—like she’d wrapped it in foil. “What are you doing here?” He held the doorway open as if he hadn’t heard the question. The air behind him looked warmer, books and scrolls stacked in crowded chaos, the tabby’s eyes glinting somewhere near the kitchen. Ptolemy threaded between Lucien’s ankles without fear, tail level, like he’d marked Lucien as acceptable damage. Lucien’s mouth curved, not quite a smile. “You could ask me what I’m doing at your door,” he countered. His tone stayed gentle, but his words carried the faint edge of someone who had learned to negotiate with knives. “But you came to Eva’s place.” Aurora’s eyes narrowed. “I didn’t. I—” She stopped herself. Of course he would know. Lucien didn’t arrive without knowing. He was an information broker; the underworld didn’t keep secrets from him for long. She forced her fingers to relax, to show she wasn’t reaching for anything she didn’t want to pull free. “Eva told me to—” she started, then hated how it sounded: like she’d been summoned. Like she hadn’t made the decision on her own. Like she was still being steered. Lucien’s cane tipped slightly, the ivory handle catching the light. “Eva is indisposed.” That phrasing—indisposed—felt deliberate. He hadn’t said she wasn’t home. He hadn’t said she was lying. He had chosen a word that made everything ambiguous, and Aurora hated ambiguity on principle. “Why are you here?” she repeated, and this time the question carried weight. Lucien stepped back, letting the door swing wider without leaving the threshold. The gesture was almost courteous. Almost. Aurora didn’t cross the line. She remained in the stairwell’s strip of dim light, as if the doorframe could still be a boundary she controlled. His heterochromatic eyes tracked her like a lock picking itself. “Because you have something I require,” he said. Aurora’s stomach tightened. “What do I have that you require?” “You,” he replied, and the simplicity of it made her throat go dry. His voice dropped. “Or, rather, what you know.” History rose between them like a curtain pulled too fast. The last time they’d been in the same room, the air had tasted like metal and grief. The last time he’d left, it had been on complicated terms. Terms Aurora had agreed to because agreeing had been easier than fighting. Terms she’d regretted the moment the door had closed. She remembered it in fragments: Lucien’s hand on her wrist—not the crescent-scarred left one, thankfully, but her right, warm and too steady; the way he’d looked at her as if he could see the parts she kept hidden; the night he’d offered help with a voice that sounded like truth. Then the betrayal, quiet as a page turned. The missing explanation. The way he’d vanished when the damage was already done. Aurora had told herself she didn’t care. She’d told herself she couldn’t afford to care. Tonight, standing in Eva’s doorway with Ptolemy brushing against Lucien’s shins like they’d known each other for years, she couldn’t keep the lie from cracking. “Don’t,” she said, and her cool-headedness didn’t save her from the tremor in her voice. “Don’t play like you didn’t leave me holding the bag.” Lucien’s expression softened in a way that made her angrier—because it wasn’t an admission, not yet. It was restraint. He didn’t look guilty, not exactly. He looked like someone who’d filed guilt into a compartment labeled later. “Rory,” he said again. Her alias on his tongue sounded like a familiar song played in a wrong key. “I didn’t leave you holding anything.” “You did,” she shot back. “You walked out. You didn’t explain. You didn’t—” She stopped herself before she said the word she didn’t want to say. Didn’t say goodbye. Didn’t say sorry. Didn’t say why. Lucien’s cane shifted a fraction. The thin blade inside the cane remained hidden, but the movement was a reminder: he could be danger. Even when he was quiet. Ptolemy yawned as if the argument were just background noise. Lucien’s amber eye flicked to Aurora’s wrist—her crescent scar. The movement was so subtle she might have imagined it, except his gaze sharpened, and she felt seen in the most infuriating way. “It wasn’t the right time to give you details,” Lucien said. Aurora let out a humorless laugh. “There’s never a right time with you, is there? Always later. Always some—” She searched for the word and found it like a splinter. “Always some deal.” Lucien’s gaze held steady. “There are deals,” he agreed. “And there are consequences.” “And you didn’t think I’d be one of them?” Aurora demanded. Her voice rose, then steadied, because she could hear herself slipping into that hurt-given anger, the kind she’d practiced drowning for months. Lucien’s mouth tightened. “I thought you could handle more than I wanted to put on your shoulders.” Aurora stared at him. For a moment, she forgot to breathe. That—what he said, how he said it—was the worst part. It wasn’t cruel. It was protective disguised as distance. It was affection in a language that looked like avoidance. She could feel the old attraction like a bruise she’d covered with bandages. It ached under her skin, waking up under the heat of his presence. “You came unannounced,” she said, forcing her mind back to the present. “In the middle of—God. In the middle of me trying to keep my life from falling apart. So tell me what this is. Is this another deal? Another consequence you’re throwing at my feet?” Lucien’s eyes shifted, first to the deadbolts on the door behind her, then to the stacks of books and scrolls visible through the wider opening. He seemed to measure the room like a chessboard. “I came because someone is moving through the city looking for a specific kind of knowledge,” he said. “And your name is connected to it.” Aurora’s jaw tightened. “My name?” Lucien nodded once. “Whether you want it connected to you is irrelevant.” Her stomach turned. “That sounds like you’re trying to be in control again.” His amber eye darkened slightly, but his expression didn’t harden. “I’m trying to keep you alive,” he corrected. The words landed between them with the force of something that wanted to be believed. Aurora forced herself not to soften. She’d softened before. It had cost her. “What knowledge?” she demanded. “And why Eva’s flat?” Lucien glanced down at Ptolemy, whose tail flicked like a metronome. “Eva has… research,” he said carefully. “She believes she has a map to something older. Something that predates your legal ambitions and my entire existence.” His mouth curved with dry amusement. “She’s wrong in some places and right in others.” Aurora took a step closer—not fully into the apartment, but into the doorway’s spill of warmth. The smell of curry grew stronger, threaded with ink and paper dust. “Say what you mean,” she insisted. “I don’t have time for riddles.” Lucien’s heterochromatic eyes met hers again. “You already know,” he said. Aurora’s pulse stuttered. Her thoughts flashed to the things she’d tried not to connect: the evidence that didn’t add up, the documents that had appeared in her life like they’d been planted to test her, the way certain names returned with a pattern she hadn’t wanted to see. No. Not her name. Not directly. Something she’d touched. Something she’d learned because she’d needed leverage once and refused to call it leverage. Aurora swallowed. “I don’t.” Lucien’s gaze didn’t waver. “You do.” Her throat tightened. She wanted to snarl, to demand proof. She wanted to throw his cane into the river and pretend the threat wasn’t real. But the truth was worse than any threat: part of her had missed him. The part that remembered his voice, the way his attention had felt like a hand on her back steering her out of danger. She hated that part. She hated herself for reacting. “You should have told me,” she said, smaller now. The hurt slipped through the cracks she’d built. “When you left.” Lucien’s expression shifted—subtle, almost imperceptible—like a storm moving behind a wall of glass. “I wanted to,” he admitted. “But I wasn’t allowed.” Aurora’s eyes widened. “Allowed by who?” Lucien’s answer came too quickly, like he’d rehearsed it. “By the same things that are allowed to hurt you,” he said. “By people who think they own the underworld and the streets you walk. By a realm that believes bargains can be made without consent.” He didn’t say “demon.” He didn’t have to. Aurora’s mind flashed to the way he’d described Avaros once, not with reverence but with caution. Like a place that had rules designed to trap people. “What do you want from me?” she asked again, but this time the question wasn’t only suspicion. It was dread. Lucien exhaled through his nose. “You,” he said, and there was no performance in it now. “I want you to tell me what you learned. I want to confirm what you suspected. Before whoever is searching finds you first.” Aurora’s hands curled at her sides. The crescent scar on her left wrist prickled as if it were trying to remind her of the cost of accidents. “You think I’m going to cooperate with you after—” she began, then stopped herself. The accusation was too familiar. It belonged to arguments that had already happened. She forced her voice to steady. “Lucien. If you’re here to use me, leave. I can handle myself.” Lucien’s amber eye flickered. The brief movement was almost tender, and it infuriated her because she wanted to trust it. “You can handle yourself,” he agreed. “You always did. That’s the problem.” He stepped fully into the apartment, not crossing into her personal space so much as claiming the threshold between them. Charcoal suit absorbed the dim light; his platinum hair caught it like a blade catching sun. Aurora felt the distance between them shrink even though they hadn’t touched. Ptolemy hopped onto a stack of books with a smug little hop, then settled as if the scene were for his comfort. Lucien’s cane stayed upright, ivory handle polished, blade hidden. He didn’t lunge. He didn’t intimidate. He waited. For her to decide. Aurora stared at him, and the hurt and attraction wrestled for the same breath. She could still see the way he’d looked when he left last time—too composed, too controlled, as if he’d been taught not to show weakness. Now, something in his face had loosened. Not enough to become a confession. Enough to become a truth. “I came here,” Aurora said slowly, “because Eva thinks she’s found a map. Because she thinks the right paper can keep monsters out.” She glanced toward the clutter—scrolls, notes, a half-unrolled diagram on the table with symbols she didn’t fully understand. “But I also know she’s trying to fix something she didn’t break.” Lucien watched her, listening. “And?” “And you,” Aurora continued, voice sharpened with resolve, “you didn’t come because Eva needs help.” Lucien’s lips pressed together. Aurora swallowed. “You came because you do.” The silence between them stretched, thick as velvet. Lucien finally moved—one careful step forward, as if he were approaching a skittish animal. He stopped just short of touching her, close enough that she could smell him now: cold air and old leather, something metallic underneath, like rain hitting iron. “I came,” he said, “because there’s something in this city that recognizes you. It recognizes your pattern. And it’s drawn to what you carry.” “What I carry,” Aurora echoed. Lucien’s eyes softened, then hardened again, like he was fighting himself. “Your refusal to be owned,” he said. “Your stubbornness. Your choices.” Aurora’s heart knocked hard against her ribs. She wanted to deny it. She wanted to tell him he didn’t get to read her like a book. But she couldn’t. Not when his gaze reflected the hurt she’d tried to bury. “What did you tell them?” she asked, quiet now, almost a whisper. “When you left. What did you give them in exchange for—whatever the hell you were doing?” Lucien’s jaw tightened. “Nothing you didn’t already offer,” he said. Aurora blinked. “That doesn’t make sense.” “It will,” Lucien replied. “If you tell me what you learned. If you show me what you think you saw.” Aurora stared at him, and the old arguments rose like ghosts. Her refusal to be controlled. His habit of controlling the conditions instead of the feelings. The way he’d treated her like she was strong enough to survive the truth and not fragile enough to need gentler honesty. She was strong. She was also tired. She took another step, finally crossing into the flat. The warmth wrapped around her like a coat she’d forgotten she owned. She kept her hands at her sides, fingers flexing once, twice—anchoring herself. Lucien’s gaze followed her movement. There was a flicker of something—relief, maybe. Or hunger for certainty. Aurora turned toward the table where Eva’s notes lay in disarray. A page fluttered slightly as if it had been breathing. “You said you required something,” she said. “Knowledge. Confirmations. Maps.” Lucien’s cane tapped lightly once against the floor, a measured sound that seemed to set the pace. “Yes.” Aurora’s eyes scanned the symbols on the page. Not fully. Not yet. But enough to feel the tug in her mind—the faint click of recognition. She looked back at Lucien. “Then don’t stand there like a man watching from a balcony,” she said. “Help me read it.” For the first time, Lucien’s smile broke free. It wasn’t triumphant. It was reluctant and real, like he’d been holding it behind his teeth. “I can do that,” he said. Aurora’s chest tightened again. The hurt didn’t vanish. It simply shifted—making room for something else, something dangerous. A chance. She reached out, fingertips hovering above Eva’s diagram, careful not to smear the ink. “But first,” she said, still not looking away from him, “you’re going to tell me why you left without a word.” Lucien’s amber eye held hers. His heterochromatic gaze didn’t flicker this time. “If I start,” he warned, voice low, “you’ll feel things you’ve already tried to bury.” Aurora’s laugh came out sharp and small. “I’m already feeling them.” Lucien nodded once, slow. “Then we begin at the beginning,” he said. He moved closer—not to claim her, not to corner her. Just enough to stand beside her at the table, shoulder-to-shoulder, his presence filling the space the hurt had been occupying. Aurora lifted her chin, bright blue eyes fixed on the page, and listened as Lucien began to speak—not in riddles now, not in careful half-truths. In words that sounded like he was finally choosing honesty over control. Outside the flat, Brick Lane roared on, indifferent. Inside, the deadbolts and all the clutter of Eva’s research couldn’t keep out what had already found its way back between them: attraction that hadn’t died, hurt that refused to be rewritten, and the complicated, stubborn hope that maybe this time, neither of them would leave without saying the thing that mattered.
created_at"2026-03-18T11:06:14.849Z" 3/18/2026, 11:06:14 AM
model"openai/gpt-5.4-nano-20260317"
app_id182717
external_user(null)
streamedtrue
cancelledfalse
latency1165
moderation_latency(null)
generation_time20281
tokens_prompt808
tokens_completion4907
native_tokens_prompt753
native_tokens_completion4025
native_tokens_completion_images0
native_tokens_reasoning0
native_tokens_cached0
num_media_prompt(null)
num_input_audio_prompt(null)
num_media_completion0
num_search_results(null)
origin"https://ncbench.com/"
is_byokfalse
finish_reason"stop"
native_finish_reason"completed"
usage0.00518185
router(null)
provider_responses
0
endpoint_id"0c835f2e-c18d-4e8c-b245-e1e3bd08b97f"
id"resp_0d96a4b18db0543d0169ba8726ecd08197927ef4f80636dcca"
is_byokfalse
latency219
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-1773831974-KW8syCVa88ieoearplNA"
upstream_id"resp_0d96a4b18db0543d0169ba8726ecd08197927ef4f80636dcca"
total_cost0.00518185
cache_discount(null)
upstream_inference_cost0
provider_name"OpenAI"

Evaluation details

Result Evaluator Details Meta Data
72.34% Adverbs in dialogue tags
Target: ≤10% dialogue tags with adverbs
totalTags47
adverbTagCount6
adverbTags
0"she started then [then]"
1"he said again [again]"
2"he said carefully [carefully]"
3"she asked again [again]"
4"she began then [then]"
5"Aurora said slowly [slowly]"
dialogueSentences84
tagDensity0.56
leniency1
rawRatio0.128
effectiveRatio0.128
84.98% AI-ism adverb frequency
Target: <2% AI-ism adverbs (58 tracked)
wordCount2997
totalAiIsmAdverbs9
found
0
adverb"quickly"
count2
1
adverb"softly"
count1
2
adverb"slightly"
count3
3
adverb"carefully"
count1
4
adverb"slowly"
count1
5
adverb"lightly"
count1
highlights
0"quickly"
1"softly"
2"slightly"
3"carefully"
4"slowly"
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)
53.29% AI-ism word frequency
Target: <2% AI-ism words (290 tracked)
wordCount2997
totalAiIsms28
found
0
word"charm"
count1
1
word"flicked"
count3
2
word"pulse"
count2
3
word"glinting"
count1
4
word"weight"
count1
5
word"stomach"
count2
6
word"familiar"
count2
7
word"reminder"
count1
8
word"affection"
count1
9
word"could feel"
count1
10
word"warmth"
count2
11
word"flickered"
count1
12
word"resolve"
count1
13
word"silence"
count1
14
word"velvet"
count1
15
word"echoed"
count1
16
word"whisper"
count1
17
word"flicker"
count2
18
word"fluttered"
count1
19
word"measured"
count1
20
word"scanned"
count1
highlights
0"charm"
1"flicked"
2"pulse"
3"glinting"
4"weight"
5"stomach"
6"familiar"
7"reminder"
8"affection"
9"could feel"
10"warmth"
11"flickered"
12"resolve"
13"silence"
14"velvet"
15"echoed"
16"whisper"
17"flicker"
18"fluttered"
19"measured"
20"scanned"
100.00% Cliché density
Target: ≤1 cliche(s) per 800-word window
totalCliches2
maxInWindow1
found
0
label"eyes widened/narrowed"
count2
highlights
0"eyes narrowed"
1"eyes widened"
100.00% Emotion telling (show vs. tell)
Target: ≤3% sentences with emotion telling
emotionTells1
narrationSentences260
matches
0"d with resolve"
100.00% Filter word density
Target: ≤3% sentences with filter/hedge words
filterCount0
hedgeCount4
narrationSentences260
filterMatches(empty)
hedgeMatches
0"seemed to"
1"tried to"
2"began to"
100.00% Gibberish response detection
Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words)
analyzedSentences298
gibberishSentences0
adjustedGibberishSentences0
longSentenceCount0
runOnParagraphCount0
giantParagraphCount0
wordSaladCount0
repetitionLoopCount0
controlTokenCount0
maxSentenceWordsSeen52
ratio0
matches(empty)
100.00% Markdown formatting overuse
Target: ≤5% words in markdown formatting
markdownSpans0
markdownWords0
totalWords2969
ratio0
matches(empty)
100.00% Missing dialogue indicators (quotation marks)
Target: ≤10% speech attributions without quotation marks
totalAttributions58
unquotedAttributions0
matches(empty)
50.00% Name drop frequency
Target: ≤1.0 per-name mentions per 100 words
totalMentions109
wordCount2377
uniqueNames13
maxNameDensity1.64
worstName"Lucien"
maxWindowNameDensity3.5
worstWindowName"Aurora"
discoveredNames
Aurora37
Carter1
Eva9
Golden1
Empress1
Ptolemy6
Lane2
Moreau1
Lucien39
Like6
Didn3
Avaros1
Brick2
persons
0"Aurora"
1"Carter"
2"Eva"
3"Ptolemy"
4"Moreau"
5"Lucien"
places
0"Golden"
1"Lane"
2"Brick"
globalScore0.68
windowScore0.5
0.00% Narrator intent-glossing
Target: ≤2% narration sentences with intent-glossing patterns
analyzedSentences151
glossingSentenceCount10
matches
0"looked like someone who had curated it"
1"not quite a smile"
2"tasted like metal and grief"
3"sounded like truth"
4"looked like someone who’d filed guilt int"
5"sounded like a familiar song played in a w"
6"looked like avoidance"
7"felt like a hand on her back steering h"
8"sound that seemed to set the pace"
9"sounded like he was finally choosing hones"
98.96% "Not X but Y" pattern overuse
Target: ≤1 "not X but Y" per 1000 words
totalMatches3
per1kWords1.01
wordCount2969
matches
0"not the crescent-scarred left one, thankfully, but her right, warm"
1"not fully into the apartment, but into the doorway’s spill of warmth"
2"not with reverence but with caution"
100.00% Overuse of "that" (subordinate clause padding)
Target: ≤2% sentences with "that" clauses
thatCount1
totalSentences298
matches
0"hated that part"
100.00% Paragraph length variance
Target: CV ≥0.5 for paragraph word counts
totalParagraphs136
mean21.83
std14.28
cv0.654
sampleLengths
042
151
219
363
411
57
62
742
826
918
103
115
1265
1331
1427
1522
1624
171
181
1920
2033
2116
2245
2333
2449
2513
2630
2713
2818
2925
3018
3110
3221
3350
349
3550
3621
3715
3825
3925
4037
4125
4235
4328
4410
4532
4611
4733
4813
4933
98.52% Passive voice overuse
Target: ≤2% passive sentences
passiveCount5
totalSentences260
matches
0"was muffled"
1"been summoned"
2"being steered"
3"been planted"
4"been taught"
91.38% Past progressive (was/were + -ing) overuse
Target: ≤2% past progressive verbs
pastProgressiveCount8
totalVerbs491
matches
0"was coming"
1"wasn’t reaching"
2"was still being"
3"was lying"
4"were trying"
5"were approaching"
6"was fighting"
7"was finally choosing"
0.00% Em-dash & semicolon overuse
Target: ≤2% sentences with em-dashes/semicolons
emDashCount27
semicolonCount5
flaggedSentences26
totalSentences298
ratio0.087
matches
0"The first thing Aurora Carter noticed was the smell—warm garlic and curry, threaded faintly with something sharper beneath it, like wet stone warmed by a vent."
1"Then the tabby answered from somewhere behind her in the apartment above the curry house: a low, expectant sound—Ptolemy."
2"Brick Lane pressed at the windows with its neon blur; the street’s noise was muffled by the old building’s bones."
3"Her crescent-scar on her left wrist itched—the small, stupid scar she sometimes forgot existed until she needed her hands to be steady."
4"Eva had told her to come if anything—anything—ever went wrong again."
5"He didn’t look like someone who had been living in the mess of the world—he looked like someone who had curated it."
6"Lucien’s gaze flicked over her quickly—boots, damp hair, the way her shoulders set like a defensive angle."
7"Her voice sounded too even, too controlled—like she’d wrapped it in foil."
8"He was an information broker; the underworld didn’t keep secrets from him for long."
9"That phrasing—indisposed—felt deliberate."
10"She remembered it in fragments: Lucien’s hand on her wrist—not the crescent-scarred left one, thankfully, but her right, warm and too steady; the way he’d looked at her as if he could see the parts she kept hidden; the night he’d offered help with a voice that sounded like truth."
11"Lucien’s expression softened in a way that made her angrier—because it wasn’t an admission, not yet."
12"Lucien’s amber eye flicked to Aurora’s wrist—her crescent scar."
13"That—what he said, how he said it—was the worst part."
14"Aurora took a step closer—not fully into the apartment, but into the doorway’s spill of warmth."
15"Lucien’s expression shifted—subtle, almost imperceptible—like a storm moving behind a wall of glass."
16"Charcoal suit absorbed the dim light; his platinum hair caught it like a blade catching sun."
17"She could still see the way he’d looked when he left last time—too composed, too controlled, as if he’d been taught not to show weakness."
18"“I came here,” Aurora said slowly, “because Eva thinks she’s found a map. Because she thinks the right paper can keep monsters out.” She glanced toward the clutter—scrolls, notes, a half-unrolled diagram on the table with symbols she didn’t fully understand."
19"Lucien finally moved—one careful step forward, as if he were approaching a skittish animal."
20"She kept her hands at her sides, fingers flexing once, twice—anchoring herself."
21"There was a flicker of something—relief, maybe."
22"But enough to feel the tug in her mind—the faint click of recognition."
23"It simply shifted—making room for something else, something dangerous."
24"He moved closer—not to claim her, not to corner her."
25"Aurora lifted her chin, bright blue eyes fixed on the page, and listened as Lucien began to speak—not in riddles now, not in careful half-truths."
100.00% Purple prose (modifier overload)
Target: <4% adverbs, <2% -ly adverbs, no adj stacking
wordCount474
adjectiveStacks0
stackExamples(empty)
adverbCount13
adverbRatio0.027426160337552744
lyAdverbCount1
lyAdverbRatio0.002109704641350211
100.00% Repeated phrase echo
Target: ≤20% sentences with echoes (window: 2)
totalSentences298
echoCount0
echoWords(empty)
100.00% Sentence length variance
Target: CV ≥0.4 for sentence word counts
totalSentences298
mean9.96
std7.8
cv0.783
sampleLengths
026
116
218
33
44
526
619
75
816
920
1022
1111
127
132
142
1513
1611
174
186
193
203
2110
2216
2311
247
253
265
2722
2822
2921
309
3122
3217
3310
3422
357
3613
374
381
391
403
4112
425
4312
4421
4516
467
4712
4820
496
38.59% Sentence opener variety
Target: ≥60% unique sentence openers
consecutiveRepeats34
diversityRatio0.21476510067114093
totalSentences298
uniqueOpeners64
60.06% Adverb-first sentence starts
Target: ≥3% sentences starting with an adverb
adverbCount4
totalSentences222
matches
0"Then the tabby answered from"
1"Of course he would know."
2"Then the betrayal, quiet as"
3"Just enough to stand beside"
ratio0.018
59.64% Pronoun-first sentence starts
Target: ≤30% sentences starting with a pronoun
pronounCount89
totalSentences222
matches
0"It seeped through the stairwell"
1"She paused with her hand"
2"She had come from her"
3"Her crescent-scar on her left"
4"She reached Eva’s landing with"
5"She knocked like she wasn’t"
6"He didn’t look like someone"
7"His heterochromatic eyes caught the"
8"She stood there with her"
9"he said, softly, and the"
10"She hadn’t told anyone he"
11"She hadn’t even told Eva"
12"Her voice sounded too even,"
13"He held the doorway open"
14"His tone stayed gentle, but"
15"She stopped herself"
16"He was an information broker;"
17"She forced her fingers to"
18"she started, then hated how"
19"He hadn’t said she wasn’t"
ratio0.401
34.32% Subject-first sentence starts
Target: ≤72% sentences starting with a subject
subjectCount189
totalSentences222
matches
0"The first thing Aurora Carter"
1"It seeped through the stairwell"
2"She paused with her hand"
3"That was her place."
4"She had come from her"
5"Aurora turned toward the sound."
6"The stairwell door creaked as"
7"Brick Lane pressed at the"
8"Her crescent-scar on her left"
9"She reached Eva’s landing with"
10"The key was for Eva’s"
11"A memory snapped into place"
12"Eva had told her to"
13"Aurora swallowed, then knocked anyway,"
14"She knocked like she wasn’t"
15"A muffled thump from inside,"
16"The deadbolt turned with a"
17"The door opened."
18"Lucien Moreau filled the threshold."
19"He didn’t look like someone"
ratio0.851
67.57% Subordinate conjunction sentence starts
Target: ≥2% sentences starting with a subordinating conjunction
subConjCount3
totalSentences222
matches
0"To use the deadbolts."
1"Even when he was quiet."
2"Now, something in his face"
ratio0.014
75.19% Technical jargon density
Target: ≤6% sentences with technical-jargon patterns
analyzedSentences95
technicalSentenceCount9
matches
0"It seeped through the stairwell as if Eva’s flat had been breathing the whole time, waiting."
1"Charcoal suit, slicked-back platinum blond hair, ivory-handled cane planted with patient certainty against the floorboards as though it had always belonged ther…"
2"He had chosen a word that made everything ambiguous, and Aurora hated ambiguity on principle."
3"She remained in the stairwell’s strip of dim light, as if the doorframe could still be a boundary she controlled."
4"She remembered it in fragments: Lucien’s hand on her wrist—not the crescent-scarred left one, thankfully, but her right, warm and too steady; the way he’d looke…"
5"The part that remembered his voice, the way his attention had felt like a hand on her back steering her out of danger."
6"Lucien finally moved—one careful step forward, as if he were approaching a skittish animal."
7"Just enough to stand beside her at the table, shoulder-to-shoulder, his presence filling the space the hurt had been occupying."
8"Inside, the deadbolts and all the clutter of Eva’s research couldn’t keep out what had already found its way back between them: attraction that hadn’t died, hur…"
100.00% Useless dialogue additions
Target: ≤5% dialogue tags with trailing filler fragments
totalTags47
uselessAdditionCount2
matches
0"Aurora continued, voice sharpened with resolve,"
1"he warned, voice low,"
30.95% Dialogue tag variety (said vs. fancy)
Target: ≤10% fancy dialogue tags
totalTags35
fancyCount10
fancyTags
0"she repeated (repeat)"
1"he agreed (agree)"
2"Aurora demanded (demand)"
3"he corrected (correct)"
4"she demanded (demand)"
5"she insisted (insist)"
6"he admitted (admit)"
7"he agreed (agree)"
8"Aurora continued (continue)"
9"he warned (warn)"
dialogueSentences84
tagDensity0.417
leniency0.833
rawRatio0.286
effectiveRatio0.238
77.1928%