| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 22 | | adverbTagCount | 2 | | adverbTags | | 0 | "Lucien agreed pleasantly [pleasantly]" | | 1 | "she said finally [finally]" |
| | dialogueSentences | 43 | | tagDensity | 0.512 | | leniency | 1 | | rawRatio | 0.091 | | effectiveRatio | 0.091 | |
| 82.15% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1681 | | totalAiIsmAdverbs | 6 | | found | | | highlights | | 0 | "very" | | 1 | "slightly" | | 2 | "perfectly" | | 3 | "quickly" |
| |
| 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) | |
| 73.23% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1681 | | totalAiIsms | 9 | | found | | | highlights | | 0 | "measured" | | 1 | "restrained" | | 2 | "familiar" | | 3 | "navigating" | | 4 | "silence" | | 5 | "comfortable" | | 6 | "weight" |
| |
| 100.00% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 0 | | maxInWindow | 0 | | found | (empty) | | highlights | (empty) | |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 85 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 85 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 106 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 58 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1703 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 25 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 35 | | wordCount | 1318 | | uniqueNames | 12 | | maxNameDensity | 0.83 | | worstName | "Lucien" | | maxWindowNameDensity | 2 | | worstWindowName | "Lucien" | | discoveredNames | | Eva | 6 | | Moreau | 1 | | Lebanese | 1 | | November | 1 | | Lucien | 11 | | Rory | 7 | | Ptolemy | 3 | | Cardiff | 1 | | University | 1 | | Spitalfields | 1 | | London | 1 | | Silas | 1 |
| | persons | | 0 | "Eva" | | 1 | "Moreau" | | 2 | "Lucien" | | 3 | "Rory" | | 4 | "Ptolemy" | | 5 | "Silas" |
| | places | | 0 | "Cardiff" | | 1 | "Spitalfields" | | 2 | "London" |
| | globalScore | 1 | | windowScore | 1 | |
| 57.41% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 54 | | glossingSentenceCount | 2 | | matches | | 0 | "not quite frustration, not quite pain" | | 1 | "not quite pain" | | 2 | "felt like they were both, at least, in" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 1 | | per1kWords | 0.587 | | wordCount | 1703 | | matches | | 0 | "not comfortable silence, but the kind" |
| |
| 100.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 0 | | totalSentences | 106 | | matches | (empty) | |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 51 | | mean | 33.39 | | std | 28.19 | | cv | 0.844 | | sampleLengths | | 0 | 8 | | 1 | 63 | | 2 | 91 | | 3 | 3 | | 4 | 4 | | 5 | 79 | | 6 | 11 | | 7 | 9 | | 8 | 7 | | 9 | 58 | | 10 | 55 | | 11 | 7 | | 12 | 7 | | 13 | 3 | | 14 | 9 | | 15 | 38 | | 16 | 44 | | 17 | 87 | | 18 | 42 | | 19 | 52 | | 20 | 13 | | 21 | 15 | | 22 | 93 | | 23 | 27 | | 24 | 5 | | 25 | 50 | | 26 | 23 | | 27 | 63 | | 28 | 64 | | 29 | 28 | | 30 | 5 | | 31 | 1 | | 32 | 4 | | 33 | 68 | | 34 | 2 | | 35 | 5 | | 36 | 91 | | 37 | 48 | | 38 | 43 | | 39 | 5 | | 40 | 51 | | 41 | 70 | | 42 | 14 | | 43 | 65 | | 44 | 34 | | 45 | 11 | | 46 | 5 | | 47 | 50 | | 48 | 36 | | 49 | 23 |
| |
| 97.01% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 85 | | matches | | 0 | "was slicked" | | 1 | "been heard" | | 2 | "been redirected" |
| |
| 44.24% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 5 | | totalVerbs | 214 | | matches | | 0 | "was catching" | | 1 | "was wearing" | | 2 | "was thinking" | | 3 | "was facing" | | 4 | "was choosing" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 18 | | semicolonCount | 0 | | flaggedSentences | 14 | | totalSentences | 106 | | ratio | 0.132 | | matches | | 0 | "Rory had been wrestling with it for a full thirty seconds before it finally surrendered with a clunk, and by then whoever was on the other side of Eva's door had knocked twice more — patient knocks, measured, like someone who had all the time in the world and knew it." | | 1 | "His eyes — one amber, one a depth of black that swallowed light — moved from her face to the deadbolts behind her and back again, cataloguing, as they always did, everything at once." | | 2 | "Behind her she could hear Ptolemy chirping somewhere in the kitchen, and the low murmur of the takeaway place below — the smell of garlic and fenugreek seeping up through the floorboards as it always did at this hour." | | 3 | "She was wearing an oversized Cardiff University jumper — faded red, paint-stained at the cuff — and she was acutely, irritatingly aware of it." | | 4 | "It was more of an inevitability, which was what Lucien generally was — something that pressed quietly against the edges of whatever space she was in until resistance became performative." | | 5 | "He came inside, and she bolted all three locks behind him by habit, and then immediately felt strange about the intimacy of that — the familiar routine of it — and turned back to find him already navigating around Eva's catastrophic archaeology of books and scrolls and half-translated manuscripts." | | 6 | "Rory had expected deflection — Lucien was extraordinarily good at deflection, at the kind of elegant conversational sidestepping that left you feeling you'd been heard when you'd actually been redirected." | | 7 | "He turned then, and his mismatched eyes found hers across the cluttered kitchen — over the stacks of Eva's notebooks and Ptolemy's empty food bowl and a mug that had been sitting on the edge of the draining board since before Rory had arrived three days ago." | | 8 | "\"That you were resourceful and adaptable and that if he needed someone on the ground who could improvise under pressure, you were the person he ought to consider.\" Something shifted in his expression — not quite frustration, not quite pain." | | 9 | "\"Or I didn't ask.\" He set his hands flat on the counter behind him, and for once he looked slightly less than perfectly composed — there was something that lived just beneath the polished surface of him trying to get out, and it hadn't quite managed it yet." | | 10 | "She remembered the car arriving, and his voice through the door, and the particular quality of the silence in the back seat afterward — not comfortable silence, but the kind that holds too much weight to break easily." | | 11 | "\"I could construct one. I'm quite good at that. But you'd know.\" He said it simply, without vanity — it was more like an acknowledgment of limitation than anything else." | | 12 | "Just — closer." | | 13 | "He exhaled — barely perceptibly, just a small release of something held — and she felt the pull of it like a current in the air of Eva's miserably narrow kitchen, between the stacks of books and the indifferent cat and the smell of someone else's takeaway going slightly cold." |
| |
| 86.90% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1304 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 67 | | adverbRatio | 0.05138036809815951 | | lyAdverbCount | 31 | | lyAdverbRatio | 0.023773006134969327 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 106 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 106 | | mean | 16.07 | | std | 14.62 | | cv | 0.91 | | sampleLengths | | 0 | 8 | | 1 | 51 | | 2 | 12 | | 3 | 26 | | 4 | 31 | | 5 | 34 | | 6 | 3 | | 7 | 4 | | 8 | 6 | | 9 | 39 | | 10 | 2 | | 11 | 2 | | 12 | 30 | | 13 | 5 | | 14 | 6 | | 15 | 9 | | 16 | 5 | | 17 | 2 | | 18 | 25 | | 19 | 16 | | 20 | 4 | | 21 | 13 | | 22 | 12 | | 23 | 24 | | 24 | 19 | | 25 | 7 | | 26 | 7 | | 27 | 3 | | 28 | 9 | | 29 | 12 | | 30 | 21 | | 31 | 5 | | 32 | 9 | | 33 | 5 | | 34 | 30 | | 35 | 49 | | 36 | 38 | | 37 | 31 | | 38 | 5 | | 39 | 6 | | 40 | 52 | | 41 | 13 | | 42 | 10 | | 43 | 5 | | 44 | 14 | | 45 | 37 | | 46 | 12 | | 47 | 30 | | 48 | 5 | | 49 | 22 |
| |
| 49.37% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 11 | | diversityRatio | 0.3584905660377358 | | totalSentences | 106 | | uniqueOpeners | 38 | |
| 91.32% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 73 | | matches | | 0 | "Apparently, she had assumed wrong." | | 1 | "Just — closer." |
| | ratio | 0.027 | |
| 0.00% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 41 | | totalSentences | 73 | | matches | | 0 | "She yanked the door open" | | 1 | "He wore a charcoal suit" | | 2 | "His eyes — one amber," | | 3 | "She focused on them because" | | 4 | "She looked at the bag." | | 5 | "His mouth curved, but it" | | 6 | "She was wearing an oversized" | | 7 | "She had, in fact, crossed" | | 8 | "She had done it with" | | 9 | "She pushed off the door" | | 10 | "It wasn't an invitation exactly." | | 11 | "It was more of an" | | 12 | "He came inside, and she" | | 13 | "He moved through the clutter" | | 14 | "He did it without asking." | | 15 | "He knew where the plates" | | 16 | "she said finally" | | 17 | "He set a container of" | | 18 | "She kept her voice level" | | 19 | "She'd practised keeping it level" |
| | ratio | 0.562 | |
| 28.49% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 63 | | totalSentences | 73 | | matches | | 0 | "The third deadbolt was always" | | 1 | "Rory had been wrestling with" | | 2 | "She yanked the door open" | | 3 | "Lucien Moreau stood in the" | | 4 | "He wore a charcoal suit" | | 5 | "His eyes — one amber," | | 6 | "Lucien agreed pleasantly" | | 7 | "Rory didn't move from the" | | 8 | "She focused on them because" | | 9 | "She looked at the bag." | | 10 | "His mouth curved, but it" | | 11 | "This was something different." | | 12 | "Rory leaned her shoulder against" | | 13 | "She was wearing an oversized" | | 14 | "She had, in fact, crossed" | | 15 | "She had done it with" | | 16 | "She pushed off the door" | | 17 | "It wasn't an invitation exactly." | | 18 | "It was more of an" | | 19 | "He came inside, and she" |
| | ratio | 0.863 | |
| 0.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 0 | | totalSentences | 73 | | matches | (empty) | | ratio | 0 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 37 | | technicalSentenceCount | 8 | | matches | | 0 | "Rory had been wrestling with it for a full thirty seconds before it finally surrendered with a clunk, and by then whoever was on the other side of Eva's door ha…" | | 1 | "Lucien Moreau stood in the narrow hallway, one hand resting on his ivory-handled cane, the other holding a paper bag that smelled unmistakably of Lebanese takea…" | | 2 | "Of herself, standing in it, looking nothing like someone who had any kind of upper hand in this situation." | | 3 | "It was more of an inevitability, which was what Lucien generally was — something that pressed quietly against the edges of whatever space she was in until resis…" | | 4 | "He moved through the clutter with the ease of someone who had been here before, which he had, because this city's supernatural underworld was small and Eva sat …" | | 5 | "Rory sat on the edge of the kitchen table and watched him and said nothing for a moment, turning her left wrist over in her lap, running her thumb absently acro…" | | 6 | "He turned then, and his mismatched eyes found hers across the cluttered kitchen — over the stacks of Eva's notebooks and Ptolemy's empty food bowl and a mug tha…" | | 7 | "Ptolemy padded into the kitchen, made a single decisive sound of greeting at Lucien's ankle, and then jumped onto the windowsill and sat with his back to both o…" |
| |
| 79.55% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 22 | | uselessAdditionCount | 2 | | matches | | 0 | "Something shifted, not quite pain" | | 1 | "She said, not unkindly" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 16 | | fancyCount | 2 | | fancyTags | | 0 | "Lucien agreed pleasantly (agree)" | | 1 | "she pressed (press)" |
| | dialogueSentences | 43 | | tagDensity | 0.372 | | leniency | 0.744 | | rawRatio | 0.125 | | effectiveRatio | 0.093 | |