| 59.65% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 27 | | adverbTagCount | 4 | | adverbTags | | 0 | "he said finally [finally]" | | 1 | "Aurora said quietly [quietly]" | | 2 | "He exhaled slowly [slowly]" | | 3 | "He stepped back [back]" |
| | dialogueSentences | 57 | | tagDensity | 0.474 | | leniency | 0.947 | | rawRatio | 0.148 | | effectiveRatio | 0.14 | |
| 94.40% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 1785 | | totalAiIsmAdverbs | 2 | | found | | | highlights | | |
| 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) | |
| 24.37% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 1785 | | totalAiIsms | 27 | | found | | 0 | | | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | | | 8 | | | 9 | | | 10 | | | 11 | | | 12 | | | 13 | | | 14 | | | 15 | | | 16 | | | 17 | |
| | highlights | | 0 | "weight" | | 1 | "familiar" | | 2 | "measured" | | 3 | "lilt" | | 4 | "treacherous" | | 5 | "silence" | | 6 | "navigating" | | 7 | "flickered" | | 8 | "intensity" | | 9 | "stomach" | | 10 | "facade" | | 11 | "tension" | | 12 | "ensuring" | | 13 | "warmth" | | 14 | "footsteps" | | 15 | "tracing" | | 16 | "churned" | | 17 | "fractured" |
| |
| 66.67% | Cliché density | Target: ≤1 cliche(s) per 800-word window | | totalCliches | 2 | | maxInWindow | 2 | | found | | 0 | | label | "weight of words/silence" | | count | 1 |
| | 1 | | label | "hung in the air" | | count | 1 |
|
| | highlights | | 0 | "The weight of his words" | | 1 | "hung in the air" |
| |
| 100.00% | Emotion telling (show vs. tell) | Target: ≤3% sentences with emotion telling | | emotionTells | 0 | | narrationSentences | 99 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 0 | | hedgeCount | 0 | | narrationSentences | 99 | | filterMatches | (empty) | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 128 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | maxSentenceWordsSeen | 42 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1764 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 24 | | unquotedAttributions | 0 | | matches | (empty) | |
| 100.00% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 44 | | wordCount | 1336 | | uniqueNames | 17 | | maxNameDensity | 0.75 | | worstName | "Lucien" | | maxWindowNameDensity | 1.5 | | worstWindowName | "Lucien" | | discoveredNames | | Aurora | 8 | | Eva | 6 | | Bermondsey | 1 | | Low | 1 | | French | 1 | | London | 1 | | Ptolemy | 5 | | Lucien | 10 | | Brick | 2 | | Lane | 2 | | People | 1 | | Bangladesh | 1 | | Grocery | 1 | | Integrity | 1 | | Whitechapel | 1 | | Shoreditch | 1 | | Avaros | 1 |
| | persons | | 0 | "Aurora" | | 1 | "Eva" | | 2 | "Low" | | 3 | "Ptolemy" | | 4 | "Lucien" | | 5 | "People" |
| | places | | 0 | "Bermondsey" | | 1 | "London" | | 2 | "Brick" | | 3 | "Lane" | | 4 | "Bangladesh" | | 5 | "Whitechapel" | | 6 | "Shoreditch" |
| | globalScore | 1 | | windowScore | 1 | |
| 47.26% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 73 | | glossingSentenceCount | 3 | | matches | | 0 | "smelled like curry from downstairs and old" | | 1 | "quite read" | | 2 | "felt like a physical ache" |
| |
| 100.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 0 | | per1kWords | 0 | | wordCount | 1764 | | matches | (empty) | |
| 88.54% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 3 | | totalSentences | 128 | | matches | | 0 | "know that ivory" | | 1 | "chose that moment" | | 2 | "open that door" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 65 | | mean | 27.14 | | std | 19.57 | | cv | 0.721 | | sampleLengths | | 0 | 8 | | 1 | 32 | | 2 | 1 | | 3 | 63 | | 4 | 30 | | 5 | 54 | | 6 | 5 | | 7 | 29 | | 8 | 20 | | 9 | 5 | | 10 | 61 | | 11 | 10 | | 12 | 12 | | 13 | 56 | | 14 | 16 | | 15 | 30 | | 16 | 7 | | 17 | 60 | | 18 | 49 | | 19 | 5 | | 20 | 47 | | 21 | 28 | | 22 | 8 | | 23 | 18 | | 24 | 6 | | 25 | 67 | | 26 | 48 | | 27 | 5 | | 28 | 46 | | 29 | 4 | | 30 | 60 | | 31 | 40 | | 32 | 1 | | 33 | 44 | | 34 | 9 | | 35 | 88 | | 36 | 14 | | 37 | 27 | | 38 | 6 | | 39 | 27 | | 40 | 33 | | 41 | 29 | | 42 | 12 | | 43 | 28 | | 44 | 35 | | 45 | 10 | | 46 | 5 | | 47 | 40 | | 48 | 11 | | 49 | 31 |
| |
| 100.00% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 1 | | totalSentences | 99 | | matches | | |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 2 | | totalVerbs | 230 | | matches | | 0 | "was reading" | | 1 | "were planning" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 20 | | semicolonCount | 1 | | flaggedSentences | 14 | | totalSentences | 128 | | ratio | 0.109 | | matches | | 0 | "She'd know that ivory handle anywhere—the polished gleam, the deliberate weight of it resting against a shoulder." | | 1 | "Those eyes—one amber, one black—tracking her face like he was reading a language only he understood." | | 2 | "Behind her, she heard Ptolemy mewling at the base of the stack of grimoires blocking the kitchen doorway—probably stuck again, the idiot cat—and the familiar creak of the floorboards beneath the carpet." | | 3 | "But his free hand caught her wrist—not her left one, she noticed distantly, the one with the scar; he'd always been careful about that—and his grip was firm without being rough." | | 4 | "But something in his voice—something that sounded almost like the Lucien she'd known before everything went wrong—made her hesitate." | | 5 | "His gaze swept over the chaos of the room—the stacks of manuscripts, the half-melted candles, the map of ley lines pinned to the wall with colored pins—and something flickered across his expression." | | 6 | "She thought of the half-demon children she'd seen in Lucien's files years ago—the ones hiding in plain sight, working normal jobs, terrified of discovery." | | 7 | "\"There is no other human.\" His voice dropped, raw in a way she hadn't heard since—since that night in the warehouse, when he'd looked at her across the blood-slicked floor and told her to run." | | 8 | "\"I know what you're going to say.\" He was close enough now that she could smell his cologne—something dark and expensive, sandalwood and smoke." | | 9 | "Lucien's composure cracked—just for a moment, just a hairline fracture in that careful facade he wore like armor." | | 10 | "Aurora laughed—a short, startled sound—and the tension in the room shifted into something almost bearable." | | 11 | "\"Eva talks too much.\" But there was a hint of warmth in his voice now, something that matched the way he used to look at her when they were planning a job together—excited, engaged, alive." | | 12 | "But Lucien had been the first person to look at it and see the truth—that she'd survived something before, and she could survive it again." | | 13 | "And then she had research to do—Avaros, the half-blood registries, the people who wanted to use them as weapons or destroy them altogether." |
| |
| 100.00% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1361 | | adjectiveStacks | 0 | | stackExamples | (empty) | | adverbCount | 50 | | adverbRatio | 0.036737692872887584 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.00881704628949302 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 128 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 128 | | mean | 13.78 | | std | 9.3 | | cv | 0.675 | | sampleLengths | | 0 | 8 | | 1 | 17 | | 2 | 15 | | 3 | 1 | | 4 | 35 | | 5 | 3 | | 6 | 9 | | 7 | 16 | | 8 | 6 | | 9 | 15 | | 10 | 9 | | 11 | 6 | | 12 | 28 | | 13 | 20 | | 14 | 5 | | 15 | 18 | | 16 | 11 | | 17 | 16 | | 18 | 4 | | 19 | 3 | | 20 | 2 | | 21 | 9 | | 22 | 32 | | 23 | 20 | | 24 | 10 | | 25 | 9 | | 26 | 3 | | 27 | 25 | | 28 | 31 | | 29 | 9 | | 30 | 7 | | 31 | 5 | | 32 | 6 | | 33 | 19 | | 34 | 3 | | 35 | 4 | | 36 | 17 | | 37 | 19 | | 38 | 24 | | 39 | 17 | | 40 | 32 | | 41 | 5 | | 42 | 21 | | 43 | 15 | | 44 | 5 | | 45 | 6 | | 46 | 6 | | 47 | 22 | | 48 | 6 | | 49 | 2 |
| |
| 58.07% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 14 | | diversityRatio | 0.4140625 | | totalSentences | 128 | | uniqueOpeners | 53 | |
| 0.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 0 | | totalSentences | 90 | | matches | (empty) | | ratio | 0 | |
| 42.22% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 40 | | totalSentences | 90 | | matches | | 0 | "She'd know that ivory handle" | | 1 | "Her hand froze on the" | | 2 | "He stood in the doorway" | | 3 | "His voice hadn't changed either" | | 4 | "She should have shut the" | | 5 | "He tilted his head, and" | | 6 | "She moved to step past" | | 7 | "She should have said no." | | 8 | "She definitely should have said" | | 9 | "He released her wrist, and" | | 10 | "She stepped back into the" | | 11 | "He moved through the cluttered" | | 12 | "He stopped near Eva's desk," | | 13 | "His gaze swept over the" | | 14 | "he said finally" | | 15 | "He turned to face her," | | 16 | "His jaw tightened" | | 17 | "She thought of the half-demon" | | 18 | "He stepped closer, and she" | | 19 | "His voice dropped, raw in" |
| | ratio | 0.444 | |
| 71.11% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 70 | | totalSentences | 90 | | matches | | 0 | "The first thing Aurora noticed" | | 1 | "She'd know that ivory handle" | | 2 | "Her hand froze on the" | | 3 | "He stood in the doorway" | | 4 | "Charcoal suit, immaculate." | | 5 | "Hair slicked back without a" | | 6 | "Those eyes—one amber, one black—tracking" | | 7 | "His voice hadn't changed either" | | 8 | "She should have shut the" | | 9 | "Every instinct screamed at her" | | 10 | "He tilted his head, and" | | 11 | "Aurora crossed her arms, the" | | 12 | "The silence stretched between them" | | 13 | "Everything smelled like curry from" | | 14 | "Lucien's mouth curved, but it" | | 15 | "She moved to step past" | | 16 | "The word came out softer" | | 17 | "She should have said no." | | 18 | "She definitely should have said" | | 19 | "He released her wrist, and" |
| | ratio | 0.778 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 2 | | totalSentences | 90 | | matches | | 0 | "Before she could respond, he" | | 1 | "To Eva, to tell her" |
| | ratio | 0.022 | |
| 51.67% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 47 | | technicalSentenceCount | 6 | | matches | | 0 | "But something in his voice—something that sounded almost like the Lucien she'd known before everything went wrong—made her hesitate." | | 1 | "He moved through the cluttered space with the careful grace of someone used to navigating cramped spaces, his cane clicking once against the floorboard." | | 2 | "When she glanced back, he had his back to her, staring at the grimoires with an intensity that made her skin prickle." | | 3 | "After three months of working side by side, of late nights poring over maps and contingency plans, of dinners at that terrible noodle place in Shoreditch and ar…" | | 4 | "She saw something raw and desperate in his expression, something that looked almost like regret." | | 5 | "And then she had research to do—Avaros, the half-blood registries, the people who wanted to use them as weapons or destroy them altogether." |
| |
| 87.96% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 27 | | uselessAdditionCount | 2 | | matches | | 0 | "He turned, and the lamplight caught those mismatched eyes, making them glow like embers" | | 1 | "she muttered, moving to rescue him" |
| |
| 79.82% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 9 | | fancyCount | 4 | | fancyTags | | 0 | "Lucien agreed (agree)" | | 1 | "he observed (observe)" | | 2 | "she muttered (mutter)" | | 3 | "he observed (observe)" |
| | dialogueSentences | 57 | | tagDensity | 0.158 | | leniency | 0.316 | | rawRatio | 0.444 | | effectiveRatio | 0.14 | |