| 100.00% | Adverbs in dialogue tags | Target: ≤10% dialogue tags with adverbs | | totalTags | 40 | | adverbTagCount | 3 | | adverbTags | | 0 | "Luc turned close [close]" | | 1 | "She turned away [away]" | | 2 | "Aurora said quietly [quietly]" |
| | dialogueSentences | 46 | | tagDensity | 0.87 | | leniency | 1 | | rawRatio | 0.075 | | effectiveRatio | 0.075 | |
| 97.52% | AI-ism adverb frequency | Target: <2% AI-ism adverbs (58 tracked) | | wordCount | 2019 | | totalAiIsmAdverbs | 1 | | 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) | |
| 80.19% | AI-ism word frequency | Target: <2% AI-ism words (290 tracked) | | wordCount | 2019 | | totalAiIsms | 8 | | found | | 0 | | | 1 | | word | "carried the weight" | | count | 1 |
| | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | |
| | highlights | | 0 | "glinting" | | 1 | "carried the weight" | | 2 | "pulse" | | 3 | "tension" | | 4 | "navigating" | | 5 | "could feel" | | 6 | "trembled" | | 7 | "silence" |
| |
| 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 | 74 | | matches | (empty) | |
| 100.00% | Filter word density | Target: ≤3% sentences with filter/hedge words | | filterCount | 2 | | hedgeCount | 0 | | narrationSentences | 74 | | filterMatches | | | hedgeMatches | (empty) | |
| 100.00% | Gibberish response detection | Target: ≤1% gibberish-like sentences (hard fail if a sentence exceeds 800 words) | | analyzedSentences | 78 | | gibberishSentences | 0 | | adjustedGibberishSentences | 0 | | longSentenceCount | 0 | | runOnParagraphCount | 0 | | giantParagraphCount | 0 | | wordSaladCount | 0 | | repetitionLoopCount | 0 | | controlTokenCount | 0 | | repeatedSegmentCount | 0 | | maxSentenceWordsSeen | 87 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Markdown formatting overuse | Target: ≤5% words in markdown formatting | | markdownSpans | 0 | | markdownWords | 0 | | totalWords | 1994 | | ratio | 0 | | matches | (empty) | |
| 100.00% | Missing dialogue indicators (quotation marks) | Target: ≤10% speech attributions without quotation marks | | totalAttributions | 36 | | unquotedAttributions | 0 | | matches | (empty) | |
| 77.44% | Name drop frequency | Target: ≤1.0 per-name mentions per 100 words | | totalMentions | 87 | | wordCount | 1516 | | uniqueNames | 24 | | maxNameDensity | 1.45 | | worstName | "Aurora" | | maxWindowNameDensity | 2.5 | | worstWindowName | "Aurora" | | discoveredNames | | Carter | 1 | | Eva | 10 | | Brick | 3 | | Lane | 3 | | October | 1 | | East | 1 | | London | 2 | | Moreau | 3 | | Aurora | 22 | | Marseille | 3 | | Avaros | 2 | | Luc | 16 | | French | 1 | | English | 1 | | You | 3 | | Cardiff | 1 | | Evan | 3 | | Ptolemy | 4 | | Lucien | 2 | | Golden | 1 | | Empress | 1 | | Candy | 1 | | Yu-Fei | 1 | | Cheung | 1 |
| | persons | | 0 | "Carter" | | 1 | "Eva" | | 2 | "Moreau" | | 3 | "Aurora" | | 4 | "Luc" | | 5 | "English" | | 6 | "You" | | 7 | "Evan" | | 8 | "Ptolemy" | | 9 | "Lucien" | | 10 | "Yu-Fei" | | 11 | "Cheung" |
| | places | | 0 | "Brick" | | 1 | "Lane" | | 2 | "East" | | 3 | "London" | | 4 | "Marseille" | | 5 | "Avaros" | | 6 | "Cardiff" | | 7 | "Candy" |
| | globalScore | 0.774 | | windowScore | 0.833 | |
| 53.85% | Narrator intent-glossing | Target: ≤2% narration sentences with intent-glossing patterns | | analyzedSentences | 52 | | glossingSentenceCount | 2 | | matches | | 0 | "smelled like old paper and fear" | | 1 | "something like the city had exhaled into his" |
| |
| 0.00% | "Not X but Y" pattern overuse | Target: ≤1 "not X but Y" per 1000 words | | totalMatches | 5 | | per1kWords | 2.508 | | wordCount | 1994 | | matches | | 0 | "not to strike, but to hover near her left wrist" | | 1 | "not away, but to her heart" | | 2 | "not like a fixer holding a client, but like a man who had finally come home" | | 3 | "not to strike, but to rest against her shoulder in a gesture" | | 4 | "not with answers, but with the door open" |
| |
| 0.00% | Overuse of "that" (subordinate clause padding) | Target: ≤2% sentences with "that" clauses | | thatCount | 5 | | totalSentences | 78 | | matches | | 0 | "wore that inheritance" | | 1 | "notes that covered" | | 2 | "know that I concluded that I" | | 3 | "remember that he" |
| |
| 100.00% | Paragraph length variance | Target: CV ≥0.5 for paragraph word counts | | totalParagraphs | 49 | | mean | 40.69 | | std | 27.26 | | cv | 0.67 | | sampleLengths | | 0 | 63 | | 1 | 5 | | 2 | 111 | | 3 | 64 | | 4 | 21 | | 5 | 18 | | 6 | 10 | | 7 | 23 | | 8 | 45 | | 9 | 32 | | 10 | 11 | | 11 | 61 | | 12 | 7 | | 13 | 2 | | 14 | 62 | | 15 | 24 | | 16 | 32 | | 17 | 18 | | 18 | 54 | | 19 | 47 | | 20 | 51 | | 21 | 72 | | 22 | 59 | | 23 | 30 | | 24 | 67 | | 25 | 54 | | 26 | 47 | | 27 | 97 | | 28 | 54 | | 29 | 7 | | 30 | 80 | | 31 | 5 | | 32 | 19 | | 33 | 4 | | 34 | 77 | | 35 | 45 | | 36 | 32 | | 37 | 10 | | 38 | 23 | | 39 | 3 | | 40 | 87 | | 41 | 19 | | 42 | 40 | | 43 | 77 | | 44 | 29 | | 45 | 61 | | 46 | 18 | | 47 | 50 | | 48 | 67 |
| |
| 95.78% | Passive voice overuse | Target: ≤2% passive sentences | | passiveCount | 2 | | totalSentences | 74 | | matches | | 0 | "been made" | | 1 | "is cramped" |
| |
| 100.00% | Past progressive (was/were + -ing) overuse | Target: ≤2% past progressive verbs | | pastProgressiveCount | 3 | | totalVerbs | 283 | | matches | | 0 | "was running" | | 1 | "was flinching" | | 2 | "was running" |
| |
| 0.00% | Em-dash & semicolon overuse | Target: ≤2% sentences with em-dashes/semicolons | | emDashCount | 25 | | semicolonCount | 2 | | flaggedSentences | 20 | | totalSentences | 78 | | ratio | 0.256 | | matches | | 0 | "Aurora Carter drew back the second brass lock, then the third—three deadbolts forged for Eva’s flat, the cramped one-bedroom above the curry house on Brick Lane where every surface groaned under books, scrolls, and research notes that smelled like old paper and fear." | | 1 | "He wore charcoal gray—tailored, unwrinkled, a suit that cost more than Aurora’s monthly rent in the flat above Silas’ bar." | | 2 | "His slicked-back platinum hair caught the hallway’s dim bulb and turned it into a pale blade pointing down to his heterochromatic eyes—one amber, one black—glinting like weapons left out in daylight." | | 3 | "“You have three deadbolts for a reason,” Luc said, his voice carrying four languages—French first, then English sharpened by London steel." | | 4 | "Luc stepped inside. The cane scraped against the wood floor. He removed a soaked overcoat—charcoal, tailored, impossible—and hung it beside a stack of scrolls that listed Avaros border crossings in Eva’s neat handwriting. His amber eye caught the light; his black eye drank the shadows." | | 5 | "The flat pressed around them—cluttered, intimate, airless. Ptolemy, Eva’s tabby cat, materialized from behind a leather-bound volume and circled Luc’s ankles, hissing once before settling into a purr that mocked the tension." | | 6 | "Because you were the only man she had ever let see her without the delivery jacket, without the scar hidden under her sleeve, without the constant arithmetic of survival. Because she had fled Cardiff not just to escape Evan—the abusive ex she had finally broken from—but because Luc had shown her a life where she could be loved and still be destroyed." | | 7 | "Luc leaned closer. His hand rose—not to strike, but to hover near her left wrist, where the crescent scar faded to pale white. “This,” he said, “is not from a childhood accident.”" | | 8 | "I heard you say it in this room three months ago, when you came here after leaving him—after leaving Evan." | | 9 | "She picked up a cold coffee mug—Eva’s name in sharp ink on the side—and set it down with a clatter that made Ptolemy’s tail flick. “I left because you told me you were leaving." | | 10 | "Luc’s amber eye softened; the black one kept watch. “I told you I was leaving because I was born in Avaros, Aurora." | | 11 | "The words landed like blows. Aurora’s bright blue eyes lost their defensive edge. She looked at him—at the platinum hair, at the heterochromatic gaze, at the tailored suit that had been made for a different kind of life, at the cane that rested against Eva’s table like a promise of violence and protection intertwined." | | 12 | "Aurora pulled her hand back—not away, but to her heart, where the beat hammered against ribs bruised by Evan and saved by Eva and now trembling for Lucien Moreau. “If you stay, it’s not because of a fix." | | 13 | "Not gentle. Not the kind that belonged in a flat above Brick Lane with books everywhere and a tabby cat watching with amber eyes. It was a collision—his mouth hard against hers, his hand catching her jaw, his thumb pressing the scar because he knew she was flinching again, because he wanted her to remember that he saw her, all of her, and still chose to stand in the doorway of her life without a weapon drawn." | | 14 | "Aurora’s hands found his shoulders, her black hair sticking to her face, her bright blue eyes open and seeing—really seeing—the half-demon fixer who had once said he would break the world for her, and now stood in Eva’s flat, breathing her in, refusing to leave." | | 15 | "When they broke apart, it was because Ptolemy knocked a stack of scrolls to the floor. Luc turned, laughed—a sound like broken glass and gold—and caught Aurora’s wrist before she could retreat." | | 16 | "But I need you to know—I’m not your fix." | | 17 | "Aurora looked at him—the amber, the black, the platinum hair, the blade in his cane, the history they had written in bruises and silence, the complicated terms on which they had parted. She answered with her whole body, stepping into him, letting him hold her not like a fixer holding a client, but like a man who had finally come home." | | 18 | "Luc Moreau, half-demon, fixer, alien to her old life, smiled and raised his cane—not to strike, but to rest against her shoulder in a gesture that spoke of guardianship and surrender. “Then stay, Aurora." | | 19 | "She rested her forehead against his, her bright blue eyes closing, her scarred wrist buried in his grip. Outside, the Brick Lane curry house steamed and clattered. Inside, the deadbolts stayed locked for the first time in years, and two people who had parted on terms too complicated for words began again—not with answers, but with the door open and the air between them finally, painfully, clear." |
| |
| 88.78% | Purple prose (modifier overload) | Target: <4% adverbs, <2% -ly adverbs, no adj stacking | | wordCount | 1153 | | adjectiveStacks | 1 | | stackExamples | | 0 | "above straight black hair" |
| | adverbCount | 53 | | adverbRatio | 0.04596704249783174 | | lyAdverbCount | 12 | | lyAdverbRatio | 0.010407632263660017 | |
| 100.00% | Repeated phrase echo | Target: ≤20% sentences with echoes (window: 2) | | totalSentences | 78 | | echoCount | 0 | | echoWords | (empty) | |
| 100.00% | Sentence length variance | Target: CV ≥0.4 for sentence word counts | | totalSentences | 78 | | mean | 25.56 | | std | 19.93 | | cv | 0.78 | | sampleLengths | | 0 | 3 | | 1 | 43 | | 2 | 17 | | 3 | 5 | | 4 | 20 | | 5 | 31 | | 6 | 24 | | 7 | 36 | | 8 | 7 | | 9 | 57 | | 10 | 21 | | 11 | 18 | | 12 | 10 | | 13 | 10 | | 14 | 13 | | 15 | 45 | | 16 | 32 | | 17 | 11 | | 18 | 49 | | 19 | 7 | | 20 | 5 | | 21 | 7 | | 22 | 2 | | 23 | 62 | | 24 | 24 | | 25 | 32 | | 26 | 18 | | 27 | 9 | | 28 | 20 | | 29 | 8 | | 30 | 17 | | 31 | 29 | | 32 | 18 | | 33 | 51 | | 34 | 34 | | 35 | 21 | | 36 | 17 | | 37 | 22 | | 38 | 24 | | 39 | 13 | | 40 | 14 | | 41 | 2 | | 42 | 14 | | 43 | 26 | | 44 | 41 | | 45 | 54 | | 46 | 14 | | 47 | 33 | | 48 | 69 | | 49 | 28 |
| |
| 39.74% | Sentence opener variety | Target: ≥60% unique sentence openers | | consecutiveRepeats | 8 | | diversityRatio | 0.2692307692307692 | | totalSentences | 78 | | uniqueOpeners | 21 | |
| 100.00% | Adverb-first sentence starts | Target: ≥3% sentences starting with an adverb | | adverbCount | 2 | | totalSentences | 61 | | matches | | 0 | "Then you pulled the honesty" | | 1 | "Then he kissed her." |
| | ratio | 0.033 | |
| 88.85% | Pronoun-first sentence starts | Target: ≤30% sentences starting with a pronoun | | pronounCount | 20 | | totalSentences | 61 | | matches | | 0 | "She pulled the door open," | | 1 | "He wore charcoal gray—tailored, unwrinkled," | | 2 | "His slicked-back platinum hair caught" | | 3 | "She stood at" | | 4 | "She felt her pulse in" | | 5 | "I’m delivering noodles until midnight," | | 6 | "You also didn’t answer my" | | 7 | "She flinched. Her fingers closed" | | 8 | "I heard you say it" | | 9 | "You don’t get to come" | | 10 | "She picked up a cold" | | 11 | "I told you I carry" | | 12 | "I told you that I" | | 13 | "I came here because I" | | 14 | "You came because the supernatural" | | 15 | "I came because I need" | | 16 | "He released her, but only" | | 17 | "I’m not your mission." | | 18 | "I’m the girl with the" | | 19 | "She rested her forehead against" |
| | ratio | 0.328 | |
| 82.95% | Subject-first sentence starts | Target: ≤72% sentences starting with a subject | | subjectCount | 46 | | totalSentences | 61 | | matches | | 0 | "The deadbolt clicked." | | 1 | "Aurora Carter drew back the" | | 2 | "She pulled the door open," | | 3 | "Lucien Moreau filled the frame." | | 4 | "He wore charcoal gray—tailored, unwrinkled," | | 5 | "His slicked-back platinum hair caught" | | 6 | "The ivory-handled cane in his" | | 7 | "Aurora’s bright blue eyes fixed" | | 8 | "She stood at" | | 9 | "Luc said, his voice carrying" | | 10 | "She felt her pulse in" | | 11 | "I’m delivering noodles until midnight," | | 12 | "Luc stepped inside. The cane" | | 13 | "The flat pressed around them—cluttered," | | 14 | "Luc turned, close enough that" | | 15 | "You also didn’t answer my" | | 16 | "Aurora said, though her voice" | | 17 | "Luc leaned closer. His hand" | | 18 | "She flinched. Her fingers closed" | | 19 | "I heard you say it" |
| | ratio | 0.754 | |
| 100.00% | Subordinate conjunction sentence starts | Target: ≥2% sentences starting with a subordinating conjunction | | subConjCount | 3 | | totalSentences | 61 | | matches | | 0 | "Because you were the only" | | 1 | "Because you said I was" | | 2 | "If you stay, you stay" |
| | ratio | 0.049 | |
| 0.00% | Technical jargon density | Target: ≤6% sentences with technical-jargon patterns | | analyzedSentences | 22 | | technicalSentenceCount | 8 | | matches | | 0 | "The ivory-handled cane in his grip leaned against the jamb, silent, lethal, concealing a thin blade that could slip between ribs without a sound." | | 1 | "The flat pressed around them—cluttered, intimate, airless. Ptolemy, Eva’s tabby cat, materialized from behind a leather-bound volume and circled Luc’s ankles, h…" | | 2 | "The words landed like blows. Aurora’s bright blue eyes lost their defensive edge. She looked at him—at the platinum hair, at the heterochromatic gaze, at the ta…" | | 3 | "Not gentle. Not the kind that belonged in a flat above Brick Lane with books everywhere and a tabby cat watching with amber eyes. It was a collision—his mouth h…" | | 4 | "Aurora’s hands found his shoulders, her black hair sticking to her face, her bright blue eyes open and seeing—really seeing—the half-demon fixer who had once sa…" | | 5 | "He released her, but only to slide his hand down her arm, past the delivery jacket she wore for Golden Empress, to the hollow of her palm. Aurora didn’t pull aw…" | | 6 | "Aurora looked at him—the amber, the black, the platinum hair, the blade in his cane, the history they had written in bruises and silence, the complicated terms …" | | 7 | "She rested her forehead against his, her bright blue eyes closing, her scarred wrist buried in his grip. Outside, the Brick Lane curry house steamed and clatter…" |
| |
| 100.00% | Useless dialogue additions | Target: ≤5% dialogue tags with trailing filler fragments | | totalTags | 31 | | uselessAdditionCount | 1 | | matches | | 0 | "Aurora said, though her voice cracked" |
| |
| 100.00% | Dialogue tag variety (said vs. fancy) | Target: ≤10% fancy dialogue tags | | totalTags | 17 | | fancyCount | 1 | | fancyTags | | 0 | "Luc corrected (correct)" |
| | dialogueSentences | 46 | | tagDensity | 0.37 | | leniency | 0.739 | | rawRatio | 0.059 | | effectiveRatio | 0.043 | |